@integry/sdk 3.1.4-beta.3 → 3.1.4-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.umd.js","sources":["../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/@babel/runtime/regenerator/index.js","../../src/extensions/HMAC.ts","../../node_modules/preact/dist/preact.module.js","../../node_modules/htm/dist/htm.mjs","../../node_modules/htm/preact/index.mjs","../../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../node_modules/unfetch/dist/unfetch.module.js","../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/inherits.js","../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../node_modules/@babel/runtime/helpers/esm/construct.js","../../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../../src/extensions/IntegryAPIError.ts","../../src/modules/api/responseHandler.ts","../../src/modules/api/index.ts","../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../src/modules/event-emitter/runners/abstract.ts","../../src/modules/event-emitter/runners/default.ts","../../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../../node_modules/@babel/runtime/helpers/esm/get.js","../../src/modules/event-emitter/runners/ntimes.ts","../../src/modules/event-emitter/index.ts","../../src/contexts/AppContext.ts","../../src/types/index.ts","../../node_modules/unistore/dist/unistore.es.js","../../src/store/initialState.ts","../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../../src/utils/jsonEncodeDecode.ts","../../src/utils/stepUtils.ts","../../src/store/actionFunctions.ts","../../src/store/index.ts","../../src/utils/isBrowser.ts","../../src/utils/getUrlParam.ts","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/fuzzysort/fuzzysort.js","../../node_modules/style-inject/dist/style-inject.es.js","../../src/components/Loader/index.ts","../../src/components/TabBar/Tab.ts","../../src/components/TabBar/index.ts","../../src/components/Search/index.ts","../../src/utils/datetime.ts","../../src/components/Toggle/index.ts","../../src/components/Tooltip/index.ts","../../src/hooks/useOnClickOutside.ts","../../src/components/CollapsedMenu/index.ts","../../src/components/ThreeDotLoader/index.ts","../../src/features/integrations/IntegrationRow/Icons.ts","../../src/features/integrations/IntegrationRow/index.ts","../../src/features/integrations/IntegrationsHeader/index.ts","../../src/features/integrations/IntegrationsList/index.ts","../../src/features/templates/Template/index.ts","../../src/features/templates/TemplatesView/index.ts","../../src/components/Modal/index.ts","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../node_modules/superstruct/lib/index.es.js","../../src/interfaces/index.ts","../../src/types/utils.ts","../../node_modules/classnames/index.js","../../src/components/Button/index.ts","../../src/components/ErrorPage/index.ts","../../src/components/RadioGroup/Radio.ts","../../src/components/ErrorMessage/index.ts","../../src/components/Label/index.ts","../../src/utils/popup.ts","../../src/utils/isAuthMessage.ts","../../src/features/common/AuthSelector/index.ts","../../src/components/Listbox/ListBoxItem.ts","../../src/components/Listbox/index.ts","../../src/components/LargeLoader/index.ts","../../src/components/BasicSelect/index.ts","../../src/features/common/MappingUI/index.ts","../../src/components/CheckboxGroup/Checkbox.ts","../../src/components/CheckboxGroup/index.ts","../../src/components/Input/BaseInput/index.ts","../../src/components/Input/Input/index.ts","../../src/components/Input/DateInput/index.ts","../../src/components/Input/PasswordInput/index.ts","../../src/utils/copyToClipboard.ts","../../src/components/TextArea/index.ts","../../src/features/common/DynamicField/index.ts","../../src/components/RadioGroup/index.ts","../../src/components/TimeInput/index.ts","../../src/features/common/NewMappingUI/index.ts","../../src/features/common/Step/index.ts","../../src/components/InfoBox/index.ts","../../src/features/common/Steps/index.ts","../../src/hooks/useEventListener.ts","../../src/hooks/useElementResize.ts","../../src/hooks/useDebounce.ts","../../src/features/common/StepNavigation/NavItem.ts","../../src/features/common/StepNavigation/CollapsedSteps.ts","../../src/features/common/StepNavigation/index.ts","../../src/features/containers/FlowSetupContainer/index.ts","../../src/features/containers/SDKContainer/index.ts","../../src/components/NewModal/index.ts","../../src/utils/truncate.ts","../../src/features/containers/AuthSetupContainer/AppSelection.ts","../../src/features/containers/AuthSetupContainer/Footer.ts","../../src/features/containers/AuthSetupContainer/AuthTypeSelection.ts","../../src/features/containers/AuthSetupContainer/Header.ts","../../src/features/containers/AuthSetupContainer/PostAdditionPopup.ts","../../src/features/containers/AuthSetupContainer/index.ts","../../src/index.ts","../../src/index.umd.ts"],"sourcesContent":["export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","/**\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\"use strict\";\n\nvar Op = Object.prototype;\nvar hasOwn = Op.hasOwnProperty;\nvar undefined; // More compressible than void 0.\nvar $Symbol = typeof Symbol === \"function\" ? Symbol : {};\nvar iteratorSymbol = $Symbol.iterator || \"@@iterator\";\nvar asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\nvar toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\nfunction 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\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.\nfunction 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\nvar GenStateSuspendedStart = \"suspendedStart\";\nvar GenStateSuspendedYield = \"suspendedYield\";\nvar GenStateExecuting = \"executing\";\nvar GenStateCompleted = \"completed\";\n\n// Returning this object from the innerFn has the same effect as\n// breaking out of the dispatch switch statement.\nvar 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.\nfunction Generator() {}\nfunction GeneratorFunction() {}\nfunction GeneratorFunctionPrototype() {}\n\n// This is a polyfill for %IteratorPrototype% for environments that\n// don't natively support it.\nvar IteratorPrototype = {};\nIteratorPrototype[iteratorSymbol] = function () {\n return this;\n};\n\nvar getProto = Object.getPrototypeOf;\nvar NativeIteratorPrototype = getProto && getProto(getProto(values([])));\nif (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\nvar Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\nGeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\nGeneratorFunctionPrototype.constructor = GeneratorFunction;\nGeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n// Helper for defining the .next, .throw, and .return methods of the\n// Iterator interface in terms of a single ._invoke method.\nfunction defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n}\n\nfunction isGeneratorFunction (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\nfunction mark (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\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.\nfunction awrap (arg) {\n return { __await: arg };\n};\n\nfunction 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\ndefineIteratorMethods(AsyncIterator.prototype);\nAsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n};\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 function async (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 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\nfunction 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.\nfunction 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.\ndefineIteratorMethods(Gp);\n\nGp[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.\nGp[iteratorSymbol] = function() {\n return this;\n};\n\nGp.toString = function() {\n return \"[object Generator]\";\n};\n\nfunction 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\nfunction resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n}\n\nfunction 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\nfunction keys (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\nfunction 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\nfunction doneResult() {\n return { value: undefined, done: true };\n}\n\nContext.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// Export a default namespace that plays well with Rollup\nexport default {\n wrap,\n isGeneratorFunction,\n AsyncIterator,\n mark,\n awrap,\n async,\n keys,\n values\n};\n","/**\r\n *\r\n * @param key Key to sign hash\r\n * @param message Message to hash\r\n * @returns {string}\r\n */\r\nexport async function HMAC(message: string, key: string): Promise<string> {\r\n const g = (str: string) =>\r\n new Uint8Array(\r\n [...unescape(encodeURIComponent(str))].map((c) => c.charCodeAt(0)),\r\n );\r\n const k = g(key);\r\n const m = g(message);\r\n const c = await crypto.subtle.importKey(\r\n 'raw',\r\n k,\r\n { name: 'HMAC', hash: 'SHA-256' },\r\n true,\r\n ['sign'],\r\n );\r\n const s = await crypto.subtle.sign('HMAC', c, m);\r\n return [...new Uint8Array(s)]\r\n .map((b) => b.toString(16).padStart(2, '0'))\r\n .join('');\r\n}\r\n","var n,l,u,t,i,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function h(n,l,u){var t,i=arguments,o={};for(t in l)\"key\"!==t&&\"ref\"!==t&&(o[t]=l[t]);if(arguments.length>3)for(u=[u],t=3;t<arguments.length;t++)u.push(i[t]);if(null!=u&&(o.children=u),\"function\"==typeof n&&null!=n.defaultProps)for(t in n.defaultProps)void 0===o[t]&&(o[t]=n.defaultProps[t]);return v(n,o,l&&l.key,l&&l.ref)}function v(l,u,t,i){var o={type:l,props:u,key:t,ref:i,__k:null,__:null,__b:0,__e:null,__d:null,__c:null,constructor:void 0};return n.vnode&&n.vnode(o),o}function p(){return{}}function y(n){return n.children}function d(n,l){this.props=n,this.context=l}function m(n,l){if(null==l)return n.__?m(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?m(n):null}function w(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return w(n)}}function g(l){(!l.__d&&(l.__d=!0)&&1===u.push(l)||i!==n.debounceRendering)&&((i=n.debounceRendering)||t)(k)}function k(){var n,l,t,i,o,r,f;for(u.sort(function(n,l){return l.__v.__b-n.__v.__b});n=u.pop();)n.__d&&(t=void 0,i=void 0,r=(o=(l=n).__v).__e,(f=l.__P)&&(t=[],i=T(f,o,s({},o),l.__n,void 0!==f.ownerSVGElement,null,t,null==r?m(o):r),$(t,o),i!=r&&w(o)))}function _(n,l,u,t,i,o,r,c,s){var h,v,p,y,d,w,g,k=u&&u.__k||e,_=k.length;if(c==f&&(c=null!=o?o[0]:_?m(u,0):null),h=0,l.__k=b(l.__k,function(u){if(null!=u){if(u.__=l,u.__b=l.__b+1,null===(p=k[h])||p&&u.key==p.key&&u.type===p.type)k[h]=void 0;else for(v=0;v<_;v++){if((p=k[v])&&u.key==p.key&&u.type===p.type){k[v]=void 0;break}p=null}if(y=T(n,u,p=p||f,t,i,o,r,c,s),(v=u.ref)&&p.ref!=v&&(g||(g=[]),p.ref&&g.push(p.ref,null,u),g.push(v,u.__c||y,u)),null!=y){if(null==w&&(w=y),null!=u.__d)y=u.__d,u.__d=null;else if(o==p||y!=c||null==y.parentNode){n:if(null==c||c.parentNode!==n)n.appendChild(y);else{for(d=c,v=0;(d=d.nextSibling)&&v<_;v+=2)if(d==y)break n;n.insertBefore(y,c)}\"option\"==l.type&&(n.value=\"\")}c=y.nextSibling,\"function\"==typeof l.type&&(l.__d=y)}}return h++,u}),l.__e=w,null!=o&&\"function\"!=typeof l.type)for(h=o.length;h--;)null!=o[h]&&a(o[h]);for(h=_;h--;)null!=k[h]&&A(k[h],k[h]);if(g)for(h=0;h<g.length;h++)z(g[h],g[++h],g[++h])}function b(n,l,u){if(null==u&&(u=[]),null==n||\"boolean\"==typeof n)l&&u.push(l(null));else if(Array.isArray(n))for(var t=0;t<n.length;t++)b(n[t],l,u);else u.push(l?l(\"string\"==typeof n||\"number\"==typeof n?v(null,n,null,null):null!=n.__e||null!=n.__c?v(n.type,n.props,n.key,null):n):n);return u}function x(n,l,u,t,i){var o;for(o in u)o in l||P(n,o,null,u[o],t);for(o in l)i&&\"function\"!=typeof l[o]||\"value\"===o||\"checked\"===o||u[o]===l[o]||P(n,o,l[o],u[o],t)}function C(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=\"number\"==typeof u&&!1===c.test(l)?u+\"px\":null==u?\"\":u}function P(n,l,u,t,i){var o,r,f,e,c;if(i?\"className\"===l&&(l=\"class\"):\"class\"===l&&(l=\"className\"),\"key\"===l||\"children\"===l);else if(\"style\"===l)if(o=n.style,\"string\"==typeof u)o.cssText=u;else{if(\"string\"==typeof t&&(o.cssText=\"\",t=null),t)for(r in t)u&&r in u||C(o,r,\"\");if(u)for(f in u)t&&u[f]===t[f]||C(o,f,u[f])}else\"o\"===l[0]&&\"n\"===l[1]?(e=l!==(l=l.replace(/Capture$/,\"\")),c=l.toLowerCase(),l=(c in n?c:l).slice(2),u?(t||n.addEventListener(l,N,e),(n.l||(n.l={}))[l]=u):n.removeEventListener(l,N,e)):\"list\"!==l&&\"tagName\"!==l&&\"form\"!==l&&\"type\"!==l&&!i&&l in n?n[l]=null==u?\"\":u:\"function\"!=typeof u&&\"dangerouslySetInnerHTML\"!==l&&(l!==(l=l.replace(/^xlink:?/,\"\"))?null==u||!1===u?n.removeAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase()):n.setAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase(),u):null==u||!1===u?n.removeAttribute(l):n.setAttribute(l,u))}function N(l){this.l[l.type](n.event?n.event(l):l)}function T(l,u,t,i,o,r,f,e,c){var a,h,v,p,m,w,g,k,x,C,P=u.type;if(void 0!==u.constructor)return null;(a=n.__b)&&a(u);try{n:if(\"function\"==typeof P){if(k=u.props,x=(a=P.contextType)&&i[a.__c],C=a?x?x.props.value:a.__:i,t.__c?g=(h=u.__c=t.__c).__=h.__E:(\"prototype\"in P&&P.prototype.render?u.__c=h=new P(k,C):(u.__c=h=new d(k,C),h.constructor=P,h.render=D),x&&x.sub(h),h.props=k,h.state||(h.state={}),h.context=C,h.__n=i,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=P.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s({},h.__s)),s(h.__s,P.getDerivedStateFromProps(k,h.__s))),p=h.props,m=h.state,v)null==P.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==P.getDerivedStateFromProps&&k!==p&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(k,C),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(k,h.__s,C)){for(h.props=k,h.state=h.__s,h.__d=!1,h.__v=u,u.__e=t.__e,u.__k=t.__k,h.__h.length&&f.push(h),a=0;a<u.__k.length;a++)u.__k[a]&&(u.__k[a].__=u);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(k,h.__s,C),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(p,m,w)})}h.context=C,h.props=k,h.state=h.__s,(a=n.__r)&&a(u),h.__d=!1,h.__v=u,h.__P=l,a=h.render(h.props,h.state,h.context),u.__k=b(null!=a&&a.type==y&&null==a.key?a.props.children:a),null!=h.getChildContext&&(i=s(s({},i),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(w=h.getSnapshotBeforeUpdate(p,m)),_(l,u,t,i,o,r,f,e,c),h.base=u.__e,h.__h.length&&f.push(h),g&&(h.__E=h.__=null),h.__e=null}else u.__e=j(t.__e,u,t,i,o,r,f,c);(a=n.diffed)&&a(u)}catch(l){n.__e(l,u,t)}return u.__e}function $(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function j(n,l,u,t,i,o,r,c){var s,a,h,v,p,y=u.props,d=l.props;if(i=\"svg\"===l.type||i,null==n&&null!=o)for(s=0;s<o.length;s++)if(null!=(a=o[s])&&(null===l.type?3===a.nodeType:a.localName===l.type)){n=a,o[s]=null;break}if(null==n){if(null===l.type)return document.createTextNode(d);n=i?document.createElementNS(\"http://www.w3.org/2000/svg\",l.type):document.createElement(l.type),o=null}if(null===l.type)null!=o&&(o[o.indexOf(n)]=null),y===d||c||n.data==d||(n.data=d);else if(l!==u){if(null!=o&&(o=e.slice.call(n.childNodes)),h=(y=u.props||f).dangerouslySetInnerHTML,v=d.dangerouslySetInnerHTML,!c){if(y===f)for(y={},p=0;p<n.attributes.length;p++)y[n.attributes[p].name]=n.attributes[p].value;(v||h)&&(v&&h&&v.__html==h.__html||(n.innerHTML=v&&v.__html||\"\"))}x(n,d,y,i,c),l.__k=l.props.children,v||_(n,l,u,t,\"foreignObject\"!==l.type&&i,o,r,f,c),c||(\"value\"in d&&void 0!==d.value&&d.value!==n.value&&(n.value=null==d.value?\"\":d.value),\"checked\"in d&&void 0!==d.checked&&d.checked!==n.checked&&(n.checked=d.checked))}return n}function z(l,u,t){try{\"function\"==typeof l?l(u):l.current=u}catch(l){n.__e(l,t)}}function A(l,u,t){var i,o,r;if(n.unmount&&n.unmount(l),(i=l.ref)&&(i.current&&i.current!==l.__e||z(i,null,u)),t||\"function\"==typeof l.type||(t=null!=(o=l.__e)),l.__e=l.__d=null,null!=(i=l.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(l){n.__e(l,u)}i.base=i.__P=null}if(i=l.__k)for(r=0;r<i.length;r++)i[r]&&A(i[r],u,t);null!=o&&a(o)}function D(n,l,u){return this.constructor(n,u)}function E(l,u,t){var i,r,c;n.__&&n.__(l,u),r=(i=t===o)?null:t&&t.__k||u.__k,l=h(y,null,[l]),c=[],T(u,(i?u:t||u).__k=l,r||f,f,void 0!==u.ownerSVGElement,t&&!i?[t]:r?null:e.slice.call(u.childNodes),c,t||f,i),$(c,l)}function H(n,l){E(n,l,o)}function I(n,l){return l=s(s({},n.props),l),arguments.length>2&&(l.children=e.slice.call(arguments,2)),v(n.type,l,l.key||n.key,l.ref||n.ref)}function L(n){var l={},u={__c:\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var t,i=this;return this.getChildContext||(t=[],this.getChildContext=function(){return l[u.__c]=i,l},this.shouldComponentUpdate=function(l){n.value!==l.value&&t.some(function(n){n.context=l.value,g(n)})},this.sub=function(n){t.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){t.splice(t.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Consumer.contextType=u,u}n={__e:function(n,l){for(var u,t;l=l.__;)if((u=l.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError&&(t=!0,u.setState(u.constructor.getDerivedStateFromError(n))),null!=u.componentDidCatch&&(t=!0,u.componentDidCatch(n)),t)return g(u.__E=u)}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=this.__s!==this.state?this.__s:this.__s=s({},this.state),\"function\"==typeof n&&(n=n(u,this.props)),n&&s(u,n),null!=n&&this.__v&&(this.__e=!1,l&&this.__h.push(l),g(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),g(this))},d.prototype.render=y,u=[],t=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o=f,r=0;export{E as render,H as hydrate,h as createElement,h,y as Fragment,p as createRef,l as isValidElement,d as Component,I as cloneElement,L as createContext,b as toChildArray,A as _unmount,n as options};\n//# sourceMappingURL=preact.module.js.map\n","var n=function(t,s,r,e){var u;s[0]=0;for(var h=1;h<s.length;h++){var p=s[h++],a=s[h]?(s[0]|=p?1:2,r[s[h++]]):s[++h];3===p?e[0]=a:4===p?e[1]=Object.assign(e[1]||{},a):5===p?(e[1]=e[1]||{})[s[++h]]=a:6===p?e[1][s[++h]]+=a+\"\":p?(u=t.apply(a,n(t,a,r,[\"\",null])),e.push(u),a[0]?s[0]|=2:(s[h-2]=0,s[h]=u)):e.push(a)}return e},t=new Map;export default function(s){var r=t.get(this);return r||(r=new Map,t.set(this,r)),(r=n(this,r.get(s)||(r.set(s,r=function(n){for(var t,s,r=1,e=\"\",u=\"\",h=[0],p=function(n){1===r&&(n||(e=e.replace(/^\\s*\\n\\s*|\\s*\\n\\s*$/g,\"\")))?h.push(0,n,e):3===r&&(n||e)?(h.push(3,n,e),r=2):2===r&&\"...\"===e&&n?h.push(4,n,0):2===r&&e&&!n?h.push(5,0,!0,e):r>=5&&((e||!n&&5===r)&&(h.push(r,0,e,s),r=6),n&&(h.push(r,n,0,s),r=6)),e=\"\"},a=0;a<n.length;a++){a&&(1===r&&p(),p(a));for(var l=0;l<n[a].length;l++)t=n[a][l],1===r?\"<\"===t?(p(),h=[h],r=3):e+=t:4===r?\"--\"===e&&\">\"===t?(r=1,e=\"\"):e=t+e[0]:u?t===u?u=\"\":e+=t:'\"'===t||\"'\"===t?u=t:\">\"===t?(p(),r=1):r&&(\"=\"===t?(r=5,s=e,e=\"\"):\"/\"===t&&(r<5||\">\"===n[a][l+1])?(p(),3===r&&(h=h[0]),r=h,(h=h[0]).push(2,0,r),r=0):\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t?(p(),r=2):e+=t),3===r&&\"!--\"===e&&(r=4,h=h[0])}return p(),h}(s)),r),arguments,[])).length>1?r:r[0]}\n","import{h as r,Component as o,render as t}from\"preact\";export{h,render,Component}from\"preact\";import e from\"htm\";var m=e.bind(r);export{m as html};\n","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||\"get\",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},s.onerror=r,s.withCredentials=\"include\"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})}\n//# sourceMappingURL=unfetch.module.js.map\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","import { UnfetchResponse } from '../types';\r\n\r\n/**\r\n * Extend default Error class\r\n */\r\nclass IntegryAPIError extends Error {\r\n statusCode: number | undefined;\r\n\r\n response: UnfetchResponse | undefined;\r\n\r\n constructor(errorMessage: string, response?: UnfetchResponse) {\r\n super(errorMessage);\r\n this.name = this.constructor.name;\r\n this.statusCode = response?.status;\r\n this.response = response;\r\n }\r\n}\r\n\r\nexport { IntegryAPIError };\r\n","/* eslint-disable no-console */\r\n\r\nimport { UnfetchResponse } from '../../types';\r\nimport { IntegryAPIError } from '../../extensions/IntegryAPIError';\r\n\r\nexport const ResponseHandler = async <T>(\r\n response: UnfetchResponse,\r\n): Promise<{\r\n data: T | null;\r\n status: number;\r\n}> => {\r\n const debugMode = !!process.env.DEBUG;\r\n\r\n if (response.ok) {\r\n try {\r\n const parsedResponse: T = await response.json();\r\n if (debugMode) console.log(parsedResponse);\r\n return {\r\n data: parsedResponse,\r\n status: response.status,\r\n };\r\n } catch (error) {\r\n if (debugMode) console.log('Response is not in json');\r\n return {\r\n data: null,\r\n status: response.status,\r\n };\r\n }\r\n } else if (response.status === 405) {\r\n return {\r\n data: await response.json(),\r\n status: response.status,\r\n };\r\n }\r\n if (debugMode) console.log('Received a non-2xx status code');\r\n const error = new IntegryAPIError(response.statusText, response);\r\n return Promise.reject(error);\r\n};\r\n","/**\r\n * Simple API module\r\n */\r\n\r\nimport fetch from 'unfetch';\r\n\r\nimport {\r\n APIConfig,\r\n BundleResponse,\r\n IntegrationSaveResponse,\r\n SaveOrUpdateIntegrationBody,\r\n TemplateResponse,\r\n IntegrationResponse,\r\n TemplateStep,\r\n ActivityCustomField,\r\n AppsForAuthConnectionResponse,\r\n AppsForAuthConnection,\r\n} from '@/interfaces';\r\n\r\nimport { ResponseHandler } from './responseHandler';\r\n\r\nclass IntegryAPI {\r\n private config: APIConfig;\r\n\r\n constructor(config: APIConfig) {\r\n this.config = config;\r\n }\r\n\r\n static addUrlSearchParams = (\r\n url: URL,\r\n paramList: Record<string, string | boolean | null>,\r\n ) =>\r\n Object.keys(paramList).map(\r\n (objKey) =>\r\n paramList[objKey] !== undefined &&\r\n paramList[objKey] !== null &&\r\n url.searchParams.append(objKey, `${paramList[objKey]}`),\r\n );\r\n\r\n public getTemplate = async (\r\n templateId: number,\r\n ): Promise<TemplateResponse | null> => {\r\n const url = new URL(`${this.config.baseUrlv2}/template/${templateId}/`);\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n self_api_key: this.config.apiKey || null,\r\n self_auth_id: this.config.authId || null,\r\n self_auth_extras: this.config.extras\r\n ? JSON.stringify(this.config.extras)\r\n : null,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString()).then((data) =>\r\n ResponseHandler<TemplateResponse>(data),\r\n );\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public getAuthUrl = (authorizationTypeId: number): string => {\r\n const url = new URL(\r\n `${this.config.baseUrl}/auth/login/${authorizationTypeId}/`,\r\n );\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n });\r\n\r\n return url.toString();\r\n };\r\n\r\n public getAppById = async (\r\n appId: string,\r\n ): Promise<AppsForAuthConnection | null> => {\r\n const url = new URL(`${this.config.baseUrl}/app/${appId}/`);\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n sdk_request: true,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString()).then((data) =>\r\n ResponseHandler<AppsForAuthConnection>(data),\r\n );\r\n\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public getTemplateStep = async (\r\n stepId: number,\r\n integrationId?: number,\r\n ): Promise<TemplateStep | null> => {\r\n const url = new URL(`${this.config.baseUrl}/template_step/${stepId}/`);\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n self_api_key: this.config.apiKey || null,\r\n self_auth_id: this.config.authId || null,\r\n integration_id: integrationId ? `${integrationId}` : null,\r\n self_auth_extras: this.config.extras\r\n ? JSON.stringify(this.config.extras)\r\n : null,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString()).then((data) =>\r\n ResponseHandler<TemplateStep>(data),\r\n );\r\n\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public verifyOAuth = async (authId: number): Promise<boolean | null> => {\r\n const url = new URL(\r\n `${this.config.baseUrl}/${this.config.oauthVerifyPath}`,\r\n );\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n authorization_id: `${authId}`,\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString(), { method: 'POST' }).then(\r\n ResponseHandler,\r\n );\r\n return !!response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public deleteAuth = async (\r\n authId: number,\r\n ): Promise<{\r\n data: string | null;\r\n status: number;\r\n } | null> => {\r\n const url = new URL(`${this.config.baseUrl}/connected-accounts/${authId}`);\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString(), {\r\n method: 'DELETE',\r\n }).then((data) => ResponseHandler<string>(data));\r\n\r\n return {\r\n status: response.status,\r\n data: response.data,\r\n };\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public callDynamicDataEndpoint = async <T>(\r\n url: URL,\r\n endpointData: Record<string, string> = {},\r\n ): Promise<T | null> => {\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n ...endpointData,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString()).then((data) =>\r\n ResponseHandler<T>(data),\r\n );\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public getTemplateListing = async (\r\n deploymentId: number,\r\n ): Promise<BundleResponse | null> => {\r\n const url = new URL(`${this.config.baseUrl}/bundle/${deploymentId}/`);\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString()).then((data) =>\r\n ResponseHandler<BundleResponse>(data),\r\n );\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public saveIntegration = async (\r\n body: SaveOrUpdateIntegrationBody,\r\n ): Promise<IntegrationSaveResponse | null> => {\r\n const url = new URL(`${this.config.baseUrlv2}/integration/`);\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n async: false,\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n activate: true,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString(), {\r\n method: 'POST',\r\n body: JSON.stringify(body),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n }).then((data) => ResponseHandler<IntegrationSaveResponse>(data));\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public getAppsForAuthConnection = async (payload?: {\r\n deploymentId?: string;\r\n page?: number;\r\n }): Promise<AppsForAuthConnectionResponse | null> => {\r\n const url = new URL(`${this.config.baseUrl}/deployment/template_apps/`);\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n page: `${payload?.page ?? ''}`,\r\n deployment_id: payload?.deploymentId ?? '',\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString(), {\r\n method: 'GET',\r\n }).then((data) => ResponseHandler<AppsForAuthConnectionResponse>(data));\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public updateIntegration = async (\r\n integrationId: string,\r\n body: SaveOrUpdateIntegrationBody,\r\n ): Promise<boolean | null> => {\r\n const url = new URL(\r\n `${this.config.baseUrlv2}/integration/${integrationId}/`,\r\n );\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n async: false,\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n activate: true,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString(), {\r\n method: 'PUT',\r\n body: JSON.stringify(body),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n }).then((data) => ResponseHandler<boolean>(data));\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public deleteIntegration = async (\r\n integrationId: number,\r\n ): Promise<boolean | null> => {\r\n const url = new URL(\r\n `${this.config.baseUrl}/setup/template/${integrationId}/`,\r\n );\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString(), {\r\n method: 'DELETE',\r\n }).then((data) => ResponseHandler<boolean>(data));\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public toggleIntegration = async (\r\n integrationId: number,\r\n activate: boolean,\r\n ): Promise<string | null> => {\r\n const url = new URL(\r\n `${this.config.baseUrlv2}/integration/${integrationId}/${\r\n activate ? 'enable' : 'disable'\r\n }/`,\r\n );\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString(), {\r\n method: 'PUT',\r\n }).then((data) => ResponseHandler<string>(data));\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public getIntegrationById = async (\r\n integrationId: number,\r\n ): Promise<IntegrationResponse | null> => {\r\n const url = new URL(\r\n `${this.config.baseUrlv2}/integration/${integrationId}`,\r\n );\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString(), {\r\n method: 'GET',\r\n }).then((data) => ResponseHandler<IntegrationResponse>(data));\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public getCustomFields = async (params: {\r\n activityFieldId: number;\r\n stepName?: string;\r\n authorizationId: number;\r\n endpointData?: Record<string, string | number>;\r\n }): Promise<ActivityCustomField[] | null> => {\r\n const url = new URL(\r\n `${this.config.baseUrl}/endpoints/get_custom_fields/${params.activityFieldId}/`,\r\n );\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n step_name: params.stepName || '',\r\n authorization_id: `${params.authorizationId}`,\r\n ...(params.endpointData || {}),\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString(), {\r\n method: 'GET',\r\n }).then((data) => ResponseHandler<ActivityCustomField[]>(data));\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n\r\n public verifyAuthConfig = async (params: {\r\n deploymentId: string;\r\n }): Promise<{ config_verified: boolean } | null> => {\r\n const url = new URL(`${this.config.baseUrl}/verify-sdk-config/`);\r\n\r\n IntegryAPI.addUrlSearchParams(url, {\r\n app_key: this.config.appKey,\r\n hash: this.config.hash,\r\n user_id: this.config.userId,\r\n bundle_id: params.deploymentId,\r\n });\r\n\r\n try {\r\n const response = await fetch(url.toString(), {\r\n method: 'GET',\r\n }).then((data) => ResponseHandler<{ config_verified: boolean }>(data));\r\n return response.data;\r\n } catch (error) {\r\n console.error(error);\r\n return null;\r\n }\r\n };\r\n}\r\n\r\nexport { IntegryAPI };\r\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import { EventSet, EventEmitterType, HandlerRunner } from '../types';\r\n\r\nexport default abstract class EventRunnerAbstract<\r\n ESet extends EventSet,\r\n EventName extends keyof ESet\r\n> implements HandlerRunner<ESet, EventName> {\r\n // eslint-disable-next-line no-useless-constructor\r\n constructor(\r\n protected emitter: EventEmitterType<ESet>,\r\n protected handler: ESet[EventName],\r\n ) {}\r\n\r\n getHandler(): ESet[EventName] {\r\n return this.handler;\r\n }\r\n\r\n abstract run(\r\n eventName: EventName,\r\n ...args: Parameters<ESet[EventName]>\r\n ): void;\r\n}\r\n","import { EventSet } from '../types';\r\nimport EventRunnerAbstract from './abstract';\r\n\r\nexport default class EventRunnerDefault<\r\n ESet extends EventSet,\r\n EventName extends keyof ESet\r\n> extends EventRunnerAbstract<ESet, EventName> {\r\n run(_eventName: EventName, ...args: Parameters<ESet[EventName]>): void {\r\n this.handler.apply(null, args);\r\n }\r\n}\r\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import { EventSet, EventEmitterType } from '../types';\r\nimport EventRunnerDefault from './default';\r\n\r\nexport default class EventRunnerNTimes<\r\n ESet extends EventSet,\r\n EventName extends keyof ESet\r\n> extends EventRunnerDefault<ESet, EventName> {\r\n private i = 0;\r\n\r\n constructor(\r\n emitter: EventEmitterType<ESet>,\r\n handler: ESet[EventName],\r\n private total = 1,\r\n ) {\r\n super(emitter, handler);\r\n if (this.total < 1) {\r\n throw new Error(`{total} can not be less than 1`);\r\n }\r\n }\r\n\r\n run(eventName: EventName, ...args: Parameters<ESet[EventName]>): void {\r\n super.run(eventName, ...args);\r\n // eslint-disable-next-line no-plusplus\r\n if (++this.i >= this.total) {\r\n this.emitter.off(eventName, this.handler);\r\n }\r\n }\r\n}\r\n","// https://github.com/infinitum11/inf-ee\r\n\r\nimport EventRunnerDefault from './runners/default';\r\nimport EventRunnerNTimes from './runners/ntimes';\r\nimport {\r\n EventListenerStorage,\r\n EventSet,\r\n EventEmitterType,\r\n HandlerRunner,\r\n} from './types';\r\n\r\nexport class EventEmitter<ESet extends EventSet>\r\n implements EventEmitterType<EventSet> {\r\n private events: EventListenerStorage<ESet> = Object.create(null);\r\n\r\n on<EventName extends keyof ESet>(\r\n eventName: EventName,\r\n handler: ESet[EventName],\r\n ): void {\r\n this.addEventListener(eventName, new EventRunnerDefault(this, handler));\r\n }\r\n\r\n once<EventName extends keyof ESet>(\r\n eventName: EventName,\r\n handler: ESet[EventName],\r\n ): void {\r\n this.addEventListener(eventName, new EventRunnerNTimes(this, handler, 1));\r\n }\r\n\r\n off<EventName extends keyof ESet>(\r\n eventName: EventName,\r\n handler: ESet[EventName],\r\n ): void {\r\n const events = this.events[eventName];\r\n if (!events?.length) {\r\n return;\r\n }\r\n this.events[eventName] = events.filter((h) => h.getHandler() !== handler);\r\n }\r\n\r\n offAll(): void {\r\n Object.keys(this.events).forEach((eventName) => {\r\n const events = this.events[eventName];\r\n if (events) {\r\n events.length = 0;\r\n }\r\n });\r\n this.events = Object.create(null);\r\n }\r\n\r\n emit<EventName extends keyof ESet>(\r\n eventName: EventName,\r\n ...args: Parameters<ESet[EventName]>\r\n ): void {\r\n const events = this.events[eventName];\r\n if (events) {\r\n events.forEach((handler) => handler.run(eventName, ...args));\r\n }\r\n }\r\n\r\n private addEventListener<EventName extends keyof ESet>(\r\n eventName: EventName,\r\n runner: HandlerRunner<ESet, EventName>,\r\n ) {\r\n const events = this.events[eventName];\r\n if (Array.isArray(events)) {\r\n events.push(runner);\r\n } else {\r\n this.events[eventName] = [runner];\r\n }\r\n }\r\n}\r\n","import { IntegryAPI } from '@/modules/api';\r\nimport { EventEmitter } from '@/modules/event-emitter';\r\nimport { IntegrySDKEvents } from '@/types';\r\nimport { createContext } from 'preact';\r\n\r\nexport default createContext<{\r\n apiHandler: IntegryAPI;\r\n eventEmitter: EventEmitter<IntegrySDKEvents>;\r\n isPreviewMode: boolean;\r\n} | null>(null);\r\n","export type IntegrySDKEvents = {\r\n ready: ({ deploymentId }: { deploymentId: number }) => void;\r\n 'should-load-flow': ({\r\n templateId,\r\n flowId,\r\n }: {\r\n templateId: number;\r\n flowId: number;\r\n }) => void;\r\n 'did-load-flows': ({ flows }: { flows: any[] }) => void;\r\n 'did-load-integrations': ({ integrations }: { integrations: any[] }) => void;\r\n 'did-load-flow': (data: {\r\n flowId: number;\r\n flowTitle: string;\r\n flowDescription: string;\r\n templateId: number;\r\n templateTitle: string;\r\n templateDescription: string;\r\n }) => void;\r\n 'did-load-integration': (data: {\r\n flowId: number;\r\n integrationId: number;\r\n }) => void;\r\n 'did-save-integration': (data: {\r\n integrationId: number;\r\n name: string;\r\n templateId: number;\r\n flowId: number;\r\n status: string;\r\n callbackUrl: string | null;\r\n authorizations: {\r\n authorizationId: number;\r\n userIdentity: string;\r\n isBrandingAppAuth: boolean;\r\n }[];\r\n }) => void;\r\n 'did-load-preview': (data: {\r\n flowId: number;\r\n flowTitle: string;\r\n flowDescription: string;\r\n }) => void;\r\n 'did-change-step': (data: {\r\n stepId: number;\r\n stepType: 'AUTH' | 'CONFIGURATION' | 'SECTION' | 'CONFIRMATION';\r\n }) => void;\r\n 'did-add-authorization': (data: {\r\n identity: string;\r\n authorizationId: number;\r\n flowId: number | null;\r\n appId: number;\r\n appName: string;\r\n appIcon: string;\r\n alreadyExists: boolean;\r\n }) => void;\r\n 'did-fail-authorization-verification': (data: {\r\n identity: string;\r\n authorizationId: number;\r\n flowId: number | null;\r\n appId: number;\r\n appName: string;\r\n appIcon: string;\r\n alreadyExists: boolean;\r\n }) => void;\r\n 'did-select-authorization': (data: { authorizationId: number }) => void;\r\n 'did-remove-authorization': (data: { authorizationId: number }) => void;\r\n 'did-begin-remove-authorization': (data: { authorizationId: number }) => void;\r\n};\r\n\r\nexport enum TemplateFormRenderModes {\r\n MODAL = 'MODAL',\r\n INLINE = 'INLINE',\r\n DETACHED = 'DETACHED',\r\n CUSTOM = 'CUSTOM',\r\n}\r\n\r\nexport enum TemplateListingRenderModes {\r\n GRID = 'GRID',\r\n LIST = 'LIST',\r\n}\r\n\r\nexport type AuthorizationTypes =\r\n | 'APIKey'\r\n | 'OAuth2-1'\r\n | 'OAuth2'\r\n | 'Basic'\r\n | 'APISecret'\r\n | 'BasicWithoutURL'\r\n | 'APIKeySecretRegion'\r\n | 'BasicAndAPIKey'\r\n | 'APIKeyWithURL'\r\n | 'APIKeySecret';\r\n\r\nexport type Authorization = {\r\n id: number;\r\n authorization_type: string;\r\n app_user?: number;\r\n app_user_id?: number;\r\n disable_link?: string;\r\n integration_count?: number;\r\n user_identity: string;\r\n};\r\n\r\nexport type UnfetchResponse = {\r\n ok: boolean;\r\n statusText: string;\r\n status: number;\r\n url: string;\r\n text: () => Promise<string>;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n json: () => Promise<any>;\r\n blob: () => Promise<Blob>;\r\n clone: () => UnfetchResponse;\r\n headers: {\r\n keys: () => string[];\r\n entries: () => Array<[string, string]>;\r\n get: (key: string) => string | undefined;\r\n has: (key: string) => boolean;\r\n };\r\n};\r\n","function n(n,t){for(var r in t)n[r]=t[r];return n}export default function(t){var r=[];function u(n){for(var t=[],u=0;u<r.length;u++)r[u]===n?n=null:t.push(r[u]);r=t}function e(u,e,f){t=e?u:n(n({},t),u);for(var i=r,o=0;o<i.length;o++)i[o](t,f)}return t=t||{},{action:function(n){function r(t){e(t,!1,n)}return function(){for(var u=arguments,e=[t],f=0;f<arguments.length;f++)e.push(u[f]);var i=n.apply(this,e);if(null!=i)return i.then?i.then(r):r(i)}},setState:e,subscribe:function(n){return r.push(n),function(){u(n)}},unsubscribe:u,getState:function(){return t}}}\n//# sourceMappingURL=unistore.es.js.map\n","import { State } from '@/types/store';\r\n\r\nexport const initialState: State = {\r\n stepState: {\r\n steps: [],\r\n currentStep: {\r\n type: 'CONFIRMATION',\r\n },\r\n stepIndex: 0,\r\n fieldsListData: null,\r\n showValidation: false,\r\n allStepsCompleted: false,\r\n },\r\n genericData: {\r\n deploymentId: null,\r\n implicitAuthEnabled: false,\r\n templateId: null,\r\n stepWithActivityOutput: null,\r\n isPreviewMode: false,\r\n brandingApp: null,\r\n name: '',\r\n authModalId: '',\r\n showAppAuthModal: false,\r\n isAnonymous: false,\r\n },\r\n stepMapping: {},\r\n stepDataMapping: {},\r\n parentChildMapping: {},\r\n conditionalFieldMapping: {},\r\n fieldListMapping: {},\r\n integrations: [],\r\n templates: [],\r\n showSetupModal: false,\r\n showSetupInline: false,\r\n fetchingIntegrations: false,\r\n fetchingTemplates: false,\r\n integrationIdToEdit: null,\r\n mappingInfo: null,\r\n};\r\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export const decodeJSON = (jsonString: string) => {\r\n try {\r\n return JSON.parse(jsonString);\r\n } catch (e) {\r\n return null;\r\n }\r\n};\r\n\r\nexport const encodeJSON = (json: never): string => {\r\n try {\r\n return JSON.stringify(json);\r\n } catch (e) {\r\n return '';\r\n }\r\n};\r\n","import { StoreType } from '@/types/store';\r\n\r\nexport const areParentValuesValid = (\r\n stepId: number,\r\n fieldConditions: {\r\n value: string;\r\n parentMachineName: string;\r\n parentFieldId: number;\r\n }[],\r\n stepDataMapping: StoreType['stepDataMapping'],\r\n) => {\r\n let valid = false;\r\n // check if all parent fields have values required to show the field\r\n for (let index = 0; index < fieldConditions.length; index += 1) {\r\n const { parentFieldId, value } = fieldConditions[index];\r\n const parentField =\r\n stepDataMapping[stepId] && stepDataMapping[stepId][parentFieldId];\r\n if (parentField && parentField.value === value) {\r\n valid = true;\r\n break;\r\n }\r\n }\r\n return valid;\r\n};\r\n","import { Store } from 'unistore';\r\n\r\nimport {\r\n BundleResponse,\r\n // IntegrationResponse,\r\n PreviewMetadata,\r\n TemplateField,\r\n TemplateStep,\r\n ConditionalFields,\r\n} from '@/interfaces';\r\nimport { StepStateStep, State } from '@/types/store';\r\nimport { Authorization } from '@/types';\r\nimport { initialState } from '@/store/initialState';\r\nimport { decodeJSON } from '@/utils/jsonEncodeDecode';\r\nimport { areParentValuesValid } from '@/utils/stepUtils';\r\n\r\nexport const actionFunctions = (storeSnapshot: Store<State>) => ({\r\n setStoreState(state: State, partialUpdate: Partial<State>): Partial<State> {\r\n return {\r\n ...state,\r\n ...partialUpdate,\r\n };\r\n },\r\n setBaseData(state: State, bundleResponse: BundleResponse): Partial<State> {\r\n return {\r\n ...state,\r\n integrations: bundleResponse.integrations.map((el) => ({\r\n ...el,\r\n loading: false,\r\n })),\r\n templates: bundleResponse.templates,\r\n fetchingIntegrations: false,\r\n fetchingTemplates: false,\r\n };\r\n },\r\n\r\n setSteps(state: State, templateSteps: TemplateStep[]): Partial<State> {\r\n const parsedSteps: StepStateStep[] = [];\r\n let itemIndex = -1;\r\n\r\n templateSteps.forEach((element) => {\r\n if (!element.hide_authorization) {\r\n itemIndex += 1;\r\n // step has auth required so split into two.\r\n parsedSteps.push({\r\n stepId: element.id,\r\n title: `Connect ${element.activity.app.name}`,\r\n iconUrl: element.activity.app.icon_url,\r\n isCompleted: false,\r\n isCurrentlyOpen: false,\r\n type: 'AUTH',\r\n requiredFields: [element.id], // auth if required will always be named like this\r\n invalidFields: {\r\n [element.id]: '',\r\n },\r\n isValid: false,\r\n itemIndex,\r\n });\r\n } else {\r\n // auth is implicit so we will select the first available auth\r\n }\r\n\r\n if (element.is_visible) {\r\n // check if we need to show the config step at all\r\n if (element.template_fields.length > 0) {\r\n // step has template fields with atleast one visible\r\n const hasVisibleTemplateFields =\r\n element.template_fields.filter((el) => el.is_visible).length > 0;\r\n\r\n // check which of these are required\r\n const requiredFields = element.template_fields\r\n .filter((el) => el.is_required && el.is_visible)\r\n .map((field) => field.id);\r\n\r\n // check if no default value is provided\r\n const invalidFields = element.template_fields\r\n .filter((el) => el.is_required && !el.default_value)\r\n .reduce((prev, field) => ({ ...prev, [field.id]: '' }), {});\r\n\r\n const isValid = !(Object.keys(invalidFields).length > 0);\r\n\r\n if (hasVisibleTemplateFields) {\r\n itemIndex += 1;\r\n parsedSteps.push({\r\n stepId: element.id,\r\n title: element.title,\r\n iconUrl: element.activity.app.icon_url,\r\n isCompleted: false,\r\n isCurrentlyOpen: false,\r\n type: 'CONFIGURATION',\r\n requiredFields,\r\n invalidFields,\r\n isValid,\r\n itemIndex,\r\n });\r\n }\r\n }\r\n }\r\n });\r\n\r\n return {\r\n ...state,\r\n stepState: {\r\n steps: parsedSteps,\r\n fieldsListData: null,\r\n currentStep: parsedSteps[0],\r\n stepIndex: 0,\r\n showValidation: false,\r\n allStepsCompleted: false,\r\n },\r\n };\r\n },\r\n\r\n setIntegrationLoadingState(\r\n state: State,\r\n data: {\r\n integrationId: number;\r\n isLoading: boolean;\r\n op: 'delete' | 'edit';\r\n nextVal?: boolean;\r\n },\r\n ): Partial<State> {\r\n const { integrationId, isLoading, op, nextVal } = data;\r\n const index = state.integrations.findIndex((el) => el.id === integrationId);\r\n if (op === 'delete') {\r\n return {\r\n ...state,\r\n integrations: state.integrations.filter(\r\n (el) => el.id !== integrationId,\r\n ),\r\n };\r\n }\r\n if (op === 'edit' && index > -1) {\r\n const int = {\r\n ...state.integrations[index],\r\n loading: isLoading,\r\n };\r\n if (nextVal !== null && nextVal !== undefined) {\r\n int.status = nextVal ? 'ACTIVE' : 'INACTIVE';\r\n }\r\n return {\r\n ...state,\r\n integrations: [\r\n ...state.integrations.slice(0, index),\r\n int,\r\n ...state.integrations.slice(index + 1),\r\n ],\r\n };\r\n }\r\n return {\r\n ...state,\r\n };\r\n },\r\n\r\n showStepValidationState(state: State): Partial<State> {\r\n const { stepState } = state;\r\n return {\r\n stepState: {\r\n ...stepState,\r\n showValidation: true,\r\n },\r\n };\r\n },\r\n\r\n hideStepValidationState(state: State): Partial<State> {\r\n const { stepState } = state;\r\n return {\r\n stepState: {\r\n ...stepState,\r\n showValidation: false,\r\n },\r\n };\r\n },\r\n\r\n gotoNextStep(state: State): Partial<State> {\r\n const { stepState } = state;\r\n if (stepState) {\r\n const newIndex = Number(stepState.stepIndex) + 1;\r\n const step = stepState.steps[Number(stepState.stepIndex) + 1];\r\n const updatedStep = {\r\n ...stepState.steps[state.stepState.stepIndex],\r\n isCompleted: true,\r\n };\r\n if (!step) {\r\n // last step reached\r\n return {\r\n stepState: {\r\n ...stepState,\r\n steps: [\r\n ...stepState.steps.slice(0, stepState.stepIndex),\r\n updatedStep,\r\n ...stepState.steps.slice(stepState.stepIndex + 1),\r\n ],\r\n currentStep: {\r\n type: 'CONFIRMATION',\r\n },\r\n stepIndex: newIndex,\r\n allStepsCompleted: true,\r\n showValidation: false,\r\n },\r\n };\r\n }\r\n\r\n return {\r\n stepState: {\r\n ...stepState,\r\n steps: [\r\n ...stepState.steps.slice(0, stepState.stepIndex),\r\n updatedStep,\r\n ...stepState.steps.slice(stepState.stepIndex + 1),\r\n ],\r\n currentStep: {\r\n ...step,\r\n },\r\n stepIndex: newIndex,\r\n showValidation: false,\r\n },\r\n };\r\n }\r\n return state;\r\n },\r\n\r\n gotoPreviousStep(state: State): Partial<State> {\r\n if (state.stepState) {\r\n const newIndex = Number(state.stepState.stepIndex) - 1;\r\n const step = state.stepState.steps[Number(state.stepState.stepIndex) - 1];\r\n\r\n return {\r\n stepState: {\r\n ...state.stepState,\r\n currentStep: step,\r\n stepIndex: newIndex,\r\n showValidation: !step.isValid,\r\n },\r\n };\r\n }\r\n return state;\r\n },\r\n\r\n gotoStepInPreview: (\r\n state: State,\r\n previewMetadata: PreviewMetadata,\r\n ): Partial<State> => {\r\n const { stepState } = state;\r\n const { stepId, type } = previewMetadata;\r\n\r\n if (stepId && type !== 'CONFIRMATION') {\r\n // go to a particular step\r\n const stepIndexToNavigateTo = stepState.steps.findIndex(\r\n (el) => el.stepId === stepId && el.type === type,\r\n );\r\n if (stepIndexToNavigateTo > -1)\r\n return {\r\n stepState: {\r\n ...state.stepState,\r\n currentStep: stepState.steps[stepIndexToNavigateTo],\r\n stepIndex: stepIndexToNavigateTo,\r\n allStepsCompleted: false,\r\n },\r\n };\r\n }\r\n\r\n if (!stepId && type === 'CONFIRMATION') {\r\n return {\r\n stepState: {\r\n ...stepState,\r\n currentStep: {\r\n type: 'CONFIRMATION',\r\n },\r\n stepIndex: stepState.steps.length,\r\n allStepsCompleted: true,\r\n },\r\n };\r\n }\r\n return state;\r\n },\r\n\r\n gotoStep: (state: State, stepIndex: number): Partial<State> => {\r\n const { stepState } = state;\r\n const { stepIndex: oldStepIndex } = stepState;\r\n if (stepState) {\r\n const currentStep = stepState.steps[oldStepIndex];\r\n const stepToNavigateTo = stepState.steps[stepIndex];\r\n\r\n if (state.genericData.isPreviewMode) {\r\n // we can go to any step in preview mode\r\n if (stepIndex === stepState.steps.length) {\r\n return {\r\n stepState: {\r\n ...stepState,\r\n currentStep: {\r\n type: 'CONFIRMATION',\r\n },\r\n stepIndex: stepState.steps.length,\r\n allStepsCompleted: true,\r\n },\r\n };\r\n }\r\n return {\r\n stepState: {\r\n ...state.stepState,\r\n currentStep: {\r\n ...stepToNavigateTo,\r\n },\r\n stepIndex,\r\n allStepsCompleted: false,\r\n },\r\n };\r\n }\r\n\r\n // navigate directly to confirmation page if all steps are completed\r\n if (\r\n stepState.allStepsCompleted &&\r\n stepIndex === stepState.steps.length &&\r\n stepState.currentStep?.type !== 'CONFIRMATION' &&\r\n stepState.currentStep?.isValid\r\n ) {\r\n return {\r\n stepState: {\r\n ...stepState,\r\n currentStep: {\r\n type: 'CONFIRMATION',\r\n },\r\n stepIndex: stepState.steps.length,\r\n allStepsCompleted: true,\r\n },\r\n };\r\n }\r\n\r\n // navigate to confirmation from final step\r\n if (\r\n currentStep &&\r\n currentStep.isValid &&\r\n oldStepIndex === stepState.steps.length - 1 &&\r\n stepIndex === stepState.steps.length\r\n ) {\r\n const updatedStep = {\r\n ...stepState.steps[oldStepIndex],\r\n isCompleted: true,\r\n };\r\n return {\r\n stepState: {\r\n ...stepState,\r\n steps: [\r\n ...stepState.steps.slice(0, oldStepIndex),\r\n updatedStep,\r\n ...stepState.steps.slice(oldStepIndex + 1),\r\n ],\r\n currentStep: {\r\n type: 'CONFIRMATION',\r\n },\r\n stepIndex,\r\n allStepsCompleted: true,\r\n },\r\n };\r\n }\r\n\r\n // navigate to a step if it is completed\r\n if (\r\n (stepToNavigateTo && stepToNavigateTo.isCompleted) ||\r\n (stepState.currentStep?.type !== 'CONFIRMATION' &&\r\n stepState.currentStep?.isCompleted &&\r\n stepToNavigateTo.type === 'CONFIRMATION')\r\n ) {\r\n return {\r\n stepState: {\r\n ...state.stepState,\r\n currentStep: {\r\n ...stepToNavigateTo,\r\n },\r\n stepIndex,\r\n showValidation: !stepToNavigateTo.isValid,\r\n },\r\n };\r\n }\r\n if (\r\n // clicking on next step with current completed\r\n stepState.currentStep?.type !== 'CONFIRMATION' &&\r\n stepState.currentStep?.isValid &&\r\n stepIndex === oldStepIndex + 1\r\n ) {\r\n const updatedStep = {\r\n ...stepState.steps[oldStepIndex],\r\n isCompleted: true,\r\n };\r\n return {\r\n stepState: {\r\n ...state.stepState,\r\n steps: [\r\n ...stepState.steps.slice(0, oldStepIndex),\r\n updatedStep,\r\n ...stepState.steps.slice(oldStepIndex + 1),\r\n ],\r\n currentStep: {\r\n ...stepToNavigateTo,\r\n },\r\n stepIndex,\r\n },\r\n };\r\n }\r\n }\r\n return state;\r\n },\r\n\r\n verifyStepValidity(state: State, stepId: number) {\r\n const { stepDataMapping, conditionalFieldMapping } = state;\r\n const element = stepDataMapping[stepId];\r\n\r\n const fieldsData = Object.keys(element).map((fieldId) => {\r\n const ele = element[Number(fieldId)];\r\n return ele;\r\n });\r\n\r\n const visibleFields = fieldsData.filter((el) => {\r\n // filter out hidden conditional fields\r\n const fieldConditions = conditionalFieldMapping[stepId][el.machineName];\r\n if (fieldConditions) {\r\n return areParentValuesValid(stepId, fieldConditions, stepDataMapping);\r\n }\r\n return true;\r\n });\r\n\r\n const invalid = visibleFields.filter(\r\n (el) =>\r\n (el.isRequired && !el.value && !el.objectValue) || !el.passesRegexTest,\r\n );\r\n\r\n const isValid = !(invalid.length > 0);\r\n return {\r\n stepState: {\r\n ...state.stepState,\r\n currentStep: {\r\n ...state.stepState.currentStep,\r\n isValid,\r\n },\r\n },\r\n };\r\n },\r\n\r\n getStepState() {\r\n return storeSnapshot.getState().stepState;\r\n },\r\n\r\n setGenericData(\r\n state: State,\r\n genericData: Partial<{\r\n templateId: number;\r\n deploymentId: number;\r\n isPreviewMode: boolean;\r\n }>,\r\n ): Partial<State> {\r\n return {\r\n genericData: {\r\n ...state.genericData,\r\n ...genericData,\r\n },\r\n };\r\n },\r\n\r\n setStepMapping(\r\n state: State,\r\n steps: TemplateStep[],\r\n integrationId?: number,\r\n ): Partial<State> {\r\n const integrationIdToEdit = state.integrationIdToEdit || integrationId;\r\n\r\n const activityOutputStepData = steps[0];\r\n let stepWithActivityOutput = null;\r\n let fieldListMappingData: {\r\n [machineName: string]: TemplateField & { stepId: number };\r\n } = {};\r\n if (\r\n activityOutputStepData &&\r\n activityOutputStepData.activity &&\r\n (activityOutputStepData.activity.type === 'TRIGGER' ||\r\n activityOutputStepData.activity.type === 'QUERY' ||\r\n activityOutputStepData.activity.type === 'ADAPTER')\r\n ) {\r\n stepWithActivityOutput = activityOutputStepData;\r\n }\r\n\r\n let standardFieldsInsideMapping: {\r\n [k: string]: string | Record<string, string>;\r\n } = {};\r\n\r\n let stepIdWithFieldMapping = '';\r\n\r\n fieldListMappingData = steps\r\n .map((step) =>\r\n step.template_fields.reduce((prev, next) => {\r\n if (next.activity_field?.type === 'FIELD_LIST') {\r\n return {\r\n ...prev,\r\n [`{steps.${step.machine_name}.field_list}`]: {\r\n ...next,\r\n stepId: step.id,\r\n },\r\n };\r\n }\r\n return prev;\r\n }, {}),\r\n )\r\n .filter((el) => Object.keys(el).length > 0)\r\n .reduce((prev, next) => ({ ...prev, ...next }), {});\r\n\r\n const stepMapping: any = steps.reduce((prev, step) => {\r\n let selectedAuthId = null;\r\n let shouldAutoVerifyAuth = false;\r\n if (step.hide_authorization || state.genericData.isPreviewMode) {\r\n shouldAutoVerifyAuth = true;\r\n selectedAuthId = step.authorization_type.authorizations[0]?.id ?? null;\r\n } else if (state.stepMapping[step.id]) {\r\n selectedAuthId = state.stepMapping[step.id].selectedAuthId;\r\n } else if (integrationIdToEdit && step.step_authorization) {\r\n shouldAutoVerifyAuth = true;\r\n selectedAuthId = step.step_authorization; // set selected auth in edit mode\r\n }\r\n return {\r\n ...prev,\r\n [step.id]: {\r\n step,\r\n integrationStepId: step.step_instance,\r\n authorizations:\r\n step.authorization_type.authorizations?.map((el) => ({\r\n authorizationId: el.id,\r\n userIdentity: el.user_identity,\r\n authType: el.authorization_type,\r\n disableLink: el.disable_link,\r\n isErrored: false,\r\n isVerifying: false,\r\n isVerified: false,\r\n })) ?? [],\r\n isAuthVerified: shouldAutoVerifyAuth,\r\n selectedAuthId,\r\n invalidFields: {},\r\n isValid: !!integrationIdToEdit,\r\n isCompleted: !!integrationIdToEdit,\r\n },\r\n };\r\n }, {});\r\n\r\n const parsedStepsCopy = state.stepState.steps.map((el) => ({\r\n ...el,\r\n invalidFields: {},\r\n isValid: !!stepMapping[el.stepId].selectedAuthId,\r\n isCompleted: !!stepMapping[el.stepId].selectedAuthId,\r\n }));\r\n\r\n const stepDataMapping: Record<number, any> = steps.reduce(\r\n (prev, step) => ({\r\n ...prev,\r\n [step.id]: {\r\n ...state.stepDataMapping[step.id],\r\n ...step.template_fields.reduce((acc, curr) => {\r\n let value = null;\r\n let objectValue = null;\r\n const isEditMode = !!integrationIdToEdit;\r\n const isFieldMapping =\r\n curr.activity_field?.type === 'FIELD_MAPPING';\r\n const isDynamicField = curr.activity_field?.type === 'DYNAMIC';\r\n const isStepVisible = !!step.is_visible;\r\n const isFieldVisible = !!curr.is_visible;\r\n const userData =\r\n (curr.app_user_data &&\r\n curr.app_user_data.length > 0 &&\r\n curr.app_user_data[0]) ||\r\n null;\r\n\r\n if (isEditMode && !isFieldMapping && userData) {\r\n // older mapping, so check dynamic field type\r\n if (isDynamicField) {\r\n // parse custom fields and save in object value\r\n objectValue = JSON.parse(`${userData.value || '{}'}`);\r\n } else {\r\n value = userData.value;\r\n }\r\n } else if (!isStepVisible || !isFieldVisible) {\r\n value = curr.default_value;\r\n } else if (isFieldMapping && userData && userData.value) {\r\n // value = '';\r\n // transform that field mapping data into correct payload\r\n const mappingData: Record<\r\n string,\r\n string | Record<string, string>\r\n > = JSON.parse(`${userData.value}`);\r\n\r\n stepIdWithFieldMapping = `${step.id}`;\r\n\r\n standardFieldsInsideMapping = Object.fromEntries(\r\n Object.entries(mappingData).filter(\r\n ([key]) => typeof mappingData[key] === 'string',\r\n ),\r\n );\r\n\r\n const mapping = Object.fromEntries(\r\n Object.entries(mappingData).filter(\r\n ([key]) => typeof mappingData[key] !== 'string',\r\n ),\r\n );\r\n\r\n objectValue = mapping[Object.keys(mapping)[0]];\r\n } else {\r\n value = '';\r\n }\r\n\r\n return {\r\n ...acc,\r\n [curr.id]: {\r\n fieldId: curr.id,\r\n value,\r\n objectValue,\r\n machineName: curr.activity_field?.machine_name,\r\n isRequired: curr.is_required,\r\n isVisible: curr.is_visible,\r\n isDynamic:\r\n curr.activity_field?.type === 'DYNAMIC' ||\r\n curr.activity_field?.type === 'FIELD_MAPPING',\r\n integrationFieldId:\r\n curr.app_user_data && curr.app_user_data.length > 0\r\n ? curr.app_user_data[0].id\r\n : null,\r\n isAddedInMapping: !!curr.added_in_mapping,\r\n regex: curr.activity_field?.regex,\r\n regexErrorMessage: curr.activity_field?.regex_error_message,\r\n passesRegexTest: true, // everything passes regex test by default\r\n },\r\n };\r\n }, {}),\r\n },\r\n }),\r\n {},\r\n );\r\n\r\n // set standard field values from mapping data\r\n if (\r\n Object.keys(standardFieldsInsideMapping).length > 0 &&\r\n stepIdWithFieldMapping\r\n ) {\r\n Object.keys(stepDataMapping).forEach((stepId) => {\r\n const stepObj = stepDataMapping[Number(stepId)];\r\n Object.keys(stepObj).forEach((fieldId) => {\r\n const field = stepObj[Number(fieldId)];\r\n if (standardFieldsInsideMapping[field.machineName]) {\r\n field.value = standardFieldsInsideMapping[field.machineName];\r\n }\r\n });\r\n });\r\n }\r\n\r\n return {\r\n stepState: integrationIdToEdit\r\n ? {\r\n ...state.stepState,\r\n steps: parsedStepsCopy,\r\n currentStep: parsedStepsCopy[0],\r\n showValidation: !integrationIdToEdit,\r\n allStepsCompleted: !!integrationIdToEdit,\r\n }\r\n : state.stepState,\r\n stepMapping: {\r\n ...state.stepMapping,\r\n ...stepMapping,\r\n },\r\n stepDataMapping: {\r\n ...state.stepDataMapping,\r\n ...stepDataMapping,\r\n },\r\n fieldListMapping: fieldListMappingData,\r\n genericData: {\r\n ...state.genericData,\r\n stepWithActivityOutput,\r\n },\r\n };\r\n },\r\n\r\n setActivityOutputData(\r\n state: State,\r\n data: {\r\n activityOutputData: {\r\n value: string;\r\n text: string;\r\n }[];\r\n },\r\n ): Partial<State> {\r\n return {\r\n ...state,\r\n activityOutputData: data.activityOutputData,\r\n };\r\n },\r\n\r\n setDynamicFieldData(\r\n state: State,\r\n data: {\r\n dynamicFieldData: {\r\n [fieldId: string]: (string | Record<string, string>)[];\r\n };\r\n },\r\n ): Partial<State> {\r\n return {\r\n ...state,\r\n dynamicFieldData: Object.keys(data.dynamicFieldData).reduce(\r\n (prev, next) => ({\r\n ...prev,\r\n [`{${next}}`]: data.dynamicFieldData[next],\r\n }),\r\n {},\r\n ),\r\n };\r\n },\r\n\r\n setParentChildMapping(state: State, steps: TemplateStep[]): Partial<State> {\r\n const parentChildMapping = steps.reduce(\r\n (prev, step) => ({\r\n ...prev,\r\n [step.id]: {\r\n ...state.parentChildMapping[step.id],\r\n ...step.template_fields.reduce((acc, curr) => {\r\n if (curr.activity_field)\r\n return {\r\n ...acc,\r\n [curr.activity_field?.machine_name]: {\r\n fieldId: curr.id,\r\n childFields: curr.activity_field?.child_fields\r\n ? JSON.parse(curr.activity_field?.child_fields ?? '[]')\r\n : null,\r\n parentFields: curr.activity_field?.parent_fields\r\n ? JSON.parse(curr.activity_field?.parent_fields ?? '[]')\r\n : null,\r\n },\r\n };\r\n return acc;\r\n }, {}),\r\n },\r\n }),\r\n {},\r\n );\r\n\r\n return {\r\n parentChildMapping: {\r\n ...state.parentChildMapping,\r\n ...parentChildMapping,\r\n },\r\n };\r\n },\r\n\r\n setConditionalFieldMapping(\r\n state: State,\r\n steps: TemplateStep[],\r\n ): Partial<State> {\r\n const conditionalFieldMapping = steps.reduce(\r\n (prev, step) => ({\r\n ...prev,\r\n [step.id]: {\r\n ...state.conditionalFieldMapping[step.id],\r\n ...step.template_fields.reduce((acc: { [key: string]: [] }, curr) => {\r\n if (\r\n curr.activity_field &&\r\n !!curr.activity_field.conditional_fields\r\n ) {\r\n const parentMachineName = curr.activity_field?.machine_name;\r\n const parentFieldId = curr.id;\r\n const conditions = (decodeJSON(\r\n curr?.activity_field?.conditional_fields,\r\n ) || []) as ConditionalFields[];\r\n return {\r\n ...acc,\r\n ...conditions.reduce((accCondition, currCondtion) => {\r\n const { value } = currCondtion;\r\n const childFields = (decodeJSON(currCondtion.field_array) ||\r\n []) as string[];\r\n return {\r\n ...accCondition,\r\n ...childFields.reduce(\r\n (accChild, currChild) => ({\r\n ...accChild,\r\n [currChild]: [\r\n ...(acc[currChild] || []),\r\n { value, parentMachineName, parentFieldId },\r\n ],\r\n }),\r\n {},\r\n ),\r\n };\r\n }, {}),\r\n };\r\n }\r\n return acc;\r\n }, {}),\r\n },\r\n }),\r\n {},\r\n );\r\n\r\n return {\r\n conditionalFieldMapping: {\r\n ...state.conditionalFieldMapping,\r\n ...conditionalFieldMapping,\r\n },\r\n };\r\n },\r\n\r\n addAuthorization(\r\n state: State,\r\n params: {\r\n stepId: number;\r\n authData: Authorization;\r\n },\r\n ): Partial<State> {\r\n const { stepId, authData } = params;\r\n return {\r\n stepMapping: {\r\n ...state.stepMapping,\r\n [stepId]: {\r\n ...state.stepMapping[stepId],\r\n authorizations: [\r\n ...state.stepMapping[stepId].authorizations,\r\n authData,\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n\r\n removeAuthorization(\r\n state: State,\r\n params: {\r\n stepId: number;\r\n authId: number;\r\n },\r\n ): Partial<State> {\r\n const { stepId, authId } = params;\r\n\r\n const updatedArr = state.stepMapping[stepId].authorizations.filter(\r\n (el) => el.authorizationId !== authId,\r\n );\r\n\r\n const step = state.stepState.currentStep as StepStateStep;\r\n return {\r\n stepState: {\r\n ...state.stepState,\r\n currentStep: {\r\n ...step,\r\n isValid: updatedArr.length > 0 ? step.isValid : false,\r\n isCompleted: updatedArr.length > 0 ? step.isCompleted : false,\r\n },\r\n },\r\n stepMapping: {\r\n ...state.stepMapping,\r\n [stepId]: {\r\n ...state.stepMapping[stepId],\r\n authorizations: updatedArr,\r\n },\r\n },\r\n };\r\n },\r\n\r\n toggleVerifyAuthorizationFlag(\r\n state: State,\r\n params: {\r\n stepId: number;\r\n authId: number;\r\n isVerifying: boolean;\r\n },\r\n ): Partial<State> {\r\n const { stepId, authId, isVerifying } = params;\r\n const authObjIndex = state.stepMapping[stepId].authorizations.findIndex(\r\n (el) => el.authorizationId === authId,\r\n );\r\n return {\r\n stepMapping: {\r\n ...state.stepMapping,\r\n [stepId]: {\r\n ...state.stepMapping[stepId],\r\n authorizations: [\r\n ...state.stepMapping[stepId].authorizations.slice(0, authObjIndex),\r\n {\r\n ...state.stepMapping[stepId].authorizations[authObjIndex],\r\n isVerifying,\r\n },\r\n ...state.stepMapping[stepId].authorizations.slice(authObjIndex + 1),\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n\r\n toggleDeleteAuthorizationFlag(\r\n state: State,\r\n params: {\r\n stepId: number;\r\n authId: number;\r\n isDeleting: boolean;\r\n error: string;\r\n },\r\n ): Partial<State> {\r\n const { stepId, authId, isDeleting, error } = params;\r\n const authObjIndex = state.stepMapping[stepId].authorizations.findIndex(\r\n (el) => el.authorizationId === authId,\r\n );\r\n return {\r\n stepMapping: {\r\n ...state.stepMapping,\r\n [stepId]: {\r\n ...state.stepMapping[stepId],\r\n authorizations: [\r\n ...state.stepMapping[stepId].authorizations.slice(0, authObjIndex),\r\n {\r\n ...state.stepMapping[stepId].authorizations[authObjIndex],\r\n isDeleting,\r\n error,\r\n },\r\n ...state.stepMapping[stepId].authorizations.slice(authObjIndex + 1),\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n\r\n setStepAuthId(\r\n state: State,\r\n params: { stepId: number; authId: number },\r\n ): Partial<State> {\r\n const { stepId, authId } = params;\r\n return {\r\n stepMapping: {\r\n ...state.stepMapping,\r\n [stepId]: {\r\n ...state.stepMapping[stepId],\r\n selectedAuthId: authId,\r\n },\r\n },\r\n };\r\n },\r\n\r\n setStepAuthorization(\r\n state: State,\r\n stepId: number,\r\n selectedAuthId: number | null,\r\n isVerified: boolean,\r\n fieldsToReset: number[],\r\n override: boolean,\r\n ): Partial<State> {\r\n const step = state.stepState.steps[state.stepState.stepIndex];\r\n const stepFromMapping = state.stepMapping[stepId];\r\n const latestStepState = storeSnapshot.getState().stepState;\r\n if (\r\n step.type !== 'CONFIRMATION' &&\r\n latestStepState.currentStep?.type !== 'CONFIRMATION' &&\r\n latestStepState.currentStep?.stepId === stepId\r\n ) {\r\n const { invalidFields } = step;\r\n if (isVerified) delete invalidFields[stepId];\r\n const updatedStep = {\r\n ...state.stepState.steps[state.stepState.stepIndex],\r\n invalidFields,\r\n isValid: Object.keys(invalidFields).length < 1,\r\n isCompleted: stepFromMapping.selectedAuthId !== null || isVerified,\r\n };\r\n const authObjIndex = state.stepMapping[stepId].authorizations.findIndex(\r\n (el) => el.authorizationId === selectedAuthId,\r\n );\r\n\r\n // get all steps, update selected auth ID for all steps where auth type matches\r\n let stepMappingCopy = {};\r\n\r\n Object.keys(state.stepMapping).forEach((stepID) => {\r\n const currentStep = state.stepMapping[stepID];\r\n const authStep = state.stepMapping[stepId];\r\n stepMappingCopy = {\r\n ...stepMappingCopy,\r\n [stepID]: {\r\n ...currentStep,\r\n selectedAuthId:\r\n (isVerified && stepId === Number(stepID)) ||\r\n currentStep.step.authorization_type.id ===\r\n authStep.step.authorization_type.id // if the step we are currently on has the same auth type, update the ID\r\n ? selectedAuthId\r\n : currentStep.selectedAuthId,\r\n authorizations:\r\n Number(stepID) === stepId\r\n ? [\r\n ...currentStep.authorizations.slice(0, authObjIndex),\r\n {\r\n ...currentStep.authorizations[authObjIndex],\r\n isVerified,\r\n isVerifying: false,\r\n didFetchStatus: true,\r\n error: '',\r\n },\r\n ...currentStep.authorizations.slice(authObjIndex + 1),\r\n ]\r\n : currentStep.authorizations,\r\n },\r\n };\r\n });\r\n\r\n return {\r\n stepState: {\r\n ...state.stepState,\r\n steps: [\r\n ...state.stepState.steps.slice(0, state.stepState.stepIndex),\r\n updatedStep,\r\n ...state.stepState.steps.slice(state.stepState.stepIndex + 1),\r\n ],\r\n currentStep: updatedStep,\r\n showValidation: !isVerified && !stepFromMapping.selectedAuthId,\r\n },\r\n stepMapping: stepMappingCopy,\r\n // // reset all values for the dependent fields of auth\r\n stepDataMapping: override\r\n ? state.stepDataMapping\r\n : {\r\n ...state.stepDataMapping,\r\n [stepId]: {\r\n ...state.stepDataMapping[stepId],\r\n ...fieldsToReset.reduce(\r\n (acc, curr) => ({\r\n ...acc,\r\n [curr]: {\r\n ...state.stepDataMapping[stepId][curr],\r\n value: '',\r\n },\r\n }),\r\n {},\r\n ),\r\n },\r\n },\r\n };\r\n }\r\n return state;\r\n },\r\n\r\n resetCustomMappingData(state: State, stepId: number): Partial<State> {\r\n const step = state.stepMapping[stepId];\r\n const dynamicFieldId = step.step.template_fields.filter(\r\n (el) => el.activity_field?.type === 'DYNAMIC',\r\n )[0]?.id;\r\n\r\n if (dynamicFieldId) {\r\n const stepData = state.stepDataMapping[stepId][dynamicFieldId];\r\n if (stepData) stepData.objectValue = {};\r\n return {\r\n stepDataMapping: {\r\n ...state.stepDataMapping,\r\n [stepId]: {\r\n ...state.stepDataMapping[stepId],\r\n [dynamicFieldId]: stepData,\r\n },\r\n },\r\n };\r\n }\r\n return state;\r\n },\r\n\r\n setStepFieldData(\r\n state: State,\r\n data: {\r\n stepId: number;\r\n fieldId: number;\r\n value: string;\r\n isRequired: boolean;\r\n passesRegexTest?: boolean;\r\n },\r\n ): Partial<State> {\r\n const { stepId, fieldId, value, passesRegexTest = true } = data;\r\n const step = state.stepState.steps[state.stepState.stepIndex];\r\n if (step.type !== 'CONFIRMATION') {\r\n // const { invalidFields } = step;\r\n\r\n // if (value) {\r\n // // since this field was filled, it is no longer invalid\r\n // delete invalidFields[fieldId];\r\n // } else if (isRequired) {\r\n // invalidFields[fieldId] = null;\r\n // }\r\n\r\n // const updatedStep = {\r\n // ...state.stepState.steps[state.stepState.stepIndex],\r\n // // invalidFields,\r\n // // isValid: Object.keys(invalidFields).length < 1,\r\n // };\r\n\r\n return {\r\n stepState: {\r\n ...state.stepState,\r\n // steps: [\r\n // ...state.stepState.steps.slice(0, state.stepState.stepIndex),\r\n // updatedStep,\r\n // ...state.stepState.steps.slice(state.stepState.stepIndex + 1),\r\n // ],\r\n // currentStep: updatedStep,\r\n allStepsCompleted: false,\r\n },\r\n stepDataMapping: {\r\n ...state.stepDataMapping,\r\n [stepId]: {\r\n ...state.stepDataMapping[stepId],\r\n [fieldId]: {\r\n ...state.stepDataMapping[stepId][fieldId],\r\n value,\r\n passesRegexTest,\r\n },\r\n },\r\n },\r\n };\r\n }\r\n return state;\r\n },\r\n\r\n setStepMappingData(\r\n state: State,\r\n data: {\r\n stepId: number;\r\n fieldId: number;\r\n id: string;\r\n value: string | null;\r\n },\r\n ): Partial<State> {\r\n const val = state.stepDataMapping[data.stepId][data.fieldId]?.objectValue;\r\n let newVal;\r\n if (data.value) {\r\n newVal = {\r\n ...(state.stepDataMapping[data.stepId][data.fieldId]?.objectValue ??\r\n {}),\r\n ...{ [data.id]: data.value },\r\n };\r\n } else if (val) {\r\n delete val[data.id];\r\n newVal = val;\r\n if (Object.keys(newVal).length === 0) newVal = null;\r\n }\r\n if (newVal)\r\n return {\r\n stepDataMapping: {\r\n ...state.stepDataMapping,\r\n [data.stepId]: {\r\n ...state.stepDataMapping[data.stepId],\r\n [data.fieldId]: {\r\n ...state.stepDataMapping[data.stepId][data.fieldId],\r\n objectValue: newVal,\r\n },\r\n },\r\n },\r\n };\r\n return state;\r\n },\r\n resetTemplateFields(state: State): State {\r\n return {\r\n ...state,\r\n stepMapping: initialState.stepMapping,\r\n stepDataMapping: initialState.stepDataMapping,\r\n stepState: initialState.stepState,\r\n showSetupModal: initialState.showSetupModal,\r\n showSetupInline: initialState.showSetupInline,\r\n parentChildMapping: initialState.parentChildMapping,\r\n integrationIdToEdit: initialState.integrationIdToEdit,\r\n genericData: {\r\n ...state.genericData,\r\n brandingApp: initialState.genericData.brandingApp,\r\n templateId: initialState.genericData.templateId,\r\n },\r\n };\r\n },\r\n reset(): State {\r\n return initialState;\r\n },\r\n});\r\n","import createStore, { Store } from 'unistore';\r\n// import devtools from 'unistore/devtools';\r\n\r\nimport { initialState } from '@/store/initialState';\r\n\r\nimport { State } from '../types/store';\r\nimport { actionFunctions } from './actionFunctions';\r\n\r\nconst createSDKStore = (): Store<State> => {\r\n const createStoreWrapper = () => createStore<State>(initialState);\r\n const store = createStoreWrapper();\r\n // const store = devtools(createStoreWrapper());\r\n return store;\r\n};\r\n\r\nexport { createSDKStore, actionFunctions, initialState };\r\n","export default () => ![typeof window, typeof document].includes('undefined');\r\n","import isBrowser from './isBrowser';\r\n\r\n/**\r\n *\r\n * @param args\r\n */\r\nexport const getUrlParam = (param: string) => {\r\n if (!isBrowser) return null;\r\n const params = new URLSearchParams(window.location.search);\r\n return params.get(param);\r\n};\r\n","import{options as n}from\"preact\";var t,u,r,i=[],o=n.__r,f=n.diffed,c=n.__c,e=n.unmount;function a(t){n.__h&&n.__h(u);var r=u.__H||(u.__H={t:[],u:[]});return t>=r.t.length&&r.t.push({}),r.t[t]}function v(n){return m(E,n)}function m(n,r,i){var o=a(t++);return o.__c||(o.__c=u,o.i=[i?i(r):E(void 0,r),function(t){var u=n(o.i[0],t);o.i[0]!==u&&(o.i[0]=u,o.__c.setState({}))}]),o.i}function p(n,r){var i=a(t++);x(i.o,r)&&(i.i=n,i.o=r,u.__H.u.push(i))}function l(n,r){var i=a(t++);x(i.o,r)&&(i.i=n,i.o=r,u.__h.push(i))}function d(n){return y(function(){return{current:n}},[])}function s(n,t,u){l(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function y(n,u){var r=a(t++);return x(r.o,u)?(r.o=u,r.v=n,r.i=n()):r.i}function T(n,t){return y(function(){return n},t)}function w(n){var r=u.context[n.__c];if(!r)return n.__;var i=a(t++);return null==i.i&&(i.i=!0,r.sub(u)),r.props.value}function A(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function F(n){var r=a(t++),i=v();return r.i=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.i&&r.i(n),i[1](n)}),[i[0],function(){i[1](void 0)}]}function _(){i.some(function(n){n.__P&&(n.__H.u.forEach(g),n.__H.u.forEach(q),n.__H.u=[])}),i=[]}function g(n){n.m&&n.m()}function q(n){var t=n.i();\"function\"==typeof t&&(n.m=t)}function x(n,t){return!n||t.some(function(t,u){return t!==n[u]})}function E(n,t){return\"function\"==typeof t?t(n):t}n.__r=function(n){o&&o(n),t=0,(u=n.__c).__H&&(u.__H.u.forEach(g),u.__H.u.forEach(q),u.__H.u=[])},n.diffed=function(t){f&&f(t);var u=t.__c;if(u){var o=u.__H;o&&o.u.length&&(1!==i.push(u)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);\"undefined\"!=typeof window&&(t=requestAnimationFrame(u))})(_))}},n.__c=function(n,t){t.some(function(n){n.__h.forEach(g),n.__h=n.__h.filter(function(n){return!n.i||q(n)})}),c&&c(n,t)},n.unmount=function(n){e&&e(n);var t=n.__c;if(t){var u=t.__H;u&&u.t.forEach(function(n){return n.m&&n.m()})}};export{v as useState,m as useReducer,p as useEffect,l as useLayoutEffect,d as useRef,s as useImperativeHandle,y as useMemo,T as useCallback,w as useContext,A as useDebugValue,F as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","/*\r\nWHAT: SublimeText-like Fuzzy Search\r\n\r\nUSAGE:\r\n fuzzysort.single('fs', 'Fuzzy Search') // {score: -16}\r\n fuzzysort.single('test', 'test') // {score: 0}\r\n fuzzysort.single('doesnt exist', 'target') // null\r\n\r\n fuzzysort.go('mr', ['Monitor.cpp', 'MeshRenderer.cpp'])\r\n // [{score: -18, target: \"MeshRenderer.cpp\"}, {score: -6009, target: \"Monitor.cpp\"}]\r\n\r\n fuzzysort.highlight(fuzzysort.single('fs', 'Fuzzy Search'), '<b>', '</b>')\r\n // <b>F</b>uzzy <b>S</b>earch\r\n*/\r\n\r\n// UMD (Universal Module Definition) for fuzzysort\r\n;(function(root, UMD) {\r\n if(typeof define === 'function' && define.amd) define([], UMD)\r\n else if(typeof module === 'object' && module.exports) module.exports = UMD()\r\n else root.fuzzysort = UMD()\r\n})(this, function UMD() { function fuzzysortNew(instanceOptions) {\r\n\r\n var fuzzysort = {\r\n\r\n single: function(search, target, options) {\r\n if(!search) return null\r\n if(!isObj(search)) search = fuzzysort.getPreparedSearch(search)\r\n\r\n if(!target) return null\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n var allowTypo = options && options.allowTypo!==undefined ? options.allowTypo\r\n : instanceOptions && instanceOptions.allowTypo!==undefined ? instanceOptions.allowTypo\r\n : true\r\n var algorithm = allowTypo ? fuzzysort.algorithm : fuzzysort.algorithmNoTypo\r\n return algorithm(search, target, search[0])\r\n // var threshold = options && options.threshold || instanceOptions && instanceOptions.threshold || -9007199254740991\r\n // var result = algorithm(search, target, search[0])\r\n // if(result === null) return null\r\n // if(result.score < threshold) return null\r\n // return result\r\n },\r\n\r\n go: function(search, targets, options) {\r\n if(!search) return noResults\r\n search = fuzzysort.prepareSearch(search)\r\n var searchLowerCode = search[0]\r\n\r\n var threshold = options && options.threshold || instanceOptions && instanceOptions.threshold || -9007199254740991\r\n var limit = options && options.limit || instanceOptions && instanceOptions.limit || 9007199254740991\r\n var allowTypo = options && options.allowTypo!==undefined ? options.allowTypo\r\n : instanceOptions && instanceOptions.allowTypo!==undefined ? instanceOptions.allowTypo\r\n : true\r\n var algorithm = allowTypo ? fuzzysort.algorithm : fuzzysort.algorithmNoTypo\r\n var resultsLen = 0; var limitedCount = 0\r\n var targetsLen = targets.length\r\n\r\n // This code is copy/pasted 3 times for performance reasons [options.keys, options.key, no keys]\r\n\r\n // options.keys\r\n if(options && options.keys) {\r\n var scoreFn = options.scoreFn || defaultScoreFn\r\n var keys = options.keys\r\n var keysLen = keys.length\r\n for(var i = targetsLen - 1; i >= 0; --i) { var obj = targets[i]\r\n var objResults = new Array(keysLen)\r\n for (var keyI = keysLen - 1; keyI >= 0; --keyI) {\r\n var key = keys[keyI]\r\n var target = getValue(obj, key)\r\n if(!target) { objResults[keyI] = null; continue }\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n objResults[keyI] = algorithm(search, target, searchLowerCode)\r\n }\r\n objResults.obj = obj // before scoreFn so scoreFn can use it\r\n var score = scoreFn(objResults)\r\n if(score === null) continue\r\n if(score < threshold) continue\r\n objResults.score = score\r\n if(resultsLen < limit) { q.add(objResults); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(score > q.peek().score) q.replaceTop(objResults)\r\n }\r\n }\r\n\r\n // options.key\r\n } else if(options && options.key) {\r\n var key = options.key\r\n for(var i = targetsLen - 1; i >= 0; --i) { var obj = targets[i]\r\n var target = getValue(obj, key)\r\n if(!target) continue\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n var result = algorithm(search, target, searchLowerCode)\r\n if(result === null) continue\r\n if(result.score < threshold) continue\r\n\r\n // have to clone result so duplicate targets from different obj can each reference the correct obj\r\n result = {target:result.target, _targetLowerCodes:null, _nextBeginningIndexes:null, score:result.score, indexes:result.indexes, obj:obj} // hidden\r\n\r\n if(resultsLen < limit) { q.add(result); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(result.score > q.peek().score) q.replaceTop(result)\r\n }\r\n }\r\n\r\n // no keys\r\n } else {\r\n for(var i = targetsLen - 1; i >= 0; --i) { var target = targets[i]\r\n if(!target) continue\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n var result = algorithm(search, target, searchLowerCode)\r\n if(result === null) continue\r\n if(result.score < threshold) continue\r\n if(resultsLen < limit) { q.add(result); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(result.score > q.peek().score) q.replaceTop(result)\r\n }\r\n }\r\n }\r\n\r\n if(resultsLen === 0) return noResults\r\n var results = new Array(resultsLen)\r\n for(var i = resultsLen - 1; i >= 0; --i) results[i] = q.poll()\r\n results.total = resultsLen + limitedCount\r\n return results\r\n },\r\n\r\n goAsync: function(search, targets, options) {\r\n var canceled = false\r\n var p = new Promise(function(resolve, reject) {\r\n if(!search) return resolve(noResults)\r\n search = fuzzysort.prepareSearch(search)\r\n var searchLowerCode = search[0]\r\n\r\n var q = fastpriorityqueue()\r\n var iCurrent = targets.length - 1\r\n var threshold = options && options.threshold || instanceOptions && instanceOptions.threshold || -9007199254740991\r\n var limit = options && options.limit || instanceOptions && instanceOptions.limit || 9007199254740991\r\n var allowTypo = options && options.allowTypo!==undefined ? options.allowTypo\r\n : instanceOptions && instanceOptions.allowTypo!==undefined ? instanceOptions.allowTypo\r\n : true\r\n var algorithm = allowTypo ? fuzzysort.algorithm : fuzzysort.algorithmNoTypo\r\n var resultsLen = 0; var limitedCount = 0\r\n function step() {\r\n if(canceled) return reject('canceled')\r\n\r\n var startMs = Date.now()\r\n\r\n // This code is copy/pasted 3 times for performance reasons [options.keys, options.key, no keys]\r\n\r\n // options.keys\r\n if(options && options.keys) {\r\n var scoreFn = options.scoreFn || defaultScoreFn\r\n var keys = options.keys\r\n var keysLen = keys.length\r\n for(; iCurrent >= 0; --iCurrent) { var obj = targets[iCurrent]\r\n var objResults = new Array(keysLen)\r\n for (var keyI = keysLen - 1; keyI >= 0; --keyI) {\r\n var key = keys[keyI]\r\n var target = getValue(obj, key)\r\n if(!target) { objResults[keyI] = null; continue }\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n objResults[keyI] = algorithm(search, target, searchLowerCode)\r\n }\r\n objResults.obj = obj // before scoreFn so scoreFn can use it\r\n var score = scoreFn(objResults)\r\n if(score === null) continue\r\n if(score < threshold) continue\r\n objResults.score = score\r\n if(resultsLen < limit) { q.add(objResults); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(score > q.peek().score) q.replaceTop(objResults)\r\n }\r\n\r\n if(iCurrent%1000/*itemsPerCheck*/ === 0) {\r\n if(Date.now() - startMs >= 10/*asyncInterval*/) {\r\n isNode?setImmediate(step):setTimeout(step)\r\n return\r\n }\r\n }\r\n }\r\n\r\n // options.key\r\n } else if(options && options.key) {\r\n var key = options.key\r\n for(; iCurrent >= 0; --iCurrent) { var obj = targets[iCurrent]\r\n var target = getValue(obj, key)\r\n if(!target) continue\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n var result = algorithm(search, target, searchLowerCode)\r\n if(result === null) continue\r\n if(result.score < threshold) continue\r\n\r\n // have to clone result so duplicate targets from different obj can each reference the correct obj\r\n result = {target:result.target, _targetLowerCodes:null, _nextBeginningIndexes:null, score:result.score, indexes:result.indexes, obj:obj} // hidden\r\n\r\n if(resultsLen < limit) { q.add(result); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(result.score > q.peek().score) q.replaceTop(result)\r\n }\r\n\r\n if(iCurrent%1000/*itemsPerCheck*/ === 0) {\r\n if(Date.now() - startMs >= 10/*asyncInterval*/) {\r\n isNode?setImmediate(step):setTimeout(step)\r\n return\r\n }\r\n }\r\n }\r\n\r\n // no keys\r\n } else {\r\n for(; iCurrent >= 0; --iCurrent) { var target = targets[iCurrent]\r\n if(!target) continue\r\n if(!isObj(target)) target = fuzzysort.getPrepared(target)\r\n\r\n var result = algorithm(search, target, searchLowerCode)\r\n if(result === null) continue\r\n if(result.score < threshold) continue\r\n if(resultsLen < limit) { q.add(result); ++resultsLen }\r\n else {\r\n ++limitedCount\r\n if(result.score > q.peek().score) q.replaceTop(result)\r\n }\r\n\r\n if(iCurrent%1000/*itemsPerCheck*/ === 0) {\r\n if(Date.now() - startMs >= 10/*asyncInterval*/) {\r\n isNode?setImmediate(step):setTimeout(step)\r\n return\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(resultsLen === 0) return resolve(noResults)\r\n var results = new Array(resultsLen)\r\n for(var i = resultsLen - 1; i >= 0; --i) results[i] = q.poll()\r\n results.total = resultsLen + limitedCount\r\n resolve(results)\r\n }\r\n\r\n isNode?setImmediate(step):step()\r\n })\r\n p.cancel = function() { canceled = true }\r\n return p\r\n },\r\n\r\n highlight: function(result, hOpen, hClose) {\r\n if(result === null) return null\r\n if(hOpen === undefined) hOpen = '<b>'\r\n if(hClose === undefined) hClose = '</b>'\r\n var highlighted = ''\r\n var matchesIndex = 0\r\n var opened = false\r\n var target = result.target\r\n var targetLen = target.length\r\n var matchesBest = result.indexes\r\n for(var i = 0; i < targetLen; ++i) { var char = target[i]\r\n if(matchesBest[matchesIndex] === i) {\r\n ++matchesIndex\r\n if(!opened) { opened = true\r\n highlighted += hOpen\r\n }\r\n\r\n if(matchesIndex === matchesBest.length) {\r\n highlighted += char + hClose + target.substr(i+1)\r\n break\r\n }\r\n } else {\r\n if(opened) { opened = false\r\n highlighted += hClose\r\n }\r\n }\r\n highlighted += char\r\n }\r\n\r\n return highlighted\r\n },\r\n\r\n prepare: function(target) {\r\n if(!target) return\r\n return {target:target, _targetLowerCodes:fuzzysort.prepareLowerCodes(target), _nextBeginningIndexes:null, score:null, indexes:null, obj:null} // hidden\r\n },\r\n prepareSlow: function(target) {\r\n if(!target) return\r\n return {target:target, _targetLowerCodes:fuzzysort.prepareLowerCodes(target), _nextBeginningIndexes:fuzzysort.prepareNextBeginningIndexes(target), score:null, indexes:null, obj:null} // hidden\r\n },\r\n prepareSearch: function(search) {\r\n if(!search) return\r\n return fuzzysort.prepareLowerCodes(search)\r\n },\r\n\r\n\r\n\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n // Below this point is only internal code\r\n\r\n\r\n\r\n getPrepared: function(target) {\r\n if(target.length > 999) return fuzzysort.prepare(target) // don't cache huge targets\r\n var targetPrepared = preparedCache.get(target)\r\n if(targetPrepared !== undefined) return targetPrepared\r\n targetPrepared = fuzzysort.prepare(target)\r\n preparedCache.set(target, targetPrepared)\r\n return targetPrepared\r\n },\r\n getPreparedSearch: function(search) {\r\n if(search.length > 999) return fuzzysort.prepareSearch(search) // don't cache huge searches\r\n var searchPrepared = preparedSearchCache.get(search)\r\n if(searchPrepared !== undefined) return searchPrepared\r\n searchPrepared = fuzzysort.prepareSearch(search)\r\n preparedSearchCache.set(search, searchPrepared)\r\n return searchPrepared\r\n },\r\n\r\n algorithm: function(searchLowerCodes, prepared, searchLowerCode) {\r\n var targetLowerCodes = prepared._targetLowerCodes\r\n var searchLen = searchLowerCodes.length\r\n var targetLen = targetLowerCodes.length\r\n var searchI = 0 // where we at\r\n var targetI = 0 // where you at\r\n var typoSimpleI = 0\r\n var matchesSimpleLen = 0\r\n\r\n // very basic fuzzy match; to remove non-matching targets ASAP!\r\n // walk through target. find sequential matches.\r\n // if all chars aren't found then exit\r\n for(;;) {\r\n var isMatch = searchLowerCode === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesSimple[matchesSimpleLen++] = targetI\r\n ++searchI; if(searchI === searchLen) break\r\n searchLowerCode = searchLowerCodes[typoSimpleI===0?searchI : (typoSimpleI===searchI?searchI+1 : (typoSimpleI===searchI-1?searchI-1 : searchI))]\r\n }\r\n\r\n ++targetI; if(targetI >= targetLen) { // Failed to find searchI\r\n // Check for typo or exit\r\n // we go as far as possible before trying to transpose\r\n // then we transpose backwards until we reach the beginning\r\n for(;;) {\r\n if(searchI <= 1) return null // not allowed to transpose first char\r\n if(typoSimpleI === 0) { // we haven't tried to transpose yet\r\n --searchI\r\n var searchLowerCodeNew = searchLowerCodes[searchI]\r\n if(searchLowerCode === searchLowerCodeNew) continue // doesn't make sense to transpose a repeat char\r\n typoSimpleI = searchI\r\n } else {\r\n if(typoSimpleI === 1) return null // reached the end of the line for transposing\r\n --typoSimpleI\r\n searchI = typoSimpleI\r\n searchLowerCode = searchLowerCodes[searchI + 1]\r\n var searchLowerCodeNew = searchLowerCodes[searchI]\r\n if(searchLowerCode === searchLowerCodeNew) continue // doesn't make sense to transpose a repeat char\r\n }\r\n matchesSimpleLen = searchI\r\n targetI = matchesSimple[matchesSimpleLen - 1] + 1\r\n break\r\n }\r\n }\r\n }\r\n\r\n var searchI = 0\r\n var typoStrictI = 0\r\n var successStrict = false\r\n var matchesStrictLen = 0\r\n\r\n var nextBeginningIndexes = prepared._nextBeginningIndexes\r\n if(nextBeginningIndexes === null) nextBeginningIndexes = prepared._nextBeginningIndexes = fuzzysort.prepareNextBeginningIndexes(prepared.target)\r\n var firstPossibleI = targetI = matchesSimple[0]===0 ? 0 : nextBeginningIndexes[matchesSimple[0]-1]\r\n\r\n // Our target string successfully matched all characters in sequence!\r\n // Let's try a more advanced and strict test to improve the score\r\n // only count it as a match if it's consecutive or a beginning character!\r\n if(targetI !== targetLen) for(;;) {\r\n if(targetI >= targetLen) {\r\n // We failed to find a good spot for this search char, go back to the previous search char and force it forward\r\n if(searchI <= 0) { // We failed to push chars forward for a better match\r\n // transpose, starting from the beginning\r\n ++typoStrictI; if(typoStrictI > searchLen-2) break\r\n if(searchLowerCodes[typoStrictI] === searchLowerCodes[typoStrictI+1]) continue // doesn't make sense to transpose a repeat char\r\n targetI = firstPossibleI\r\n continue\r\n }\r\n\r\n --searchI\r\n var lastMatch = matchesStrict[--matchesStrictLen]\r\n targetI = nextBeginningIndexes[lastMatch]\r\n\r\n } else {\r\n var isMatch = searchLowerCodes[typoStrictI===0?searchI : (typoStrictI===searchI?searchI+1 : (typoStrictI===searchI-1?searchI-1 : searchI))] === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesStrict[matchesStrictLen++] = targetI\r\n ++searchI; if(searchI === searchLen) { successStrict = true; break }\r\n ++targetI\r\n } else {\r\n targetI = nextBeginningIndexes[targetI]\r\n }\r\n }\r\n }\r\n\r\n { // tally up the score & keep track of matches for highlighting later\r\n if(successStrict) { var matchesBest = matchesStrict; var matchesBestLen = matchesStrictLen }\r\n else { var matchesBest = matchesSimple; var matchesBestLen = matchesSimpleLen }\r\n var score = 0\r\n var lastTargetI = -1\r\n for(var i = 0; i < searchLen; ++i) { var targetI = matchesBest[i]\r\n // score only goes down if they're not consecutive\r\n if(lastTargetI !== targetI - 1) score -= targetI\r\n lastTargetI = targetI\r\n }\r\n if(!successStrict) {\r\n score *= 1000\r\n if(typoSimpleI !== 0) score += -20/*typoPenalty*/\r\n } else {\r\n if(typoStrictI !== 0) score += -20/*typoPenalty*/\r\n }\r\n score -= targetLen - searchLen\r\n prepared.score = score\r\n prepared.indexes = new Array(matchesBestLen); for(var i = matchesBestLen - 1; i >= 0; --i) prepared.indexes[i] = matchesBest[i]\r\n\r\n return prepared\r\n }\r\n },\r\n\r\n algorithmNoTypo: function(searchLowerCodes, prepared, searchLowerCode) {\r\n var targetLowerCodes = prepared._targetLowerCodes\r\n var searchLen = searchLowerCodes.length\r\n var targetLen = targetLowerCodes.length\r\n var searchI = 0 // where we at\r\n var targetI = 0 // where you at\r\n var matchesSimpleLen = 0\r\n\r\n // very basic fuzzy match; to remove non-matching targets ASAP!\r\n // walk through target. find sequential matches.\r\n // if all chars aren't found then exit\r\n for(;;) {\r\n var isMatch = searchLowerCode === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesSimple[matchesSimpleLen++] = targetI\r\n ++searchI; if(searchI === searchLen) break\r\n searchLowerCode = searchLowerCodes[searchI]\r\n }\r\n ++targetI; if(targetI >= targetLen) return null // Failed to find searchI\r\n }\r\n\r\n var searchI = 0\r\n var successStrict = false\r\n var matchesStrictLen = 0\r\n\r\n var nextBeginningIndexes = prepared._nextBeginningIndexes\r\n if(nextBeginningIndexes === null) nextBeginningIndexes = prepared._nextBeginningIndexes = fuzzysort.prepareNextBeginningIndexes(prepared.target)\r\n var firstPossibleI = targetI = matchesSimple[0]===0 ? 0 : nextBeginningIndexes[matchesSimple[0]-1]\r\n\r\n // Our target string successfully matched all characters in sequence!\r\n // Let's try a more advanced and strict test to improve the score\r\n // only count it as a match if it's consecutive or a beginning character!\r\n if(targetI !== targetLen) for(;;) {\r\n if(targetI >= targetLen) {\r\n // We failed to find a good spot for this search char, go back to the previous search char and force it forward\r\n if(searchI <= 0) break // We failed to push chars forward for a better match\r\n\r\n --searchI\r\n var lastMatch = matchesStrict[--matchesStrictLen]\r\n targetI = nextBeginningIndexes[lastMatch]\r\n\r\n } else {\r\n var isMatch = searchLowerCodes[searchI] === targetLowerCodes[targetI]\r\n if(isMatch) {\r\n matchesStrict[matchesStrictLen++] = targetI\r\n ++searchI; if(searchI === searchLen) { successStrict = true; break }\r\n ++targetI\r\n } else {\r\n targetI = nextBeginningIndexes[targetI]\r\n }\r\n }\r\n }\r\n\r\n { // tally up the score & keep track of matches for highlighting later\r\n if(successStrict) { var matchesBest = matchesStrict; var matchesBestLen = matchesStrictLen }\r\n else { var matchesBest = matchesSimple; var matchesBestLen = matchesSimpleLen }\r\n var score = 0\r\n var lastTargetI = -1\r\n for(var i = 0; i < searchLen; ++i) { var targetI = matchesBest[i]\r\n // score only goes down if they're not consecutive\r\n if(lastTargetI !== targetI - 1) score -= targetI\r\n lastTargetI = targetI\r\n }\r\n if(!successStrict) score *= 1000\r\n score -= targetLen - searchLen\r\n prepared.score = score\r\n prepared.indexes = new Array(matchesBestLen); for(var i = matchesBestLen - 1; i >= 0; --i) prepared.indexes[i] = matchesBest[i]\r\n\r\n return prepared\r\n }\r\n },\r\n\r\n prepareLowerCodes: function(str) {\r\n var strLen = str.length\r\n var lowerCodes = [] // new Array(strLen) sparse array is too slow\r\n var lower = str.toLowerCase()\r\n for(var i = 0; i < strLen; ++i) lowerCodes[i] = lower.charCodeAt(i)\r\n return lowerCodes\r\n },\r\n prepareBeginningIndexes: function(target) {\r\n var targetLen = target.length\r\n var beginningIndexes = []; var beginningIndexesLen = 0\r\n var wasUpper = false\r\n var wasAlphanum = false\r\n for(var i = 0; i < targetLen; ++i) {\r\n var targetCode = target.charCodeAt(i)\r\n var isUpper = targetCode>=65&&targetCode<=90\r\n var isAlphanum = isUpper || targetCode>=97&&targetCode<=122 || targetCode>=48&&targetCode<=57\r\n var isBeginning = isUpper && !wasUpper || !wasAlphanum || !isAlphanum\r\n wasUpper = isUpper\r\n wasAlphanum = isAlphanum\r\n if(isBeginning) beginningIndexes[beginningIndexesLen++] = i\r\n }\r\n return beginningIndexes\r\n },\r\n prepareNextBeginningIndexes: function(target) {\r\n var targetLen = target.length\r\n var beginningIndexes = fuzzysort.prepareBeginningIndexes(target)\r\n var nextBeginningIndexes = [] // new Array(targetLen) sparse array is too slow\r\n var lastIsBeginning = beginningIndexes[0]\r\n var lastIsBeginningI = 0\r\n for(var i = 0; i < targetLen; ++i) {\r\n if(lastIsBeginning > i) {\r\n nextBeginningIndexes[i] = lastIsBeginning\r\n } else {\r\n lastIsBeginning = beginningIndexes[++lastIsBeginningI]\r\n nextBeginningIndexes[i] = lastIsBeginning===undefined ? targetLen : lastIsBeginning\r\n }\r\n }\r\n return nextBeginningIndexes\r\n },\r\n\r\n cleanup: cleanup,\r\n new: fuzzysortNew,\r\n }\r\n return fuzzysort\r\n} // fuzzysortNew\r\n\r\n// This stuff is outside fuzzysortNew, because it's shared with instances of fuzzysort.new()\r\nvar isNode = typeof require !== 'undefined' && typeof window === 'undefined'\r\n// var MAX_INT = Number.MAX_SAFE_INTEGER\r\n// var MIN_INT = Number.MIN_VALUE\r\nvar preparedCache = new Map()\r\nvar preparedSearchCache = new Map()\r\nvar noResults = []; noResults.total = 0\r\nvar matchesSimple = []; var matchesStrict = []\r\nfunction cleanup() { preparedCache.clear(); preparedSearchCache.clear(); matchesSimple = []; matchesStrict = [] }\r\nfunction defaultScoreFn(a) {\r\n var max = -9007199254740991\r\n for (var i = a.length - 1; i >= 0; --i) {\r\n var result = a[i]; if(result === null) continue\r\n var score = result.score\r\n if(score > max) max = score\r\n }\r\n if(max === -9007199254740991) return null\r\n return max\r\n}\r\n\r\n// prop = 'key' 2.5ms optimized for this case, seems to be about as fast as direct obj[prop]\r\n// prop = 'key1.key2' 10ms\r\n// prop = ['key1', 'key2'] 27ms\r\nfunction getValue(obj, prop) {\r\n var tmp = obj[prop]; if(tmp !== undefined) return tmp\r\n var segs = prop\r\n if(!Array.isArray(prop)) segs = prop.split('.')\r\n var len = segs.length\r\n var i = -1\r\n while (obj && (++i < len)) obj = obj[segs[i]]\r\n return obj\r\n}\r\n\r\nfunction isObj(x) { return typeof x === 'object' } // faster as a function\r\n\r\n// Hacked version of https://github.com/lemire/FastPriorityQueue.js\r\nvar fastpriorityqueue=function(){var r=[],o=0,e={};function n(){for(var e=0,n=r[e],c=1;c<o;){var f=c+1;e=c,f<o&&r[f].score<r[c].score&&(e=f),r[e-1>>1]=r[e],c=1+(e<<1)}for(var a=e-1>>1;e>0&&n.score<r[a].score;a=(e=a)-1>>1)r[e]=r[a];r[e]=n}return e.add=function(e){var n=o;r[o++]=e;for(var c=n-1>>1;n>0&&e.score<r[c].score;c=(n=c)-1>>1)r[n]=r[c];r[n]=e},e.poll=function(){if(0!==o){var e=r[0];return r[0]=r[--o],n(),e}},e.peek=function(e){if(0!==o)return r[0]},e.replaceTop=function(o){r[0]=o,n()},e};\r\nvar q = fastpriorityqueue() // reuse this, except for async, it needs to make its own\r\n\r\nreturn fuzzysortNew()\r\n}) // UMD\r\n\r\n// TODO: (performance) wasm version!?\r\n\r\n// TODO: (performance) layout memory in an optimal way to go fast by avoiding cache misses\r\n\r\n// TODO: (performance) preparedCache is a memory leak\r\n\r\n// TODO: (like sublime) backslash === forwardslash\r\n\r\n// TODO: (performance) i have no idea how well optizmied the allowing typos algorithm is\r\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { html } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nconst Loader = () => html`\r\n <svg\r\n class=${styles.loader}\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 15 15\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M9.13037 0.179352C7.57047 -0.168051 5.94039 -0.00810102 4.47777 0.635883C3.01515 1.27987 1.79647 2.37421 0.999409 3.75937C0.202348 5.14453 -0.131421 6.74808 0.0467641 8.33623C0.224949 9.92438 0.90577 11.4141 1.98997 12.5882C3.07417 13.7623 4.50506 14.5593 6.07402 14.8632C7.64298 15.167 9.26799 14.9618 10.7121 14.2773C12.1562 13.5929 13.344 12.4651 14.1022 11.0582C14.8604 9.65144 15.1494 8.03922 14.9271 6.45665L14.1844 6.56098C14.3845 7.9853 14.1243 9.43629 13.442 10.7024C12.7596 11.9685 11.6906 12.9836 10.3909 13.5996C9.09119 14.2156 7.62869 14.4003 6.21662 14.1269C4.80455 13.8534 3.51675 13.136 2.54097 12.0794C1.56519 11.0227 0.952454 9.68194 0.792088 8.2526C0.631721 6.82327 0.932113 5.38008 1.64947 4.13343C2.36682 2.88679 3.46363 1.90188 4.77999 1.32229C6.09635 0.742709 7.56343 0.598754 8.96733 0.911417L9.13037 0.179352Z\"\r\n fill=\"#E0E0E0\"\r\n />\r\n <path\r\n d=\"M14.93 6.47755C14.7207 4.95709 14.0501 3.53742 13.0085 2.41017C11.9669 1.28292 10.6046 0.50235 9.10537 0.173829L8.94483 0.906446C10.2941 1.20212 11.5202 1.90462 12.4577 2.91915C13.3951 3.93368 13.9987 5.21138 14.187 6.57979L14.93 6.47755Z\"\r\n fill=\"#ADADAD\"\r\n />\r\n </svg>\r\n`;\r\n\r\nexport { Loader };\r\n","import { html } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface TabProps {\r\n activeTab: string;\r\n label: string;\r\n onClick(label: string): void;\r\n}\r\n\r\nconst Tab = (props: TabProps) => {\r\n const { label, activeTab, onClick } = props;\r\n\r\n const onClickHandler = () => {\r\n onClick(label);\r\n };\r\n\r\n return html`\r\n <li\r\n class=${`${styles.tab} ${\r\n activeTab === label\r\n ? `${styles.tabactive} integry-container__tabbed-nav__tab--active`\r\n : ''\r\n } integry-container__tabbed-nav__tab`}\r\n onclick=${onClickHandler}\r\n >\r\n ${label}\r\n </li>\r\n `;\r\n};\r\n\r\nexport { Tab, TabProps };\r\n","import { html } from 'htm/preact';\r\nimport { VNode } from 'preact';\r\nimport { useState } from 'preact/hooks';\r\n\r\nimport { Tab } from './Tab';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface TabBarProps {\r\n preSelectedTab?: string;\r\n children: VNode<{ label: string }>[];\r\n}\r\n\r\nconst TabBar = (props: TabBarProps) => {\r\n const { preSelectedTab, children } = props;\r\n\r\n if (!Array.isArray(children) || children.length < 2) {\r\n throw new Error('Tab Bar must have at least two children');\r\n }\r\n\r\n // either select preselected if specified, or the first tab\r\n const [activeTab, setActiveTab] = useState<string>(\r\n preSelectedTab || children[0].props.label,\r\n );\r\n\r\n const onClickTabItem = (label: string) => {\r\n setActiveTab(label);\r\n };\r\n\r\n return html`\r\n <div>\r\n <ol class=\"${styles.nav} integry-container__tabbed-nav\">\r\n ${children.map((child) => {\r\n const { label } = child.props;\r\n return html`\r\n <${Tab}\r\n activeTab=${activeTab}\r\n key=${label}\r\n label=${label}\r\n onClick=${onClickTabItem}\r\n >\r\n <//>\r\n `;\r\n })}\r\n </ol>\r\n <div className=\"tab-content\">\r\n ${children.map((child) => {\r\n if (child.props.label !== activeTab) return undefined;\r\n return child.props.children;\r\n })}\r\n </div>\r\n </div>\r\n `;\r\n};\r\n\r\nexport { TabBar, TabBarProps };\r\n","import { html, Component } from 'htm/preact';\r\nimport styles from './styles.module.scss';\r\n\r\ninterface SearchState {\r\n value: string;\r\n}\r\n\r\ninterface SearchProps {\r\n initialValue?: string;\r\n placeholder: string;\r\n resultCount: number;\r\n onChange: (val: string) => void;\r\n}\r\n\r\nexport class Search extends Component<SearchProps, SearchState> {\r\n constructor(props: SearchProps) {\r\n super(props);\r\n this.state = {\r\n value: this.props.initialValue || '',\r\n };\r\n }\r\n\r\n onInput = (e: Event) => {\r\n if (e.target instanceof HTMLInputElement) {\r\n const { value } = e.target;\r\n this.setState({ value });\r\n this.props.onChange(value);\r\n }\r\n };\r\n\r\n render() {\r\n return html`\r\n <div class=\"${styles.search} integry-container__search\">\r\n <input\r\n placeholder=${this.props.placeholder || 'Search...'}\r\n value=${this.state.value}\r\n oninput=${this.onInput}\r\n />\r\n <div class=\"${styles.resultCount} integry-container__search-count\">\r\n <svg\r\n width=\"15\"\r\n height=\"16\"\r\n viewBox=\"0 0 15 16\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M14.7706 14.1638L11.148 10.5407C13.0421 8.09989 12.8712 4.56416 10.6303 2.32385C9.45395 1.14745 7.89024 0.5 6.2271 0.5C4.56335 0.5 2.99953 1.148 1.82385 2.32385C0.647448 3.49965 0 5.06335 0 6.7271C0 8.39084 0.647996 9.95466 1.82385 11.1303C3.00025 12.3067 4.56396 12.9542 6.2271 12.9542C7.62663 12.9542 8.95411 12.4942 10.0413 11.6481L13.6638 15.2706C13.8168 15.4236 14.0167 15.4997 14.2172 15.4997C14.4172 15.4997 14.6177 15.4236 14.7706 15.2706C15.0765 14.9654 15.0765 14.4697 14.7706 14.1639L14.7706 14.1638ZM2.93043 10.0229C2.05038 9.14226 1.56482 7.97179 1.56482 6.72694C1.56482 5.48153 2.04978 4.31114 2.93043 3.43037C3.81049 2.54972 4.98156 2.06476 6.2264 2.06476C7.47124 2.06476 8.6422 2.54972 9.52297 3.43037C11.3409 5.24767 11.3409 8.205 9.52297 10.0228C8.64232 10.9034 7.47124 11.3884 6.2264 11.3884C4.98156 11.3884 3.8112 10.9034 2.93043 10.0228V10.0229Z\"\r\n fill=\"#999999\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n `;\r\n }\r\n}\r\n","/**\r\n *\r\n * @param length Array length to generate\r\n * @returns String array like ['00', '01', '02' ...]\r\n */\r\nfunction generateDoubleDigitStringArr(length: number): string[] {\r\n return Array.from({ length }, (_, i) => {\r\n if (i < 10) return `0${i}`;\r\n return `${i + 1}`;\r\n });\r\n}\r\n\r\n/**\r\n *\r\n * @param date Input date\r\n * @returns {string} Date string formatted as YYYY-MM-DD\r\n */\r\nfunction getDateFormat(date: Date): string {\r\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000)\r\n .toISOString()\r\n .split('T')[0];\r\n}\r\n\r\nconst timeAgo = (date: Date) => {\r\n const intervals = [\r\n { label: 'year', seconds: 31536000 },\r\n { label: 'month', seconds: 2592000 },\r\n { label: 'day', seconds: 86400 },\r\n { label: 'hour', seconds: 3600 },\r\n { label: 'minute', seconds: 60 },\r\n { label: 'A few second', seconds: 0 },\r\n ];\r\n\r\n const seconds = Math.floor((Date.now() - date.getTime()) / 1000);\r\n const interval = intervals.find((i) => i.seconds < seconds);\r\n if (interval !== undefined) { // interval can be 0 seconds, need to explicitly check undefined\r\n let count = Math.floor(seconds / interval.seconds);\r\n if (!Number.isInteger(count)) count = 0;\r\n return `${count > 0 ? count : ''} ${interval.label}${\r\n count !== 1 ? 's' : ''\r\n } ago`;\r\n }\r\n return `Cannot be formatted with interval ${interval}`;\r\n};\r\n\r\nexport { generateDoubleDigitStringArr, getDateFormat, timeAgo };\r\n","import { html } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface ToggleProps {\r\n id: string;\r\n value: boolean;\r\n onChange: (val: boolean) => void;\r\n}\r\n\r\n/**\r\n * Toggle component\r\n *\r\n */\r\nconst Toggle = (props: ToggleProps) => {\r\n const { id, value: isToggled, onChange } = props;\r\n\r\n const handleChange = () => {\r\n onChange(!isToggled);\r\n };\r\n\r\n return html`\r\n <div class=${styles.toggle}>\r\n <div class=${`${styles.inner} ${isToggled ? styles.toggled : ''} `}>\r\n <label for=${id} class=${`${isToggled ? styles.toggled : ''} `}></label>\r\n <input type=\"checkbox\" id=${id} onclick=${handleChange} />\r\n </div>\r\n </div>\r\n `;\r\n};\r\n\r\nexport { Toggle, ToggleProps };\r\n","/**\r\n * Modified version of https://github.com/rschristian/preact-hint\r\n * for Preact with htm with added support for:\r\n * 1. bottom position\r\n * 2. dismissing popup on click of target element\r\n * 3. Delta Y to configure spacing\r\n * 4. Offset from center rendering\r\n */\r\n\r\nimport { html } from 'htm/preact';\r\nimport type { ComponentChild, VNode } from 'preact';\r\nimport { useCallback, useRef, useState } from 'preact/hooks';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface Props {\r\n children: ComponentChild | ComponentChild[];\r\n dismissOnClick?: boolean;\r\n position?: 'top' | 'bottom';\r\n attribute?: string;\r\n deltaY?: number;\r\n template?: (content: string) => VNode;\r\n}\r\n\r\ninterface HintProps {\r\n content: string;\r\n position: 'top' | 'bottom';\r\n deltaY: number;\r\n template?: (content: string) => VNode;\r\n rootBoundingRect: ClientRect;\r\n targetBoundingRect: ClientRect;\r\n}\r\n\r\nexport function HintWrap(props: HintProps): VNode {\r\n const hint = useRef<HTMLSpanElement | null>(null);\r\n\r\n const { position, deltaY } = props;\r\n\r\n return html`\r\n <div\r\n class=\"${`${styles['preact-hint']} ${\r\n position === 'top'\r\n ? styles['preact-hint__top']\r\n : styles['preact-hint__bottom']\r\n }`}\"\r\n style=${{\r\n ...{\r\n left: props.targetBoundingRect.left - props.rootBoundingRect.left,\r\n },\r\n ...(position === 'top'\r\n ? {\r\n bottom:\r\n props.rootBoundingRect.height -\r\n props.targetBoundingRect.top +\r\n props.rootBoundingRect.top +\r\n 2 +\r\n deltaY,\r\n }\r\n : {\r\n top:\r\n props.rootBoundingRect.height -\r\n props.targetBoundingRect.top +\r\n props.rootBoundingRect.top +\r\n 2 +\r\n deltaY,\r\n }),\r\n }}\r\n >\r\n <pre class=${styles['preact-hint__content']} ref=${hint}>\r\n ${props.template ? props.template(props.content) : props.content}\r\n </pre\r\n >\r\n </div>\r\n `;\r\n}\r\n\r\nexport const Hint = (props: Props): VNode => {\r\n const { position = 'bottom', attribute = 'data-hint', deltaY = 0 } = props;\r\n const [content, setContent] = useState<string>('');\r\n const [\r\n containerElement,\r\n setContainerElement,\r\n ] = useState<HTMLDivElement | null>(null);\r\n const [\r\n targetBoundingRect,\r\n setTargetBoundingRect,\r\n ] = useState<ClientRect | null>(null);\r\n\r\n const onRefChange = useCallback(\r\n (node: HTMLDivElement | null) => {\r\n setContainerElement(node);\r\n if (containerElement) {\r\n containerElement.addEventListener('mouseover', (e) => {\r\n if (e.target instanceof Element && e.target.hasAttribute(attribute)) {\r\n setContent(e.target.getAttribute(attribute) || '');\r\n setTargetBoundingRect(e.target.getBoundingClientRect());\r\n }\r\n });\r\n containerElement.addEventListener('mouseout', (e) => {\r\n if (e.target instanceof Element && e.target.hasAttribute(attribute)) {\r\n setContent('');\r\n setTargetBoundingRect(null);\r\n }\r\n });\r\n if (props.dismissOnClick)\r\n containerElement.addEventListener('click', () => {\r\n setContent('');\r\n setTargetBoundingRect(null);\r\n });\r\n }\r\n },\r\n [containerElement],\r\n );\r\n\r\n return html`\r\n <div ref=${onRefChange} style=\"position: relative\">\r\n ${content &&\r\n containerElement &&\r\n targetBoundingRect &&\r\n html` <${HintWrap}\r\n content=${content}\r\n position=${position}\r\n deltaY=${deltaY}\r\n template=${props.template}\r\n rootBoundingRect=${containerElement?.getBoundingClientRect()}\r\n targetBoundingRect=${targetBoundingRect}\r\n />`}\r\n ${props.children}\r\n </div>\r\n `;\r\n};\r\n","import { RefObject } from 'preact';\r\nimport { useEffect } from 'preact/hooks';\r\n\r\ntype AnyEvent = MouseEvent | TouchEvent;\r\n\r\nexport function useOnClickOutside<T extends HTMLElement = HTMLElement>(\r\n ref: RefObject<T>,\r\n handler: (event: AnyEvent) => void,\r\n): void {\r\n useEffect(() => {\r\n const listener = (event: AnyEvent) => {\r\n const el = ref?.current;\r\n\r\n // Do nothing if clicking ref's element or descendent elements\r\n if (!el || el.contains(event.target as Node)) {\r\n return;\r\n }\r\n\r\n handler(event);\r\n };\r\n\r\n document.addEventListener(`mousedown`, listener);\r\n document.addEventListener(`touchstart`, listener);\r\n\r\n return () => {\r\n document.removeEventListener(`mousedown`, listener);\r\n document.removeEventListener(`touchstart`, listener);\r\n };\r\n\r\n // Reload only if ref or handler changes\r\n }, [ref, handler]);\r\n}\r\n","import { useOnClickOutside } from '@/hooks/useOnClickOutside';\r\nimport { html } from 'htm/preact';\r\nimport { useCallback, useRef, useState } from 'preact/hooks';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface Option {\r\n id: string;\r\n label: string;\r\n}\r\n\r\ninterface CollapsedMenuProps {\r\n options: Option[];\r\n onOptionSelect(option: Option): void;\r\n}\r\n\r\nconst CollapsedMenu = (props: CollapsedMenuProps) => {\r\n const { options = [], onOptionSelect = () => null } = props;\r\n\r\n const popupRef = useRef<HTMLDivElement>();\r\n\r\n const [open, setOpen] = useState(false);\r\n\r\n const onClickAway = useCallback(() => setOpen(false), []);\r\n\r\n useOnClickOutside(popupRef, onClickAway);\r\n\r\n const onClick = (option: Option) => {\r\n setOpen(false);\r\n onOptionSelect(option);\r\n };\r\n\r\n return html`\r\n <div ref=${popupRef} class=${styles.collapsedMenu}>\r\n <div\r\n class=${styles.trigger}\r\n onclick=${(e: MouseEvent) => {\r\n e.stopPropagation();\r\n setOpen((prev) => !prev);\r\n }}\r\n >\r\n <svg\r\n width=\"20\"\r\n height=\"21\"\r\n viewBox=\"0 0 20 21\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M11 16C11 15.1716 10.3284 14.5 9.5 14.5C8.67157 14.5 8 15.1716 8 16C8 16.8284 8.67157 17.5 9.5 17.5C10.3284 17.5 11 16.8284 11 16Z\"\r\n fill=\"#999999\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M11 11C11 10.1716 10.3284 9.5 9.5 9.5C8.67157 9.5 8 10.1716 8 11C8 11.8284 8.67157 12.5 9.5 12.5C10.3284 12.5 11 11.8284 11 11Z\"\r\n fill=\"#999999\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M11 6C11 5.17157 10.3284 4.5 9.5 4.5C8.67157 4.5 8 5.17157 8 6C8 6.82843 8.67157 7.5 9.5 7.5C10.3284 7.5 11 6.82843 11 6Z\"\r\n fill=\"#999999\"\r\n />\r\n </svg>\r\n </div>\r\n <div class=\"${styles.popup} ${open ? styles.open : ''}\">\r\n <div class=${styles.optionWrap}>\r\n ${options.map(\r\n (el) =>\r\n html`<div class=${styles.option} onclick=${() => onClick(el)}>\r\n ${el.label}\r\n </div>`,\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n `;\r\n};\r\n\r\nexport { CollapsedMenu, CollapsedMenuProps };\r\n","import { html } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface ThreeDotLoaderProps {\r\n size?: number;\r\n color?: string;\r\n}\r\nconst LoaderDot = (props: { color: string; size: number }) => html`\r\n <svg\r\n width=${props.size}\r\n height=${props.size}\r\n viewBox=\"0 0 ${props.size} ${props.size}\"\r\n fill=${props.color}\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle\r\n cx=\"${props.size / 2}\"\r\n cy=${props.size / 2}\r\n r=${props.size / 2}\r\n fill=${props.color}\r\n />\r\n </svg>\r\n`;\r\n\r\nconst ThreeDotLoader = (props: ThreeDotLoaderProps) => {\r\n const { size = 6, color = '#fff' } = props;\r\n\r\n return html`\r\n <div class=${styles.loader}>\r\n <${LoaderDot} size=${size} color=${color} />\r\n <${LoaderDot} size=${size} color=${color} />\r\n <${LoaderDot} size=${size} color=${color} />\r\n </div>\r\n `;\r\n};\r\n\r\nexport { ThreeDotLoader };\r\n","import { html } from 'htm/preact';\r\n\r\nconst Success = () => html`\r\n <svg\r\n width=\"22\"\r\n height=\"22\"\r\n viewBox=\"0 0 25 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle cx=\"12.5\" cy=\"12.5\" r=\"12.5\" fill=\"#2ECC71\" />\r\n <path\r\n d=\"M17.2209 9.16699L11.3907 15.8337L8.33203 12.3361\"\r\n stroke=\"white\"\r\n stroke-width=\"1.2\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n`;\r\n\r\nconst Fail = () => html`\r\n <svg\r\n width=\"22\"\r\n height=\"25\"\r\n viewBox=\"0 0 25 27\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle cx=\"12.5\" cy=\"12.5\" r=\"12.5\" fill=\"#E26154\" />\r\n <g filter=\"url(#filter0_d)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M11.1886 8.05792C11.1209 7.32574 11.7556 6.61621 12.4701 6.61621C13.2413 6.61621 13.8535 7.32568 13.7963 8.05792L13.3542 13.5234C13.3206 14.0117 12.8896 14.3955 12.4019 14.3605C11.9713 14.3255 11.6422 13.9535 11.6196 13.5234L11.1886 8.05792ZM11.1836 16.9743C11.1836 16.3124 11.7654 15.7737 12.4835 15.7737C13.2189 15.7737 13.8007 16.3124 13.8 16.9743V17.2052C13.8 17.8671 13.2015 18.3902 12.4835 18.3902C11.7647 18.3902 11.1836 17.8671 11.1836 17.2052V16.9743Z\"\r\n fill=\"white\"\r\n />\r\n </g>\r\n <defs>\r\n <filter\r\n id=\"filter0_d\"\r\n x=\"7.18359\"\r\n y=\"6.61621\"\r\n width=\"10.6164\"\r\n height=\"19.7739\"\r\n filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\"\r\n >\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix\r\n in=\"SourceAlpha\"\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\r\n result=\"hardAlpha\"\r\n />\r\n <feOffset dy=\"4\" />\r\n <feGaussianBlur stdDeviation=\"2\" />\r\n <feColorMatrix\r\n type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow\"\r\n />\r\n <feBlend\r\n mode=\"normal\"\r\n in=\"SourceGraphic\"\r\n in2=\"effect1_dropShadow\"\r\n result=\"shape\"\r\n />\r\n </filter>\r\n </defs>\r\n </svg>\r\n`;\r\n\r\nexport { Success, Fail };\r\n","import { html } from 'htm/preact';\r\nimport { timeAgo } from '@/utils/datetime';\r\nimport { Toggle } from '@/components/Toggle';\r\n\r\nimport { Hint } from '@/components/Tooltip';\r\nimport { CollapsedMenu } from '@/components/CollapsedMenu';\r\nimport { ThreeDotLoader } from '@/components/ThreeDotLoader';\r\nimport { Success, Fail } from './Icons';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface IntegrationRowProps {\r\n id: number;\r\n name: string;\r\n iconUrl: string;\r\n activityStatus: string;\r\n executionStatus: 'success' | 'fail';\r\n runs: number;\r\n lastExecutionAt: string;\r\n executionTimezone: string;\r\n loading?: boolean;\r\n onEdit(): void;\r\n onDelete(): void;\r\n onToggle(integrationId: number, activate: boolean): void;\r\n}\r\n\r\nconst IntegrationRow = (props: IntegrationRowProps) => {\r\n const {\r\n id,\r\n name,\r\n iconUrl,\r\n executionStatus,\r\n activityStatus,\r\n runs,\r\n lastExecutionAt,\r\n executionTimezone,\r\n loading = false,\r\n onEdit,\r\n onDelete,\r\n onToggle,\r\n } = props;\r\n\r\n const handleOptionSelect = (option: { id: string; label: string }) => {\r\n switch (option.id) {\r\n case 'edit':\r\n onEdit();\r\n break;\r\n case 'delete':\r\n onDelete();\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n return html`\r\n <${Hint} dismissOnClick=${false} position=\"bottom\" deltaY=${4}>\r\n <div class=\"${styles.integrationRow} integry-container__integration-row\">\r\n <div class=${styles.left}>\r\n <div class=${styles.executionStatus}>\r\n ${executionStatus === 'fail'\r\n ? html`<${Fail} />`\r\n : html`<${Success} />`}\r\n </div>\r\n <div><img src=${iconUrl} alt=\"logo\" class=${styles.logo} /></div>\r\n <div class=${styles.name}>${name}</div>\r\n </div>\r\n <div class=${styles.right}>\r\n <div class=${styles.runs}>${runs > 0 ? runs : 0}</div>\r\n <div class=${styles.date}>\r\n <div\r\n data-hint=${lastExecutionAt\r\n ? new Date(lastExecutionAt).toLocaleString()\r\n : null}\r\n >\r\n ${lastExecutionAt\r\n ? timeAgo(new Date(`${lastExecutionAt} ${executionTimezone}`))\r\n : 'Never run'}\r\n </div>\r\n </div>\r\n ${loading\r\n ? html`<div class=${styles.loader}>\r\n <${ThreeDotLoader} color=\"#999\" />\r\n </div>`\r\n : html`\r\n <div class=${styles.controls}>\r\n <${Toggle} id=${id} value=${activityStatus === 'ACTIVE'}\r\n onChange=${(val: boolean) => onToggle(id, val)}\r\n <//>\r\n <div>\r\n <${CollapsedMenu}\r\n options=${[\r\n {\r\n id: 'edit',\r\n label: 'Edit',\r\n },\r\n {\r\n id: 'delete',\r\n label: 'Delete',\r\n },\r\n ]}\r\n onOptionSelect=${(option: {\r\n id: string;\r\n label: string;\r\n }) => handleOptionSelect(option)}\r\n />\r\n </div>\r\n </div>\r\n `}\r\n </div>\r\n </div>\r\n <//>\r\n `;\r\n};\r\n\r\nexport { IntegrationRow };\r\n","import { html } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nconst IntegrationsHeader = (props: { onRefetch: () => void }) => {\r\n const { onRefetch } = props;\r\n return html`\r\n <div\r\n class=\"${styles.integrationsHeader} integry-container__integrations-view__header\"\r\n >\r\n <div class=${styles.left}>\r\n <div>Status</div>\r\n </div>\r\n <div class=${styles.right}>\r\n <div>Runs</div>\r\n <div>Last execution at</div>\r\n <div class=${styles.refresh} onclick=${onRefetch}>\r\n <svg\r\n width=\"18\"\r\n height=\"20\"\r\n viewBox=\"0 0 18 20\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M16.12 7.12L13.86 8.46C14.34 9.28 14.6 10.24 14.6 11.26C14.6 14.36 12.08 16.86 9.00001 16.86C5.92001 16.86 3.40001 14.34 3.40001 11.26C3.40001 8.18 5.92001 5.66 9.00001 5.66V8.2L15.14 4.36L9.00001 0.5V3.04C4.46001 3.04 0.76001 6.74 0.76001 11.28C0.76001 15.8 4.46001 19.5 9.00001 19.5C13.54 19.5 17.24 15.8 17.24 11.26C17.24 9.76 16.82 8.34 16.12 7.12Z\"\r\n fill=\"#8D8D8D\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n `;\r\n};\r\n\r\nexport { IntegrationsHeader };\r\n","import { html, Component } from 'htm/preact';\r\nimport { connect } from 'unistore/preact';\r\n\r\nimport { BundleResponse, Integration } from '@/interfaces';\r\nimport { IntegryAPI } from '@/modules/api';\r\nimport { StoreType } from '@/types/store';\r\nimport { Loader } from '@/components/Loader';\r\nimport { actionFunctions } from '@/store';\r\nimport { TemplateFormRenderModes } from '@/types';\r\nimport AppContext from '@/contexts/AppContext';\r\n\r\nimport { IntegrationRow } from '../IntegrationRow';\r\nimport { IntegrationsHeader } from '../IntegrationsHeader';\r\n\r\nimport style from './styles.module.scss';\r\n\r\ntype Props = {\r\n integrations: Integration[];\r\n apiHandler: IntegryAPI;\r\n renderMode: TemplateFormRenderModes;\r\n} & StoreType;\r\n\r\nclass IntegrationsList extends Component<Props> {\r\n static contextType = AppContext;\r\n\r\n private toggleIntegration = (integrationId: number, activate: boolean) => {\r\n this.props.setIntegrationLoadingState({\r\n integrationId,\r\n isLoading: true,\r\n op: 'edit',\r\n });\r\n this.props.apiHandler\r\n .toggleIntegration(integrationId, activate)\r\n .then(() => {\r\n this.props.setIntegrationLoadingState({\r\n integrationId,\r\n isLoading: false,\r\n nextVal: activate,\r\n op: 'edit',\r\n });\r\n })\r\n .catch((err) => console.error(err))\r\n .finally(() => {\r\n this.props.setIntegrationLoadingState({\r\n integrationId,\r\n isLoading: false,\r\n op: 'edit',\r\n });\r\n });\r\n };\r\n\r\n private refetchIntegrations = () => {\r\n if (this.props.genericData.deploymentId) {\r\n this.props.setStoreState({\r\n fetchingIntegrations: true,\r\n });\r\n this.context.apiHandler\r\n .getTemplateListing(this.props.genericData.deploymentId)\r\n .then((res: BundleResponse) => {\r\n this.props.setStoreState({\r\n integrations: res?.integrations,\r\n fetchingIntegrations: false,\r\n });\r\n });\r\n }\r\n };\r\n\r\n private onIntegrationDelete = (integrationId: number) => {\r\n this.props.setIntegrationLoadingState({\r\n integrationId,\r\n isLoading: true,\r\n op: 'edit',\r\n });\r\n this.props.apiHandler\r\n .deleteIntegration(integrationId)\r\n .then((res) => {\r\n console.info(res);\r\n this.props.setIntegrationLoadingState({\r\n integrationId,\r\n isLoading: false,\r\n op: 'delete',\r\n });\r\n })\r\n .catch((err) => console.error(err));\r\n };\r\n\r\n private onIntegrationEdit = (integration: Integration) => {\r\n const { renderMode } = this.props;\r\n this.props.setStoreState({\r\n ...{\r\n integrationIdToEdit: integration.id,\r\n genericData: {\r\n ...this.props.genericData,\r\n brandingApp: null,\r\n templateId: integration.template,\r\n },\r\n },\r\n ...(renderMode === TemplateFormRenderModes.MODAL && {\r\n showSetupModal: true,\r\n }),\r\n ...(renderMode === TemplateFormRenderModes.INLINE && {\r\n showSetupInline: true,\r\n }),\r\n });\r\n };\r\n\r\n render() {\r\n return html`\r\n ${this.props.fetchingIntegrations\r\n ? html`<div class=${style.loader}><${Loader}/ ></div>`\r\n : html`\r\n <div class=\"integry-container__integrations-view\">\r\n ${this.props.integrations.length > 0 &&\r\n html`\r\n <${IntegrationsHeader} onRefetch=${this.refetchIntegrations} />\r\n `}\r\n <div class=${style.integrations}>\r\n ${this.props.integrations.length < 1 &&\r\n html`<div class=${style.noIntegrations}>No integrations</div>`}\r\n ${this.props.integrations.map(\r\n (el) => html`\r\n <${IntegrationRow}\r\n id=${el.id}\r\n name=${el.name}\r\n iconUrl=${el.icon_url}\r\n executionStatus=${el.task_execution.status}\r\n activityStatus=${el.status}\r\n runs=${el.runs_count}\r\n lastExecutionAt=${el.task_execution.last_execution_at\r\n ?.date}\r\n executionTimezone=${el.task_execution.last_execution_at\r\n ?.timezone}\r\n loading=${el.loading}\r\n onEdit=${() => this.onIntegrationEdit(el)}\r\n onDelete=${() => this.onIntegrationDelete(el.id)}\r\n onToggle=${this.toggleIntegration}\r\n />\r\n `,\r\n )}\r\n </div>\r\n </div>\r\n `}\r\n `;\r\n }\r\n}\r\n\r\nexport default connect<Props, unknown, StoreType, unknown>(\r\n ['fetchingIntegrations', 'genericData'],\r\n actionFunctions,\r\n)(IntegrationsList);\r\n","import { html, Component } from 'htm/preact';\r\nimport { TemplateListingRenderModes } from '@/types';\r\n\r\nimport style from './styles.module.scss';\r\n\r\nexport type FlowCardProps = {\r\n imgUrl: string;\r\n name: string;\r\n description: string;\r\n tags: string;\r\n layout: TemplateListingRenderModes;\r\n handleClick: () => void;\r\n};\r\n\r\nclass Template extends Component<FlowCardProps> {\r\n render() {\r\n return html`\r\n <div\r\n onclick=${this.props.handleClick}\r\n class=\"${this.props.layout === TemplateListingRenderModes.LIST\r\n ? style.template_list_view\r\n : style.template_grid_view} ${'integry-container__flow-card'}\"\r\n >\r\n <div>\r\n <img src=${this.props.imgUrl} />\r\n <p class=${style.name}>${this.props.name}</p>\r\n <p class=${style.description}>${this.props.description}</p>\r\n </div>\r\n ${this.props.tags.length > 0 &&\r\n html`\r\n <div class=${style.tags}>\r\n ${this.props.tags\r\n .split(',')\r\n .map((el) => html` <div class=${style.tag}>${el}</div> `)}\r\n </div>\r\n `}\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nexport { Template };\r\n","import { html, Component } from 'htm/preact';\r\nimport { connect } from 'unistore/preact';\r\nimport fuzzysort from 'fuzzysort';\r\n\r\nimport { Template as TemplateType } from '@/interfaces';\r\nimport { IntegryAPI } from '@/modules/api';\r\nimport { EventEmitter } from '@/modules/event-emitter';\r\nimport { Loader } from '@/components/Loader';\r\nimport { TabBar } from '@/components/TabBar';\r\nimport AppContext from '@/contexts/AppContext';\r\nimport { Search } from '@/components/Search';\r\n\r\nimport IntegrationsList from '@/features/integrations/IntegrationsList';\r\nimport {\r\n IntegrySDKEvents,\r\n TemplateFormRenderModes,\r\n TemplateListingRenderModes,\r\n} from '@/types';\r\nimport { StoreType } from '@/types/store';\r\nimport { actionFunctions } from '@/store';\r\n\r\nimport style from './styles.module.scss';\r\nimport { Template } from '../Template';\r\n\r\ntype Props = {\r\n deploymentId: number;\r\n layout: TemplateListingRenderModes;\r\n apiHandler: IntegryAPI;\r\n renderMode: TemplateFormRenderModes;\r\n eventEmitter: EventEmitter<IntegrySDKEvents>;\r\n onTemplateClick?: (templateId: number) => void;\r\n} & StoreType;\r\n\r\ntype State = {\r\n loading: boolean;\r\n filteredTemplates: TemplateType[];\r\n error: string | null;\r\n query: string;\r\n};\r\n\r\nclass TemplatesView extends Component<Props, State> {\r\n static contextType = AppContext;\r\n\r\n private flowCardComponent;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.state = {\r\n loading: false,\r\n filteredTemplates: [],\r\n error: null,\r\n query: '',\r\n };\r\n this.flowCardComponent = this.props.customComponents?.flowCard || Template;\r\n }\r\n\r\n // Adding the this argument restricts binding\r\n static handleClick(this: HTMLButtonElement, event: MouseEvent) {\r\n event.preventDefault();\r\n if (event.target instanceof HTMLElement) {\r\n console.info(event.target.localName);\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ loading: true });\r\n this.props.setStoreState({\r\n fetchingIntegrations: true,\r\n fetchingTemplates: true,\r\n });\r\n this.props.apiHandler\r\n .getTemplateListing(this.props.deploymentId)\r\n .then((data) => {\r\n if (data) {\r\n if (data.meta.status === 0) {\r\n this.setState({\r\n loading: false,\r\n error: 'Deployment is inactive',\r\n });\r\n return;\r\n }\r\n this.props.setBaseData(data);\r\n this.context.eventEmitter.emit('did-load-flows', {\r\n flows: data.templates,\r\n });\r\n this.context.eventEmitter.emit('did-load-integrations', {\r\n integrations: data.integrations,\r\n });\r\n this.setState({\r\n loading: false,\r\n filteredTemplates: data.templates,\r\n });\r\n } else {\r\n this.setState({\r\n loading: false,\r\n error: 'Error fetching deployment',\r\n });\r\n }\r\n });\r\n }\r\n\r\n filterTemplates = (query: string) => {\r\n if (query) {\r\n this.setState({\r\n query,\r\n filteredTemplates: fuzzysort\r\n .go(query, this.props.templates, {\r\n keys: ['name', 'branding_app.tags'],\r\n scoreFn: (keysResult) => {\r\n const nameResult = keysResult[0];\r\n const tagsResult = keysResult[1];\r\n // assign higher score to name result\r\n const score = Math.max(\r\n nameResult ? nameResult.score + 100 : -Infinity,\r\n tagsResult ? tagsResult.score : -Infinity,\r\n );\r\n return score;\r\n },\r\n })\r\n .map((el) => el.obj),\r\n });\r\n } else {\r\n this.setState({ filteredTemplates: this.props.templates });\r\n }\r\n };\r\n\r\n onTemplateClick = (templateId: number) => {\r\n this.props.setGenericData({\r\n templateId,\r\n });\r\n if (this.props.onTemplateClick) {\r\n this.props.onTemplateClick(templateId);\r\n }\r\n };\r\n\r\n render() {\r\n return html`\r\n <div>\r\n ${this.state.loading\r\n ? html`<div class=${style.loader}><${Loader} //></div>`\r\n : html`\r\n ${this.state.error\r\n ? html`${this.state.error}`\r\n : html`\r\n <${TabBar}>\r\n <div\r\n label=${this.props.userConfig?.availableFlowsLabel ||\r\n 'Available Flows'}\r\n >\r\n <div class=${style.search}>\r\n <${Search}\r\n resultCount=${this.state.filteredTemplates.length}\r\n onChange=${(val: string) =>\r\n this.filterTemplates(val)}\r\n >\r\n <//>\r\n </div>\r\n <div\r\n class=\"${this.props.layout ===\r\n TemplateListingRenderModes.LIST\r\n ? style.template_list\r\n : style.template_grid} ${'integry-container__flows-view'}\"\r\n >\r\n ${this.state.filteredTemplates.map(\r\n (template) =>\r\n html`\r\n <${this.flowCardComponent}\r\n name=${template.name}\r\n description=${template.description}\r\n layout=${this.props.layout}\r\n tags=${template.branding_app.tags}\r\n imgUrl=${template.branding_app.icon_url}\r\n handleClick=${() =>\r\n this.onTemplateClick(template.id)}\r\n >\r\n <//>\r\n `,\r\n )}\r\n </div>\r\n ${this.state.filteredTemplates.length < 1 &&\r\n html`<div class=${style.noFlows}>\r\n ${this.state.query\r\n ? 'No flows found for this search query'\r\n : 'This deployment has no published flows'}\r\n </div>`}\r\n </div>\r\n <div\r\n label=${this.props.userConfig?.myFlowsLabel ||\r\n 'My Flows'}\r\n >\r\n <${IntegrationsList} apiHandler=${this.props.apiHandler}\r\n integrations=${this.props.integrations}\r\n renderMode=${this.props.renderMode} //>\r\n </div>\r\n <//>\r\n `}\r\n `}\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nexport default connect<Props, State, StoreType, unknown>(\r\n ['userConfig', 'integrations', 'templates', 'customComponents'],\r\n actionFunctions,\r\n)(TemplatesView);\r\n","import { html, Component } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n CustomCloseElement?: any;\r\n onClose: () => void;\r\n}\r\n\r\nclass Modal extends Component<ModalProps> {\r\n render() {\r\n const { isOpen, CustomCloseElement } = this.props;\r\n return html`\r\n <div\r\n class=${`${styles.modal} ${isOpen ? `${styles.open}` : ''}`}\r\n aria-labelledby=\"modal-title\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n >\r\n <div class=${styles.modalContainer}>\r\n <div class=${styles.inset} aria-hidden=\"true\"></div>\r\n\r\n <span class=${styles.span} aria-hidden=\"true\"></span>\r\n\r\n <div\r\n class=${`${styles.contentWrap} ${isOpen ? `${styles.open}` : ''}`}\r\n >\r\n <div class=${styles.content}>\r\n ${CustomCloseElement\r\n ? html` <div onclick=${this.props.onClose}>\r\n <${CustomCloseElement} />\r\n </div>`\r\n : html`\r\n <div onclick=${this.props.onClose} class=${styles.close}>\r\n <svg\r\n width=\"20\"\r\n height=\"22\"\r\n viewBox=\"0 0 20 22\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M14.2426 16.1822L5.75732 6.86328\"\r\n stroke=\"#999999\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n />\r\n <path\r\n d=\"M14.2426 6.86328L5.75732 16.1822\"\r\n stroke=\"#999999\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n `}\r\n ${this.props.isOpen && html` ${this.props.children} `}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nexport { Modal };\r\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","/**\n * A `StructFailure` represents a single specific failure in validation.\n */\n\n/**\n * `StructError` objects are thrown (or returned) when validation fails.\n *\n * Validation logic is design to exit early for maximum performance. The error\n * represents the first error encountered during validation. For more detail,\n * the `error.failures` property is a generator function that can be run to\n * continue validation and receive all the failures in the data.\n */\nclass StructError extends TypeError {\n constructor(failure, failures) {\n let cached;\n const {\n message,\n ...rest\n } = failure;\n const {\n path\n } = failure;\n const msg = path.length === 0 ? message : \"At path: \" + path.join('.') + \" -- \" + message;\n super(msg);\n Object.assign(this, rest);\n this.name = this.constructor.name;\n\n this.failures = () => {\n var _cached;\n\n return (_cached = cached) != null ? _cached : cached = [failure, ...failures()];\n };\n }\n\n}\n\n/**\n * Check if a value is an iterator.\n */\nfunction isIterable(x) {\n return isObject(x) && typeof x[Symbol.iterator] === 'function';\n}\n/**\n * Check if a value is a plain object.\n */\n\n\nfunction isObject(x) {\n return typeof x === 'object' && x != null;\n}\n/**\n * Check if a value is a plain object.\n */\n\nfunction isPlainObject(x) {\n if (Object.prototype.toString.call(x) !== '[object Object]') {\n return false;\n }\n\n const prototype = Object.getPrototypeOf(x);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Return a value as a printable string.\n */\n\nfunction print(value) {\n return typeof value === 'string' ? JSON.stringify(value) : \"\" + value;\n}\n/**\n * Shifts (removes and returns) the first value from the `input` iterator.\n * Like `Array.prototype.shift()` but for an `Iterator`.\n */\n\nfunction shiftIterator(input) {\n const {\n done,\n value\n } = input.next();\n return done ? undefined : value;\n}\n/**\n * Convert a single validation result to a failure.\n */\n\nfunction toFailure(result, context, struct, value) {\n if (result === true) {\n return;\n } else if (result === false) {\n result = {};\n } else if (typeof result === 'string') {\n result = {\n message: result\n };\n }\n\n const {\n path,\n branch\n } = context;\n const {\n type\n } = struct;\n const {\n refinement,\n message = \"Expected a value of type `\" + type + \"`\" + (refinement ? \" with refinement `\" + refinement + \"`\" : '') + \", but received: `\" + print(value) + \"`\"\n } = result;\n return {\n value,\n type,\n refinement,\n key: path[path.length - 1],\n path,\n branch,\n ...result,\n message\n };\n}\n/**\n * Convert a validation result to an iterable of failures.\n */\n\nfunction* toFailures(result, context, struct, value) {\n if (!isIterable(result)) {\n result = [result];\n }\n\n for (const r of result) {\n const failure = toFailure(r, context, struct, value);\n\n if (failure) {\n yield failure;\n }\n }\n}\n/**\n * Check a value against a struct, traversing deeply into nested values, and\n * returning an iterator of failures or success.\n */\n\nfunction* run(value, struct, options = {}) {\n const {\n path = [],\n branch = [value],\n coerce = false,\n mask = false\n } = options;\n const ctx = {\n path,\n branch\n };\n\n if (coerce) {\n value = struct.coercer(value, ctx);\n\n if (mask && struct.type !== 'type' && isObject(struct.schema) && isObject(value) && !Array.isArray(value)) {\n for (const key in value) {\n if (struct.schema[key] === undefined) {\n delete value[key];\n }\n }\n }\n }\n\n let valid = true;\n\n for (const failure of struct.validator(value, ctx)) {\n valid = false;\n yield [failure, undefined];\n }\n\n for (let [k, v, s] of struct.entries(value, ctx)) {\n const ts = run(v, s, {\n path: k === undefined ? path : [...path, k],\n branch: k === undefined ? branch : [...branch, v],\n coerce,\n mask\n });\n\n for (const t of ts) {\n if (t[0]) {\n valid = false;\n yield [t[0], undefined];\n } else if (coerce) {\n v = t[1];\n\n if (k === undefined) {\n value = v;\n } else if (value instanceof Map) {\n value.set(k, v);\n } else if (value instanceof Set) {\n value.add(v);\n } else if (isObject(value)) {\n value[k] = v;\n }\n }\n }\n }\n\n if (valid) {\n for (const failure of struct.refiner(value, ctx)) {\n valid = false;\n yield [failure, undefined];\n }\n }\n\n if (valid) {\n yield [undefined, value];\n }\n}\n\n/**\n * `Struct` objects encapsulate the validation logic for a specific type of\n * values. Once constructed, you use the `assert`, `is` or `validate` helpers to\n * validate unknown input data against the struct.\n */\n\nclass Struct {\n constructor(props) {\n const {\n type,\n schema,\n validator,\n refiner,\n coercer = value => value,\n entries = function* () {}\n } = props;\n this.type = type;\n this.schema = schema;\n this.entries = entries;\n this.coercer = coercer;\n\n if (validator) {\n this.validator = (value, context) => {\n const result = validator(value, context);\n return toFailures(result, context, this, value);\n };\n } else {\n this.validator = () => [];\n }\n\n if (refiner) {\n this.refiner = (value, context) => {\n const result = refiner(value, context);\n return toFailures(result, context, this, value);\n };\n } else {\n this.refiner = () => [];\n }\n }\n /**\n * Assert that a value passes the struct's validation, throwing if it doesn't.\n */\n\n\n assert(value) {\n return assert(value, this);\n }\n /**\n * Create a value with the struct's coercion logic, then validate it.\n */\n\n\n create(value) {\n return create(value, this);\n }\n /**\n * Check if a value passes the struct's validation.\n */\n\n\n is(value) {\n return is(value, this);\n }\n /**\n * Mask a value, coercing and validating it, but returning only the subset of\n * properties defined by the struct's schema.\n */\n\n\n mask(value) {\n return mask(value, this);\n }\n /**\n * Validate a value with the struct's validation logic, returning a tuple\n * representing the result.\n *\n * You may optionally pass `true` for the `withCoercion` argument to coerce\n * the value before attempting to validate it. If you do, the result will\n * contain the coerced result when successful.\n */\n\n\n validate(value, options = {}) {\n return validate(value, this, options);\n }\n\n}\n/**\n * Assert that a value passes a struct, throwing if it doesn't.\n */\n\nfunction assert(value, struct) {\n const result = validate(value, struct);\n\n if (result[0]) {\n throw result[0];\n }\n}\n/**\n * Create a value with the coercion logic of struct and validate it.\n */\n\nfunction create(value, struct) {\n const result = validate(value, struct, {\n coerce: true\n });\n\n if (result[0]) {\n throw result[0];\n } else {\n return result[1];\n }\n}\n/**\n * Mask a value, returning only the subset of properties defined by a struct.\n */\n\nfunction mask(value, struct) {\n const result = validate(value, struct, {\n coerce: true,\n mask: true\n });\n\n if (result[0]) {\n throw result[0];\n } else {\n return result[1];\n }\n}\n/**\n * Check if a value passes a struct.\n */\n\nfunction is(value, struct) {\n const result = validate(value, struct);\n return !result[0];\n}\n/**\n * Validate a value against a struct, returning an error if invalid, or the\n * value (with potential coercion) if valid.\n */\n\nfunction validate(value, struct, options = {}) {\n const tuples = run(value, struct, options);\n const tuple = shiftIterator(tuples);\n\n if (tuple[0]) {\n const error = new StructError(tuple[0], function* () {\n for (const t of tuples) {\n if (t[0]) {\n yield t[0];\n }\n }\n });\n return [error, undefined];\n } else {\n const v = tuple[1];\n return [undefined, v];\n }\n}\n\nfunction assign(...Structs) {\n const isType = Structs[0].type === 'type';\n const schemas = Structs.map(s => s.schema);\n const schema = Object.assign({}, ...schemas);\n return isType ? type(schema) : object(schema);\n}\n/**\n * Define a new struct type with a custom validation function.\n */\n\nfunction define(name, validator) {\n return new Struct({\n type: name,\n schema: null,\n validator\n });\n}\n/**\n * Create a new struct based on an existing struct, but the value is allowed to\n * be `undefined`. `log` will be called if the value is not `undefined`.\n */\n\nfunction deprecated(struct, log) {\n return new Struct({ ...struct,\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx),\n\n validator(value, ctx) {\n if (value === undefined) {\n return true;\n } else {\n log(value, ctx);\n return struct.validator(value, ctx);\n }\n }\n\n });\n}\n/**\n * Create a struct with dynamic validation logic.\n *\n * The callback will receive the value currently being validated, and must\n * return a struct object to validate it with. This can be useful to model\n * validation logic that changes based on its input.\n */\n\nfunction dynamic(fn) {\n return new Struct({\n type: 'dynamic',\n schema: null,\n\n *entries(value, ctx) {\n const struct = fn(value, ctx);\n yield* struct.entries(value, ctx);\n },\n\n validator(value, ctx) {\n const struct = fn(value, ctx);\n return struct.validator(value, ctx);\n },\n\n coercer(value, ctx) {\n const struct = fn(value, ctx);\n return struct.coercer(value, ctx);\n }\n\n });\n}\n/**\n * Create a struct with lazily evaluated validation logic.\n *\n * The first time validation is run with the struct, the callback will be called\n * and must return a struct object to use. This is useful for cases where you\n * want to have self-referential structs for nested data structures to avoid a\n * circular definition problem.\n */\n\nfunction lazy(fn) {\n let struct;\n return new Struct({\n type: 'lazy',\n schema: null,\n\n *entries(value, ctx) {\n var _struct;\n\n (_struct = struct) != null ? _struct : struct = fn();\n yield* struct.entries(value, ctx);\n },\n\n validator(value, ctx) {\n var _struct2;\n\n (_struct2 = struct) != null ? _struct2 : struct = fn();\n return struct.validator(value, ctx);\n },\n\n coercer(value, ctx) {\n var _struct3;\n\n (_struct3 = struct) != null ? _struct3 : struct = fn();\n return struct.coercer(value, ctx);\n }\n\n });\n}\n/**\n * Create a new struct based on an existing object struct, but excluding\n * specific properties.\n *\n * Like TypeScript's `Omit` utility.\n */\n\nfunction omit(struct, keys) {\n const {\n schema\n } = struct;\n const subschema = { ...schema\n };\n\n for (const key of keys) {\n delete subschema[key];\n }\n\n return object(subschema);\n}\n/**\n * Create a new struct based on an existing object struct, but with all of its\n * properties allowed to be `undefined`.\n *\n * Like TypeScript's `Partial` utility.\n */\n\nfunction partial(struct) {\n const schema = struct instanceof Struct ? { ...struct.schema\n } : { ...struct\n };\n\n for (const key in schema) {\n schema[key] = optional(schema[key]);\n }\n\n return object(schema);\n}\n/**\n * Create a new struct based on an existing object struct, but only including\n * specific properties.\n *\n * Like TypeScript's `Pick` utility.\n */\n\nfunction pick(struct, keys) {\n const {\n schema\n } = struct;\n const subschema = {};\n\n for (const key of keys) {\n subschema[key] = schema[key];\n }\n\n return object(subschema);\n}\n/**\n * Define a new struct type with a custom validation function.\n *\n * @deprecated This function has been renamed to `define`.\n */\n\nfunction struct(name, validator) {\n console.warn('superstruct@0.11 - The `struct` helper has been renamed to `define`.');\n return define(name, validator);\n}\n\n/**\n * Ensure that any value passes validation.\n */\n\nfunction any() {\n return define('any', () => true);\n}\nfunction array(Element) {\n return new Struct({\n type: 'array',\n schema: Element,\n\n *entries(value) {\n if (Element && Array.isArray(value)) {\n for (const [i, v] of value.entries()) {\n yield [i, v, Element];\n }\n }\n },\n\n coercer(value) {\n return Array.isArray(value) ? value.slice() : value;\n },\n\n validator(value) {\n return Array.isArray(value) || \"Expected an array value, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a boolean.\n */\n\nfunction boolean() {\n return define('boolean', value => {\n return typeof value === 'boolean';\n });\n}\n/**\n * Ensure that a value is a valid `Date`.\n *\n * Note: this also ensures that the value is *not* an invalid `Date` object,\n * which can occur when parsing a date fails but still returns a `Date`.\n */\n\nfunction date() {\n return define('date', value => {\n return value instanceof Date && !isNaN(value.getTime()) || \"Expected a valid `Date` object, but received: \" + print(value);\n });\n}\nfunction enums(values) {\n const schema = {};\n const description = values.map(v => print(v)).join();\n\n for (const key of values) {\n schema[key] = key;\n }\n\n return new Struct({\n type: 'enums',\n schema,\n\n validator(value) {\n return values.includes(value) || \"Expected one of `\" + description + \"`, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a function.\n */\n\nfunction func() {\n return define('func', value => {\n return typeof value === 'function' || \"Expected a function, but received: \" + print(value);\n });\n}\n/**\n * Ensure that a value is an instance of a specific class.\n */\n\nfunction instance(Class) {\n return define('instance', value => {\n return value instanceof Class || \"Expected a `\" + Class.name + \"` instance, but received: \" + print(value);\n });\n}\n/**\n * Ensure that a value is an integer.\n */\n\nfunction integer() {\n return define('integer', value => {\n return typeof value === 'number' && !isNaN(value) && Number.isInteger(value) || \"Expected an integer, but received: \" + print(value);\n });\n}\nfunction intersection(Structs) {\n return new Struct({\n type: 'intersection',\n schema: null,\n\n *entries(value, ctx) {\n for (const S of Structs) {\n yield* S.entries(value, ctx);\n }\n },\n\n *validator(value, ctx) {\n for (const S of Structs) {\n yield* S.validator(value, ctx);\n }\n },\n\n *refiner(value, ctx) {\n for (const S of Structs) {\n yield* S.refiner(value, ctx);\n }\n }\n\n });\n}\nfunction literal(constant) {\n const description = print(constant);\n const t = typeof constant;\n return new Struct({\n type: 'literal',\n schema: t === 'string' || t === 'number' || t === 'boolean' ? constant : null,\n\n validator(value) {\n return value === constant || \"Expected the literal `\" + description + \"`, but received: \" + print(value);\n }\n\n });\n}\nfunction map(Key, Value) {\n return new Struct({\n type: 'map',\n schema: null,\n\n *entries(value) {\n if (Key && Value && value instanceof Map) {\n for (const [k, v] of value.entries()) {\n yield [k, k, Key];\n yield [k, v, Value];\n }\n }\n },\n\n coercer(value) {\n return value instanceof Map ? new Map(value) : value;\n },\n\n validator(value) {\n return value instanceof Map || \"Expected a `Map` object, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that no value ever passes validation.\n */\n\nfunction never() {\n return define('never', () => false);\n}\n/**\n * Augment an existing struct to allow `null` values.\n */\n\nfunction nullable(struct) {\n return new Struct({ ...struct,\n validator: (value, ctx) => value === null || struct.validator(value, ctx),\n refiner: (value, ctx) => value === null || struct.refiner(value, ctx)\n });\n}\n/**\n * Ensure that a value is a number.\n */\n\nfunction number() {\n return define('number', value => {\n return typeof value === 'number' && !isNaN(value) || \"Expected a number, but received: \" + print(value);\n });\n}\nfunction object(schema) {\n const knowns = schema ? Object.keys(schema) : [];\n const Never = never();\n return new Struct({\n type: 'object',\n schema: schema ? schema : null,\n\n *entries(value) {\n if (schema && isObject(value)) {\n const unknowns = new Set(Object.keys(value));\n\n for (const key of knowns) {\n unknowns.delete(key);\n yield [key, value[key], schema[key]];\n }\n\n for (const key of unknowns) {\n yield [key, value[key], Never];\n }\n }\n },\n\n validator(value) {\n return isObject(value) || \"Expected an object, but received: \" + print(value);\n },\n\n coercer(value) {\n return isObject(value) ? { ...value\n } : value;\n }\n\n });\n}\n/**\n * Augment a struct to allow `undefined` values.\n */\n\nfunction optional(struct) {\n return new Struct({ ...struct,\n validator: (value, ctx) => value === undefined || struct.validator(value, ctx),\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx)\n });\n}\n/**\n * Ensure that a value is an object with keys and values of specific types, but\n * without ensuring any specific shape of properties.\n *\n * Like TypeScript's `Record` utility.\n */\n\nfunction record(Key, Value) {\n return new Struct({\n type: 'record',\n schema: null,\n\n *entries(value) {\n if (isObject(value)) {\n for (const k in value) {\n const v = value[k];\n yield [k, k, Key];\n yield [k, v, Value];\n }\n }\n },\n\n validator(value) {\n return isObject(value) || \"Expected an object, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a `RegExp`.\n *\n * Note: this does not test the value against the regular expression! For that\n * you need to use the `pattern()` refinement.\n */\n\nfunction regexp() {\n return define('regexp', value => {\n return value instanceof RegExp;\n });\n}\nfunction set(Element) {\n return new Struct({\n type: 'set',\n schema: null,\n\n *entries(value) {\n if (Element && value instanceof Set) {\n for (const v of value) {\n yield [v, v, Element];\n }\n }\n },\n\n coercer(value) {\n return value instanceof Set ? new Set(value) : value;\n },\n\n validator(value) {\n return value instanceof Set || \"Expected a `Set` object, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value is a string.\n */\n\nfunction string() {\n return define('string', value => {\n return typeof value === 'string' || \"Expected a string, but received: \" + print(value);\n });\n}\nfunction tuple(Elements) {\n const Never = never();\n return new Struct({\n type: 'tuple',\n schema: null,\n\n *entries(value) {\n if (Array.isArray(value)) {\n const length = Math.max(Elements.length, value.length);\n\n for (let i = 0; i < length; i++) {\n yield [i, value[i], Elements[i] || Never];\n }\n }\n },\n\n validator(value) {\n return Array.isArray(value) || \"Expected an array, but received: \" + print(value);\n }\n\n });\n}\n/**\n * Ensure that a value has a set of known properties of specific types.\n *\n * Note: Unrecognized properties are allowed and untouched. This is similar to\n * how TypeScript's structural typing works.\n */\n\nfunction type(schema) {\n const keys = Object.keys(schema);\n return new Struct({\n type: 'type',\n schema,\n\n *entries(value) {\n if (isObject(value)) {\n for (const k of keys) {\n yield [k, value[k], schema[k]];\n }\n }\n },\n\n validator(value) {\n return isObject(value) || \"Expected an object, but received: \" + print(value);\n }\n\n });\n}\nfunction union(Structs) {\n const description = Structs.map(s => s.type).join(' | ');\n return new Struct({\n type: 'union',\n schema: null,\n\n coercer(value, ctx) {\n const firstMatch = Structs.find(s => {\n const [e] = s.validate(value, {\n coerce: true\n });\n return !e;\n }) || unknown();\n return firstMatch.coercer(value, ctx);\n },\n\n validator(value, ctx) {\n const failures = [];\n\n for (const S of Structs) {\n const [...tuples] = run(value, S, ctx);\n const [first] = tuples;\n\n if (!first[0]) {\n return [];\n } else {\n for (const [failure] of tuples) {\n if (failure) {\n failures.push(failure);\n }\n }\n }\n }\n\n return [\"Expected the value to satisfy a union of `\" + description + \"`, but received: \" + print(value), ...failures];\n }\n\n });\n}\n/**\n * Ensure that any value passes validation, without widening its type to `any`.\n */\n\nfunction unknown() {\n return define('unknown', () => true);\n}\n\n/**\n * Augment a `Struct` to add an additional coercion step to its input.\n *\n * This allows you to transform input data before validating it, to increase the\n * likelihood that it passes validation—for example for default values, parsing\n * different formats, etc.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nfunction coerce(struct, condition, coercer) {\n return new Struct({ ...struct,\n coercer: (value, ctx) => {\n return is(value, condition) ? struct.coercer(coercer(value, ctx), ctx) : struct.coercer(value, ctx);\n }\n });\n}\n/**\n * Augment a struct to replace `undefined` values with a default.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nfunction defaulted(struct, fallback, options = {}) {\n return coerce(struct, unknown(), x => {\n const f = typeof fallback === 'function' ? fallback() : fallback;\n\n if (x === undefined) {\n return f;\n }\n\n if (!options.strict && isPlainObject(x) && isPlainObject(f)) {\n const ret = { ...x\n };\n let changed = false;\n\n for (const key in f) {\n if (ret[key] === undefined) {\n ret[key] = f[key];\n changed = true;\n }\n }\n\n if (changed) {\n return ret;\n }\n }\n\n return x;\n });\n}\n/**\n * Augment a struct to trim string inputs.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\n\nfunction trimmed(struct) {\n return coerce(struct, string(), x => x.trim());\n}\n\n/**\n * Ensure that a string, array, map, or set is empty.\n */\n\nfunction empty(struct) {\n const expected = \"Expected an empty \" + struct.type;\n return refine(struct, 'empty', value => {\n if (value instanceof Map || value instanceof Set) {\n const {\n size\n } = value;\n return size === 0 || expected + \" but received one with a size of `\" + size + \"`\";\n } else {\n const {\n length\n } = value;\n return length === 0 || expected + \" but received one with a length of `\" + length + \"`\";\n }\n });\n}\n/**\n * Ensure that a number or date is below a threshold.\n */\n\nfunction max(struct, threshold, options = {}) {\n const {\n exclusive\n } = options;\n return refine(struct, 'max', value => {\n return exclusive ? value < threshold : value <= threshold || \"Expected a \" + struct.type + \" less than \" + (exclusive ? '' : 'or equal to ') + threshold + \" but received `\" + value + \"`\";\n });\n}\n/**\n * Ensure that a number or date is above a threshold.\n */\n\nfunction min(struct, threshold, options = {}) {\n const {\n exclusive\n } = options;\n return refine(struct, 'min', value => {\n return exclusive ? value > threshold : value >= threshold || \"Expected a \" + struct.type + \" greater than \" + (exclusive ? '' : 'or equal to ') + threshold + \" but received `\" + value + \"`\";\n });\n}\n/**\n * Ensure that a string matches a regular expression.\n */\n\nfunction pattern(struct, regexp) {\n return refine(struct, 'pattern', value => {\n return regexp.test(value) || \"Expected a \" + struct.type + \" matching `/\" + regexp.source + \"/` but received \\\"\" + value + \"\\\"\";\n });\n}\n/**\n * Ensure that a string, array, number, date, map, or set has a size (or length, or time) between `min` and `max`.\n */\n\nfunction size(struct, min, max = min) {\n const expected = \"Expected a \" + struct.type;\n const of = min === max ? \"of `\" + min + \"`\" : \"between `\" + min + \"` and `\" + max + \"`\";\n return refine(struct, 'size', value => {\n if (typeof value === 'number' || value instanceof Date) {\n return min <= value && value <= max || expected + \" \" + of + \" but received `\" + value + \"`\";\n } else if (value instanceof Map || value instanceof Set) {\n const {\n size\n } = value;\n return min <= size && size <= max || expected + \" with a size \" + of + \" but received one with a size of `\" + size + \"`\";\n } else {\n const {\n length\n } = value;\n return min <= length && length <= max || expected + \" with a length \" + of + \" but received one with a length of `\" + length + \"`\";\n }\n });\n}\n/**\n * Augment a `Struct` to add an additional refinement to the validation.\n *\n * The refiner function is guaranteed to receive a value of the struct's type,\n * because the struct's existing validation will already have passed. This\n * allows you to layer additional validation on top of existing structs.\n */\n\nfunction refine(struct, name, refiner) {\n return new Struct({ ...struct,\n\n *refiner(value, ctx) {\n yield* struct.refiner(value, ctx);\n const result = refiner(value, ctx);\n const failures = toFailures(result, ctx, struct, value);\n\n for (const failure of failures) {\n yield { ...failure,\n refinement: name\n };\n }\n }\n\n });\n}\n\nexport { Struct, StructError, any, array, assert, assign, boolean, coerce, create, date, defaulted, define, deprecated, dynamic, empty, enums, func, instance, integer, intersection, is, lazy, literal, map, mask, max, min, never, nullable, number, object, omit, optional, partial, pattern, pick, record, refine, regexp, set, size, string, struct, trimmed, tuple, type, union, unknown, validate };\n//# sourceMappingURL=index.es.js.map\n","import { FlowCardProps } from '@/features/templates/Template';\r\nimport {\r\n Authorization,\r\n AuthorizationTypes,\r\n TemplateFormRenderModes,\r\n} from '@/types';\r\nimport { VNode } from 'preact';\r\nimport {\r\n array,\r\n boolean,\r\n date,\r\n Describe,\r\n nullable,\r\n number,\r\n object,\r\n optional,\r\n size,\r\n string,\r\n} from 'superstruct';\r\n\r\nexport interface UserConfig {\r\n availableFlowsLabel?: string;\r\n myFlowsLabel?: string;\r\n hideWebhookUrlScreen?: boolean;\r\n hideAppConnectionModal?: boolean;\r\n customComponents?: {\r\n flowCard?: (props: FlowCardProps) => VNode;\r\n };\r\n}\r\n\r\nexport interface SDKConfig {\r\n env?: 'staging' | 'production';\r\n debug?: boolean;\r\n integrationId?: number;\r\n xIntegryConfig?: {\r\n isAnonymous?: boolean;\r\n appAuth?: {\r\n apiKey?: string;\r\n authId?: string;\r\n extras?: Record<string, string | number>;\r\n };\r\n };\r\n userConfig?: UserConfig;\r\n}\r\n\r\nexport interface ConfigWithObject extends SDKConfig {\r\n appKey: string;\r\n hash: string;\r\n userId: string;\r\n deploymentId: string;\r\n}\r\n\r\nexport interface ConfigWithUrlParams extends SDKConfig {\r\n useUrlParams?: boolean;\r\n}\r\n\r\nexport interface APIConfig {\r\n baseUrl: string;\r\n baseUrlv2: string;\r\n endpointsUrl: string;\r\n appKey: string;\r\n hash: string;\r\n userId: string;\r\n oauthVerifyPath: string;\r\n apiKey?: string;\r\n authId?: string;\r\n extras?: Record<string, string | number>;\r\n}\r\n\r\nexport interface Template {\r\n id: number;\r\n name: string;\r\n description: string;\r\n can_add_integration: boolean;\r\n integration_count: number;\r\n app: {\r\n icon_url: string;\r\n category: string[];\r\n tags: string;\r\n };\r\n branding_app: {\r\n icon_url: string;\r\n category: string[];\r\n tags: string;\r\n };\r\n}\r\n\r\nexport interface Integration {\r\n name: string;\r\n branding_app: {\r\n icon_url: string;\r\n category: string[];\r\n tags: string;\r\n };\r\n id: number;\r\n runs_count: number;\r\n bundle_instance: number;\r\n created: Date;\r\n delete_link: string;\r\n disable_link: string;\r\n edit_link: string;\r\n enable_link: string;\r\n icon_url: string;\r\n is_visible: number;\r\n last_modified: Date;\r\n status: string;\r\n template: number;\r\n task_execution: {\r\n integration_created_at: Date;\r\n last_execution_at: {\r\n date: Date;\r\n timezone: string;\r\n timezone_type: number;\r\n } | null;\r\n status: string | null;\r\n };\r\n loading: boolean;\r\n}\r\n\r\nexport interface IntegrationSaveResponse {\r\n id: number;\r\n connected_account_id: number;\r\n is_visible: number | boolean;\r\n name: string;\r\n bundle_name: string;\r\n bundle_instance_id: number;\r\n status: string;\r\n template: number;\r\n steps: {\r\n id: number;\r\n template_step: number;\r\n returned_data: string | null;\r\n }[];\r\n}\r\n\r\nexport interface AppsForAuthConnection {\r\n id: number;\r\n name: string;\r\n description: string;\r\n icon_url: string;\r\n color: string;\r\n status: 0 | 1;\r\n system_app: boolean;\r\n publishing_status: string;\r\n is_workspace: boolean;\r\n account_id: number;\r\n authorization_type: {\r\n id: number;\r\n type: AuthorizationTypes;\r\n provider: string;\r\n app_id: number;\r\n }[];\r\n}\r\n\r\nexport interface AppsForAuthConnectionResponse {\r\n has_next: boolean;\r\n next_page_number: number;\r\n apps: AppsForAuthConnection[];\r\n}\r\nexport interface BundleResponse {\r\n meta: {\r\n status: number;\r\n };\r\n templates: Template[];\r\n integrations: Integration[];\r\n}\r\n\r\ntype SaveIntegrationRequestStep = {\r\n id: number;\r\n authorization: number;\r\n template_step: number;\r\n app_user_data: {\r\n id: number;\r\n value: string;\r\n template_field: number;\r\n }[];\r\n};\r\n\r\nexport interface SaveOrUpdateIntegrationBody {\r\n isAnonymous: boolean;\r\n id?: number;\r\n name: string;\r\n notification_email: string;\r\n template: number;\r\n bundle_id: number;\r\n bundle_instance_id?: number;\r\n steps: SaveIntegrationRequestStep[];\r\n}\r\n\r\nexport interface GetAppsForAuthConnectionBody {\r\n deploymentId?: number;\r\n}\r\n\r\nexport type App = {\r\n id: number;\r\n name: string;\r\n description: string;\r\n icon_url: string;\r\n color: string;\r\n publishing_status: string;\r\n category: string[];\r\n app_type?: string;\r\n action_url?: string | null;\r\n created_at?: Date;\r\n tags: string;\r\n};\r\n\r\ntype Activity = {\r\n id: number;\r\n name: string;\r\n type: string;\r\n endpoint: string;\r\n auth_required: boolean;\r\n total_fields: number;\r\n app: App;\r\n activity_output: string | null;\r\n activity_output_url: string | null;\r\n dynamic_field_data_endpoint: string | null;\r\n};\r\n\r\ntype AuthorizationType = {\r\n id: number;\r\n type: string;\r\n authorizations: Authorization[];\r\n provider: string;\r\n is_sandbox_enabled: boolean;\r\n authorization_url_sandbox: string;\r\n};\r\n\r\nexport type IntegryStep = {\r\n id: number;\r\n weight: number;\r\n title: string;\r\n is_visible: boolean;\r\n activity: Activity;\r\n hide_authorization: boolean;\r\n};\r\n\r\nexport interface TemplateResponse {\r\n id: number;\r\n name: string;\r\n description: string;\r\n app: App;\r\n branding_app: App;\r\n button_text: string | null;\r\n is_wizard: boolean;\r\n steps: IntegryStep[];\r\n publishing_status: string;\r\n level?: number;\r\n parent_id?: number;\r\n}\r\n\r\nexport interface TemplateField {\r\n id: number;\r\n is_required: boolean;\r\n is_hidden: boolean;\r\n default_value: string | null;\r\n weight: number;\r\n description: string;\r\n summary: string | null;\r\n activity_field: {\r\n id: number;\r\n machine_name: string;\r\n type: string;\r\n title: string;\r\n description: string;\r\n weight: number;\r\n is_required: boolean;\r\n child_fields: string | null;\r\n placeholder: string | null;\r\n is_dynamic: boolean;\r\n data_src: string | null;\r\n data_src_endpoint: number | null;\r\n parent_fields: string | null;\r\n dynamic_field_src: string | null;\r\n default_value: string | null;\r\n auto_machine_name: string;\r\n dynamic_field_src_endpoint: number | null;\r\n regex: string | null;\r\n regex_error_message?: string | null;\r\n is_searchable: boolean;\r\n conditional_fields?: string | null;\r\n } | null;\r\n title: string | null;\r\n type: string;\r\n placeholder: string | null;\r\n // manual_template: unknown | null;\r\n child_field: string | null;\r\n child_field_value: string | null;\r\n // template_fields: unknown[];\r\n button_text: string | null;\r\n // field_actions: unknown[];\r\n icon_url: string | null;\r\n long_description: string | null;\r\n regex: string | null;\r\n regex_msg: string | null;\r\n is_visible: boolean;\r\n app_user_data?: { app_user: number; id: number; value: string | number }[];\r\n added_in_mapping?: boolean;\r\n field_mapping_source?: string;\r\n}\r\n\r\nexport interface ConditionalFields {\r\n value: string;\r\n field_array: string;\r\n}\r\nexport interface TemplateStep {\r\n id: number;\r\n weight: number;\r\n title: string;\r\n is_visible: boolean;\r\n activity: Activity;\r\n authorization_type: AuthorizationType;\r\n template_fields: TemplateField[];\r\n step_instance?: number | null;\r\n allow_multiple_authorizations: boolean;\r\n step_authorization: number | null;\r\n button_text: string | null;\r\n is_self_step: boolean;\r\n summary: string | null;\r\n is_workspace_app_step: boolean;\r\n auth_description: string | null;\r\n hide_authorization: boolean;\r\n // step_condition: unknown | null;\r\n machine_name: string | null;\r\n is_custom_machine_name: boolean;\r\n}\r\n\r\nexport interface InitConfig {\r\n containerId: string;\r\n templateContainerId?: string;\r\n renderMode: TemplateFormRenderModes;\r\n}\r\n\r\nexport interface IntegrationResponse {\r\n id: number;\r\n guid: string;\r\n name: string;\r\n notification_email: string;\r\n bundle_name: string;\r\n template: number;\r\n template_detail: {\r\n id: number;\r\n name: string;\r\n description: string;\r\n };\r\n steps: {\r\n id: number;\r\n endpoint: string | null;\r\n authorization: string | number | null;\r\n app_user_data: {\r\n id: number;\r\n value: string;\r\n template_field: number;\r\n }[];\r\n template_step: number;\r\n returned_data: null | string;\r\n verb?: string | null;\r\n }[];\r\n is_visible: number;\r\n parent_integration: number | null;\r\n status: string;\r\n task_execution: {\r\n last_execution_at: string | null;\r\n status: string | null;\r\n integration_created_at: string;\r\n };\r\n created: string;\r\n last_modified: string;\r\n}\r\n\r\nexport interface ActivityCustomField {\r\n value: string;\r\n tag: string;\r\n text: string;\r\n sample_data: string;\r\n}\r\n\r\nexport interface TemplatePreviewData {\r\n id: number;\r\n name: string;\r\n description: string;\r\n app: App;\r\n branding_app: App;\r\n button_text: string | null;\r\n is_wizard: boolean;\r\n publishing_status: string;\r\n level?: number;\r\n parent_id?: number;\r\n steps: TemplateStep[];\r\n}\r\n\r\nexport const TemplatePreviewDataType: Describe<TemplatePreviewData> = object({\r\n id: number(),\r\n name: string(),\r\n description: string(),\r\n app: object({\r\n id: number(),\r\n name: string(),\r\n description: string(),\r\n icon_url: string(),\r\n color: string(),\r\n publishing_status: string(),\r\n category: array(string()),\r\n app_type: optional(string()),\r\n action_url: nullable(optional(string())),\r\n created_at: optional(date()),\r\n tags: string(),\r\n }),\r\n branding_app: object({\r\n id: number(),\r\n name: string(),\r\n description: string(),\r\n icon_url: string(),\r\n color: string(),\r\n publishing_status: string(),\r\n category: array(string()),\r\n app_type: optional(string()),\r\n action_url: nullable(optional(string())),\r\n created_at: optional(date()),\r\n tags: string(),\r\n }),\r\n button_text: nullable(string()),\r\n is_wizard: boolean(),\r\n publishing_status: string(),\r\n steps: size(\r\n array(\r\n object({\r\n id: number(),\r\n weight: number(),\r\n title: string(),\r\n is_visible: boolean(),\r\n is_workspace_app_step: boolean(),\r\n activity: object({\r\n id: number(),\r\n name: string(),\r\n type: string(),\r\n endpoint: string(),\r\n auth_required: boolean(),\r\n total_fields: number(),\r\n app: object({\r\n id: number(),\r\n name: string(),\r\n description: string(),\r\n icon_url: string(),\r\n color: string(),\r\n publishing_status: string(),\r\n category: array(string()),\r\n app_type: optional(string()),\r\n action_url: nullable(optional(string())),\r\n created_at: optional(date()),\r\n tags: string(),\r\n }),\r\n activity_output: nullable(string()),\r\n activity_output_url: nullable(string()),\r\n dynamic_field_data_endpoint: nullable(string()),\r\n }),\r\n authorization_type: object({\r\n id: number(),\r\n type: string(),\r\n authorizations: array(\r\n object({\r\n id: number(),\r\n authorization_type: string(),\r\n app_user: optional(number()),\r\n app_user_id: optional(number()),\r\n disable_link: optional(string()),\r\n integration_count: optional(number()),\r\n user_identity: string(),\r\n }),\r\n ),\r\n provider: string(),\r\n is_sandbox_enabled: boolean(),\r\n authorization_url_sandbox: string(),\r\n }),\r\n template_fields: array(\r\n object({\r\n id: number(),\r\n is_required: boolean(),\r\n is_hidden: boolean(),\r\n default_value: nullable(string()),\r\n weight: number(),\r\n description: string(),\r\n summary: nullable(string()),\r\n placeholder: nullable(string()),\r\n added_in_mapping: optional(boolean()),\r\n field_mapping_source: optional(string()),\r\n activity_field: nullable(\r\n object({\r\n id: number(),\r\n machine_name: string(),\r\n type: string(),\r\n title: string(),\r\n description: string(),\r\n weight: number(),\r\n placeholder: nullable(string()),\r\n is_required: boolean(),\r\n child_fields: nullable(string()),\r\n is_dynamic: boolean(),\r\n data_src: nullable(string()),\r\n data_src_endpoint: nullable(number()),\r\n parent_fields: nullable(string()),\r\n dynamic_field_src: nullable(string()),\r\n default_value: nullable(string()),\r\n auto_machine_name: string(),\r\n dynamic_field_src_endpoint: nullable(number()),\r\n regex: nullable(string()),\r\n is_searchable: boolean(),\r\n conditional_fields: nullable(optional(string())),\r\n }),\r\n ),\r\n title: nullable(string()),\r\n type: string(),\r\n // manual_template: unknown | null;\r\n child_field: nullable(string()),\r\n child_field_value: nullable(string()),\r\n // template_fields: unknown[];\r\n button_text: nullable(string()),\r\n // field_actions: unknown[];\r\n icon_url: nullable(string()),\r\n long_description: nullable(string()),\r\n regex: nullable(string()),\r\n regex_msg: nullable(string()),\r\n is_visible: boolean(),\r\n }),\r\n ),\r\n // step_instance: unknown | null;\r\n allow_multiple_authorizations: boolean(),\r\n step_authorization: nullable(number()),\r\n button_text: nullable(string()),\r\n is_self_step: boolean(),\r\n summary: nullable(string()),\r\n auth_description: nullable(string()),\r\n hide_authorization: boolean(),\r\n // step_condition: unknown | null;\r\n machine_name: nullable(string()),\r\n step_instance: optional(nullable(number())),\r\n is_custom_machine_name: boolean(),\r\n }),\r\n ),\r\n 0,\r\n Number.POSITIVE_INFINITY,\r\n ),\r\n});\r\n\r\nexport interface PreviewMetadata {\r\n stepId: number | null;\r\n type: 'AUTH' | 'CONFIGURATION' | 'CONFIRMATION' | 'SECTION';\r\n}\r\n\r\nexport interface PreviewPayload {\r\n templateData: TemplatePreviewData;\r\n metadata: PreviewMetadata;\r\n previewContainerId: string;\r\n}\r\n","/**\r\n * Utility types\r\n */\r\n\r\nexport type OrNull<Type> = Type | null;\r\n\r\nexport type OneOrMany<Type> = Type | Type[];\r\n\r\nexport type OneOrManyOrNull<Type> = OrNull<OneOrMany<Type>>;\r\n\r\nexport type Merge<A, B> = {\r\n [K in keyof (A | B)]: K extends keyof B ? B[K] : A[K];\r\n};\r\n\r\nexport function notEmpty<TValue>(\r\n value: TValue | null | undefined,\r\n): value is TValue {\r\n return value !== null && value !== undefined;\r\n}\r\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { html } from 'htm/preact';\r\nimport cx from 'classnames';\r\n\r\nimport { Hint } from '@/components/Tooltip';\r\nimport { ThreeDotLoader } from '@/components/ThreeDotLoader';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport enum ButtonTypes {\r\n PRIMARY = 'primary',\r\n SECONDARY = 'secondary',\r\n LINK = 'link',\r\n}\r\n\r\nexport interface ButtonProps {\r\n label: string;\r\n type?: ButtonTypes;\r\n color?: string;\r\n width?: number;\r\n height?: number;\r\n dismissOnClick?: boolean;\r\n position?: 'top' | 'bottom';\r\n tooltip?: string;\r\n isLoading?: boolean;\r\n disabled?: boolean;\r\n hasError?: boolean;\r\n backgroundColor: string;\r\n onClick: (e: MouseEvent) => void;\r\n}\r\n\r\n/**\r\n * Button component\r\n *\r\n */\r\nexport const Button = (props: ButtonProps) => {\r\n const {\r\n label,\r\n type = ButtonTypes.PRIMARY,\r\n color = null,\r\n backgroundColor = null,\r\n disabled = false,\r\n hasError = false,\r\n tooltip,\r\n width,\r\n height,\r\n dismissOnClick = true,\r\n isLoading = false,\r\n position = 'bottom',\r\n onClick = undefined,\r\n ...restOfProps\r\n } = props;\r\n\r\n return html`\r\n <${Hint} dismissOnClick=${dismissOnClick} position=${position}>\r\n <button\r\n type=\"button\"\r\n onclick=${onClick}\r\n data-hint=${tooltip || null}\r\n class=${cx(\r\n styles.button,\r\n {\r\n [styles.buttonPrimary]: type === ButtonTypes.PRIMARY,\r\n [styles.buttonSecondary]: type === ButtonTypes.SECONDARY,\r\n [styles.buttonLink]: type === ButtonTypes.LINK,\r\n [styles.disabled]: disabled || hasError,\r\n },\r\n {\r\n 'integry-container__button--primary': type === ButtonTypes.PRIMARY,\r\n 'integry-container__button--secondary':\r\n type === ButtonTypes.SECONDARY,\r\n 'integry-container__button--link': type === ButtonTypes.LINK,\r\n 'integry-container__button--disabled': hasError || disabled,\r\n },\r\n )}\r\n disabled=${disabled}\r\n style=${{\r\n backgroundColor:\r\n type === ButtonTypes.PRIMARY ? backgroundColor : null,\r\n borderColor: type === ButtonTypes.PRIMARY ? backgroundColor : color,\r\n color,\r\n width,\r\n height,\r\n }}\r\n ${{ ...restOfProps }}\r\n >\r\n ${isLoading ? html`<${ThreeDotLoader} />` : label}\r\n </button>\r\n <//>\r\n `;\r\n};\r\n","import { html } from 'htm/preact';\r\nimport { StructError } from 'superstruct';\r\nimport { Button } from '../Button';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface ErrorPageProps {\r\n title: string;\r\n description: string;\r\n errorPayload: Error | StructError | null;\r\n onDismiss?: () => void;\r\n}\r\n\r\n/**\r\n * ErrorPage component\r\n *\r\n */\r\nconst ErrorPage = (props: ErrorPageProps) => {\r\n const { title, description, errorPayload, onDismiss = null } = props;\r\n\r\n return html`\r\n <div class=\"${styles.errorPageWrapper}\">\r\n <div class=${styles.errorTitle}>${title}</div>\r\n <div class=${styles.errorDescription}>${description}</div>\r\n ${errorPayload &&\r\n html`\r\n <div class=${styles.errorContainer}>\r\n <pre class=${styles.errorPayload}>${errorPayload.message}</pre>\r\n <pre class=${styles.errorPayload}>${errorPayload.stack}</pre>\r\n </div>\r\n `}\r\n ${onDismiss &&\r\n html`\r\n <div>\r\n <${Button} label=\"Dismiss\" onClick=${onDismiss} />\r\n </div>\r\n `}\r\n </div>\r\n `;\r\n};\r\n\r\nexport { ErrorPage, ErrorPageProps };\r\n","import { html } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport interface RadioProps extends HTMLInputElement {\r\n description?: string;\r\n value: string;\r\n isChecked?: boolean;\r\n onChange?: (id: string) => void;\r\n}\r\n\r\n/**\r\n * Radio component\r\n *\r\n */\r\nexport const Radio = (props: RadioProps) => {\r\n const {\r\n id,\r\n description = null,\r\n value,\r\n isChecked = false,\r\n onChange = () => null,\r\n } = props;\r\n\r\n const handleRadioChange = (e: MouseEvent) => {\r\n e.preventDefault();\r\n if (e.currentTarget instanceof HTMLDivElement) {\r\n onChange(id);\r\n }\r\n };\r\n\r\n return html`\r\n <div class=${styles.radio}>\r\n <input\r\n id=${value}\r\n type=\"radio\"\r\n name=${id}\r\n value=${value}\r\n checked=${isChecked}\r\n />\r\n <div onclick=${handleRadioChange}>\r\n <label for=${value}>\r\n <div class=${styles.button}>\r\n ${isChecked\r\n ? html`\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 15 15\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M14 7.5C14 11.0899 11.0899 14 7.5 14C3.91015 14 1 11.0899 1 7.5C1 3.91015 3.91015 1 7.5 1C11.0899 1 14 3.91015 14 7.5Z\"\r\n fill=\"white\"\r\n stroke=\"#5F4D86\"\r\n stroke-width=\"2\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.5 11C9.433 11 11 9.433 11 7.5C11 5.567 9.433 4 7.5 4C5.567 4 4 5.567 4 7.5C4 9.433 5.567 11 7.5 11Z\"\r\n fill=\"#5F4D86\"\r\n />\r\n </svg>\r\n `\r\n : html`\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 15 15\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M14 7.5C14 11.0899 11.0899 14 7.5 14C3.91015 14 1 11.0899 1 7.5C1 3.91015 3.91015 1 7.5 1C11.0899 1 14 3.91015 14 7.5Z\"\r\n fill=\"white\"\r\n stroke=\"#E2E0DB\"\r\n stroke-width=\"2\"\r\n />\r\n </svg>\r\n `}\r\n </div>\r\n <div>\r\n <div class=${styles.text}>${value}</div>\r\n ${description &&\r\n html`<div class=${styles.description}>${description}</div>`}\r\n </div>\r\n </label>\r\n </div>\r\n </div>\r\n `;\r\n};\r\n","import { FunctionComponent } from 'preact';\r\nimport { html } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\n/**\r\n * ErrorMessage component\r\n *\r\n */\r\nconst ErrorMessage: FunctionComponent = (props) => {\r\n const { children } = props;\r\n\r\n return html` <div class=${styles.errorMessage}>${children}</div> `;\r\n};\r\n\r\nexport { ErrorMessage };\r\n","import { html } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface LabelProps {\r\n title: string;\r\n description?: string;\r\n isRequired?: boolean;\r\n}\r\n\r\nconst Label = (props: LabelProps) => {\r\n const { title, description, isRequired = false } = props;\r\n return html`\r\n <div class=\"${styles.label} integry-container__label\">\r\n <label>\r\n <div>\r\n ${title}\r\n ${isRequired && html`<span class=${styles.required}>*</span>`}\r\n </div>\r\n ${description && html`<div>${description}</div>`}\r\n </label>\r\n </div>\r\n `;\r\n};\r\n\r\nexport { Label, LabelProps };\r\n","/**\r\n *\r\n * @param url Url to open in this popup window\r\n * @param windowName Given name\r\n * @param win Original window reference\r\n * @param w Width in px\r\n * @param h Height in px\r\n * @returns Reference to the newly created popup window\r\n */\r\nfunction openPopupWindow(\r\n url: string,\r\n windowName: string,\r\n win: Window,\r\n w: number,\r\n h: number,\r\n): Window | null {\r\n if (win.top) {\r\n const y = win.top.outerHeight / 2 + win.top.screenY - h / 2;\r\n const x = win.top.outerWidth / 2 + win.top.screenX - w / 2;\r\n (window as any).top.MyAltWindow = win.open(\r\n url,\r\n windowName,\r\n `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=${w}, height=${h}, top=${y}, left=${x}`,\r\n );\r\n return (window as any).top.MyAltWindow\r\n }\r\n return null;\r\n}\r\n\r\nexport { openPopupWindow };\r\n","interface AuthData {\r\n activity_name: string;\r\n already_exists: boolean;\r\n authorization_id: number;\r\n user_identity: string;\r\n}\r\n\r\nfunction isAuthMessage(\r\n msg: MessageEvent<AuthData>,\r\n): msg is MessageEvent<AuthData> {\r\n return (msg as MessageEvent<AuthData>) !== undefined;\r\n}\r\n\r\nexport { isAuthMessage, AuthData };\r\n","import { html, Component } from 'htm/preact';\r\nimport { connect } from 'unistore/preact';\r\n\r\nimport { Loader } from '@/components/Loader';\r\nimport { IntegryAPI } from '@/modules/api';\r\nimport { Radio } from '@/components/RadioGroup/Radio';\r\nimport { Button, ButtonTypes } from '@/components/Button';\r\nimport { ErrorMessage } from '@/components/ErrorMessage';\r\nimport { Label } from '@/components/Label';\r\nimport { Authorization, StoreType } from '@/types/store';\r\nimport { actionFunctions } from '@/store';\r\nimport isBrowser from '@/utils/isBrowser';\r\nimport AppContext from '@/contexts/AppContext';\r\n\r\nimport { openPopupWindow } from '@/utils/popup';\r\nimport { AuthData, isAuthMessage } from '@/utils/isAuthMessage';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface AuthSelectorPropsType extends StoreType {\r\n stepId: number;\r\n apiHandler: IntegryAPI;\r\n showErrors?: boolean;\r\n onAuthSelected(\r\n authId: number | null,\r\n isVerified: boolean,\r\n override: boolean,\r\n ): void;\r\n}\r\n\r\ninterface AuthSelectorStateType {\r\n isLoading: boolean;\r\n fetched: boolean;\r\n willDeleteAuthWithIndex: number | null;\r\n}\r\n\r\nconst Confirmation = (props: { callback(shouldDelete: boolean): void }) => {\r\n const { callback } = props;\r\n return html`\r\n <div class=${styles.confirmation}>\r\n <div class=${styles.text}>Are you sure?</div>\r\n <button onclick=${() => callback(true)}>Yes</button>\r\n <button onclick=${() => callback(false)}>No</button>\r\n </div>\r\n `;\r\n};\r\n\r\nconst Resend = () => html`\r\n <svg\r\n class=${styles.resend}\r\n width=\"13\"\r\n height=\"15\"\r\n viewBox=\"0 0 13 15\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M11.8403 5.34L10.1453 6.345C10.5053 6.96 10.7003 7.68 10.7003 8.445C10.7003 10.77 8.81031 12.645 6.50031 12.645C4.19031 12.645 2.30031 10.755 2.30031 8.445C2.30031 6.135 4.19031 4.245 6.50031 4.245V6.15L11.1053 3.27L6.50031 0.375V2.28C3.09531 2.28 0.320312 5.055 0.320312 8.46C0.320313 11.85 3.09531 14.625 6.50031 14.625C9.90531 14.625 12.6803 11.85 12.6803 8.445C12.6803 7.32 12.3653 6.255 11.8403 5.34Z\"\r\n fill=\"#8D8D8D\"\r\n />\r\n </svg>\r\n`;\r\n\r\nconst AuthorizationRow = (props: {\r\n id: string;\r\n value: string;\r\n isChecked?: boolean;\r\n isLoading: boolean;\r\n willDelete?: boolean;\r\n isDeleting?: boolean;\r\n error?: string;\r\n status: 'VERIFYING' | 'CONNECTED' | 'ERROR' | 'IDLE' | null;\r\n handleChange?: (id: string) => void;\r\n handleReverify?: () => void;\r\n handleDelete?: (shouldDelete: boolean) => void;\r\n handleWillDelete?: () => void;\r\n}) => {\r\n const {\r\n id,\r\n value,\r\n isChecked,\r\n status = 'IDLE',\r\n isDeleting = false,\r\n willDelete = false,\r\n handleChange,\r\n handleReverify,\r\n handleDelete = () => null,\r\n handleWillDelete = () => null,\r\n error,\r\n } = props;\r\n return html`\r\n <div class=${styles.checkboxRow}>\r\n <div class=${styles.radio}>\r\n <${Radio}\r\n id=${id}\r\n value=${value}\r\n isChecked=${isChecked}\r\n onChange=${handleChange}\r\n />\r\n </div>\r\n <div class=${styles.statusWrap}>\r\n <div class=${styles.status}>\r\n <div>\r\n ${status === 'VERIFYING' &&\r\n !isDeleting &&\r\n html`<div class=${styles.statusOrange} />\r\n Verifying <${Loader} /> `}\r\n </div>\r\n <div>\r\n ${status === 'CONNECTED' &&\r\n !error &&\r\n !isDeleting &&\r\n html`<div class=${styles.statusGreen} />\r\n Connected`}\r\n </div>\r\n <div>\r\n ${status === 'ERROR' &&\r\n !isDeleting &&\r\n html`<div class=${styles.statusRed} />\r\n Failed\r\n <div onclick=${handleReverify}><${Resend} /></div>`}\r\n </div>\r\n ${isDeleting && html`<${Loader} />`}\r\n ${error &&\r\n !isDeleting &&\r\n !(status === 'VERIFYING') &&\r\n html`<div class=${styles.error}>${error}</div>`}\r\n </div>\r\n </div>\r\n ${willDelete &&\r\n !isDeleting &&\r\n html` <${Confirmation} callback=${handleDelete} /> `}\r\n ${!(status === 'VERIFYING' || isDeleting || willDelete) &&\r\n html`\r\n <div class=${styles.deleteIcon} onclick=${handleWillDelete}>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 15 15\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path d=\"M1.5 4.1999H13.65\" stroke=\"#F05C42\" />\r\n <path\r\n d=\"M11.6254 5.5498V6.2248L10.9504 13.6498H4.20039L3.52539 6.2248V5.5498\"\r\n stroke=\"#F05C42\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path\r\n d=\"M5.55078 3.525V2.175C5.55078 1.80221 5.85299 1.5 6.22578 1.5H8.92578C9.29857 1.5 9.60078 1.80221 9.60078 2.175V3.525\"\r\n stroke=\"#F05C42\"\r\n />\r\n </svg>\r\n </div>\r\n `}\r\n </div>\r\n `;\r\n};\r\n\r\nclass AuthSelector extends Component<\r\n AuthSelectorPropsType,\r\n AuthSelectorStateType\r\n> {\r\n static contextType = AppContext;\r\n\r\n constructor(props: AuthSelectorPropsType) {\r\n super(props);\r\n this.state = {\r\n isLoading: false,\r\n fetched: false,\r\n willDeleteAuthWithIndex: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (isBrowser())\r\n window.addEventListener('message', this.onAuthResponseReceived);\r\n\r\n // in preview mode, auto-verify the auth we pass\r\n const { stepId, stepMapping } = this.props;\r\n const auth = stepMapping[stepId].selectedAuthId;\r\n const authIndex = stepMapping[stepId].authorizations.findIndex(\r\n (el) => el.authorizationId === auth,\r\n );\r\n const authStatus = this.getAuthStatus(\r\n stepMapping[stepId].authorizations[authIndex],\r\n );\r\n // auth is selected but is in idle state\r\n if (stepMapping[stepId].selectedAuthId && authStatus === 'IDLE') {\r\n this.verifyAuth(authIndex, true);\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: AuthSelectorPropsType) {\r\n const { stepId, stepMapping } = this.props;\r\n const step = stepMapping[stepId];\r\n const authId = step.selectedAuthId;\r\n\r\n const authIndex = stepMapping[stepId].authorizations.findIndex(\r\n (el) => el.authorizationId === authId,\r\n );\r\n\r\n const auth = stepMapping[stepId].authorizations[authIndex];\r\n\r\n const authStatus = this.getAuthStatus(\r\n stepMapping[stepId].authorizations[authIndex],\r\n );\r\n\r\n // verify auth whenever we select a new one\r\n // if (authId !== prevProps.stepMapping[stepId].selectedAuthId && authIndex) {\r\n // console.log('verifying 1');\r\n\r\n // this.verifyAuth(authIndex);\r\n // }\r\n if (\r\n step.authorizations.length ===\r\n prevProps.stepMapping[stepId].authorizations.length + 1\r\n ) {\r\n // auth was added so we verify\r\n this.verifyAuth(step.authorizations.length - 1);\r\n }\r\n // verify auth in edit mode when step changes\r\n if (\r\n authStatus === 'IDLE' &&\r\n !auth.isVerifying &&\r\n !auth.isVerified &&\r\n !this.state.isLoading\r\n ) {\r\n this.verifyAuth(authIndex, true);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (isBrowser())\r\n window.removeEventListener('message', this.onAuthResponseReceived);\r\n }\r\n\r\n private verifyAuth = (authIndex: number, override?: boolean) => {\r\n const { stepId } = this.props;\r\n const auth = this.props.stepMapping[stepId].authorizations[authIndex];\r\n\r\n if (!auth) return;\r\n\r\n if (!this.props.genericData.isPreviewMode && auth.isVerified) {\r\n this.props.onAuthSelected(auth.authorizationId, true, !!override);\r\n this.context.eventEmitter.emit('did-select-authorization', {\r\n authorizationId: Number(auth.authorizationId),\r\n });\r\n return;\r\n }\r\n\r\n this.setState({ isLoading: true });\r\n this.props.toggleVerifyAuthorizationFlag({\r\n stepId,\r\n authId: auth.authorizationId,\r\n isVerifying: true,\r\n });\r\n\r\n this.props.apiHandler\r\n .verifyOAuth(auth.authorizationId)\r\n .then((res) => {\r\n if (res) {\r\n this.props.onAuthSelected(auth.authorizationId, true, !!override);\r\n this.context.eventEmitter.emit('did-select-authorization', {\r\n authorizationId: Number(auth.authorizationId),\r\n });\r\n } else {\r\n this.props.onAuthSelected(auth.authorizationId, false, !!override);\r\n }\r\n })\r\n .catch((err) => console.error(err))\r\n .finally(() => {\r\n this.props.toggleVerifyAuthorizationFlag({\r\n stepId,\r\n authId: auth.authorizationId,\r\n isVerifying: false,\r\n });\r\n this.setState({ isLoading: false });\r\n });\r\n };\r\n\r\n private willDelete = (authIndex: number) => {\r\n this.setState({\r\n willDeleteAuthWithIndex: authIndex,\r\n });\r\n };\r\n\r\n private deleteAuth = (authIndex: number) => {\r\n const { stepId } = this.props;\r\n const auth = this.props.stepMapping[stepId].authorizations[authIndex];\r\n\r\n this.props.toggleDeleteAuthorizationFlag({\r\n stepId,\r\n authId: auth.authorizationId,\r\n isDeleting: true,\r\n error: '',\r\n });\r\n\r\n this.context.eventEmitter.emit('did-begin-remove-authorization', {\r\n authorizationId: Number(auth.authorizationId),\r\n });\r\n\r\n this.props.apiHandler\r\n .deleteAuth(auth.authorizationId)\r\n .then((res) => {\r\n if (res?.status === 200) {\r\n this.props.removeAuthorization({\r\n stepId,\r\n authId: auth.authorizationId,\r\n });\r\n this.context.eventEmitter.emit('did-remove-authorization', {\r\n authorizationId: Number(auth.authorizationId),\r\n });\r\n } else if (res?.status === 405) {\r\n // we have a deletion error\r\n this.props.toggleDeleteAuthorizationFlag({\r\n stepId,\r\n authId: auth.authorizationId,\r\n isDeleting: false,\r\n error: `${res.data}`,\r\n });\r\n } else {\r\n this.props.toggleDeleteAuthorizationFlag({\r\n stepId,\r\n authId: auth.authorizationId,\r\n isDeleting: false,\r\n error: 'An unexpected error occurred',\r\n });\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n })\r\n .finally(() => this.setState({ willDeleteAuthWithIndex: null }));\r\n };\r\n\r\n private onAuthResponseReceived = (messageEvent: MessageEvent<AuthData>) => {\r\n if (isAuthMessage(messageEvent) && messageEvent.data.activity_name) {\r\n console.info(messageEvent.data);\r\n if (this.props.stepId) {\r\n const { stepId } = this.props;\r\n const authApp = this.props.stepMapping[stepId]?.step?.activity?.app;\r\n if (!messageEvent.data.already_exists) {\r\n this.props.addAuthorization({\r\n stepId: this.props.stepId,\r\n authData: {\r\n authorizationId: messageEvent.data.authorization_id,\r\n userIdentity: messageEvent.data.user_identity,\r\n disableLink: '',\r\n authType: '',\r\n isVerified: false,\r\n didFetchStatus: false,\r\n isVerifying: false,\r\n isDeleting: false,\r\n error: '',\r\n },\r\n });\r\n } else {\r\n this.props.setStepAuthId({\r\n stepId: this.props.stepId,\r\n authId: Number(messageEvent.data.authorization_id),\r\n });\r\n }\r\n this.context.eventEmitter.emit('did-add-authorization', {\r\n identity: messageEvent.data.user_identity,\r\n authorizationId: Number(messageEvent.data.authorization_id),\r\n flowId: this.props.genericData.templateId,\r\n appId: authApp.id || '',\r\n appName: authApp?.name,\r\n appIcon: authApp?.icon_url,\r\n alreadyExists: messageEvent.data.already_exists,\r\n });\r\n }\r\n }\r\n };\r\n\r\n private getAuthStatus = (auth: Authorization) => {\r\n if (!auth) return null;\r\n let status = 'IDLE';\r\n if (auth.isVerified && auth.didFetchStatus) status = 'CONNECTED';\r\n if (!auth.isVerified && auth.didFetchStatus) status = 'ERROR';\r\n if (auth.isVerifying) status = 'VERIFYING';\r\n return status;\r\n };\r\n\r\n private getError = () => {\r\n const { stepId } = this.props;\r\n const step = this.props.stepMapping[stepId];\r\n if (!step.authorizations) {\r\n return `Please add a valid ${step.step.activity.app.name} account`;\r\n }\r\n return `Please select a valid ${step.step.activity.app.name} account`;\r\n };\r\n\r\n public openAuthWindow = () => {\r\n const { stepMapping, stepId } = this.props;\r\n const selectedStep = stepMapping[stepId].step;\r\n if (selectedStep) {\r\n const url = this.context.apiHandler.getAuthUrl(\r\n selectedStep.authorization_type.id,\r\n );\r\n openPopupWindow(url, 'Auth Window', window, 800, 600);\r\n }\r\n };\r\n\r\n render() {\r\n const { stepId, showErrors = false } = this.props;\r\n const step = this.props.stepMapping[stepId];\r\n const { authorizations } = step;\r\n\r\n return html`\r\n <div class=\"${styles.authSelectorWrap} integry-container__auth-selector\">\r\n <${Label}\r\n title=\"Connect account\"\r\n description=${`Select your ${step.step.activity.app.name} account`}\r\n isRequired=${true}\r\n />\r\n <div class=${styles.rows}>\r\n ${authorizations.map(\r\n (el, index) => html`<${AuthorizationRow}\r\n id=${el.authorizationId}\r\n value=${el.userIdentity}\r\n status=${this.getAuthStatus(el)}\r\n isChecked=${el.authorizationId === step.selectedAuthId}\r\n isDeleting=${el.isDeleting}\r\n willDelete=${this.state.willDeleteAuthWithIndex === index}\r\n error=${el.error}\r\n handleChange=${() => this.verifyAuth(index)}\r\n handleReverify=${() => this.verifyAuth(index)}\r\n handleDelete=${(shouldDelete: boolean) =>\r\n shouldDelete\r\n ? this.deleteAuth(index)\r\n : this.setState({ willDeleteAuthWithIndex: null })}\r\n handleWillDelete=${() => this.willDelete(index)}\r\n />`,\r\n )}\r\n </div>\r\n <div class=${showErrors ? `${styles.error}` : ''}>\r\n <${Button}\r\n onClick=${() =>\r\n !this.props.genericData.isPreviewMode && this.openAuthWindow()}\r\n label=${`Add ${step.step.activity.app.name} account`}\r\n type=${ButtonTypes.SECONDARY}\r\n disabled=${this.state.isLoading ||\r\n this.props.genericData.isPreviewMode}\r\n tooltip=${this.props.genericData.isPreviewMode &&\r\n 'New accounts cannot be added in preview mode'}\r\n >\r\n <//>\r\n </div>\r\n ${showErrors && html`<${ErrorMessage}>${this.getError()}<//>`}\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nexport default connect<\r\n AuthSelectorPropsType,\r\n AuthSelectorStateType,\r\n StoreType,\r\n unknown\r\n>(\r\n ['stepMapping', 'genericData'],\r\n actionFunctions,\r\n)(AuthSelector);\r\n","import { html } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface ListBoxItemProps {\r\n value: string;\r\n id: string;\r\n isSelected?: boolean;\r\n onClick(): void;\r\n}\r\n\r\nconst ListBoxItem = (props: ListBoxItemProps) => {\r\n const { id, value, isSelected, onClick } = props;\r\n return html`\r\n <span\r\n class=${`${styles.listboxItem} ${isSelected ? styles.selected : ''}`}\r\n data-value=${id}\r\n onclick=${onClick}\r\n >\r\n ${isSelected &&\r\n html`\r\n <svg\r\n width=\"7\"\r\n height=\"7\"\r\n viewBox=\"0 0 7 7\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n stroke=\"#333\"\r\n >\r\n <path\r\n d=\"M6.33333 1.5L2.83522 5.5L1 3.40148\"\r\n stroke-width=\"1.2\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n `}\r\n ${value}\r\n </span>\r\n `;\r\n};\r\n\r\nexport { ListBoxItem, ListBoxItemProps };\r\n","import { html } from 'htm/preact';\r\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\r\n\r\nimport { Label } from '@/components/Label';\r\nimport { useOnClickOutside } from '@/hooks/useOnClickOutside';\r\nimport { ThreeDotLoader } from '@/components/ThreeDotLoader';\r\nimport { IntegryAPI } from '@/modules/api';\r\nimport { ErrorMessage } from '@/components/ErrorMessage';\r\nimport { ListBoxItem, ListBoxItemProps } from './ListBoxItem';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface ListBoxProps {\r\n title: string;\r\n description: string;\r\n items: Omit<ListBoxItemProps, 'onClick'>[];\r\n value?: string;\r\n onChange(val: string): void;\r\n isOpen?: boolean;\r\n isDynamic?: boolean;\r\n endpointUrl?: string;\r\n placeholder: string | null;\r\n isRequired?: boolean;\r\n showStepValidation?: boolean;\r\n responseMapper?(input: unknown): Omit<ListBoxItemProps, 'onClick'>[];\r\n apiHandler: IntegryAPI;\r\n endpointData: string;\r\n}\r\n\r\nconst ListBox = (props: ListBoxProps) => {\r\n const {\r\n title,\r\n description,\r\n items: passedItems = [],\r\n value = null,\r\n isOpen = false,\r\n isDynamic = false,\r\n endpointData,\r\n isRequired = false,\r\n placeholder,\r\n onChange = () => null,\r\n showStepValidation = false,\r\n responseMapper = (input: { id: string; value: string }[]) => input,\r\n } = props;\r\n\r\n const [items, setItems] = useState<Omit<ListBoxItemProps, 'onClick'>[]>(\r\n passedItems,\r\n );\r\n const [loading, setLoading] = useState(\r\n isDynamic && !passedItems.length && !value,\r\n );\r\n\r\n const [isDropdownOpen, setIsDropdownOpen] = useState(isOpen);\r\n\r\n const dropdownRef = useRef<HTMLDivElement>();\r\n\r\n useOnClickOutside(\r\n dropdownRef,\r\n () => isDropdownOpen && setIsDropdownOpen(false),\r\n );\r\n\r\n useEffect(() => {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow\r\n const { apiHandler, isDynamic, endpointUrl } = props;\r\n if (isDynamic && endpointUrl) {\r\n setLoading(true);\r\n let data;\r\n try {\r\n data = JSON.parse(endpointData);\r\n } catch (error) {\r\n data = '';\r\n }\r\n apiHandler\r\n .callDynamicDataEndpoint<\r\n {\r\n id: string;\r\n value: string;\r\n }[]\r\n >(new URL(endpointUrl), data)\r\n .then((res) => {\r\n setLoading(false);\r\n if (res) {\r\n setItems(responseMapper(res));\r\n }\r\n });\r\n }\r\n }, [endpointData]);\r\n\r\n const toggleDropdown = () => {\r\n setIsDropdownOpen((prev) => !prev);\r\n };\r\n\r\n const onEnterClicked = () => {\r\n toggleDropdown();\r\n };\r\n\r\n const getSelectedItem = useMemo(() => {\r\n const index = items.findIndex((el) => el.id === value);\r\n return index > -1 ? items[index].value : 'Please Select...';\r\n }, [items, value]);\r\n\r\n return html`\r\n <div ref=${dropdownRef} class=\"${styles.listboxGroupWrapper}\">\r\n <fieldset>\r\n ${title &&\r\n html`\r\n <${Label}\r\n title=${title}\r\n description=${description}\r\n isRequired=${isRequired}\r\n />\r\n `}\r\n <div class=${styles.listbox}>\r\n <div\r\n class=${`${styles.customSelect} ${\r\n isDropdownOpen ? styles.open : ''\r\n }`}\r\n >\r\n <div\r\n class=${`${styles.customSelectTrigger} ${\r\n showStepValidation &&\r\n !value &&\r\n isRequired &&\r\n !isDropdownOpen &&\r\n styles.error\r\n }`}\r\n role=\"button\"\r\n tabindex=${0}\r\n onclick=${toggleDropdown}\r\n onkeyup=${(e: KeyboardEvent) => {\r\n if (e.key === 'Enter') {\r\n onEnterClicked();\r\n }\r\n }}\r\n >\r\n <span class=${value && styles.selected}>\r\n ${loading\r\n ? html`Loading`\r\n : html`\r\n ${items.length > 0\r\n ? html`\r\n ${value\r\n ? html`${getSelectedItem}`\r\n : html`${placeholder || 'Please Select...'}`}\r\n `\r\n : html`No options`}\r\n `}\r\n </span>\r\n\r\n <div ref=${dropdownRef} style=\"display: flex;\">\r\n ${loading\r\n ? html`<${ThreeDotLoader} color=\"#ababab\"><//>`\r\n : html`\r\n <div\r\n class=${`${styles.arrow} ${\r\n isDropdownOpen ? styles.close : ''\r\n }`}\r\n >\r\n <svg\r\n width=\"12\"\r\n height=\"8\"\r\n viewBox=\"0 0 12 8\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M11 1.5L6 6.5L1 1.5\"\r\n stroke=\"#999999\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n `}\r\n </div>\r\n </div>\r\n <div class=${styles.customOptions}>\r\n ${items.length > 0 &&\r\n !loading &&\r\n html`\r\n ${items.map(\r\n (el) => html`\r\n <${ListBoxItem}\r\n key=${el.id}\r\n id=${el.id}\r\n value=${el.value}\r\n isSelected=${value === el.id}\r\n onClick=${() => {\r\n onChange(el.id);\r\n setIsDropdownOpen(false);\r\n }}\r\n ><//>\r\n `,\r\n )}\r\n `}\r\n </div>\r\n </div>\r\n ${showStepValidation &&\r\n !value &&\r\n !isDropdownOpen &&\r\n isRequired &&\r\n html` <${ErrorMessage}>Please select an option</${ErrorMessage}>`}\r\n </div>\r\n </fieldset>\r\n </div>\r\n `;\r\n};\r\n\r\nexport { ListBox, ListBoxProps };\r\n","import { html } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nconst LargeLoader = () => html`\r\n <svg\r\n class=${styles.loader}\r\n width=\"26\"\r\n height=\"25\"\r\n viewBox=\"0 0 26 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M15.7173 0.29892C13.1175 -0.280085 10.4006 -0.0135017 7.96294 1.0598C5.52524 2.13311 3.49412 3.95702 2.16568 6.26562C0.837246 8.57421 0.280965 11.2468 0.57794 13.8937C0.874915 16.5406 2.00962 19.0235 3.81662 20.9803C5.62362 22.9371 8.00843 24.2656 10.6234 24.772C13.2383 25.2784 15.9466 24.9363 18.3535 23.7956C20.7604 22.6548 22.74 20.7751 24.0036 18.4304C25.2673 16.0857 25.749 13.3987 25.3785 10.7611L24.1406 10.935C24.4741 13.3088 24.0406 15.7272 22.9033 17.8374C21.766 19.9476 19.9844 21.6393 17.8182 22.666C15.652 23.6927 13.2145 24.0006 10.861 23.5448C8.50758 23.089 6.36125 21.8934 4.73495 20.1323C3.10866 18.3711 2.08742 16.1366 1.82015 13.7543C1.55287 11.3721 2.05352 8.96679 3.24911 6.88905C4.44471 4.81132 6.27272 3.1698 8.46665 2.20382C10.6606 1.23785 13.1057 0.997923 15.4456 1.51903L15.7173 0.29892Z\"\r\n fill=\"#EFEFEF\"\r\n />\r\n <path\r\n d=\"M25.3833 10.7959C25.0346 8.26181 23.9168 5.8957 22.1808 4.01695C20.4449 2.13819 18.1743 0.83725 15.6756 0.289715L15.4081 1.51074C17.6569 2.00353 19.7004 3.17437 21.2628 4.86525C22.8251 6.55613 23.8311 8.68563 24.145 10.9663L25.3833 10.7959Z\"\r\n fill=\"#C4C4C4\"\r\n />\r\n </svg>\r\n`;\r\n\r\nexport { LargeLoader };\r\n","import { html } from 'htm/preact';\r\nimport { useEffect } from 'preact/hooks';\r\nimport { ErrorMessage } from '../ErrorMessage';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface SelectProps {\r\n ariaLabel: string;\r\n options: { label: string; key: string }[];\r\n placeholder: string;\r\n value?: string;\r\n showUnselectedValue?: boolean;\r\n unselectedText?: string;\r\n loading?: boolean;\r\n isRequired?: boolean;\r\n showStepValidation?: boolean;\r\n onChange?: (index: number) => void;\r\n}\r\n\r\n/**\r\n * Input component\r\n *\r\n */\r\nconst Select = (props: SelectProps) => {\r\n const {\r\n placeholder,\r\n ariaLabel,\r\n value,\r\n options = [],\r\n showUnselectedValue = false,\r\n unselectedText = 'Select a value',\r\n isRequired = false,\r\n showStepValidation = false,\r\n onChange = () => null,\r\n } = props;\r\n\r\n const handleInputChange = (e: MouseEvent) => {\r\n if (e.currentTarget instanceof HTMLSelectElement) {\r\n const { value: newValue } = e.currentTarget;\r\n const val = options.findIndex((el) => `${el.key}` === `${newValue}`);\r\n onChange(val);\r\n }\r\n };\r\n\r\n // if value cannot be found in options, unset the value\r\n useEffect(() => {\r\n if (options.findIndex((el) => el.key === value) === -1) {\r\n onChange(-1);\r\n }\r\n }, []);\r\n\r\n return html`\r\n <div class=${styles.selectWrapper}>\r\n <select\r\n aria-label=${ariaLabel}\r\n onchange=${handleInputChange}\r\n class=${value && styles.selectedVal}\r\n >\r\n ${showUnselectedValue &&\r\n html` <option value=\"\">${unselectedText}</option> `}\r\n ${value === undefined &&\r\n html`\r\n <option value=\"\" disabled selected hidden>${placeholder}</option>\r\n `}\r\n ${options.map(\r\n (el) => html`\r\n <option value=${el.key} selected=${value === el.key}>\r\n ${el.label}\r\n </option>\r\n `,\r\n )}\r\n </select>\r\n <svg\r\n width=\"12\"\r\n height=\"8\"\r\n viewBox=\"0 0 12 8\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M11 1.5L6 6.5L1 1.5\"\r\n stroke=\"#999999\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n ${isRequired &&\r\n !value &&\r\n showStepValidation &&\r\n html`<${ErrorMessage}>Please map this required field<//>`}\r\n `;\r\n};\r\n\r\nexport { Select, SelectProps };\r\n","import { html } from 'htm/preact';\r\nimport { connect } from 'unistore/preact';\r\nimport { useContext, useEffect, useRef, useState } from 'preact/hooks';\r\nimport { TemplateField } from '@/interfaces';\r\nimport AppContext from '@/contexts/AppContext';\r\nimport { StoreType } from '@/types/store';\r\nimport { LargeLoader } from '@/components/LargeLoader';\r\nimport { actionFunctions } from '@/store';\r\nimport { Label } from '@/components/Label';\r\nimport { Select } from '@/components/BasicSelect';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport type MappingUiProps = {\r\n stepId: number;\r\n templateFields: TemplateField[];\r\n showStepValidation?: boolean;\r\n endpointData: {\r\n authId: number;\r\n fieldsData: Record<string, string | number>;\r\n };\r\n} & StoreType;\r\n\r\ninterface DynamicDataItem {\r\n fieldId: number;\r\n id: string | null;\r\n title: string | null;\r\n type: string;\r\n isNotDynamic?: boolean;\r\n}\r\n\r\nconst MappingUI = (props: MappingUiProps) => {\r\n const [loading, setLoading] = useState<boolean>(true);\r\n const [rootDataLoading, setRootDataLoading] = useState<boolean>(false);\r\n const [dynamicDataLoading, setDynamicDataLoading] = useState<boolean>(false);\r\n const [fieldsRef, setFieldsRef] = useState<number[]>([]);\r\n const [dynamicItems, setDynamicItems] = useState<DynamicDataItem[]>([]);\r\n const [dynamicListId, setDynamicListId] = useState('');\r\n // const [additionalData, setAdditionalData] = useState({});\r\n\r\n const context = useContext(AppContext);\r\n\r\n const dynamicFieldIdRef = useRef('');\r\n\r\n useEffect(() => {\r\n if (dynamicItems.length > 0) {\r\n // eslint-disable-next-line array-callback-return\r\n dynamicItems.map((el, index) => {\r\n const ele = props.stepDataMapping[props.stepId][el.fieldId];\r\n if (!ele.isDynamic && ele.value) {\r\n const parsedValue = ele.value.slice(1, -1);\r\n if (parsedValue) setFieldsRef((prev) => [...prev, index]);\r\n } else if (ele.isDynamic && ele.objectValue && el.id) {\r\n const parsedValues = ele.objectValue || {};\r\n if (parsedValues[el.id]) {\r\n setFieldsRef((prev) => [...prev, index]);\r\n }\r\n }\r\n });\r\n }\r\n }, [dynamicItems]);\r\n\r\n useEffect(() => {\r\n const triggerStep = props.genericData.stepWithActivityOutput;\r\n if (triggerStep) {\r\n const { id: triggerStepId } = triggerStep;\r\n // eslint-disable-next-line no-use-before-define\r\n const data = getVisibleFieldsDataOnRootStep(triggerStepId);\r\n // eslint-disable-next-line no-use-before-define\r\n setRootStepData(data);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n // fetch the dynamic field in case it exists\r\n const dynamicFieldToRender = props.templateFields.filter(\r\n (el) => el.activity_field && el.activity_field.type === 'DYNAMIC',\r\n )[0];\r\n\r\n if (dynamicFieldToRender) {\r\n // set our dynamic list ID\r\n setDynamicListId(`${dynamicFieldToRender.id}`);\r\n }\r\n\r\n // get a list of text fields that will be part of the mapping\r\n const textFieldsToRender = props.templateFields\r\n .filter(\r\n (el) =>\r\n el.activity_field &&\r\n el.activity_field.type === 'TEXTFIELD' &&\r\n el.is_visible,\r\n )\r\n .map((el) => ({\r\n fieldId: el.id,\r\n id: el.activity_field && el.activity_field.machine_name,\r\n title: el.activity_field && el.activity_field.title,\r\n type: 'text',\r\n isNotDynamic: true,\r\n }));\r\n\r\n // grab activity output data since that is used in both cases\r\n // if (!props.activityOutputData) {\r\n // console.log('props.activity output data is null');\r\n // // eslint-disable-next-line no-use-before-define\r\n // setRootStepData();\r\n // }\r\n\r\n // if dynamic field exists, fetch the fields and show those\r\n if (\r\n dynamicFieldToRender &&\r\n dynamicFieldToRender.activity_field &&\r\n dynamicFieldToRender.id !== Number(dynamicListId)\r\n ) {\r\n const mappingField =\r\n props.parentChildMapping[props.stepId][\r\n dynamicFieldToRender.activity_field.machine_name\r\n ];\r\n\r\n let valuesMapField = '';\r\n if (mappingField) {\r\n const valuesMap = mappingField.parentFields?.reduce((prev, next) => {\r\n const parentFieldId =\r\n props.parentChildMapping[props.stepId][next].fieldId;\r\n return {\r\n ...prev,\r\n [parentFieldId]:\r\n props.stepDataMapping[props.stepId][parentFieldId].value,\r\n };\r\n }, {});\r\n valuesMapField = JSON.stringify(valuesMap);\r\n }\r\n\r\n // in case the parent field value changes, refetch the custom fields\r\n if (\r\n valuesMapField !== dynamicFieldIdRef.current ||\r\n dynamicFieldToRender.id !== Number(dynamicListId)\r\n ) {\r\n setLoading(true);\r\n\r\n // eslint-disable-next-line no-use-before-define\r\n fetchDynamicFieldData(dynamicFieldToRender)\r\n ?.then((res) => {\r\n setLoading(false);\r\n // props.resetCustomMappingData(props.stepId);\r\n setFieldsRef([]);\r\n dynamicFieldIdRef.current = valuesMapField;\r\n if (Array.isArray(res)) {\r\n setDynamicItems([\r\n ...textFieldsToRender,\r\n ...res.map((el) => ({\r\n ...el,\r\n fieldId: dynamicFieldToRender.id,\r\n })),\r\n ]);\r\n } else {\r\n setDynamicItems(textFieldsToRender);\r\n }\r\n })\r\n .catch((err) => console.error(err));\r\n }\r\n } else if (!dynamicItems.length) {\r\n // we dont have any dynamic fields so,\r\n // just set the text fields as items to render\r\n setDynamicItems([...textFieldsToRender]);\r\n setLoading(false);\r\n }\r\n }, [props.stepDataMapping[props.stepId]]);\r\n\r\n const getVisibleFieldsDataOnRootStep = (\r\n stepId: number,\r\n ): {\r\n [machineName: string]: string;\r\n } => {\r\n const fields = props.stepDataMapping[stepId];\r\n const requiredFieldsWithValues = Object.keys(fields)\r\n .filter((el) => fields[Number(el)].value)\r\n .reduce((prev, curr) => {\r\n const currentItem = fields[Number(curr)];\r\n return {\r\n ...prev,\r\n [currentItem.machineName]: currentItem.value,\r\n };\r\n }, {});\r\n\r\n return requiredFieldsWithValues;\r\n };\r\n\r\n const setRootStepData = async (\r\n additionalData: Record<string, string> | undefined,\r\n ) => {\r\n const triggerStep = props.genericData.stepWithActivityOutput;\r\n if (triggerStep) {\r\n const { id: triggerStepId } = triggerStep;\r\n\r\n if (triggerStep.activity.activity_output_url) {\r\n setRootDataLoading(true);\r\n context?.apiHandler\r\n .callDynamicDataEndpoint<\r\n {\r\n text: string;\r\n value: string;\r\n }[]\r\n >(new URL(triggerStep.activity.activity_output_url), {\r\n authorization_id: `${props.stepMapping[triggerStepId].selectedAuthId}`,\r\n ...additionalData,\r\n })\r\n .then((res) => {\r\n setRootDataLoading(false);\r\n if (res)\r\n props.setActivityOutputData({\r\n activityOutputData: res,\r\n });\r\n });\r\n } else {\r\n setRootDataLoading(false);\r\n }\r\n if (triggerStep.activity.dynamic_field_data_endpoint) {\r\n setDynamicDataLoading(true);\r\n context?.apiHandler\r\n .callDynamicDataEndpoint<{\r\n [fieldId: string]: (string | Record<string, string>)[];\r\n }>(new URL(triggerStep.activity.dynamic_field_data_endpoint), {\r\n authorization_id: `${props.stepMapping[triggerStepId].selectedAuthId}`,\r\n ...additionalData,\r\n })\r\n .then((res) => {\r\n setDynamicDataLoading(false);\r\n if (res)\r\n props.setDynamicFieldData({\r\n dynamicFieldData: res,\r\n });\r\n });\r\n } else {\r\n setDynamicDataLoading(false);\r\n }\r\n }\r\n };\r\n\r\n const fetchDynamicFieldData = (templateField: TemplateField) => {\r\n const dynamicEndpoint = `${templateField.activity_field?.dynamic_field_src}`;\r\n return context?.apiHandler.callDynamicDataEndpoint<DynamicDataItem[]>(\r\n new URL(dynamicEndpoint),\r\n {\r\n authorization_id: `${props.endpointData.authId}`,\r\n ...props.endpointData.fieldsData,\r\n },\r\n );\r\n };\r\n\r\n const onMappingValueSelected = (\r\n index: number,\r\n item: DynamicDataItem,\r\n isRequired: boolean,\r\n rowIndex: number,\r\n ) => {\r\n const activityOutputObject = props.activityOutputData?.[index];\r\n const arrayIndex = fieldsRef.findIndex((el) => el === rowIndex);\r\n if (index < 0) {\r\n setFieldsRef((prev) => prev.filter((el) => el !== rowIndex));\r\n if (item.isNotDynamic) {\r\n props.setStepFieldData({\r\n stepId: `${props.stepId}`,\r\n fieldId: `${item.fieldId}`,\r\n value: '',\r\n isRequired,\r\n });\r\n } else if (dynamicListId) {\r\n props.setStepMappingData({\r\n stepId: props.stepId,\r\n fieldId: Number(dynamicListId),\r\n id: `${item.id}`,\r\n value: null,\r\n });\r\n }\r\n } else if (activityOutputObject) {\r\n if (arrayIndex < 0) {\r\n setFieldsRef((prev) => [...prev, rowIndex]);\r\n }\r\n if (item.isNotDynamic) {\r\n props.setStepFieldData({\r\n stepId: `${props.stepId}`,\r\n fieldId: `${item.fieldId}`,\r\n value: `{${activityOutputObject.value}}`,\r\n isRequired,\r\n });\r\n } else if (dynamicListId) {\r\n props.setStepMappingData({\r\n stepId: props.stepId,\r\n fieldId: Number(dynamicListId),\r\n id: `${item.id}`,\r\n value: `{${activityOutputObject.value}}`,\r\n });\r\n }\r\n }\r\n props.verifyStepValidity(props.stepId);\r\n };\r\n\r\n const triggerApp = Object.keys(props.stepMapping)\r\n ?.map((stepId) => props.stepMapping[stepId])\r\n ?.filter((el) => el.step.activity.type === 'TRIGGER')[0];\r\n\r\n return html`\r\n <div>\r\n <${Label}\r\n title=\"Map data\"\r\n description=\"Please map fields you want to use from both apps\"\r\n />\r\n <div>\r\n ${loading || rootDataLoading || dynamicDataLoading\r\n ? html`<div class=${styles.loader}><${LargeLoader} /></div>`\r\n : html`\r\n <div class=${styles.mappingWrap}>\r\n <div class=${styles.mappingRow}>\r\n <div class=${styles.mappingHeaderItem}>\r\n <img\r\n src=${props.stepMapping[props.stepId].step.activity.app\r\n .icon_url}\r\n />\r\n <div>\r\n ${`${\r\n props.stepMapping[props.stepId].step.activity.app.name\r\n } Field`}\r\n </div>\r\n </div>\r\n <div class=${styles.sampleData}>Sample Data</div>\r\n <div class=${styles.mappingHeaderItem}>\r\n <img\r\n src=${triggerApp\r\n ? triggerApp.step.activity.app.icon_url\r\n : props.genericData.brandingApp?.icon_url}\r\n />\r\n <div>\r\n ${triggerApp\r\n ? `${triggerApp.step.activity.app.name} Field`\r\n : `${props.genericData.brandingApp?.name} Field`}\r\n </div>\r\n </div>\r\n </div>\r\n ${dynamicItems.map((el, itemIndex) => {\r\n const slug = el.id || '';\r\n const ele = props.stepDataMapping[props.stepId][el.fieldId];\r\n let selectVal;\r\n let parsedVal: string | Record<string, string | number>;\r\n if (ele) {\r\n if (ele.isDynamic) {\r\n parsedVal = ele.objectValue as Record<\r\n string,\r\n string | number\r\n >;\r\n } else {\r\n parsedVal = ele.value?.slice(1, -1) as string;\r\n }\r\n if (!ele.isDynamic && parsedVal) {\r\n selectVal = parsedVal;\r\n } else if (\r\n el.id &&\r\n ele.isDynamic &&\r\n ele.objectValue &&\r\n (parsedVal as Record<string, string | number>)[slug]\r\n ) {\r\n selectVal = `${\r\n (parsedVal as Record<string, string | number>)[slug]\r\n }`.slice(1, -1);\r\n }\r\n }\r\n return html`\r\n <div class=${styles.mappingRow}>\r\n <div class=${styles.title}>\r\n ${el.title}${ele?.isRequired && html`<span>*</span>`}\r\n </div>\r\n <div class=${styles.sampleData}>\r\n ${props.dynamicFieldData &&\r\n selectVal &&\r\n props.dynamicFieldData[\r\n `{${selectVal}}`\r\n ]?.map((sample: string | Record<string, string>) =>\r\n sample ? html`<pre>${sample}</pre>` : html``,\r\n )}\r\n </div>\r\n <div class=${styles.selectBox}>\r\n <${Select}\r\n ariaLabel=\"Map a value\"\r\n placeholder=\"Please map a value\"\r\n options=${props.activityOutputData?.map((item) => ({\r\n key: item.value,\r\n label: item.text,\r\n }))}\r\n value=${selectVal}\r\n isRequired=${ele?.isRequired}\r\n showStepValidation=${props.showStepValidation}\r\n showUnselectedValue=${true}\r\n unselectedText=\"Skip\"\r\n onChange=${(index: number) =>\r\n onMappingValueSelected(\r\n index,\r\n el,\r\n ele?.isRequired ?? false,\r\n itemIndex,\r\n )}\r\n ><//>\r\n </div>\r\n </div>\r\n `;\r\n })}\r\n <div class=${styles.mappingInfo}>\r\n <div>\r\n <span>Mapped</span>\r\n <span\r\n >${fieldsRef.length}${' '}\r\n field${fieldsRef.length !== 1 ? 's' : ''}</span\r\n >\r\n </div>\r\n <div>\r\n <span>Ignored</span>\r\n <span\r\n >${dynamicItems.length - fieldsRef.length}${' '}\r\n field${dynamicItems.length - fieldsRef.length !== 1\r\n ? 's'\r\n : ''}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n `}\r\n </div>\r\n </div>\r\n `;\r\n};\r\n\r\nexport default connect<MappingUiProps, unknown, StoreType, unknown>(\r\n [\r\n 'stepState',\r\n 'genericData',\r\n 'stepMapping',\r\n 'activityOutputData',\r\n 'dynamicFieldData',\r\n 'stepDataMapping',\r\n 'parentChildMapping',\r\n ],\r\n actionFunctions,\r\n)(MappingUI);\r\n","import { html } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport interface CheckboxProps extends Partial<HTMLInputElement> {\r\n fieldId: string;\r\n id: string;\r\n value: string;\r\n description?: string;\r\n isChecked?: boolean;\r\n handleChange?: (id: string, value: boolean) => void;\r\n}\r\n\r\n/**\r\n * Checkbox component\r\n *\r\n */\r\nexport const Checkbox = (props: CheckboxProps) => {\r\n const {\r\n fieldId,\r\n id,\r\n description = null,\r\n value,\r\n isChecked = false,\r\n handleChange = () => null,\r\n } = props;\r\n\r\n const handleCheckboxChange = (e: MouseEvent) => {\r\n if (e.target instanceof HTMLInputElement) {\r\n const { name, checked } = e.target;\r\n handleChange(name, checked);\r\n }\r\n };\r\n\r\n return html`\r\n <div class=${styles.checkboxWrap}>\r\n <div class=${styles.checkbox}>\r\n <label for=${fieldId + id}>\r\n <input\r\n id=${fieldId + id}\r\n type=\"checkbox\"\r\n name=${id}\r\n value=${value}\r\n checked=${isChecked}\r\n onclick=${handleCheckboxChange}\r\n />\r\n <div class=${styles.button}>\r\n ${isChecked\r\n ? html`\r\n <svg\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M7.86364 15.5L10 13.4923L17.5 6.49357L15.3485 4.5L7.86364 11.4987L4.63636 8.50129L2.5 10.4949L5.71212 13.4923L7.86364 15.5Z\"\r\n fill=\"#5F4D86\"\r\n />\r\n <path\r\n d=\"M0 0V-2H-2V0H0ZM20 0H22V-2H20V0ZM20 20V22H22V20H20ZM0 20H-2V22H0V20ZM0 2H20V-2H0V2ZM18 0V20H22V0H18ZM20 18H0V22H20V18ZM2 20V0H-2V20H2Z\"\r\n fill=\"#5F4D86\"\r\n />\r\n </svg>\r\n `\r\n : html`\r\n <svg\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M0 0V-2H-2V0H0ZM20 0H22V-2H20V0ZM20 20V22H22V20H20ZM0 20H-2V22H0V20ZM0 2H20V-2H0V2ZM18 0V20H22V0H18ZM20 18H0V22H20V18ZM2 20V0H-2V20H2Z\"\r\n fill=\"#5F4D86\"\r\n />\r\n </svg>\r\n `}\r\n </div>\r\n <div>\r\n <div class=${styles.text}>${value}</div>\r\n ${description &&\r\n html`<div class=${styles.description}>${description}</div>`}\r\n </div>\r\n </label>\r\n </div>\r\n </div>\r\n `;\r\n};\r\n","import { html } from 'htm/preact';\r\nimport { useContext, useEffect, useRef, useState } from 'preact/hooks';\r\n\r\nimport AppContext from '@/contexts/AppContext';\r\nimport { Checkbox } from './Checkbox';\r\nimport { Label } from '../Label';\r\n\r\nimport styles from './styles.module.scss';\r\nimport { ErrorMessage } from '../ErrorMessage';\r\nimport { ThreeDotLoader } from '../ThreeDotLoader';\r\n\r\ninterface CheckboxItem {\r\n id: string;\r\n value: string;\r\n}\r\n\r\nexport interface CheckboxGroupProps {\r\n fieldId: string;\r\n title: string;\r\n description: string;\r\n isDynamic: boolean;\r\n dataSrcEndpoint?: string;\r\n ariaLabel: string;\r\n value: string;\r\n initialOptions?: CheckboxItem[];\r\n selectedItems?: string[];\r\n endpointData: string;\r\n isRequired?: boolean;\r\n showStepValidation?: boolean;\r\n onChange?: (data: string) => void;\r\n}\r\n\r\n/**\r\n * RadioGroup component\r\n *\r\n */\r\nexport const CheckboxGroup = (props: CheckboxGroupProps) => {\r\n const {\r\n fieldId,\r\n title,\r\n description,\r\n value,\r\n ariaLabel,\r\n selectedItems = [],\r\n isDynamic,\r\n endpointData,\r\n initialOptions = [],\r\n dataSrcEndpoint,\r\n isRequired = false,\r\n showStepValidation = false,\r\n onChange = () => null,\r\n } = props;\r\n\r\n const indicesRef = useRef(selectedItems);\r\n\r\n const [loading, setLoading] = useState(isDynamic);\r\n const [selectedItemIds, setSelectedItemIds] = useState<string[]>(\r\n selectedItems,\r\n );\r\n\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n const [parsedOptions, setParsedOptions] = useState<CheckboxItem[]>(\r\n Array.isArray(initialOptions) ? initialOptions : [],\r\n );\r\n\r\n const context = useContext(AppContext);\r\n\r\n useEffect(() => {\r\n if (value) {\r\n if (value === '0' && parsedOptions.length === 1) return;\r\n if (value === '1' && parsedOptions.length === 1) {\r\n setSelectedItemIds([parsedOptions[0].id]);\r\n } else {\r\n setSelectedItemIds(value.split(',').map((el) => el.trim()));\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (indicesRef.current !== selectedItemIds) {\r\n if (parsedOptions.length < 2) {\r\n onChange(selectedItemIds.length === 1 ? '1' : '0');\r\n } else {\r\n onChange(selectedItemIds.join(','));\r\n }\r\n }\r\n }, [selectedItemIds, parsedOptions]);\r\n\r\n useEffect(() => {\r\n if (isDynamic) {\r\n if (dataSrcEndpoint) {\r\n let data;\r\n try {\r\n data = JSON.parse(endpointData);\r\n } catch (parseErr) {\r\n data = '';\r\n }\r\n // call dynamic endpoint\r\n context?.apiHandler\r\n .callDynamicDataEndpoint<CheckboxItem[]>(\r\n new URL(dataSrcEndpoint),\r\n data,\r\n )\r\n .then((res) => {\r\n if (res) setParsedOptions(res);\r\n else setError(`Error loading radio options`);\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n setError('Error loading radio options');\r\n })\r\n .finally(() => setLoading(false));\r\n } else {\r\n setParsedOptions(initialOptions);\r\n setLoading(false);\r\n }\r\n } else {\r\n setParsedOptions(initialOptions);\r\n }\r\n }, []);\r\n\r\n const handleChange = (itemId: string) => {\r\n if (selectedItemIds.indexOf(itemId) > -1) {\r\n setSelectedItemIds((prev) => prev.filter((el) => el !== itemId));\r\n } else {\r\n setSelectedItemIds([...selectedItemIds, itemId]);\r\n }\r\n };\r\n\r\n return html`\r\n <div class=\"${styles.checkboxGroup}\">\r\n <fieldset>\r\n <${Label} title=${title} description=${description} //>\r\n <div\r\n class=${styles.checkboxGroupWrap}\r\n role=\"group\"\r\n aria-labelledby=${ariaLabel}\r\n >\r\n ${loading\r\n ? html`<div style=\"margin: 20px 0;\">\r\n <${ThreeDotLoader} color=\"#999\" />\r\n </div>`\r\n : html`\r\n ${error\r\n ? html`<div style=\"margin: 20px 0;\">\r\n <${ErrorMessage}>${error}<//>\r\n </div>`\r\n : html`\r\n ${parsedOptions?.map(\r\n (el) => html`\r\n <${Checkbox}\r\n fieldId=${fieldId}\r\n id=${el.id}\r\n value=${el.value}\r\n isChecked=${selectedItemIds.indexOf(el.id) > -1}\r\n handleChange=${handleChange}\r\n ><//>\r\n `,\r\n )}\r\n `}\r\n `}\r\n </div>\r\n </fieldset>\r\n ${showStepValidation &&\r\n selectedItemIds.length < 1 &&\r\n isRequired &&\r\n html` <${ErrorMessage}>Please select an option</${ErrorMessage}>`}\r\n </div>\r\n `;\r\n};\r\n","import { html, Component } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface BaseInputProps extends Partial<HTMLInputElement> {\r\n placeholder: string;\r\n value: string;\r\n control?: Component;\r\n handleChange?: (id: string) => void;\r\n handleBlur?: () => void;\r\n}\r\n\r\n/**\r\n * BaseInput component\r\n *\r\n */\r\nconst BaseInput = (props: BaseInputProps) => {\r\n const {\r\n placeholder,\r\n value,\r\n type = 'text',\r\n control,\r\n handleChange = () => null,\r\n handleBlur = () => null,\r\n } = props;\r\n\r\n const handleInputChange = (e: MouseEvent) => {\r\n if (e.currentTarget instanceof HTMLInputElement) {\r\n const { value: newValue } = e.currentTarget;\r\n handleChange(newValue);\r\n }\r\n };\r\n\r\n const handleDateChange = (e: InputEvent) => {\r\n if (\r\n e.currentTarget instanceof HTMLInputElement &&\r\n e.currentTarget.type === 'date'\r\n ) {\r\n const { value: newValue } = e.currentTarget;\r\n handleChange(newValue);\r\n }\r\n };\r\n\r\n return html`\r\n <div class=${styles.inputWrapper}>\r\n <input\r\n type=${type}\r\n placeholder=${placeholder}\r\n value=${value}\r\n onkeyup=${handleInputChange}\r\n onchange=${handleDateChange}\r\n onblur=${handleBlur}\r\n />\r\n ${control && html`<${control} //>`}\r\n </div>\r\n `;\r\n};\r\n\r\nexport { BaseInput, BaseInputProps };\r\n","import { html } from 'htm/preact';\r\nimport { useEffect, useState } from 'preact/hooks';\r\nimport { ErrorMessage } from '@/components/ErrorMessage';\r\nimport { Label } from '@/components/Label';\r\n\r\nimport { BaseInput } from '../BaseInput';\r\nimport styles from './styles.module.scss';\r\n\r\ninterface InputProps {\r\n title: string;\r\n description: string;\r\n placeholder: string;\r\n value?: string;\r\n regex: string | null;\r\n regexErrorMessage: string | null;\r\n isRequired?: boolean;\r\n showStepValidation?: boolean;\r\n onChange?: (val: string, passesRegexTest?: boolean) => void;\r\n}\r\n\r\n/**\r\n * Input component\r\n *\r\n */\r\nconst Input = (props: InputProps) => {\r\n const {\r\n title,\r\n description,\r\n placeholder,\r\n value,\r\n regex,\r\n regexErrorMessage,\r\n showStepValidation = false,\r\n isRequired = false,\r\n onChange = () => null,\r\n } = props;\r\n const [initialValue] = useState(value);\r\n const [invalidInput, setInvalidInput] = useState(false);\r\n const [showErrorOnFocusLoss, setShowErrorOnFocusLoss] = useState(false);\r\n\r\n // validate on first render\r\n useEffect(() => {\r\n if (regex) {\r\n const invalid = !new RegExp(regex).test(`${initialValue}`);\r\n setInvalidInput(invalid);\r\n }\r\n }, [regex]);\r\n\r\n const handleChange = (inputValue: string) => {\r\n if (regex) {\r\n if (!new RegExp(regex).test(inputValue)) {\r\n onChange(inputValue, false);\r\n setInvalidInput(true);\r\n } else {\r\n onChange(inputValue, true);\r\n setInvalidInput(false);\r\n }\r\n } else {\r\n onChange(inputValue);\r\n }\r\n };\r\n\r\n const validate = () => {\r\n setShowErrorOnFocusLoss(true);\r\n };\r\n\r\n return html`\r\n <div class=\"${styles.inputGroupWrapper} integry-container__input\">\r\n <fieldset>\r\n <${Label} title=${title} description=${description}\r\n isRequired=${isRequired} //>\r\n <${BaseInput}\r\n type=\"text\"\r\n placeholder=${placeholder}\r\n handleChange=${handleChange}\r\n handleBlur=${validate}\r\n value=${value}\r\n ><//>\r\n </fieldset>\r\n ${showStepValidation &&\r\n isRequired &&\r\n !value &&\r\n html`<${ErrorMessage}>Please enter a value<//>`}\r\n ${(showStepValidation || showErrorOnFocusLoss || initialValue) &&\r\n invalidInput &&\r\n value &&\r\n html`<${ErrorMessage}>${regexErrorMessage || 'Invalid input'}<//>`}\r\n </div>\r\n `;\r\n};\r\n\r\nexport { Input, InputProps };\r\n","import { html } from 'htm/preact';\r\nimport { ErrorMessage } from '@/components/ErrorMessage';\r\nimport { Label } from '@/components/Label';\r\nimport { BaseInput } from '../BaseInput';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface DateInputProps {\r\n title: string;\r\n description: string;\r\n placeholder: string;\r\n showStepValidation?: boolean;\r\n isRequired?: boolean;\r\n value?: string;\r\n onChange?: (val: string) => void;\r\n}\r\n\r\n/**\r\n * DateInput component\r\n *\r\n */\r\nconst DateInput = (props: DateInputProps) => {\r\n const {\r\n title,\r\n description,\r\n placeholder,\r\n value,\r\n showStepValidation = false,\r\n isRequired = false,\r\n onChange = () => null,\r\n } = props;\r\n\r\n return html`\r\n <div class=\"${styles.dateGroupWrapper}\">\r\n <fieldset>\r\n <${Label} title=${title} description=${description} //>\r\n <${BaseInput}\r\n type=\"date\"\r\n placeholder=${placeholder}\r\n handleChange=${onChange}\r\n value=${value}\r\n control=${() => html` <div\r\n role=\"button\"\r\n class=${styles.visibilityToggle}\r\n onclick=${() => {\r\n if (value) onChange('');\r\n }}\r\n >\r\n ${!value\r\n ? html`\r\n <svg\r\n width=\"25\"\r\n height=\"26\"\r\n viewBox=\"0 0 25 26\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M16.9543 5.5464H19.335L19.3349 5.54639C20.6491 5.54639 21.7156 6.61204 21.7156 7.92812L21.7147 19.8323C21.7147 21.1466 20.6482 22.2131 19.334 22.2131H5.04866C3.73449 22.2131 2.66797 21.1466 2.66797 19.8323V7.92719C2.66797 6.61296 3.73444 5.54639 5.04866 5.54639L7.42936 5.5473V4.35641C7.42936 3.69791 7.96262 3.16553 8.62019 3.16553C9.27777 3.16553 9.81102 3.69791 9.81102 4.35641V5.5464L14.5717 5.5473V4.35641C14.5717 3.69791 15.105 3.16553 15.7626 3.16553C16.4201 3.16553 16.9534 3.69791 16.9534 4.35641L16.9543 5.5464ZM4.04688 20.8324H20.3369L20.3358 8.7124H4.04688V20.8324Z\"\r\n fill=\"#999999\"\r\n />\r\n </svg>\r\n `\r\n : html`\r\n <svg\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 18 18\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M9 0C13.9673 0 18 4.03275 18 9C18 13.9673 13.9673 18 9 18C4.03275 18 0 13.9673 0 9C0 4.03275 4.03275 0 9 0ZM9 0.75C13.5533 0.75 17.25 4.44675 17.25 9C17.25 13.5533 13.5533 17.25 9 17.25C4.44675 17.25 0.75 13.5533 0.75 9C0.75 4.44675 4.44675 0.75 9 0.75ZM9 8.46975L12.9697 4.5L13.5 5.03025L9.53025 9L13.5 12.9697L12.9697 13.5L9 9.53025L5.03025 13.5L4.5 12.9697L8.46975 9L4.5 5.03025L5.03025 4.5L9 8.46975Z\"\r\n fill=\"black\"\r\n />\r\n </svg>\r\n `}\r\n </div>`}\r\n ><//>\r\n </fieldset>\r\n ${showStepValidation &&\r\n isRequired &&\r\n !value &&\r\n html`<${ErrorMessage}>Please enter a date<//>`}\r\n </div>\r\n `;\r\n};\r\n\r\nexport { DateInput, DateInputProps };\r\n","import { html } from 'htm/preact';\r\nimport { useEffect, useState } from 'preact/hooks';\r\n\r\nimport { ErrorMessage } from '@/components/ErrorMessage';\r\nimport { BaseInput } from '../BaseInput';\r\nimport { Label } from '../../Label';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface PasswordInputProps {\r\n id: string;\r\n title: string;\r\n description: string;\r\n placeholder: string;\r\n showStepValidation?: boolean;\r\n isRequired?: boolean;\r\n regex: string | null;\r\n regexErrorMessage: string | null;\r\n value?: string;\r\n onChange?: (val: string, passesRegexTest?: boolean) => void;\r\n}\r\n\r\n/**\r\n * Input component\r\n *\r\n */\r\nconst PasswordInput = (props: PasswordInputProps) => {\r\n const {\r\n title,\r\n description,\r\n placeholder,\r\n value,\r\n regex,\r\n regexErrorMessage,\r\n showStepValidation = false,\r\n isRequired = false,\r\n onChange = () => null,\r\n } = props;\r\n\r\n const [initialValue] = useState(value);\r\n const [passwordShown, setPasswordShown] = useState(false);\r\n const [invalidInput, setInvalidInput] = useState(false);\r\n const [showErrorOnFocusLoss, setShowErrorOnFocusLoss] = useState(false);\r\n\r\n // validate on first render\r\n useEffect(() => {\r\n if (regex) {\r\n const invalid = !new RegExp(regex).test(`${initialValue}`);\r\n setInvalidInput(invalid);\r\n }\r\n }, [regex]);\r\n\r\n const handleChange = (inputValue: string) => {\r\n if (regex) {\r\n if (!new RegExp(regex).test(inputValue)) {\r\n onChange(inputValue, false);\r\n setInvalidInput(true);\r\n } else {\r\n onChange(inputValue, true);\r\n setInvalidInput(false);\r\n }\r\n } else {\r\n onChange(inputValue);\r\n }\r\n };\r\n\r\n const validate = () => {\r\n setShowErrorOnFocusLoss(true);\r\n };\r\n\r\n const togglePasswordVisiblity = () => {\r\n setPasswordShown((isShown) => !isShown);\r\n };\r\n\r\n return html`\r\n <div class=\"${styles.passwordInputWrapper}\">\r\n <fieldset>\r\n <${Label} title=${title} description=${description} //>\r\n <${BaseInput}\r\n type=${passwordShown ? 'text' : 'password'}\r\n placeholder=${placeholder}\r\n handleChange=${handleChange}\r\n handleBlur=${validate}\r\n value=${value}\r\n control=${() => html`\r\n <div\r\n class=${styles.visibilityToggle}\r\n onclick=${togglePasswordVisiblity}\r\n >\r\n ${!passwordShown\r\n ? html` <svg\r\n width=\"20\"\r\n height=\"12\"\r\n viewBox=\"0 0 20 12\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M0.183387 6.51359C0.35582 6.72918 4.47535 11.6704 9.71968 11.6704V11.6704C14.964 11.6704 19.0836 6.72924 19.256 6.51357C19.5005 6.21515 19.5005 5.78535 19.256 5.48691V5.48615C19.0835 5.27523 14.964 0.330078 9.71968 0.330078C4.47535 0.330078 0.355766 5.27507 0.183387 5.48693C-0.0611291 5.78535 -0.0611291 6.21515 0.183387 6.51359ZM9.71968 10.0499C6.1643 10.0499 3.04855 7.1924 1.90266 6.00018C3.04632 4.80579 6.1643 1.95044 9.71968 1.95044C13.2751 1.95044 16.3908 4.80797 17.5367 6.00018C16.393 7.19458 13.2751 10.0499 9.71968 10.0499Z\"\r\n fill=\"#999999\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M6.94922 8.29099C7.55668 8.89849 8.3806 9.24021 9.24022 9.24021C10.0998 9.24021 10.9237 8.89845 11.5312 8.29099C12.1387 7.68353 12.4804 6.85956 12.4804 5.99999C12.4804 5.14041 12.1387 4.31648 11.5312 3.70898C10.9238 3.10148 10.0998 2.75977 9.24022 2.75977C8.38064 2.75977 7.55672 3.10152 6.94922 3.70898C6.34172 4.31644 6 5.14041 6 5.99999C6 6.85956 6.34176 7.68349 6.94922 8.29099ZM7.7435 5.3803C7.99408 4.77431 8.58488 4.38021 9.24022 4.38021C9.67002 4.38021 10.0816 4.55031 10.3854 4.85481C10.6899 5.15856 10.86 5.57015 10.86 5.99995C10.86 6.65529 10.4659 7.24607 9.85987 7.49667C9.25464 7.74727 8.5583 7.60905 8.09509 7.14508C7.63111 6.68186 7.49289 5.98552 7.7435 5.3803Z\"\r\n fill=\"#999999\"\r\n />\r\n </svg>`\r\n : html` <svg\r\n width=\"20\"\r\n height=\"12\"\r\n viewBox=\"0 0 20 12\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M0.183387 6.51359C0.35582 6.72918 4.47535 11.6704 9.71968 11.6704V11.6704C14.964 11.6704 19.0836 6.72924 19.256 6.51357C19.5005 6.21515 19.5005 5.78535 19.256 5.48691V5.48615C19.0835 5.27523 14.964 0.330078 9.71968 0.330078C4.47535 0.330078 0.355766 5.27507 0.183387 5.48693C-0.0611291 5.78535 -0.0611291 6.21515 0.183387 6.51359ZM9.71968 10.0499C6.1643 10.0499 3.04855 7.1924 1.90266 6.00018C3.04632 4.80579 6.1643 1.95044 9.71968 1.95044C13.2751 1.95044 16.3908 4.80797 17.5367 6.00018C16.393 7.19458 13.2751 10.0499 9.71968 10.0499Z\"\r\n fill=\"#333333\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M6.94922 8.29099C7.55668 8.89849 8.3806 9.24021 9.24022 9.24021C10.0998 9.24021 10.9237 8.89845 11.5312 8.29099C12.1387 7.68353 12.4804 6.85956 12.4804 5.99999C12.4804 5.14041 12.1387 4.31648 11.5312 3.70898C10.9238 3.10148 10.0998 2.75977 9.24022 2.75977C8.38064 2.75977 7.55672 3.10152 6.94922 3.70898C6.34172 4.31644 6 5.14041 6 5.99999C6 6.85956 6.34176 7.68349 6.94922 8.29099ZM7.7435 5.3803C7.99408 4.77431 8.58488 4.38021 9.24022 4.38021C9.67002 4.38021 10.0816 4.55031 10.3854 4.85481C10.6899 5.15856 10.86 5.57015 10.86 5.99995C10.86 6.65529 10.4659 7.24607 9.85987 7.49667C9.25464 7.74727 8.5583 7.60905 8.09509 7.14508C7.63111 6.68186 7.49289 5.98552 7.7435 5.3803Z\"\r\n fill=\"#333333\"\r\n />\r\n </svg>`}\r\n </div>\r\n `}\r\n ><//>\r\n ${showStepValidation &&\r\n isRequired &&\r\n !value &&\r\n html`<${ErrorMessage}>Please enter a value<//>`}\r\n ${(showStepValidation || showErrorOnFocusLoss || initialValue) &&\r\n invalidInput &&\r\n value &&\r\n html`<${ErrorMessage}>${regexErrorMessage || 'Invalid input'}<//>`}\r\n </fieldset>\r\n </div>\r\n `;\r\n};\r\n\r\nexport { PasswordInput, PasswordInputProps };\r\n","export const copyStringToClipboard = (str: string) => {\r\n if (!navigator.clipboard) {\r\n // Create new element\r\n const el = document.createElement('textarea');\r\n // Set value (string to be copied)\r\n el.value = str;\r\n // Set non-editable to avoid focus and move outside of view\r\n el.setAttribute('readonly', '');\r\n\r\n el.style.position = 'absolute';\r\n el.style.left = '-9999px';\r\n document.body.appendChild(el);\r\n // Select text inside element\r\n el.select();\r\n // Copy text to clipboard\r\n document.execCommand('copy');\r\n // Remove temporary element\r\n document.body.removeChild(el);\r\n } else {\r\n navigator.clipboard.writeText(str).catch(() => {\r\n console.error('Could not copy to clipboard'); // error\r\n });\r\n }\r\n};\r\n","import { html } from 'htm/preact';\r\nimport { useEffect, useState } from 'preact/hooks';\r\nimport { copyStringToClipboard } from '@/utils/copyToClipboard';\r\nimport { ErrorMessage } from '../ErrorMessage';\r\nimport { Label } from '../Label';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface TextAreaProps {\r\n title: string;\r\n description: string;\r\n placeholder: string;\r\n value?: string;\r\n showStepValidation?: boolean;\r\n isRequired?: boolean;\r\n regex: string | null;\r\n regexErrorMessage: string | null;\r\n showCopyButton?: boolean;\r\n onChange?: (val: string, passesRegexTest?: boolean) => void;\r\n}\r\n\r\n/**\r\n * TextArea component\r\n *\r\n */\r\nconst TextArea = (props: TextAreaProps) => {\r\n const {\r\n title,\r\n description,\r\n value,\r\n placeholder,\r\n onChange = () => null,\r\n showStepValidation = false,\r\n regex,\r\n regexErrorMessage,\r\n showCopyButton = false,\r\n isRequired = false,\r\n } = props;\r\n\r\n const [initialValue] = useState(value);\r\n const [invalidInput, setInvalidInput] = useState(false);\r\n const [showErrorOnFocusLoss, setShowErrorOnFocusLoss] = useState(false);\r\n\r\n // validate on first render\r\n useEffect(() => {\r\n if (regex) {\r\n const invalid = !new RegExp(regex).test(`${initialValue}`);\r\n setInvalidInput(invalid);\r\n }\r\n }, [regex]);\r\n\r\n const handleInputChange = (e: InputEvent) => {\r\n if (e.currentTarget instanceof HTMLTextAreaElement) {\r\n const { value: newValue } = e.currentTarget;\r\n if (regex) {\r\n if (!new RegExp(regex).test(newValue)) {\r\n onChange(newValue, false);\r\n setInvalidInput(true);\r\n } else {\r\n onChange(newValue, true);\r\n setInvalidInput(false);\r\n }\r\n } else {\r\n onChange(newValue);\r\n }\r\n }\r\n };\r\n\r\n const validate = () => {\r\n setShowErrorOnFocusLoss(true);\r\n };\r\n\r\n const onCopy = () => {\r\n copyStringToClipboard(value || '');\r\n };\r\n\r\n return html`\r\n <div class=\"${styles.textareaInputWrapper}\">\r\n <fieldset>\r\n <${Label} title=${title} description=${description} //>\r\n <textarea\r\n placeholder=${placeholder}\r\n value=${value}\r\n oninput=${handleInputChange}\r\n onblur=${validate}\r\n />\r\n ${showCopyButton &&\r\n html`\r\n <div onclick=${onCopy} class=${styles.copyButton}>\r\n <svg\r\n width=\"12\"\r\n height=\"15\"\r\n viewBox=\"0 0 12 15\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect\r\n x=\"0.75\"\r\n y=\"1\"\r\n width=\"7.5\"\r\n height=\"9.5\"\r\n rx=\"0.75\"\r\n stroke=\"#999999\"\r\n stroke-width=\"1.5\"\r\n />\r\n <rect\r\n x=\"3.75\"\r\n y=\"4.5\"\r\n width=\"7.5\"\r\n height=\"9.5\"\r\n rx=\"0.75\"\r\n fill=\"#E4E4E4\"\r\n stroke=\"#999999\"\r\n stroke-width=\"1.5\"\r\n />\r\n </svg>\r\n </div>\r\n `}\r\n </fieldset>\r\n ${showStepValidation &&\r\n isRequired &&\r\n !value &&\r\n html`<${ErrorMessage}>Please enter a value<//>`}\r\n ${(showStepValidation || showErrorOnFocusLoss || initialValue) &&\r\n invalidInput &&\r\n value &&\r\n html`<${ErrorMessage}>${regexErrorMessage || 'Invalid input'}<//>`}\r\n </div>\r\n `;\r\n};\r\n\r\nexport { TextArea, TextAreaProps };\r\n","import { html } from 'htm/preact';\r\nimport { connect } from 'unistore/preact';\r\nimport { useContext, useEffect, useState } from 'preact/hooks';\r\nimport { TemplateField } from '@/interfaces';\r\nimport AppContext from '@/contexts/AppContext';\r\nimport { StoreType } from '@/types/store';\r\nimport { Input } from '@/components/Input';\r\nimport { LargeLoader } from '@/components/LargeLoader';\r\nimport { actionFunctions } from '@/store';\r\n\r\nexport type DynamicFieldsProps = {\r\n stepId: number;\r\n dynamicField: TemplateField;\r\n endpointData: string;\r\n} & StoreType;\r\n\r\ninterface DynamicDataItem {\r\n id: string;\r\n title: string;\r\n}\r\n\r\nconst DynamicFields = (props: DynamicFieldsProps) => {\r\n const { stepId, dynamicField, endpointData } = props;\r\n const [dynamicItems, setDynamicItems] = useState<DynamicDataItem[]>([]);\r\n const [loading, setLoading] = useState<boolean>(true);\r\n\r\n const context = useContext(AppContext);\r\n\r\n useEffect(() => {\r\n const { activity_field } = dynamicField;\r\n // fetch dynamic items from endpoint\r\n if (activity_field && activity_field.dynamic_field_src) {\r\n let data;\r\n try {\r\n data = JSON.parse(endpointData);\r\n } catch (error) {\r\n data = '';\r\n }\r\n context?.apiHandler\r\n .callDynamicDataEndpoint<DynamicDataItem[]>(\r\n new URL(activity_field.dynamic_field_src),\r\n data,\r\n )\r\n .then((res) => {\r\n if (res) {\r\n console.info({ res });\r\n setDynamicItems(res);\r\n } else {\r\n throw new Error('Nothing returned from dynamic data endpoint');\r\n }\r\n })\r\n .catch((err) => console.error(err))\r\n .finally(() => setLoading(false));\r\n }\r\n }, [dynamicField]);\r\n\r\n const onChange = (machineName: string, val: string) => {\r\n props.setStepMappingData({\r\n stepId,\r\n fieldId: dynamicField.id,\r\n id: machineName,\r\n value: val,\r\n });\r\n };\r\n\r\n return html`\r\n <div>\r\n ${loading\r\n ? html`<${LargeLoader} />`\r\n : html` ${dynamicItems.map((el) => {\r\n const ele = props.stepDataMapping[stepId][dynamicField.id];\r\n let fieldVal = '';\r\n const parsedVal = ele.objectValue as Record<\r\n string,\r\n string | number\r\n >;\r\n if (parsedVal && parsedVal[el.id]) {\r\n fieldVal = `${parsedVal[el.id]}`;\r\n }\r\n return html`\r\n <${Input}\r\n title=${el.title}\r\n placeholder=\"Please enter a value\"\r\n value=${fieldVal}\r\n onChange=${(val: string) => {\r\n onChange(el.id, val);\r\n }}\r\n />\r\n `;\r\n })}`}\r\n </div>\r\n `;\r\n};\r\n\r\nexport default connect<DynamicFieldsProps, unknown, StoreType, unknown>(\r\n [\r\n 'stepState',\r\n 'genericData',\r\n 'stepMapping',\r\n 'activityOutputData',\r\n 'dynamicFieldData',\r\n 'stepDataMapping',\r\n 'parentChildMapping',\r\n ],\r\n actionFunctions,\r\n)(DynamicFields);\r\n","import { html } from 'htm/preact';\r\nimport { useContext, useEffect, useRef, useState } from 'preact/hooks';\r\n\r\nimport AppContext from '@/contexts/AppContext';\r\nimport { Radio } from './Radio';\r\nimport { Label } from '../Label';\r\nimport { ErrorMessage } from '../ErrorMessage';\r\n\r\nimport styles from './styles.module.scss';\r\nimport { ThreeDotLoader } from '../ThreeDotLoader';\r\n\r\ninterface RadioItem {\r\n id: string;\r\n value: string;\r\n}\r\n\r\nexport interface RadioGroupProps {\r\n title: string;\r\n description: string;\r\n isDynamic: boolean;\r\n dataSrcEndpoint?: string;\r\n ariaLabel: string;\r\n value: string;\r\n initialOptions?: RadioItem[];\r\n endpointData: string;\r\n isRequired?: boolean;\r\n showStepValidation?: boolean;\r\n onChange?: (selected: string) => void;\r\n}\r\n\r\n/**\r\n * RadioGroup component\r\n *\r\n */\r\nexport const RadioGroup = (props: RadioGroupProps) => {\r\n const {\r\n title,\r\n description,\r\n ariaLabel,\r\n initialOptions = [],\r\n value = null,\r\n isDynamic,\r\n dataSrcEndpoint,\r\n endpointData,\r\n isRequired = false,\r\n showStepValidation = false,\r\n onChange = () => null,\r\n } = props;\r\n\r\n const [loading, setLoading] = useState(isDynamic);\r\n\r\n const selectedItemRef = useRef(value);\r\n\r\n const [selectedItem, setSelectedItem] = useState(value);\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n const handleChange = (inputValue: string) => {\r\n setSelectedItem(inputValue);\r\n };\r\n\r\n const [parsedOptions, setParsedOptions] = useState<\r\n { id: string; value: string }[]\r\n >([]);\r\n\r\n const context = useContext(AppContext);\r\n\r\n useEffect(() => {\r\n if (isDynamic) {\r\n if (dataSrcEndpoint) {\r\n let data;\r\n try {\r\n data = JSON.parse(endpointData);\r\n } catch (parseErr) {\r\n data = '';\r\n }\r\n // call dynamic endpoint\r\n context?.apiHandler\r\n .callDynamicDataEndpoint<{ id: string; value: string }[]>(\r\n new URL(dataSrcEndpoint),\r\n data,\r\n )\r\n .then((res) => {\r\n if (res) setParsedOptions(res);\r\n else setError(`Error loading radio options`);\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n setError('Error loading radio options');\r\n })\r\n .finally(() => setLoading(false));\r\n } else {\r\n setParsedOptions(initialOptions);\r\n setLoading(false);\r\n }\r\n } else\r\n throw new Error(\r\n 'Checkbox group with dynamic source has no data src endpoint',\r\n );\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (selectedItemRef.current !== selectedItem && selectedItem)\r\n onChange(selectedItem);\r\n }, [selectedItem]);\r\n\r\n return html`\r\n <div class=\"${styles.radioGroup}\">\r\n <fieldset>\r\n <${Label} title=${title} description=${description} //>\r\n <div\r\n role=\"group\"\r\n class=\"${styles.radioGroupWrap}\"\r\n aria-labelledby=${ariaLabel}\r\n >\r\n ${loading\r\n ? html`<div style=\"margin: 20px 0;\">\r\n <${ThreeDotLoader} color=\"#999\" />\r\n </div>`\r\n : html`\r\n ${error\r\n ? html`<div style=\"margin-top: 20px\">\r\n <${ErrorMessage}>${error}<//>\r\n </div>`\r\n : html`\r\n ${parsedOptions.map(\r\n (el) =>\r\n html`\r\n <${Radio}\r\n id=${el.id}\r\n value=${el.value}\r\n isChecked=${selectedItem === el.id}\r\n onChange=${handleChange}\r\n ><//>\r\n `,\r\n )}\r\n `}\r\n `}\r\n </div>\r\n </fieldset>\r\n ${showStepValidation &&\r\n !selectedItem &&\r\n isRequired &&\r\n html` <${ErrorMessage}>Please select an option</${ErrorMessage}>`}\r\n </div>\r\n `;\r\n};\r\n","import { html } from 'htm/preact';\r\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\r\nimport { ErrorMessage } from '@/components/ErrorMessage';\r\nimport { Label } from '@/components/Label';\r\nimport { Select } from '@/components/BasicSelect';\r\nimport { generateDoubleDigitStringArr } from '@/utils/datetime';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface TimeInputProps {\r\n title: string;\r\n description: string;\r\n placeholder: string;\r\n value?: string;\r\n showStepValidation?: boolean;\r\n isRequired?: boolean;\r\n onChange?: (data: string) => void;\r\n}\r\n\r\n/**\r\n * TimeInput component\r\n *\r\n */\r\nconst TimeInput = (props: TimeInputProps) => {\r\n const {\r\n title,\r\n description,\r\n value = null,\r\n onChange = () => null,\r\n showStepValidation = false,\r\n isRequired = false,\r\n } = props;\r\n\r\n const [mins, setMins] = useState('');\r\n const [hours, setHours] = useState('');\r\n const [amOrPm, setAmOrPm] = useState<'AM' | 'PM'>('AM');\r\n\r\n const firstMount = useRef(true);\r\n\r\n useEffect(() => {\r\n const parsedVal = value?.split(':');\r\n if (parsedVal && parsedVal.length > 0) {\r\n const parsedHours = Number(parsedVal[0]);\r\n const parsedMins = Number(parsedVal[1]);\r\n if (parsedHours > 12) {\r\n setAmOrPm('PM');\r\n setHours(`${parsedHours - 12}`);\r\n } else {\r\n setHours(`${parsedHours}`);\r\n }\r\n setMins(`${parsedMins}`);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!firstMount.current) {\r\n onChange(\r\n `${amOrPm === 'PM' ? `${Number(hours) + 12}` : `${hours}`}:${mins}`,\r\n );\r\n }\r\n firstMount.current = false;\r\n }, [amOrPm, mins, hours]);\r\n\r\n const hourOptionsArr = useMemo(\r\n () => generateDoubleDigitStringArr(12).slice(1, 12),\r\n [],\r\n );\r\n const minuteOptionsArr = useMemo(() => generateDoubleDigitStringArr(59), []);\r\n\r\n return html`\r\n <div class=\"${styles.timeInputWrapper}\">\r\n <fieldset>\r\n <${Label} title=${title} description=${description} //>\r\n <div class=${styles.selectWrap}>\r\n <${Select}\r\n ariaLabel=\"Select hours\"\r\n placeholder=\"00\"\r\n options=${hourOptionsArr.map((el) => ({\r\n key: Number(el),\r\n label: el,\r\n }))}\r\n value=${Number(hours)}\r\n onChange=${(val: number) => setHours(hourOptionsArr[val])}\r\n ><//>\r\n <${Select}\r\n ariaLabel=\"Select minutes\"\r\n placeholder=\"00\"\r\n options=${minuteOptionsArr.map((el) => ({\r\n key: Number(el),\r\n label: el,\r\n }))}\r\n value=${Number(mins)}\r\n onChange=${(val: number) => setMins(minuteOptionsArr[val])}\r\n ><//>\r\n <${Select}\r\n ariaLabel=\"Select AM or PM\"\r\n placeholder=\"AM\"\r\n options=${[\r\n {\r\n label: 'AM',\r\n key: 'AM',\r\n },\r\n {\r\n label: 'PM',\r\n key: 'PM',\r\n },\r\n ]}\r\n value=${amOrPm}\r\n onChange=${(index: number) => setAmOrPm(index === 0 ? 'AM' : 'PM')}\r\n ><//>\r\n </div>\r\n </fieldset>\r\n ${showStepValidation &&\r\n isRequired &&\r\n !(hours || !mins || !amOrPm) &&\r\n html`<${ErrorMessage}>Please select a time<//>`}\r\n </div>\r\n `;\r\n};\r\n\r\nexport { TimeInput, TimeInputProps };\r\n","/* eslint-disable no-nested-ternary */\r\nimport { html } from 'htm/preact';\r\nimport { connect } from 'unistore/preact';\r\nimport { useContext, useEffect, useRef, useState } from 'preact/hooks';\r\nimport { ActivityCustomField, TemplateField } from '@/interfaces';\r\nimport AppContext from '@/contexts/AppContext';\r\nimport { StoreType } from '@/types/store';\r\nimport { LargeLoader } from '@/components/LargeLoader';\r\nimport { actionFunctions } from '@/store';\r\nimport { Label } from '@/components/Label';\r\nimport { Select } from '@/components/BasicSelect';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport type MappingUiProps = {\r\n stepId: number;\r\n templateFields: TemplateField[];\r\n showStepValidation?: boolean;\r\n} & StoreType;\r\n\r\ninterface DynamicDataItem {\r\n fieldId: number;\r\n id: string | null;\r\n title: string | null;\r\n type: string;\r\n isDynamic?: boolean;\r\n isVisible: boolean;\r\n}\r\n\r\ninterface FieldMappingEndpointData {\r\n [key: string]: DynamicDataItem[];\r\n}\r\n\r\nconst NewMappingUI = (props: MappingUiProps) => {\r\n const [loading, setLoading] = useState<boolean>(true);\r\n const [fieldsLoading, setFieldsLoading] = useState<boolean>(true);\r\n\r\n const [fieldsRef, setFieldsRef] = useState<number[]>([]);\r\n const [dynamicItems, setDynamicItems] = useState<DynamicDataItem[]>([]);\r\n const [dynamicListId, setDynamicListId] = useState('');\r\n const [\r\n savedMappingField,\r\n setSavedMappingField,\r\n ] = useState<TemplateField | null>(null);\r\n\r\n const [error, setError] = useState('');\r\n const [standardFields, setStandardFields] = useState<\r\n {\r\n fieldId: number;\r\n id: string | null;\r\n title: string | null;\r\n type: string;\r\n isDynamic: boolean;\r\n isVisible: boolean;\r\n }[]\r\n >([]);\r\n\r\n const [\r\n fieldMappingData,\r\n setFieldMappingData,\r\n ] = useState<FieldMappingEndpointData>({});\r\n\r\n const [fieldListData, setFieldListData] = useState<ActivityCustomField[]>([]);\r\n\r\n const context = useContext(AppContext);\r\n\r\n const dynamicFieldIdRef = useRef('');\r\n\r\n // This takes care of updating the mapped fields count on the bottom\r\n useEffect(() => {\r\n if (dynamicItems.length > 0) {\r\n // eslint-disable-next-line array-callback-return\r\n dynamicItems.map((el, index) => {\r\n const ele = props.stepDataMapping[props.stepId][el.fieldId];\r\n if (!ele.isDynamic && ele.value) {\r\n const parsedValue = ele.value;\r\n if (parsedValue) setFieldsRef((prev) => [...prev, index]);\r\n } else if (ele.isDynamic && ele.objectValue && el.id) {\r\n const parsedValues = ele.objectValue || {};\r\n if (parsedValues[el.id]) {\r\n setFieldsRef((prev) => [...prev, index]);\r\n }\r\n }\r\n });\r\n }\r\n }, [dynamicItems]);\r\n\r\n useEffect(() => {\r\n if (fieldListData.length) {\r\n setFieldsLoading(false);\r\n }\r\n }, [fieldListData]);\r\n\r\n useEffect(() => {\r\n const mappingField = props.templateFields.filter(\r\n (el) => el.activity_field && el.activity_field.type === 'FIELD_MAPPING',\r\n )[0];\r\n\r\n if (mappingField) {\r\n setSavedMappingField(mappingField);\r\n }\r\n\r\n if (\r\n // fieldListData.length &&\r\n fieldMappingData !== null &&\r\n fieldMappingData !== undefined &&\r\n Object.keys(fieldMappingData).length > 0\r\n ) {\r\n // both field list and mapping data has been fetched\r\n setLoading(false);\r\n const fieldMappingResponseKey = Object.keys(fieldMappingData)[0];\r\n props.setStoreState({\r\n mappingInfo: {\r\n ...props.mappingInfo,\r\n isNewMapping: true,\r\n customFieldsKey: fieldMappingResponseKey,\r\n },\r\n });\r\n\r\n if (\r\n fieldMappingResponseKey &&\r\n Array.isArray(fieldMappingData[fieldMappingResponseKey])\r\n ) {\r\n setDynamicItems([\r\n ...standardFields,\r\n ...fieldMappingData[fieldMappingResponseKey].map((el) => ({\r\n ...el,\r\n isDynamic: true,\r\n isVisible: mappingField.is_visible,\r\n fieldId: mappingField.id,\r\n })),\r\n ]);\r\n } else {\r\n setError(\r\n `fieldMappingResponseKey '${fieldMappingResponseKey}' not found, custom fields are not in a nested array under a single key`,\r\n );\r\n }\r\n }\r\n }, [fieldMappingData]);\r\n\r\n useEffect(() => {\r\n // fetch the mapping field\r\n const mappingField = props.templateFields.filter(\r\n (el) => el.activity_field && el.activity_field.type === 'FIELD_MAPPING',\r\n )[0];\r\n\r\n if (mappingField) {\r\n // set our dynamic list ID\r\n setDynamicListId(`${mappingField.id}`);\r\n } else {\r\n return;\r\n }\r\n\r\n // get a list of standard (TEXT) fields that will be part of the mapping\r\n const standardFieldsToRender = props.templateFields\r\n .filter(\r\n (el) =>\r\n el.activity_field &&\r\n el.activity_field.type === 'TEXTFIELD' &&\r\n el.is_visible && // only show visible standard fields\r\n el.added_in_mapping,\r\n )\r\n .map((el) => ({\r\n fieldId: el.id,\r\n id: el.activity_field && el.activity_field.machine_name,\r\n title: el.activity_field && el.activity_field.title,\r\n type: 'text',\r\n isDynamic: false,\r\n isVisible: el.is_visible,\r\n }));\r\n\r\n setStandardFields(standardFieldsToRender);\r\n\r\n // grab activity output data since that is used in both cases\r\n if (!fieldListData.length) {\r\n if (\r\n mappingField.field_mapping_source &&\r\n props.fieldListMapping[mappingField.field_mapping_source]\r\n ) {\r\n setLoading(true);\r\n // eslint-disable-next-line no-use-before-define\r\n fetchFieldsListData(mappingField);\r\n } else {\r\n console.error(\r\n `Field mapping source not found, expected: ${mappingField.field_mapping_source}`,\r\n );\r\n }\r\n }\r\n\r\n // if dynamic field exists, fetch the fields and show those\r\n if (mappingField && mappingField.activity_field) {\r\n const originalMappingField =\r\n props.parentChildMapping[props.stepId][\r\n mappingField.activity_field.machine_name\r\n ];\r\n\r\n let valuesMapField = '';\r\n if (originalMappingField) {\r\n const valuesMap = originalMappingField.parentFields?.reduce(\r\n (prev, next) => {\r\n const parentFieldId =\r\n props.parentChildMapping[props.stepId][next].fieldId;\r\n return {\r\n ...prev,\r\n [parentFieldId]:\r\n props.stepDataMapping[props.stepId][parentFieldId].value,\r\n };\r\n },\r\n {},\r\n );\r\n valuesMapField = JSON.stringify(valuesMap);\r\n }\r\n\r\n // in case the parent field value changes, refetch the custom fields\r\n if (valuesMapField !== dynamicFieldIdRef.current) {\r\n setLoading(true);\r\n\r\n // eslint-disable-next-line no-use-before-define\r\n fetchAndSaveFieldMappingData(mappingField)\r\n ?.then(() => {\r\n setFieldsRef([]);\r\n setLoading(false);\r\n dynamicFieldIdRef.current = valuesMapField;\r\n })\r\n .catch((err) => console.error(err));\r\n }\r\n }\r\n }, [props.stepDataMapping[props.stepId]]);\r\n\r\n const getStepVisibleFieldsData = (\r\n stepId: number,\r\n ): {\r\n [machineName: string]: string;\r\n } => {\r\n const fields = props.stepDataMapping[stepId];\r\n const requiredFieldsWithValues = Object.keys(fields)\r\n .filter((el) => fields[Number(el)].value)\r\n .reduce((prev, curr) => {\r\n const currentItem = fields[Number(curr)];\r\n return {\r\n ...prev,\r\n [currentItem.machineName]: currentItem.value,\r\n };\r\n }, {});\r\n return requiredFieldsWithValues;\r\n };\r\n\r\n const fetchFieldsListData = (field: TemplateField) => {\r\n const { stepMapping, fieldListMapping } = props;\r\n\r\n const fieldListActivityField =\r\n fieldListMapping[field.field_mapping_source || ''];\r\n\r\n const fieldsListStepObject =\r\n stepMapping && stepMapping[fieldListActivityField.stepId];\r\n\r\n if (fieldListActivityField) {\r\n const payload = {\r\n authorizationId: Number(fieldsListStepObject.selectedAuthId),\r\n activityFieldId: Number(fieldListActivityField.activity_field?.id),\r\n endpointData:\r\n getStepVisibleFieldsData(fieldListActivityField.stepId) || {},\r\n };\r\n return context?.apiHandler\r\n .getCustomFields(payload)\r\n .then((data) => {\r\n if (data)\r\n setFieldListData(\r\n data.map((el) => ({\r\n ...el,\r\n // sample_data: JSON.stringify(['1', '2']), // test sample data\r\n })),\r\n );\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n setFieldsLoading(false);\r\n });\r\n }\r\n return null;\r\n };\r\n\r\n const fetchAndSaveFieldMappingData = (templateField: TemplateField) => {\r\n const { stepId, stepMapping } = props;\r\n const dynamicEndpoint = `${templateField.activity_field?.dynamic_field_src}`;\r\n return context?.apiHandler\r\n .callDynamicDataEndpoint<FieldMappingEndpointData>(\r\n new URL(dynamicEndpoint),\r\n {\r\n authorization_id: `${stepMapping[stepId].selectedAuthId}`,\r\n ...getStepVisibleFieldsData(stepId),\r\n },\r\n )\r\n .then((data) => {\r\n if (data) setFieldMappingData(data);\r\n return data;\r\n });\r\n };\r\n\r\n const onMappingValueSelected = (\r\n index: number,\r\n item: DynamicDataItem,\r\n isRequired: boolean,\r\n rowIndex: number,\r\n ) => {\r\n const fieldListObject = fieldListData[index];\r\n const arrayIndex = fieldsRef.findIndex((el) => el === rowIndex);\r\n if (index < 0) {\r\n // unset\r\n setFieldsRef((prev) => prev.filter((el) => el !== rowIndex));\r\n if (!item.isDynamic) {\r\n props.setStepFieldData({\r\n stepId: `${props.stepId}`,\r\n fieldId: `${item.fieldId}`,\r\n value: '',\r\n isRequired,\r\n });\r\n } else if (dynamicListId) {\r\n props.setStepMappingData({\r\n stepId: props.stepId,\r\n fieldId: Number(dynamicListId),\r\n id: `${item.id}`,\r\n value: null,\r\n });\r\n }\r\n } else if (fieldListObject) {\r\n // value is set\r\n if (arrayIndex < 0) {\r\n //\r\n setFieldsRef((prev) => [...prev, rowIndex]);\r\n }\r\n if (!item.isDynamic) {\r\n props.setStepFieldData({\r\n stepId: `${props.stepId}`,\r\n fieldId: `${item.fieldId}`,\r\n value: fieldListObject.tag,\r\n isRequired,\r\n });\r\n } else if (dynamicListId) {\r\n props.setStepMappingData({\r\n stepId: props.stepId,\r\n fieldId: Number(dynamicListId),\r\n id: `${item.id}`,\r\n value: fieldListObject.tag,\r\n });\r\n }\r\n }\r\n props.verifyStepValidity(props.stepId);\r\n };\r\n\r\n return html`\r\n <div>\r\n <${Label}\r\n title=${savedMappingField?.title ||\r\n savedMappingField?.activity_field?.title}\r\n description=${savedMappingField?.description ||\r\n savedMappingField?.activity_field?.description}\r\n />\r\n <div>\r\n ${loading\r\n ? html`<div class=${styles.loader}><${LargeLoader} /></div>`\r\n : error\r\n ? html` <div>${error}</div> `\r\n : html`\r\n <div class=${styles.mappingWrap}>\r\n <div class=${styles.mappingRow}>\r\n <div class=${styles.mappingHeaderItem}>\r\n <img\r\n src=${props.stepMapping[props.stepId].step.activity.app\r\n .icon_url}\r\n />\r\n <div>\r\n ${`${\r\n props.stepMapping[props.stepId].step.activity.app.name\r\n } Field`}\r\n </div>\r\n </div>\r\n <div class=${styles.sampleData}>Sample Data</div>\r\n <div class=${styles.mappingHeaderItem}>\r\n <img src=${props.genericData.brandingApp?.icon_url} />\r\n <div>${props.genericData.brandingApp?.name} Field</div>\r\n </div>\r\n </div>\r\n ${dynamicItems.map((el, itemIndex) => {\r\n // console.log(itemIndex);\r\n // console.log({ el });\r\n\r\n if (!el.isVisible) return html``;\r\n\r\n const slug = el.id || '';\r\n const ele = props.stepDataMapping[props.stepId][el.fieldId];\r\n // console.log({ ele });\r\n let selectVal = '';\r\n let parsedVal: string | Record<string, string | number>;\r\n if (el.isDynamic) {\r\n parsedVal = ele.objectValue as Record<\r\n string,\r\n string | number\r\n >;\r\n } else {\r\n parsedVal = `${ele.value}`;\r\n }\r\n\r\n // console.log({ parsedVal });\r\n if (\r\n el.id &&\r\n el.isDynamic &&\r\n ele.objectValue &&\r\n (parsedVal as Record<string, string | number>)[slug]\r\n ) {\r\n selectVal = `${\r\n (parsedVal as Record<string, string | number>)[slug]\r\n }`;\r\n } else if (!el.isDynamic) {\r\n selectVal = parsedVal as string;\r\n }\r\n\r\n let sampleData = '';\r\n const rawData =\r\n fieldListData.filter((field) => field.tag === selectVal)[0]\r\n ?.sample_data ?? '';\r\n try {\r\n sampleData = JSON.parse(rawData);\r\n } catch (err) {\r\n sampleData = rawData;\r\n }\r\n\r\n return html`\r\n <div class=${styles.mappingRow}>\r\n <div class=${styles.title}>\r\n ${el.title}${ele?.isRequired && html`<span>*</span>`}\r\n </div>\r\n <div class=${styles.sampleData}>\r\n ${sampleData\r\n ? Array.isArray(sampleData)\r\n ? sampleData.map(\r\n (sample: string | Record<string, string>) =>\r\n sample ? html`<pre>${sample}</pre>` : html``,\r\n )\r\n : html`<pre>${sampleData}</pre>`\r\n : html``}\r\n </div>\r\n <div class=${styles.selectBox}>\r\n <${Select}\r\n ariaLabel=\"Map a value\"\r\n placeholder=\"Please map a value\"\r\n options=${fieldListData.map((item) => ({\r\n key: item.tag,\r\n label: item.text,\r\n }))}\r\n value=${selectVal}\r\n isRequired=${ele?.isRequired}\r\n showStepValidation=${props.showStepValidation}\r\n showUnselectedValue=${true}\r\n unselectedText=\"Skip\"\r\n loading=${fieldsLoading}\r\n onChange=${(index: number) =>\r\n onMappingValueSelected(\r\n index,\r\n el,\r\n ele?.isRequired ?? false,\r\n itemIndex,\r\n )}\r\n ><//>\r\n </div>\r\n </div>\r\n `;\r\n })}\r\n <div class=${styles.mappingInfo}>\r\n <div>\r\n <span>Mapped</span>\r\n <span\r\n >${fieldsRef.length}${' '}\r\n field${fieldsRef.length !== 1 ? 's' : ''}</span\r\n >\r\n </div>\r\n <div>\r\n <span>Ignored</span>\r\n <span\r\n >${dynamicItems.length - fieldsRef.length}${' '}\r\n field${dynamicItems.length - fieldsRef.length !== 1\r\n ? 's'\r\n : ''}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n `}\r\n </div>\r\n </div>\r\n `;\r\n};\r\n\r\nexport default connect<MappingUiProps, unknown, StoreType, unknown>(\r\n [\r\n 'stepState',\r\n 'genericData',\r\n 'stepMapping',\r\n 'fieldListMapping',\r\n 'stepDataMapping',\r\n 'parentChildMapping',\r\n ],\r\n actionFunctions,\r\n)(NewMappingUI);\r\n","import { html, Component } from 'htm/preact';\r\nimport { connect } from 'unistore/preact';\r\n// import DOMPurify from 'dompurify';\r\nimport { IntegrySDKEvents } from '@/types';\r\nimport { IntegryAPI } from '@/modules/api';\r\nimport { EventEmitter } from '@/modules/event-emitter';\r\nimport { ListBox } from '@/components/Listbox';\r\nimport { Loader } from '@/components/Loader';\r\nimport { IntegryStep, TemplateField } from '@/interfaces';\r\nimport { actionFunctions } from '@/store';\r\nimport MappingUI from '@/features/common/MappingUI';\r\nimport { Button } from '@/components/Button';\r\nimport { StoreType } from '@/types/store';\r\nimport { CheckboxGroup } from '@/components/CheckboxGroup';\r\nimport { DateInput, Input, PasswordInput } from '@/components/Input';\r\nimport { TextArea } from '@/components/TextArea';\r\nimport DynamicField from '@/features/common/DynamicField';\r\nimport { RadioGroup } from '@/components/RadioGroup';\r\nimport { TimeInput } from '@/components/TimeInput';\r\nimport NewMappingUI from '@/features/common/NewMappingUI';\r\nimport { areParentValuesValid } from '@/utils/stepUtils';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface StepPropsType extends StoreType {\r\n step: IntegryStep;\r\n stepType: 'AUTH' | 'CONFIGURATION' | 'SECTION';\r\n showStepValidation: boolean;\r\n apiHandler: IntegryAPI;\r\n eventEmitter: EventEmitter<IntegrySDKEvents>;\r\n}\r\n\r\ninterface StepStateType {\r\n loading: boolean;\r\n}\r\n\r\nclass Step extends Component<StepPropsType, StepStateType> {\r\n constructor(props: StepPropsType) {\r\n super(props);\r\n this.state = {\r\n loading: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const { step, verifyStepValidity } = this.props;\r\n verifyStepValidity(step.id);\r\n }\r\n\r\n componentDidUpdate(prevProps: StepPropsType) {\r\n const { step, verifyStepValidity } = this.props;\r\n if (prevProps.step.id !== step.id) {\r\n verifyStepValidity(step.id);\r\n }\r\n }\r\n\r\n private getStepVisibleFieldsData = (\r\n stepId: number,\r\n ): {\r\n [machineName: string]: string;\r\n } => {\r\n const fields = this.props.stepDataMapping[stepId];\r\n const requiredFieldsWithValues = Object.keys(fields)\r\n .filter((el) => fields[Number(el)].value)\r\n .reduce((prev, curr) => {\r\n const currentItem = fields[Number(curr)];\r\n return {\r\n ...prev,\r\n [currentItem.machineName]: currentItem.value,\r\n };\r\n }, {});\r\n return requiredFieldsWithValues;\r\n };\r\n\r\n private areParentValuesFilled = (stepId: number, parentFields: string[]) => {\r\n let valid = true;\r\n // check if all parent fields have their values set\r\n for (let index = 0; index < parentFields.length; index += 1) {\r\n const val = parentFields[index];\r\n const { fieldId } = this.props.parentChildMapping[stepId][val];\r\n const parentField =\r\n this.props.stepDataMapping[stepId] &&\r\n this.props.stepDataMapping[stepId][fieldId];\r\n if (!(parentField && parentField.value)) {\r\n valid = false;\r\n break;\r\n }\r\n }\r\n return valid;\r\n };\r\n\r\n private areParentValuesValid = (\r\n stepId: number,\r\n fieldConditions: {\r\n value: string;\r\n parentMachineName: string;\r\n parentFieldId: number;\r\n }[],\r\n ) => {\r\n let valid = false;\r\n // check if all parent fields have values required to show the field\r\n for (let index = 0; index < fieldConditions.length; index += 1) {\r\n const { parentFieldId, value } = fieldConditions[index];\r\n const parentField =\r\n this.props.stepDataMapping[stepId] &&\r\n this.props.stepDataMapping[stepId][parentFieldId];\r\n if (parentField && parentField.value === value) {\r\n valid = true;\r\n break;\r\n }\r\n }\r\n return valid;\r\n };\r\n\r\n private doParentFieldsHaveValues = (stepId: number, machineName: string) => {\r\n let valid = true;\r\n const fieldInfo = this.props.parentChildMapping[stepId][machineName];\r\n\r\n if (fieldInfo && fieldInfo.parentFields)\r\n // check if all parent fields have their values set\r\n for (let index = 0; index < fieldInfo.parentFields.length; index += 1) {\r\n const parentField = this.props.parentChildMapping[stepId][\r\n fieldInfo.parentFields[index]\r\n ];\r\n const parentFieldData =\r\n this.props.stepDataMapping[stepId] &&\r\n this.props.stepDataMapping[stepId][parentField.fieldId];\r\n if (!(parentFieldData && parentFieldData.value)) {\r\n valid = false;\r\n break;\r\n }\r\n }\r\n return valid;\r\n };\r\n\r\n private shouldShowStep = (field: TemplateField) => {\r\n const stepId = this.props.step.id;\r\n const stepObject = this.props.stepMapping && this.props.stepMapping[stepId];\r\n\r\n if (field.type === 'BUTTON' || field.type === 'HTML') return true;\r\n\r\n if (stepObject && field.activity_field) {\r\n const shouldBeShown = !field.is_hidden;\r\n // const isAuthSelected = stepObject.selectedAuthId;\r\n const isAuthSelected = true;\r\n\r\n const { parentFields } = this.props.parentChildMapping[stepId][\r\n field.activity_field.machine_name\r\n ];\r\n\r\n const fieldConditions = this.props.conditionalFieldMapping[stepId][\r\n field.activity_field.machine_name\r\n ];\r\n let isValid = true;\r\n if (parentFields) {\r\n isValid = this.areParentValuesFilled(stepId, parentFields);\r\n }\r\n\r\n if (fieldConditions) {\r\n isValid = areParentValuesValid(\r\n stepId,\r\n fieldConditions,\r\n this.props.stepDataMapping,\r\n );\r\n }\r\n\r\n return shouldBeShown && isAuthSelected && isValid;\r\n }\r\n return false;\r\n };\r\n\r\n private stepIsOfType = (fields: string[]) => {\r\n const stepId = this.props.step.id;\r\n const stepObject = this.props.stepMapping && this.props.stepMapping[stepId];\r\n return fields.indexOf(stepObject.step.activity.type) > -1;\r\n };\r\n\r\n private textFieldParentHasValues = () => {\r\n const stepId = this.props.step.id;\r\n const stepObject = this.props.stepMapping && this.props.stepMapping[stepId];\r\n\r\n const anyVisibleFields = stepObject.step.template_fields.filter(\r\n (el) => el.is_visible,\r\n );\r\n\r\n const isAuthSelected = stepObject.selectedAuthId;\r\n\r\n const dynamicField = anyVisibleFields.filter(\r\n (el) => el.activity_field && el.activity_field.type === 'DYNAMIC',\r\n )[0];\r\n\r\n if (!dynamicField) {\r\n return true;\r\n }\r\n\r\n if (\r\n anyVisibleFields.length > 0 &&\r\n dynamicField &&\r\n dynamicField.activity_field &&\r\n isAuthSelected &&\r\n this.doParentFieldsHaveValues(\r\n stepId,\r\n dynamicField.activity_field.machine_name,\r\n )\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n private shouldShowOldMapping = () => {\r\n const stepId = this.props.step.id;\r\n const stepObject = this.props.stepMapping && this.props.stepMapping[stepId];\r\n if (this.stepIsOfType(['ADAPTER', 'ACTION'])) {\r\n const anyVisibleFields = stepObject.step.template_fields.filter(\r\n (el) => el.is_visible,\r\n );\r\n\r\n const anyVisibleTextFields = stepObject.step.template_fields.filter(\r\n (el) => el.is_visible && el.activity_field?.type === 'TEXTFIELD',\r\n );\r\n\r\n const isAuthSelected = stepObject.selectedAuthId;\r\n\r\n const dynamicField = anyVisibleFields.filter(\r\n (el) => el.activity_field && el.activity_field.type === 'DYNAMIC',\r\n )[0];\r\n\r\n // show mapping whenever we have visible text fields and a selected auth\r\n if (\r\n anyVisibleTextFields.length > 0 &&\r\n isAuthSelected &&\r\n !dynamicField &&\r\n !this.shouldShowNewMapping()\r\n )\r\n return true;\r\n\r\n // in case we dont have visible text fields and no dynamic fields, dont show mapping\r\n if (!dynamicField) {\r\n return false;\r\n }\r\n\r\n if (\r\n anyVisibleFields.length > 0 &&\r\n isAuthSelected &&\r\n dynamicField &&\r\n dynamicField.activity_field &&\r\n this.doParentFieldsHaveValues(\r\n stepId,\r\n dynamicField.activity_field.machine_name,\r\n )\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return false;\r\n };\r\n\r\n private shouldShowNewMapping = () => {\r\n const { step, stepMapping } = this.props;\r\n const stepObject = stepMapping[step.id];\r\n\r\n if (this.stepIsOfType(['ADAPTER', 'ACTION'])) {\r\n const anyVisibleFields = stepObject.step.template_fields.filter(\r\n (el) => el.is_visible,\r\n );\r\n\r\n if (anyVisibleFields) {\r\n const fieldMappingField = anyVisibleFields.filter(\r\n (el) =>\r\n el.activity_field && el.activity_field.type === 'FIELD_MAPPING',\r\n )[0];\r\n if (fieldMappingField) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n private getMappingDataInput = () => {\r\n const stepId = this.props.step.id;\r\n const stepObject = this.props.stepMapping && this.props.stepMapping[stepId];\r\n const payload = {\r\n authId: stepObject.selectedAuthId,\r\n fieldsData: this.getStepVisibleFieldsData(stepId),\r\n };\r\n return payload;\r\n };\r\n\r\n private fieldDynamicData = (field: TemplateField) => {\r\n const stepId = this.props.step.id;\r\n const stepObject = this.props.stepMapping && this.props.stepMapping[stepId];\r\n if (stepObject && field.activity_field) {\r\n const { parentFields } = this.props.parentChildMapping[stepId][\r\n field.activity_field.machine_name\r\n ];\r\n if (parentFields) {\r\n const endpointData = parentFields.reduce((prev, next) => {\r\n const { fieldId } = this.props.parentChildMapping[stepId][next];\r\n if (fieldId)\r\n return {\r\n ...prev,\r\n [next]: this.props.stepDataMapping[stepId][fieldId].value,\r\n };\r\n return prev;\r\n }, {});\r\n return endpointData;\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n render() {\r\n const {\r\n step,\r\n stepMapping,\r\n stepDataMapping,\r\n setStepFieldData,\r\n showStepValidation,\r\n } = this.props;\r\n const selectedStep = stepMapping[step.id] && stepMapping[step.id].step;\r\n const selectedStepData = stepDataMapping && stepDataMapping[step.id];\r\n\r\n return html`\r\n ${this.state.loading\r\n ? html`<${Loader} //>`\r\n : html`\r\n ${selectedStep\r\n ? html`\r\n <div class=${styles.stepsWrap}>\r\n ${selectedStep.template_fields.map((el) => {\r\n if (this.shouldShowStep(el) && el.activity_field) {\r\n switch (el.activity_field.type) {\r\n case 'SELECT': {\r\n return html`\r\n <div key=${el.id} class=${styles.stepWrap}>\r\n <${ListBox}\r\n key=${el.activity_field.id}\r\n apiHandler=${this.props.apiHandler}\r\n title=${el.title || el.activity_field.title}\r\n description=${el.description ||\r\n el.activity_field.description}\r\n showStepValidation=${showStepValidation}\r\n placeholder=${el.placeholder ||\r\n el.activity_field.placeholder}\r\n isRequired=${el.is_required}\r\n value=${(selectedStepData &&\r\n selectedStepData[el.id] &&\r\n selectedStepData[el.id].value) ||\r\n ''}\r\n onChange=${(val: string) => {\r\n setStepFieldData({\r\n stepId: `${step.id}`,\r\n fieldId: `${el.id}`,\r\n value: val,\r\n isRequired: el.is_required,\r\n });\r\n this.props.verifyStepValidity(step.id);\r\n }}\r\n endpointUrl=${el.activity_field.data_src}\r\n isDynamic=${el.activity_field.is_dynamic}\r\n endpointData=${JSON.stringify({\r\n authorization_id:\r\n this.props.stepMapping &&\r\n this.props.stepMapping[this.props.step.id]\r\n ?.selectedAuthId,\r\n ...this.fieldDynamicData(el),\r\n })}\r\n ><//>\r\n </div>\r\n `;\r\n }\r\n case 'TIME':\r\n return html` <div\r\n key=${el.id}\r\n class=${styles.stepWrap}\r\n >\r\n <${TimeInput}\r\n title=${el.title || el.activity_field.title}\r\n description=${el.description ||\r\n el.activity_field.description}\r\n value=${(selectedStepData &&\r\n selectedStepData[el.id] &&\r\n selectedStepData[el.id].value) ||\r\n ''}\r\n placeholder=${el.placeholder ||\r\n 'Please enter a value'}\r\n showStepValidation=${showStepValidation}\r\n isRequired=${el.is_required}\r\n onChange=${(val: string) => {\r\n setStepFieldData({\r\n stepId: `${step.id}`,\r\n fieldId: `${el.id}`,\r\n value: val,\r\n isRequired: el.is_required,\r\n });\r\n this.props.verifyStepValidity(step.id);\r\n }}\r\n />\r\n </div>`;\r\n case 'TEXTFIELD':\r\n return (\r\n !this.shouldShowOldMapping() &&\r\n this.textFieldParentHasValues() &&\r\n !el.added_in_mapping &&\r\n html`\r\n <div class=${styles.stepWrap}>\r\n <${Input}\r\n id=${el.activity_field.id}\r\n title=${el.title || el.activity_field.title}\r\n description=${el.description ||\r\n el.activity_field.description}\r\n value=${(selectedStepData &&\r\n selectedStepData[el.id] &&\r\n selectedStepData[el.id].value) ||\r\n ''}\r\n placeholder=${el.placeholder ||\r\n 'Please enter a value'}\r\n showStepValidation=${showStepValidation}\r\n regex=${selectedStepData[el.id].regex}\r\n regexErrorMessage=${selectedStepData[el.id]\r\n .regexErrorMessage}\r\n isRequired=${el.is_required}\r\n onChange=${(\r\n val: string,\r\n passesRegexTest?: boolean,\r\n ) => {\r\n setStepFieldData({\r\n stepId: `${step.id}`,\r\n fieldId: `${el.id}`,\r\n value: val,\r\n isRequired: el.is_required,\r\n passesRegexTest,\r\n });\r\n this.props.verifyStepValidity(step.id);\r\n }}\r\n ><//>\r\n </div>\r\n `\r\n );\r\n case 'FILE':\r\n return html`\r\n <div class=${styles.stepWrap}>\r\n <${Input}\r\n id=${el.activity_field.id}\r\n title=${el.title || el.activity_field.title}\r\n description=${el.description ||\r\n el.activity_field.description}\r\n value=${(selectedStepData &&\r\n selectedStepData[el.id] &&\r\n selectedStepData[el.id].value) ||\r\n ''}\r\n placeholder=${el.placeholder ||\r\n 'Please enter a URL'}\r\n showStepValidation=${showStepValidation}\r\n regex=${selectedStepData[el.id].regex}\r\n regexErrorMessage=${selectedStepData[el.id]\r\n .regexErrorMessage}\r\n isRequired=${el.is_required}\r\n onChange=${(\r\n val: string,\r\n passesRegexTest?: boolean,\r\n ) => {\r\n setStepFieldData({\r\n stepId: `${step.id}`,\r\n fieldId: `${el.id}`,\r\n value: val,\r\n isRequired: el.is_required,\r\n passesRegexTest,\r\n });\r\n this.props.verifyStepValidity(step.id);\r\n }}\r\n ><//>\r\n </div>\r\n `;\r\n case 'CHECKBOX': {\r\n let dataSrc:\r\n | Record<string, string>[]\r\n | string\r\n | null = null;\r\n if (\r\n !el.activity_field?.data_src ||\r\n el.activity_field?.data_src === ''\r\n ) {\r\n // use title as checkbox label\r\n dataSrc = [\r\n {\r\n id: el.activity_field.machine_name,\r\n value: el.activity_field.title,\r\n },\r\n ];\r\n } else if (!el.activity_field.data_src_endpoint) {\r\n try {\r\n dataSrc = JSON.parse(\r\n el.activity_field?.data_src ?? '[]',\r\n );\r\n } catch (error) {\r\n dataSrc = [];\r\n console.error(\r\n 'Error parsing value: ',\r\n el.activity_field?.data_src,\r\n );\r\n }\r\n }\r\n return html`\r\n <div key=${el.id} class=${styles.stepWrap}>\r\n <${CheckboxGroup}\r\n fieldId=${el.id}\r\n title=${el.title || el.activity_field.title}\r\n description=${el.description ||\r\n el.activity_field.description}\r\n showStepValidation=${showStepValidation}\r\n placeholder=${el.placeholder}\r\n value=${selectedStepData &&\r\n selectedStepData[el.id] &&\r\n selectedStepData[el.id].value}\r\n isRequired=${el.is_required}\r\n dataSrcEndpoint=${el.activity_field.data_src}\r\n isDynamic=${el.activity_field.is_dynamic}\r\n initialOptions=${dataSrc}\r\n endpointData=${JSON.stringify({\r\n authorization_id:\r\n this.props.stepMapping &&\r\n this.props.stepMapping[this.props.step.id]\r\n ?.selectedAuthId,\r\n ...this.fieldDynamicData(el),\r\n })}\r\n onChange=${(val: string) => {\r\n setStepFieldData({\r\n stepId: `${step.id}`,\r\n fieldId: `${el.id}`,\r\n value: val,\r\n isRequired: el.is_required,\r\n });\r\n }}\r\n >\r\n <//>\r\n </div>\r\n `;\r\n }\r\n case 'DYNAMIC':\r\n return !this.shouldShowOldMapping()\r\n ? html`\r\n <div key=${el.id} class=${styles.stepWrap}>\r\n <${DynamicField}\r\n stepId=${selectedStep.id}\r\n dynamicField=${el}\r\n endpointData=${JSON.stringify({\r\n authorization_id:\r\n this.props.stepMapping &&\r\n this.props.stepMapping[\r\n this.props.step.id\r\n ]?.selectedAuthId,\r\n ...this.fieldDynamicData(el),\r\n })}\r\n />\r\n </div>\r\n `\r\n : html``;\r\n case 'PASSWORD':\r\n return html`\r\n <div key=${el.id} class=${styles.stepWrap}>\r\n <${PasswordInput}\r\n title=${el.title || el.activity_field.title}\r\n description=${el.description ||\r\n el.activity_field.description}\r\n value=${(selectedStepData &&\r\n selectedStepData[el.id] &&\r\n selectedStepData[el.id].value) ||\r\n ''}\r\n placeholder=${el.placeholder ||\r\n el.activity_field.placeholder ||\r\n 'Please enter a value'}\r\n regex=${selectedStepData[el.id].regex}\r\n regexErrorMessage=${selectedStepData[el.id]\r\n .regexErrorMessage}\r\n showStepValidation=${showStepValidation}\r\n isRequired=${el.is_required}\r\n onChange=${(val: string) => {\r\n setStepFieldData({\r\n stepId: `${step.id}`,\r\n fieldId: `${el.id}`,\r\n value: val,\r\n isRequired: el.is_required,\r\n });\r\n this.props.verifyStepValidity(step.id);\r\n }}\r\n />\r\n </div>\r\n `;\r\n case 'TEXTAREA':\r\n return html`\r\n <div key=${el.id} class=${styles.stepWrap}>\r\n <${TextArea}\r\n title=${el.title || el.activity_field.title}\r\n description=${el.description ||\r\n el.activity_field.description}\r\n value=${(selectedStepData &&\r\n selectedStepData[el.id] &&\r\n selectedStepData[el.id].value) ||\r\n ''}\r\n placeholder=${el.placeholder ||\r\n el.activity_field.placeholder ||\r\n 'Please enter a value'}\r\n regex=${selectedStepData[el.id].regex}\r\n regexErrorMessage=${selectedStepData[el.id]\r\n .regexErrorMessage}\r\n showStepValidation=${showStepValidation}\r\n isRequired=${el.is_required}\r\n onChange=${(\r\n val: string,\r\n passesRegexTest?: boolean,\r\n ) => {\r\n setStepFieldData({\r\n stepId: `${step.id}`,\r\n fieldId: `${el.id}`,\r\n value: val,\r\n isRequired: el.is_required,\r\n passesRegexTest,\r\n });\r\n this.props.verifyStepValidity(step.id);\r\n }}\r\n />\r\n </div>\r\n `;\r\n case 'DATE':\r\n return html`\r\n <div key=${el.id} class=${styles.stepWrap}>\r\n <${DateInput}\r\n title=${el.title || el.activity_field.title}\r\n description=${el.description ||\r\n el.activity_field.description}\r\n value=${(selectedStepData &&\r\n selectedStepData[el.id] &&\r\n selectedStepData[el.id].value) ||\r\n ''}\r\n placeholder=${el.placeholder ||\r\n 'Please enter a value'}\r\n showStepValidation=${showStepValidation}\r\n isRequired=${el.is_required}\r\n onChange=${(val: string) => {\r\n setStepFieldData({\r\n stepId: `${step.id}`,\r\n fieldId: `${el.id}`,\r\n value: val,\r\n isRequired: el.is_required,\r\n });\r\n this.props.verifyStepValidity(step.id);\r\n }}\r\n />\r\n </div>\r\n `;\r\n case 'RADIO':\r\n return html`\r\n <div key=${el.id} class=${styles.stepWrap}>\r\n <${RadioGroup}\r\n title=${el.title || el.activity_field.title}\r\n description=${el.description ||\r\n el.activity_field.description}\r\n isDynamic=${el.activity_field.is_dynamic}\r\n isRequired=${el.is_required}\r\n showStepValidation=${showStepValidation}\r\n dataSrcEndpoint=${el.activity_field.is_dynamic\r\n ? el.activity_field.data_src\r\n : null}\r\n value=${(selectedStepData &&\r\n selectedStepData[el.id] &&\r\n selectedStepData[el.id].value) ||\r\n ''}\r\n endpointData=${JSON.stringify({\r\n authorization_id:\r\n this.props.stepMapping &&\r\n this.props.stepMapping[this.props.step.id]\r\n ?.selectedAuthId,\r\n ...this.fieldDynamicData(el),\r\n })}\r\n onChange=${(selected: string) => {\r\n setStepFieldData({\r\n stepId: `${step.id}`,\r\n fieldId: `${el.id}`,\r\n value: selected,\r\n isRequired: el.is_required,\r\n });\r\n this.props.verifyStepValidity(step.id);\r\n }}\r\n />\r\n </div>\r\n `;\r\n case 'FIELD_LIST':\r\n return html``;\r\n case 'FIELD_MAPPING':\r\n return html`\r\n <div class=${styles.stepWrap}>\r\n <${NewMappingUI}\r\n stepId=${selectedStep.id}\r\n templateFields=${selectedStep.template_fields}\r\n showStepValidation=${showStepValidation}\r\n ><//>\r\n </div>\r\n `;\r\n default:\r\n return html` <div\r\n class=${`${styles.stepWrap} ${styles.unsupported}`}\r\n >\r\n Field: ${el.activity_field.type} is currently not\r\n supported\r\n </div>`;\r\n }\r\n } else {\r\n switch (el.type) {\r\n case 'HTML':\r\n return html`\r\n <div\r\n style=\"margin-bottom: 2rem;\"\r\n dangerouslySetInnerHTML=${{\r\n __html: el.default_value,\r\n }}\r\n />\r\n `;\r\n case 'BUTTON':\r\n return html`\r\n <div style=\"margin-bottom: 2rem;\">\r\n <${Button} label=${el.title} />\r\n </div>\r\n `;\r\n default:\r\n break;\r\n }\r\n }\r\n return html``;\r\n })}\r\n ${this.shouldShowOldMapping() &&\r\n !this.shouldShowNewMapping() &&\r\n html`\r\n <div class=${styles.stepWrap}>\r\n <${MappingUI}\r\n stepId=${selectedStep.id}\r\n templateFields=${selectedStep.template_fields}\r\n showStepValidation=${showStepValidation}\r\n endpointData=${this.getMappingDataInput()}\r\n ><//>\r\n </div>\r\n `}\r\n </div>\r\n `\r\n : html`Step data could not be loaded`}\r\n `}\r\n `;\r\n }\r\n}\r\n\r\nexport default connect<StepPropsType, StepStateType, StoreType, unknown>(\r\n [\r\n 'stepState',\r\n 'stepMapping',\r\n 'stepDataMapping',\r\n 'parentChildMapping',\r\n 'fieldListMapping',\r\n 'conditionalFieldMapping',\r\n ],\r\n actionFunctions,\r\n)(Step);\r\n","import { html } from 'htm/preact';\r\nimport { FunctionComponent } from 'preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nconst InfoBox: FunctionComponent<{\r\n style: Record<string, string | number>;\r\n}> = ({ style, children }) => html`\r\n <div class=${styles.smartbox} style=${style}>\r\n <svg\r\n width=\"25\"\r\n height=\"25\"\r\n viewBox=\"0 0 25 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M5.3125 12.3603C5.3125 8.47114 8.46911 5.31445 12.3584 5.31445L12.3585 5.31484C16.2474 5.31484 19.4041 8.47145 19.4417 12.3215C19.4417 14.8631 18.1333 17.134 15.9767 18.4048V22.718C15.9767 23.6805 15.2067 24.4505 14.2442 24.4505H10.51C9.5475 24.4505 8.7775 23.6805 8.7775 22.718V18.4437C6.62088 17.1728 5.3125 14.8628 5.3125 12.3603ZM10.3164 20.5597H14.3982V19.7897H10.3164V20.5597ZM14.2079 22.8697H10.4738C10.3971 22.8697 10.2812 22.793 10.2812 22.6772V22.0997H14.363V22.6772C14.4006 22.793 14.3239 22.8697 14.2081 22.8697H14.2079ZM14.3977 17.5188L14.8218 17.2872H14.8218C16.7092 16.3247 17.8642 14.4387 17.8642 12.3588C17.8642 9.3163 15.3992 6.85291 12.3583 6.85291C9.31585 6.85291 6.85246 9.31791 6.85246 12.3588C6.85246 14.4764 8.00746 16.3638 9.89335 17.2872L10.3175 17.5188V18.2888H14.3977V17.5188Z\"\r\n fill=\"#556BDD\"\r\n />\r\n <path\r\n d=\"M12.3559 4.19588C12.7801 4.19588 13.1259 3.84998 13.1259 3.42588V0.77C13.1259 0.345884 12.78 0 12.3559 0C11.9318 0 11.5859 0.345899 11.5859 0.77V3.42588C11.5859 3.85 11.9318 4.19588 12.3559 4.19588Z\"\r\n fill=\"#556BDD\"\r\n />\r\n <path\r\n d=\"M23.9454 11.5107H21.2895C20.8654 11.5107 20.5195 11.8566 20.5195 12.2807C20.5195 12.7049 20.8654 13.0507 21.2895 13.0507H23.9454C24.3695 13.0507 24.7154 12.7048 24.7154 12.2807C24.7154 11.8581 24.368 11.5107 23.9454 11.5107Z\"\r\n fill=\"#556BDD\"\r\n />\r\n <path\r\n d=\"M3.42588 11.5107H0.77C0.345884 11.5107 0 11.8566 0 12.2807C0 12.7049 0.345899 13.0507 0.77 13.0507H3.42588C3.85 13.0507 4.19588 12.7048 4.19588 12.2807C4.19588 11.8581 3.84848 11.5107 3.42588 11.5107Z\"\r\n fill=\"#556BDD\"\r\n />\r\n <path\r\n d=\"M5.58214 4.77336L3.69625 2.88748C3.38795 2.57917 2.92625 2.57917 2.61795 2.88748C2.30964 3.19578 2.30965 3.65748 2.61795 3.96578L4.50383 5.85167C4.65723 6.00507 4.84973 6.08327 5.04221 6.08327C5.2347 6.08327 5.42721 6.00657 5.5806 5.85167C5.8904 5.54337 5.8904 5.08167 5.5821 4.77336H5.58214Z\"\r\n fill=\"#556BDD\"\r\n />\r\n <path\r\n d=\"M22.0978 2.88748C21.7895 2.57917 21.3278 2.57917 21.0195 2.88748L19.1336 4.77336C18.8253 5.08166 18.8253 5.54336 19.1336 5.85167C19.287 6.00507 19.4795 6.08327 19.672 6.08327C19.8644 6.08327 20.057 6.00657 20.2103 5.85167L22.0962 3.96578C22.406 3.65748 22.406 3.19578 22.0977 2.88748H22.0978Z\"\r\n fill=\"#556BDD\"\r\n />\r\n </svg>\r\n <div>${children}</div>\r\n </div>\r\n`;\r\n\r\nexport { InfoBox };\r\n","import { html, Component } from 'htm/preact';\r\nimport { connect } from 'unistore/preact';\r\nimport {\r\n IntegrationSaveResponse,\r\n TemplateField,\r\n TemplateStep,\r\n} from '@/interfaces';\r\nimport { Button, ButtonTypes } from '@/components/Button';\r\nimport { StoreType } from '@/types/store';\r\nimport AuthSelector from '@/features/common/AuthSelector';\r\nimport AppContext from '@/contexts/AppContext';\r\nimport Step from '@/features/common/Step';\r\nimport { actionFunctions } from '@/store';\r\nimport { InfoBox } from '@/components/InfoBox';\r\nimport { TextArea } from '@/components/TextArea';\r\nimport { notEmpty } from '@/types/utils';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport type StepsPropsType = {\r\n onUpdate?(): void;\r\n} & StoreType;\r\n\r\ntype StepsStateType = {\r\n selectedAuthStep: number | null;\r\n loading: boolean;\r\n postSave: boolean;\r\n postSaveData: Record<string, string | number | boolean> | null;\r\n integrationData: IntegrationSaveResponse | null;\r\n};\r\n\r\nclass Steps extends Component<\r\n StepsPropsType,\r\n StepsStateType & Record<string, unknown>\r\n> {\r\n static contextType = AppContext;\r\n\r\n constructor(props: StepsPropsType) {\r\n super(props);\r\n this.state = {\r\n loading: false,\r\n selectedAuthStep: null,\r\n postSave: false,\r\n postSaveData: null,\r\n integrationData: null,\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps: StepsPropsType) {\r\n const { stepState: prevStepState } = prevProps;\r\n const { stepState: newStepState } = this.props;\r\n if (prevStepState.stepIndex !== newStepState.stepIndex)\r\n this.context.eventEmitter.emit('did-change-step', {\r\n stepId: newStepState.steps[newStepState.stepIndex]?.stepId ?? null,\r\n stepType:\r\n newStepState.steps[newStepState.stepIndex]?.type ?? 'CONFIRMATION',\r\n });\r\n }\r\n\r\n private getMappingPayload = (stepId: number, data: TemplateField[]) => {\r\n const { stepDataMapping } = this.props;\r\n // if old mapping, return A, else B\r\n let mappingPayload = null;\r\n\r\n if (this.props.mappingInfo?.isNewMapping) {\r\n //\r\n const standardFieldsOutsideMapping = data.filter(\r\n (el) =>\r\n !el.added_in_mapping && el.activity_field?.type !== 'FIELD_MAPPING',\r\n );\r\n const standardFieldsInsideMapping = data.filter(\r\n (el) =>\r\n el.added_in_mapping && el.activity_field?.type !== 'FIELD_MAPPING',\r\n );\r\n const mappingField = data.filter(\r\n (el) => el.activity_field?.type === 'FIELD_MAPPING',\r\n )[0];\r\n\r\n const payloadForNormalFields = standardFieldsOutsideMapping.map(\r\n (field) => ({\r\n id: stepDataMapping[stepId][field.id].integrationFieldId || field.id,\r\n value: stepDataMapping[stepId][field.id].value,\r\n template_field: field.id,\r\n }),\r\n );\r\n\r\n if (mappingField) {\r\n const normalFieldsInsideMappingObj = standardFieldsInsideMapping.reduce(\r\n (prev, next) => ({\r\n ...prev,\r\n [next.activity_field?.machine_name ?? '']: stepDataMapping[stepId][\r\n next.id\r\n ].value,\r\n }),\r\n {},\r\n );\r\n const parsedField =\r\n stepDataMapping[stepId][mappingField.id].objectValue;\r\n\r\n mappingPayload = {\r\n id: Number(\r\n stepDataMapping[stepId][mappingField.id].integrationFieldId,\r\n ),\r\n template_field: mappingField.id,\r\n value: JSON.stringify({\r\n ...normalFieldsInsideMappingObj,\r\n ...{\r\n [this.props.mappingInfo.customFieldsKey || '']: parsedField,\r\n },\r\n }),\r\n };\r\n }\r\n\r\n const finalPayload = [...payloadForNormalFields];\r\n\r\n if (mappingPayload) {\r\n finalPayload.push(mappingPayload);\r\n }\r\n\r\n // \"mapping\": { // field mapper machine name\r\n // \"merged_fields\": {\r\n // \"mc_email_type\": \"{sib_trigger.out.attribute.email_type}\"\r\n // },\r\n // \"mc_email\": \"{sib_trigger.out.email}\"\r\n // }\r\n\r\n return finalPayload;\r\n }\r\n return data.map((field) => ({\r\n id: stepDataMapping[stepId][field.id].integrationFieldId || field.id,\r\n value:\r\n (stepDataMapping[stepId][field.id].value ||\r\n stepDataMapping[stepId][field.id].value === '') &&\r\n !stepDataMapping[stepId][field.id].objectValue\r\n ? `${stepDataMapping[stepId][field.id].value}`\r\n : JSON.stringify(stepDataMapping[stepId][field.id].objectValue),\r\n template_field: field.id,\r\n }));\r\n };\r\n\r\n private getPayload = () => {\r\n const { stepMapping } = this.props;\r\n if (this.context.isPreviewMode) {\r\n return null;\r\n }\r\n this.setState({ loading: true });\r\n const payload: any = {\r\n name: this.props.genericData.name ?? 'My new flow',\r\n notification_email: '',\r\n template: Number(this.props.genericData.templateId),\r\n bundle_id: Number(this.props.genericData.deploymentId),\r\n steps: Object.keys(stepMapping).map((el) => ({\r\n id: stepMapping[el].integrationStepId || stepMapping[el].step.id,\r\n authorization: Number(stepMapping[el].selectedAuthId) || null,\r\n template_step: stepMapping[el].step.id,\r\n app_user_data: this.getMappingPayload(\r\n stepMapping[el].step.id,\r\n stepMapping[el].step.template_fields,\r\n ),\r\n })),\r\n };\r\n if (this.props.integrationIdToEdit) {\r\n payload.bundle_instance_id = 'false';\r\n }\r\n return payload;\r\n };\r\n\r\n private createIntegration = () => {\r\n const payload = this.getPayload();\r\n if (payload)\r\n this.context.apiHandler\r\n .saveIntegration(payload)\r\n .then((integration: IntegrationSaveResponse) => {\r\n this.postSaveOrCreate(integration);\r\n })\r\n .catch((err: unknown) => console.error(err));\r\n };\r\n\r\n private postSaveOrCreate = (integration: IntegrationSaveResponse) => {\r\n const returnedStep = integration.steps.filter(\r\n (el) => !!el.returned_data,\r\n )[0];\r\n if (returnedStep && returnedStep.returned_data) {\r\n try {\r\n const parsedData = JSON.parse(returnedStep.returned_data);\r\n if (parsedData.is_webhook_url && parsedData.endpoint) {\r\n if (this.props.userConfig?.hideWebhookUrlScreen) {\r\n this.setState(\r\n {\r\n postSaveData: parsedData,\r\n integrationData: integration,\r\n },\r\n () => {\r\n this.dismiss();\r\n },\r\n );\r\n } else {\r\n this.setState({\r\n postSave: true,\r\n postSaveData: parsedData,\r\n integrationData: integration,\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n } else {\r\n this.setState(\r\n {\r\n integrationData: integration,\r\n },\r\n () => {\r\n this.dismiss();\r\n },\r\n );\r\n }\r\n this.setState({ loading: false });\r\n };\r\n\r\n private updateIntegration = () => {\r\n const payload = this.getPayload();\r\n if (payload) {\r\n this.context.apiHandler\r\n .updateIntegration(this.props.integrationIdToEdit, {\r\n ...payload,\r\n id: `${this.props.integrationIdToEdit}`,\r\n })\r\n .then((integration: IntegrationSaveResponse) => {\r\n this.postSaveOrCreate(integration);\r\n })\r\n .catch((err: unknown) => console.error(err));\r\n }\r\n };\r\n\r\n private getAuthorizationsData = (): {\r\n authorizationId: unknown;\r\n userIdentity: string;\r\n isBrandingAppAuth: unknown;\r\n }[] => {\r\n const { stepMapping } = this.props;\r\n const auths = Object.keys(stepMapping)\r\n .map((stepId) => {\r\n const step = stepMapping[stepId];\r\n const auth = step.authorizations.filter(\r\n (el) => el.authorizationId === step.selectedAuthId,\r\n )[0];\r\n if (auth) {\r\n return {\r\n authorizationId: stepMapping[stepId].selectedAuthId,\r\n userIdentity: auth.userIdentity,\r\n isBrandingAppAuth:\r\n step.step.activity.app.id ===\r\n this.props.genericData.brandingApp?.id,\r\n };\r\n }\r\n return null;\r\n })\r\n .filter(notEmpty);\r\n return auths;\r\n };\r\n\r\n private dismiss = () => {\r\n const { onUpdate = () => null } = this.props;\r\n const { integrationData } = this.state;\r\n if (integrationData) {\r\n onUpdate();\r\n this.props.setStoreState({\r\n showSetupModal: false,\r\n showSetupInline: false,\r\n fetchingIntegrations: true,\r\n });\r\n this.context.eventEmitter.emit('did-save-integration', {\r\n integrationId: integrationData.id,\r\n name: integrationData.name,\r\n templateId: integrationData.template,\r\n status: integrationData.status,\r\n callbackUrl: this.state.postSaveData?.endpoint ?? null,\r\n authorizations: this.getAuthorizationsData(),\r\n });\r\n }\r\n };\r\n\r\n private handleAuthSelected = (\r\n authId: number,\r\n stepId: number,\r\n isVerified: boolean,\r\n override: boolean,\r\n ) => {\r\n const dependentSteps = this.props.stepMapping[stepId].step.template_fields\r\n .filter((el) => el.activity_field && el.activity_field.is_dynamic)\r\n .map((el) => el.id);\r\n // reset all dynamic steps if auth changes\r\n this.props.setStepAuthorization(\r\n stepId,\r\n authId,\r\n isVerified,\r\n dependentSteps,\r\n override,\r\n );\r\n };\r\n\r\n render() {\r\n let selectedStep: {\r\n step: TemplateStep;\r\n selectedAuthId: number | null;\r\n } | null = null;\r\n const { stepState, stepMapping } = this.props;\r\n const { postSave, postSaveData } = this.state;\r\n const { currentStep, stepIndex, steps } = stepState;\r\n\r\n let shouldShowLastStep = false;\r\n let shouldShowBackButton = false;\r\n let isStepValid = false;\r\n let showStepValidation = false;\r\n if (stepIndex > -1 && currentStep?.type !== 'CONFIRMATION') {\r\n selectedStep = stepMapping[Number(currentStep?.stepId)];\r\n\r\n shouldShowLastStep = false;\r\n shouldShowBackButton = stepState.stepIndex > 0;\r\n isStepValid = currentStep?.isValid ?? false;\r\n showStepValidation = stepState.showValidation;\r\n } else if (\r\n currentStep?.type === 'CONFIRMATION' &&\r\n stepIndex === steps.length\r\n ) {\r\n shouldShowBackButton = true;\r\n shouldShowLastStep = true;\r\n }\r\n\r\n return html`\r\n <div class=\"${styles.stepsWrap} ${'integry-steps-container'}\">\r\n <div class=${styles.stepContainer}>\r\n ${this.props.genericData.isPreviewMode &&\r\n this.props.stepState.currentStep?.type === 'AUTH' &&\r\n html`\r\n <${InfoBox} style=${{ marginBottom: 30 }}>\r\n The auth step is always shown in preview mode and will be hidden\r\n when implicit auth is configured on your deployment. Learn more\r\n ${' '}<a\r\n href=\"https://support.integry.io/hc/en-us/articles/360049619874-Single-Sign-On-SSO-with-Integration-Marketplace#implementingssoforintegrationmarketplaceinyourapplication\"\r\n target=\"_blank\"\r\n >here</a\r\n >.\r\n </${InfoBox}>\r\n `}\r\n <div class=\"${styles.stepInfo} ${'integry-steps-information'}\">\r\n ${currentStep &&\r\n html`\r\n ${shouldShowLastStep\r\n ? html`\r\n <div class=${styles.header}>\r\n <div class=${styles.name}>\r\n <svg\r\n width=\"25\"\r\n height=\"25\"\r\n viewBox=\"0 0 25 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle\r\n cx=\"12.5\"\r\n cy=\"12.5\"\r\n r=\"11.75\"\r\n fill=\"white\"\r\n stroke=\"#2ECC71\"\r\n stroke-width=\"1.5\"\r\n />\r\n <path\r\n d=\"M17.2209 9.16699L11.3907 15.8337L8.33203 12.3361\"\r\n stroke=\"#2ECC71\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n <div>\r\n ${postSaveData &&\r\n postSave &&\r\n !this.props.userConfig?.hideWebhookUrlScreen\r\n ? `Flow ${\r\n this.context?.integrationId\r\n ? 'updated'\r\n : 'created'\r\n } successfully`\r\n : 'Confirm and activate'}\r\n </div>\r\n </div>\r\n <div class=${styles.steps}>\r\n ${`Step ${\r\n (this.props.stepState?.stepIndex ?? 0) + 1\r\n } / ${(this.props.stepState?.steps.length ?? 0) + 1}`}\r\n </div>\r\n </div>\r\n `\r\n : html`\r\n <div class=${styles.header}>\r\n <div class=${styles.name}>\r\n <img src=${selectedStep?.step.activity.app.icon_url} />\r\n <div>\r\n ${currentStep?.type !== 'CONFIRMATION' &&\r\n currentStep?.title}\r\n </div>\r\n </div>\r\n <div class=${styles.steps}>\r\n ${`Step ${\r\n (this.props.stepState?.stepIndex ?? 0) + 1\r\n } / ${(this.props.stepState?.steps.length ?? 0) + 1}`}\r\n </div>\r\n </div>\r\n `}\r\n `}\r\n </div>\r\n <div class=${styles.top}>\r\n ${currentStep\r\n ? html`\r\n ${shouldShowLastStep\r\n ? html`\r\n ${postSave &&\r\n !this.props.userConfig?.hideWebhookUrlScreen\r\n ? html`\r\n <div class=${styles.postSave}>\r\n <${TextArea}\r\n title=\"Webhook URL\"\r\n description=\"Please use the following webhook url to send data\"\r\n value=${postSaveData?.endpoint}\r\n showCopyButton=${true}\r\n />\r\n </div>\r\n `\r\n : html`\r\n <div class=${styles.save}>\r\n ${this.props.genericData.isAnonymous\r\n ? html`The integration cannot be enabled\r\n because the marketplace owner hasn't\r\n configured authorization. If you are the\r\n owner, you can set up authorization in\r\n Marketplace settings.`\r\n : html` ${this.props.integrationIdToEdit\r\n ? 'Your integration is ready to be updated. Click “Update” to continue.'\r\n : 'Your integration is ready to be enabled. Click “Save” to continue.'}`}\r\n </div>\r\n `}\r\n `\r\n : html`\r\n ${selectedStep &&\r\n html`\r\n ${currentStep?.type === 'AUTH'\r\n ? html`\r\n <div class=${styles.authWrap}>\r\n <${AuthSelector}\r\n stepId=${selectedStep.step.id}\r\n apiHandler=${this.context.apiHandler}\r\n showErrors=${showStepValidation}\r\n onAuthSelected=${(\r\n authId: number,\r\n isVerified: boolean,\r\n override: boolean,\r\n ) =>\r\n this.handleAuthSelected(\r\n authId,\r\n Number(selectedStep?.step.id),\r\n isVerified,\r\n override,\r\n )}\r\n >\r\n <//>\r\n </div>\r\n `\r\n : html`\r\n <${Step}\r\n step=${selectedStep?.step}\r\n stepType=${currentStep?.type}\r\n showStepValidation=${showStepValidation}\r\n apiHandler=${this.context.apiHandler}\r\n eventEmitter=${this.context.eventEmitter}\r\n />\r\n `}\r\n `}\r\n `}\r\n `\r\n : html`This flow has no configured steps`}\r\n </div>\r\n ${currentStep &&\r\n html`\r\n <div class=${styles.bottom}>\r\n <div class=${styles.buttons}>\r\n ${shouldShowBackButton &&\r\n !postSave &&\r\n !postSaveData &&\r\n html`\r\n <${Button}\r\n label=\"Back\"\r\n onClick=${() => this.props.gotoPreviousStep()}\r\n type=${ButtonTypes.SECONDARY}\r\n ><//>\r\n `}\r\n ${shouldShowLastStep\r\n ? html`\r\n ${!postSave && !postSaveData\r\n ? html`\r\n ${this.props.integrationIdToEdit\r\n ? html`\r\n <${Button}\r\n label=\"Update\"\r\n disabled=${this.context.isPreviewMode ||\r\n this.state.loading}\r\n isLoading=${this.state.loading}\r\n onClick=${() => this.updateIntegration()}\r\n ><//>\r\n `\r\n : html`\r\n <${Button}\r\n label=\"Save\"\r\n disabled=${this.context.isPreviewMode ||\r\n this.props.genericData.isAnonymous ||\r\n this.state.loading}\r\n tooltip=${this.context.isPreviewMode\r\n ? 'Since this is just a preview, integration\\nsetup will have to be done in \"Live View\"'\r\n : null}\r\n isLoading=${this.state.loading}\r\n onClick=${() => this.createIntegration()}\r\n ><//>\r\n `}\r\n `\r\n : html`\r\n <${Button}\r\n label=\"Continue\"\r\n onClick=${() => this.dismiss()}\r\n ><//>\r\n `}\r\n `\r\n : html`\r\n <${Button}\r\n label=\"Next\"\r\n hasError=${!isStepValid}\r\n onClick=${() =>\r\n isStepValid\r\n ? this.props.gotoNextStep()\r\n : this.props.showStepValidationState()}\r\n ><//>\r\n `}\r\n </div>\r\n </div>\r\n `}\r\n </div>\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nexport default connect<StepsPropsType, StepsStateType, StoreType, unknown>(\r\n [\r\n 'stepState',\r\n 'userConfig',\r\n 'mappingInfo',\r\n 'genericData',\r\n 'stepMapping',\r\n 'stepDataMapping',\r\n 'integrationIdToEdit',\r\n ],\r\n actionFunctions,\r\n)(Steps);\r\n","import { RefObject } from 'preact';\r\nimport { useEffect, useRef } from 'preact/hooks';\r\n\r\nfunction useEventListener<T extends HTMLElement = HTMLDivElement>(\r\n eventName: keyof WindowEventMap,\r\n handler: (event: Event) => void,\r\n element?: RefObject<T>,\r\n) {\r\n // Create a ref that stores handler\r\n const savedHandler: RefObject<(event: Event) => void> = useRef<\r\n (event: Event) => void\r\n >();\r\n\r\n useEffect(() => {\r\n // Define the listening target\r\n const targetElement: T | Window = element?.current || window;\r\n if (!(targetElement && targetElement.addEventListener)) {\r\n return;\r\n }\r\n\r\n // Update saved handler if necessary\r\n if (savedHandler.current !== handler) {\r\n savedHandler.current = handler;\r\n }\r\n\r\n // Create event listener that calls handler function stored in ref\r\n const eventListener = (event: Event) => {\r\n // eslint-disable-next-line no-extra-boolean-cast\r\n if (!!savedHandler?.current) {\r\n savedHandler.current(event);\r\n }\r\n };\r\n\r\n targetElement.addEventListener(eventName, eventListener);\r\n\r\n // Remove event listener on cleanup\r\n // eslint-disable-next-line consistent-return\r\n return () => {\r\n targetElement.removeEventListener(eventName, eventListener);\r\n };\r\n }, [eventName, element, handler]);\r\n}\r\n\r\nexport default useEventListener;\r\n","import { RefObject } from 'preact';\r\nimport { useCallback, useEffect, useState } from 'preact/hooks';\r\n\r\nimport useEventListener from './useEventListener';\r\n\r\ninterface Size {\r\n width: number;\r\n height: number;\r\n}\r\n\r\nfunction useElementSize<T extends HTMLElement = HTMLDivElement>(\r\n elementRef: RefObject<T>,\r\n): Size {\r\n const [size, setSize] = useState<Size>({\r\n width: 0,\r\n height: 0,\r\n });\r\n\r\n // Prevent too many rendering using useCallback\r\n const updateSize = useCallback(() => {\r\n const node = elementRef?.current;\r\n if (node) {\r\n setSize({\r\n width: node.offsetWidth || 0,\r\n height: node.offsetHeight || 0,\r\n });\r\n }\r\n }, [elementRef]);\r\n\r\n // Initial size on mount\r\n useEffect(() => {\r\n updateSize();\r\n }, []);\r\n\r\n useEventListener('resize', updateSize);\r\n\r\n return size;\r\n}\r\n\r\nexport default useElementSize;\r\n","import { useEffect, useState } from 'preact/hooks';\r\n\r\nfunction useDebounce<T>(value: T, delay?: number): T {\r\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\r\n\r\n useEffect(() => {\r\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\r\n\r\n return () => {\r\n clearTimeout(timer);\r\n };\r\n }, [value, delay]);\r\n\r\n return debouncedValue;\r\n}\r\n\r\nexport default useDebounce;\r\n","import { html, Component } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ntype NavItemProps = {\r\n label: string;\r\n logoUrl?: string;\r\n isDisabled?: boolean;\r\n isActive?: boolean;\r\n isCompleted?: boolean;\r\n isLastStep?: boolean;\r\n showArrow?: boolean;\r\n onClick?(): void;\r\n};\r\n\r\nconst TickMark = html` <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 15 15\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n>\r\n <rect opacity=\"0.7\" width=\"15\" height=\"15\" rx=\"7.5\" fill=\"#2ECC71\" />\r\n <path\r\n d=\"M9.23107 6.34619L6.96066 8.94234L5.76953 7.58033\"\r\n stroke=\"white\"\r\n stroke-width=\"1.2\"\r\n stroke-linecap=\"round\"\r\n />\r\n</svg>`;\r\n\r\nconst FinalTickMark = html`\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 15 15\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle\r\n cx=\"7.5\"\r\n cy=\"7.5\"\r\n r=\"6.75\"\r\n fill=\"white\"\r\n stroke=\"#2ECC71\"\r\n stroke-width=\"1.5\"\r\n />\r\n <path\r\n d=\"M10.3333 5.5L6.83522 9.5L5 7.40148\"\r\n stroke=\"#2ECC71\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n`;\r\n\r\nclass NavItem extends Component<NavItemProps> {\r\n render() {\r\n const {\r\n logoUrl,\r\n isActive = false,\r\n isCompleted = false,\r\n isDisabled = false,\r\n isLastStep = false,\r\n onClick = () => null,\r\n showArrow = true,\r\n } = this.props;\r\n return html`\r\n <div\r\n class=${`${styles.navItem} ${isDisabled ? styles.disabled : ''} ${\r\n isActive ? styles.active : ''\r\n }`}\r\n onclick=${onClick}\r\n tabindex=\"-1\"\r\n role=\"button\"\r\n >\r\n <div class=${styles.navItemContent}>\r\n <div class=${styles.imgContainer}>\r\n ${!(isCompleted && !isActive)\r\n ? html`<img src=${logoUrl} />`\r\n : TickMark}\r\n ${isLastStep && FinalTickMark}\r\n </div>\r\n <p>${this.props.label}</p>\r\n ${!isLastStep &&\r\n showArrow &&\r\n html`\r\n <div class=${styles.arrow}>\r\n <svg\r\n width=\"6\"\r\n height=\"11\"\r\n viewBox=\"0 0 6 11\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M0.917969 1.33366L5.08464 5.50033L0.917969 9.66699\"\r\n stroke=\"#999999\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n `}\r\n </div>\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nexport { NavItem, NavItemProps };\r\n","import { html } from 'htm/preact';\r\nimport { useRef, useState } from 'preact/hooks';\r\nimport { StepStateStep } from '@/types/store';\r\nimport { useOnClickOutside } from '@/hooks/useOnClickOutside';\r\n\r\nimport { NavItem } from './NavItem';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface CollapsedStepsProps {\r\n isPreviewMode?: boolean;\r\n currentStepIndex: number;\r\n changeStep(index: number): void;\r\n steps: StepStateStep[];\r\n}\r\n\r\nconst CollapsedSteps = (props: CollapsedStepsProps) => {\r\n const { steps, currentStepIndex, isPreviewMode, changeStep } = props;\r\n\r\n const collapseRef = useRef<HTMLDivElement>();\r\n const dotsRef = useRef<HTMLDivElement>();\r\n\r\n const [showCollapsed, setShowCollapsed] = useState(false);\r\n\r\n useOnClickOutside(collapseRef, () =>\r\n showCollapsed ? setShowCollapsed(false) : null,\r\n );\r\n\r\n // useEffect(() => {\r\n // const onMouseOver = () => {\r\n // setShowCollapsed(true);\r\n // };\r\n // const onMouseLeave = () => {\r\n // setShowCollapsed(false);\r\n // };\r\n // dotsRef.current?.addEventListener('mouseenter', onMouseOver);\r\n // collapseRef.current?.addEventListener('mouseleave', onMouseLeave);\r\n\r\n // return () => {\r\n // dotsRef.current?.removeEventListener('mouseenter', onMouseOver);\r\n // collapseRef.current?.removeEventListener('mouseleave', onMouseLeave);\r\n // };\r\n // }, []);\r\n\r\n return html`\r\n <div class=${styles.collapse}>\r\n <div\r\n class=${styles.dots}\r\n ref=${dotsRef}\r\n onclick=${() => setShowCollapsed(true)}\r\n >\r\n <svg\r\n width=\"16\"\r\n height=\"17\"\r\n viewBox=\"0 0 16 17\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M3.60039 9.83213C4.26313 9.83213 4.80039 9.29487 4.80039 8.63213C4.80039 7.96939 4.26313 7.43213 3.60039 7.43213C2.93765 7.43213 2.40039 7.96939 2.40039 8.63213C2.40039 9.29487 2.93765 9.83213 3.60039 9.83213Z\"\r\n fill=\"#333333\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M7.60039 9.83213C8.26313 9.83213 8.80039 9.29487 8.80039 8.63213C8.80039 7.96939 8.26313 7.43213 7.60039 7.43213C6.93765 7.43213 6.40039 7.96939 6.40039 8.63213C6.40039 9.29487 6.93765 9.83213 7.60039 9.83213Z\"\r\n fill=\"#333333\"\r\n />\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n d=\"M11.6004 9.83213C12.2631 9.83213 12.8004 9.29487 12.8004 8.63213C12.8004 7.96939 12.2631 7.43213 11.6004 7.43213C10.9376 7.43213 10.4004 7.96939 10.4004 8.63213C10.4004 9.29487 10.9376 9.83213 11.6004 9.83213Z\"\r\n fill=\"#333333\"\r\n />\r\n </svg>\r\n </div>\r\n <div\r\n ref=${collapseRef}\r\n class=\"${styles.popup} ${showCollapsed ? styles.show : ''}\"\r\n >\r\n ${steps.map(\r\n (el) => html`<div class=${styles.stepItem}>\r\n <${NavItem}\r\n label=${el.type !== 'CONFIRMATION' ? el.title : 'Confirmation'}\r\n logoUrl=${el.type !== 'CONFIRMATION' && el.iconUrl}\r\n isCompleted=${!isPreviewMode && el.isCompleted}\r\n isActive=${el.type !== 'CONFIRMATION' &&\r\n currentStepIndex === el.itemIndex}\r\n isDisabled=${(isPreviewMode &&\r\n Number(currentStepIndex) !== el.itemIndex) ||\r\n Number(currentStepIndex) < el.itemIndex}\r\n isLastStep=${false}\r\n showArrow=${false}\r\n onClick=${() => {\r\n setShowCollapsed(false);\r\n changeStep(el.itemIndex);\r\n }}\r\n />\r\n </div>`,\r\n )}\r\n </div>\r\n <div class=${styles.arrow}>\r\n <svg\r\n width=\"6\"\r\n height=\"11\"\r\n viewBox=\"0 0 6 11\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M0.917969 1.33366L5.08464 5.50033L0.917969 9.66699\"\r\n stroke=\"#999999\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n `;\r\n};\r\n\r\nexport { CollapsedSteps };\r\n","/* eslint-disable no-console */\r\nimport { html } from 'htm/preact';\r\nimport { useContext, useState, useEffect, useRef } from 'preact/hooks';\r\nimport { connect } from 'unistore/preact';\r\nimport { StepStateStep, StoreType } from '@/types/store';\r\n\r\nimport AppContext from '@/contexts/AppContext';\r\nimport { actionFunctions } from '@/store';\r\nimport useElementResize from '@/hooks/useElementResize';\r\nimport useDebounce from '@/hooks/useDebounce';\r\n\r\nimport { NavItem } from './NavItem';\r\nimport { CollapsedSteps } from './CollapsedSteps';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport type StepNavigationProps = StoreType;\r\n\r\ninterface ParsedStep {\r\n type: 'VISIBLE' | 'COLLAPSED';\r\n steps: StepStateStep[];\r\n}\r\n\r\nconst StepNavigation = (props: StepNavigationProps) => {\r\n const MAX_STEP_WIDTH = 220;\r\n\r\n const wrapRef = useRef<HTMLDivElement>();\r\n\r\n const {\r\n gotoStep,\r\n stepState: {\r\n stepIndex: currentStepIndex,\r\n steps,\r\n currentStep: step,\r\n allStepsCompleted,\r\n },\r\n } = props;\r\n const context = useContext(AppContext);\r\n\r\n const { width } = useElementResize(wrapRef);\r\n\r\n const debouncedWidth = useDebounce(width, 150);\r\n\r\n const [parsedSteps, setParsedSteps] = useState<ParsedStep[]>([]);\r\n\r\n useEffect(() => {\r\n let widthToUse = 0;\r\n // immediately use width and then use debounded value\r\n if (debouncedWidth === 0) widthToUse = width;\r\n else widthToUse = debouncedWidth;\r\n\r\n let composedArray: ParsedStep[] = [];\r\n\r\n if (wrapRef.current) {\r\n // console.log('Width of step container:', debouncedWidth);\r\n // console.log('Max width:', MAX_STEP_WIDTH);\r\n // console.log('Number of steps:', steps.length);\r\n\r\n const stepsToShow = widthToUse / MAX_STEP_WIDTH;\r\n // console.log('step_width / MAX_WIDTH:', stepsToShow);\r\n\r\n let itemIndex = -1;\r\n\r\n if (stepsToShow <= steps.length) {\r\n // const canShowComfortably = Math.floor(stepsToShow);\r\n // console.log(\r\n // 'Collapsed state enabled since we can only show:',\r\n // canShowComfortably,\r\n // );\r\n if (steps.length <= 2) {\r\n // simple template with upto 2 steps, always show all\r\n // console.log(\r\n // 'Simple template with upto three steps, always show all three',\r\n // );\r\n // first and second, and confirmation step are always shown.\r\n composedArray.push({\r\n type: 'VISIBLE',\r\n steps: steps.map((el) => {\r\n itemIndex += 1;\r\n return {\r\n ...el,\r\n itemIndex,\r\n };\r\n }),\r\n });\r\n } else if (steps.length > 2) {\r\n itemIndex += 1;\r\n\r\n // now we have to check logic\r\n // console.log(\r\n // 'Template has more than 3 steps, checking collapse states',\r\n // );\r\n // if index is not first or last\r\n // always show first step\r\n composedArray.push({\r\n type: 'VISIBLE',\r\n steps: [{ ...steps[0], itemIndex }],\r\n });\r\n\r\n if (currentStepIndex !== 0 && currentStepIndex !== steps.length) {\r\n // check middle cases\r\n if (currentStepIndex > 1) {\r\n // console.log('More steps on the left exist');\r\n composedArray.push({\r\n type: 'COLLAPSED',\r\n steps: steps.slice(1, currentStepIndex).map((el) => {\r\n itemIndex += 1;\r\n return { ...el, itemIndex };\r\n }),\r\n });\r\n }\r\n\r\n // add the current step in every case\r\n composedArray.push({\r\n type: 'VISIBLE',\r\n steps: [\r\n { ...steps[currentStepIndex], itemIndex: currentStepIndex },\r\n ],\r\n });\r\n itemIndex += 1;\r\n\r\n if (steps.length - currentStepIndex > 1) {\r\n // console.log('More steps on the right exist');\r\n composedArray.push({\r\n type: 'COLLAPSED',\r\n steps: steps\r\n .slice(currentStepIndex + 1, steps.length)\r\n .map((el) => {\r\n itemIndex += 1;\r\n return {\r\n ...el,\r\n itemIndex,\r\n };\r\n }),\r\n });\r\n }\r\n } else {\r\n // console.log('Show first, last, collapsed steps in middle');\r\n composedArray.push({\r\n type: 'COLLAPSED',\r\n steps: steps.slice(1, steps.length).map((el) => {\r\n itemIndex += 1;\r\n return { ...el, itemIndex };\r\n }),\r\n });\r\n }\r\n }\r\n } else {\r\n // console.log('Showing all');\r\n composedArray = [\r\n {\r\n type: 'VISIBLE',\r\n steps: steps.map((el, idx) => ({\r\n ...el,\r\n itemIndex: idx,\r\n })),\r\n },\r\n ];\r\n }\r\n }\r\n // console.log({\r\n // composedArray,\r\n // });\r\n setParsedSteps(composedArray);\r\n }, [steps, width, debouncedWidth, currentStepIndex]);\r\n\r\n const changeStep = (stepIndex: number) => {\r\n gotoStep(stepIndex);\r\n };\r\n\r\n return html`\r\n <div class=\"${styles.navigation} ${'integry-steps-navigation'}\" ref=${wrapRef}>\r\n ${parsedSteps.map((parent) => {\r\n if (parent.type === 'VISIBLE') {\r\n return parent.steps.map(\r\n (el) => html`\r\n <div\r\n class=${styles.stepItem}\r\n style=${{\r\n maxWidth: MAX_STEP_WIDTH,\r\n }}\r\n >\r\n <${NavItem}\r\n label=${el.type !== 'CONFIRMATION'\r\n ? el.title\r\n : 'Confirmation'}\r\n logoUrl=${el.type !== 'CONFIRMATION' && el.iconUrl}\r\n isCompleted=${!context?.isPreviewMode && el.isCompleted}\r\n isActive=${step?.type !== 'CONFIRMATION' &&\r\n el.type !== 'CONFIRMATION' &&\r\n currentStepIndex === el.itemIndex}\r\n isDisabled=${!allStepsCompleted &&\r\n ((context?.isPreviewMode &&\r\n Number(currentStepIndex) !== el.itemIndex) ||\r\n Number(currentStepIndex) < el.itemIndex)}\r\n isLastStep=${el.itemIndex === steps.length}\r\n onClick=${() => changeStep(el.itemIndex)}\r\n />\r\n </div>\r\n `,\r\n );\r\n }\r\n if (parent.type === 'COLLAPSED') {\r\n return html`\r\n <${CollapsedSteps}\r\n isPreviewMode=${context?.isPreviewMode}\r\n currentStepIndex=${currentStepIndex}\r\n changeStep=${changeStep}\r\n steps=${parent.steps}\r\n />\r\n `;\r\n }\r\n return html`<></>`;\r\n })}\r\n ${parsedSteps.length > 0 &&\r\n html`\r\n <${NavItem}\r\n label=\"Confirmation\"\r\n logoUrl=\"\"\r\n isCompleted=${true}\r\n isActive=${step !== undefined && currentStepIndex === steps.length}\r\n isDisabled=${!allStepsCompleted &&\r\n step !== undefined &&\r\n currentStepIndex !== steps.length}\r\n isLastStep=${true}\r\n onClick=${() => changeStep(steps.length ?? 0)}\r\n />\r\n `}\r\n </div>\r\n `;\r\n};\r\n\r\nexport default connect<StepNavigationProps, unknown, StoreType, unknown>(\r\n 'stepState',\r\n actionFunctions,\r\n)(StepNavigation);\r\n","import { html } from 'htm/preact';\r\nimport {\r\n useContext,\r\n useEffect,\r\n useErrorBoundary,\r\n useState,\r\n} from 'preact/hooks';\r\nimport { assert, StructError } from 'superstruct';\r\nimport { connect } from 'unistore/preact';\r\n\r\nimport AppContext from '@/contexts/AppContext';\r\nimport { actionFunctions } from '@/store';\r\nimport { StoreType } from '@/types/store';\r\nimport {\r\n TemplateResponse,\r\n TemplatePreviewData,\r\n PreviewMetadata,\r\n TemplatePreviewDataType,\r\n} from '@/interfaces';\r\nimport { Loader } from '@/components/Loader';\r\nimport { notEmpty } from '@/types/utils';\r\nimport { ErrorPage } from '@/components/ErrorPage';\r\nimport Steps from '@/features/common/Steps';\r\n\r\nimport StepNavigation from '@/features/common/StepNavigation';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport interface FlowSetupContainerProps extends StoreType {\r\n deploymentId: string;\r\n flowId: string;\r\n integrationId?: number;\r\n templatePreviewData?: TemplatePreviewData;\r\n isPreviewMode?: boolean;\r\n previewMetadata?: PreviewMetadata;\r\n customWrapper?: preact.VNode<Record<string, never>>;\r\n}\r\n\r\n/**\r\n * Wrapper component\r\n *\r\n */\r\nconst FlowSetupContainer = (props: FlowSetupContainerProps) => {\r\n const [loading, setLoading] = useState<boolean>(false);\r\n const [templateData, setTemplateData] = useState<TemplateResponse | null>(\r\n null,\r\n );\r\n const {\r\n flowId,\r\n deploymentId,\r\n integrationId,\r\n customWrapper,\r\n templatePreviewData,\r\n previewMetadata,\r\n integrationIdToEdit,\r\n } = props;\r\n\r\n const [validationErr, setValidationErr] = useState<StructError | null>(null);\r\n\r\n const [sdkError, resetSdkError] = useErrorBoundary(() => {\r\n // log something here\r\n });\r\n\r\n const context = useContext(AppContext);\r\n\r\n useEffect(() => {\r\n if (sdkError) console.error(sdkError);\r\n }, [sdkError]);\r\n\r\n useEffect(() => {\r\n if (!integrationIdToEdit && integrationId)\r\n props.setStoreState({\r\n integrationIdToEdit: integrationId,\r\n });\r\n }, [integrationIdToEdit, integrationId]);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n let parsedIntegrationId = integrationId;\r\n if (integrationIdToEdit) {\r\n parsedIntegrationId = integrationIdToEdit;\r\n }\r\n if (context?.isPreviewMode && previewMetadata) {\r\n // setup state using preview data\r\n if (!templatePreviewData)\r\n throw new Error('Preview data was not provided');\r\n try {\r\n assert(templatePreviewData, TemplatePreviewDataType);\r\n } catch (error) {\r\n console.error(error);\r\n setLoading(false);\r\n setValidationErr(error as StructError);\r\n return;\r\n }\r\n const { steps, ...template } = templatePreviewData;\r\n setTemplateData(templatePreviewData);\r\n props.setGenericData({\r\n templateId: Number(template.id),\r\n deploymentId: Number(deploymentId),\r\n isPreviewMode: context.isPreviewMode,\r\n });\r\n props.setSteps(steps.filter(notEmpty));\r\n props.setStepMapping(steps.filter(notEmpty));\r\n props.setParentChildMapping(steps.filter(notEmpty));\r\n props.setConditionalFieldMapping(steps.filter(notEmpty));\r\n props.gotoStepInPreview(previewMetadata);\r\n context.eventEmitter.emit('did-load-preview', {\r\n flowId: Number(template.id),\r\n flowTitle: template.name,\r\n flowDescription: template.description,\r\n });\r\n setLoading(false);\r\n return;\r\n }\r\n if (flowId) {\r\n context?.apiHandler.getTemplate(Number(flowId)).then((data) => {\r\n setTemplateData(data);\r\n if (data) {\r\n props.setStoreState({\r\n genericData: {\r\n ...props.genericData,\r\n brandingApp: data.branding_app,\r\n },\r\n });\r\n Promise.all(\r\n data.steps.map((el) =>\r\n context.apiHandler.getTemplateStep(\r\n Number(el.id),\r\n Number(parsedIntegrationId),\r\n ),\r\n ),\r\n )\r\n .then(async (res) => {\r\n if (res) {\r\n props.setGenericData({\r\n templateId: Number(flowId),\r\n deploymentId: Number(deploymentId),\r\n name: data.name,\r\n });\r\n props.setSteps(res.filter(notEmpty));\r\n props.setStepMapping(res.filter(notEmpty), parsedIntegrationId);\r\n props.setParentChildMapping(res.filter(notEmpty));\r\n props.setConditionalFieldMapping(res.filter(notEmpty));\r\n if (parsedIntegrationId) {\r\n context.eventEmitter.emit('did-load-integration', {\r\n flowId: Number(flowId),\r\n integrationId: parsedIntegrationId,\r\n });\r\n const integrationData = await context.apiHandler.getIntegrationById(\r\n parsedIntegrationId,\r\n );\r\n if (integrationData)\r\n props.setGenericData({\r\n name: integrationData.name,\r\n });\r\n else\r\n throw new Error(\r\n `Error fetching integration data for ID ${props.integrationIdToEdit}`,\r\n );\r\n } else {\r\n context.eventEmitter.emit('did-load-flow', {\r\n templateId: Number(flowId),\r\n templateTitle: data.name,\r\n templateDescription: data.description,\r\n flowId: Number(flowId),\r\n flowTitle: data.name,\r\n flowDescription: data.description,\r\n });\r\n }\r\n setLoading(false);\r\n }\r\n })\r\n .catch((err) => console.error(err));\r\n }\r\n });\r\n } else throw new Error('Template ID not found');\r\n }, [flowId]);\r\n\r\n const refetchIntegrations = () => {\r\n if (props.genericData.deploymentId)\r\n context?.apiHandler\r\n .getTemplateListing(props.genericData.deploymentId)\r\n .then((res) => {\r\n props.setStoreState({\r\n integrations: res?.integrations,\r\n fetchingIntegrations: false,\r\n });\r\n });\r\n };\r\n\r\n if (customWrapper) {\r\n return html`${customWrapper}`;\r\n }\r\n\r\n return html`\r\n <div class=\"${styles.wrap} ${'integry-container'}\">\r\n ${sdkError || validationErr\r\n ? html`\r\n <${ErrorPage}\r\n title=${validationErr\r\n ? 'Validation error'\r\n : 'An unexpected error occurred'}\r\n description=${validationErr\r\n ? 'There was an error validating the preview payload:'\r\n : 'Please review the following stacktrace:'}\r\n errorPayload=${validationErr || sdkError}\r\n onDismiss=${validationErr ? null : resetSdkError}\r\n />\r\n `\r\n : html`\r\n <div>\r\n ${!loading &&\r\n templateData &&\r\n html`\r\n <${StepNavigation}\r\n steps=${templateData.steps?.map((el) => ({\r\n label: el.title,\r\n logoUrl: el.activity.app.icon_url,\r\n }))}\r\n ><//>\r\n `}\r\n </div>\r\n <div class=${styles.main}>\r\n ${loading &&\r\n html`<div style=\"display: flex; justify-content: center;\">\r\n <${Loader} />\r\n </div>`}\r\n ${!loading &&\r\n templateData &&\r\n html`\r\n <${Steps}\r\n steps=${templateData.steps}\r\n onUpdate=${refetchIntegrations}\r\n ><//>\r\n `}\r\n </div>\r\n `}\r\n </div>\r\n `;\r\n};\r\n\r\nexport default connect<FlowSetupContainerProps, unknown, StoreType, unknown>(\r\n ['integrationIdToEdit', 'genericData'],\r\n actionFunctions,\r\n)(FlowSetupContainer);\r\n","import { html } from 'htm/preact';\r\nimport { useRef, useContext } from 'preact/hooks';\r\nimport { connect } from 'unistore/preact';\r\nimport TemplatesView from '@/features/templates/TemplatesView';\r\nimport { Modal } from '@/components/Modal';\r\nimport AppContext from '@/contexts/AppContext';\r\nimport { TemplateFormRenderModes, TemplateListingRenderModes } from '@/types';\r\nimport { actionFunctions } from '@/store';\r\nimport { StoreType } from '@/types/store';\r\nimport { UserConfig } from '@/interfaces';\r\n\r\nimport styles from './styles.module.scss';\r\nimport FlowSetupContainer from '../FlowSetupContainer';\r\n\r\ninterface ContainerProps extends StoreType {\r\n deploymentId: string;\r\n userConfig?: UserConfig;\r\n layout: TemplateListingRenderModes;\r\n renderMode: TemplateFormRenderModes;\r\n}\r\n\r\nconst SDKContainer = (props: ContainerProps) => {\r\n const context = useContext(AppContext);\r\n\r\n const templateListComponent = useRef<typeof TemplatesView | undefined>(\r\n TemplatesView,\r\n );\r\n\r\n const onTemplateClick = (templateId: number) => {\r\n const { renderMode } = props;\r\n switch (renderMode) {\r\n case TemplateFormRenderModes.MODAL: {\r\n props.setStoreState({\r\n showSetupModal: true,\r\n genericData: {\r\n ...props.genericData,\r\n brandingApp: null,\r\n templateId,\r\n },\r\n });\r\n break;\r\n }\r\n case TemplateFormRenderModes.INLINE: {\r\n props.setStoreState({\r\n showSetupInline: true,\r\n genericData: {\r\n ...props.genericData,\r\n brandingApp: null,\r\n templateId,\r\n },\r\n });\r\n break;\r\n }\r\n case TemplateFormRenderModes.DETACHED: {\r\n context?.eventEmitter.emit('should-load-flow', {\r\n templateId,\r\n flowId: templateId,\r\n });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const {\r\n renderMode,\r\n layout,\r\n deploymentId,\r\n showSetupInline,\r\n resetTemplateFields,\r\n } = props;\r\n\r\n return html`\r\n <div class=\"${styles['integry-container']} ${'integry-container'}\">\r\n ${!showSetupInline &&\r\n html`\r\n <${templateListComponent.current}\r\n layout=${layout}\r\n renderMode=${renderMode}\r\n deploymentId=${deploymentId}\r\n apiHandler=${context?.apiHandler}\r\n eventEmitter=${context?.eventEmitter}\r\n onTemplateClick=${onTemplateClick}\r\n >\r\n </${templateListComponent.current}>\r\n `}\r\n ${renderMode === TemplateFormRenderModes.INLINE &&\r\n showSetupInline &&\r\n html`\r\n <div\r\n class=\"${styles.inlineSetup} ${'integry-container__setup-form--inline'}\"\r\n >\r\n <${FlowSetupContainer}\r\n deploymentId=${props.genericData.deploymentId}\r\n flowId=${props.genericData.templateId}\r\n />\r\n <div\r\n class=${styles.close}\r\n onclick=${() => {\r\n resetTemplateFields();\r\n }}\r\n >\r\n <svg\r\n width=\"20\"\r\n height=\"22\"\r\n viewBox=\"0 0 20 22\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M14.2426 16.1822L5.75732 6.86328\"\r\n stroke=\"#999999\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n />\r\n <path\r\n d=\"M14.2426 6.86328L5.75732 16.1822\"\r\n stroke=\"#999999\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n `}\r\n </div>\r\n ${renderMode === TemplateFormRenderModes.MODAL &&\r\n html`\r\n <${Modal}\r\n isOpen=${props.showSetupModal}\r\n onClose=${() => {\r\n props.resetTemplateFields();\r\n }}\r\n >\r\n <div class=\"integry-container__setup-form--modal\">\r\n <div class=${styles.flowName}>\r\n ${\r\n props.templates.filter(\r\n (el) => el.id === props.genericData.templateId,\r\n )[0]?.name\r\n }\r\n </div>\r\n <${FlowSetupContainer}\r\n deploymentId=${props.genericData.deploymentId}\r\n flowId=${props.genericData.templateId}\r\n ><//>\r\n <//>\r\n </div>\r\n `}\r\n `;\r\n};\r\n\r\nexport default connect<ContainerProps, unknown, StoreType, unknown>(\r\n [\r\n 'userConfig',\r\n 'integrations',\r\n 'templates',\r\n 'showSetupModal',\r\n 'genericData',\r\n 'showSetupInline',\r\n ],\r\n actionFunctions,\r\n)(SDKContainer);\r\n","import { html, Component } from 'htm/preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\ninterface ModalProps {\r\n isOpen: boolean;\r\n CustomCloseElement?: any;\r\n onClose: () => void;\r\n}\r\n\r\nclass NewModal extends Component<ModalProps> {\r\n render() {\r\n const { isOpen, CustomCloseElement } = this.props;\r\n return html`\r\n <div\r\n class=${`${styles.modal} ${isOpen ? `${styles.open}` : ''}`}\r\n aria-labelledby=\"modal-title\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n >\r\n <div class=${styles.modalContainer}>\r\n <div class=${styles.inset} aria-hidden=\"true\"></div>\r\n\r\n <span class=${styles.span} aria-hidden=\"true\"></span>\r\n\r\n <div\r\n class=${`${styles.contentWrap} ${isOpen ? `${styles.open}` : ''}`}\r\n >\r\n <div class=${styles.content}>\r\n ${CustomCloseElement\r\n ? html` <div onclick=${this.props.onClose}>\r\n <${CustomCloseElement} />\r\n </div>`\r\n : html`\r\n <div onclick=${this.props.onClose} class=${styles.close}>\r\n <svg\r\n width=\"20\"\r\n height=\"22\"\r\n viewBox=\"0 0 20 22\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M14.2426 16.1822L5.75732 6.86328\"\r\n stroke=\"#999999\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n />\r\n <path\r\n d=\"M14.2426 6.86328L5.75732 16.1822\"\r\n stroke=\"#999999\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n `}\r\n ${this.props.isOpen && html` ${this.props.children} `}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `;\r\n }\r\n}\r\n\r\nexport { NewModal };\r\n","export const truncate = (input: string, length?: number) =>\r\n input.length > (length || 18)\r\n ? `${input.substring(0, length || 18)}...`\r\n : input;\r\n","import fuzzysort from 'fuzzysort';\r\nimport { html } from 'htm/preact';\r\nimport { useEffect, useState } from 'preact/hooks';\r\n\r\nimport { AppsForAuthConnection } from '@/interfaces';\r\nimport { Search } from '@/components/Search';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport const AppSelection = (props: {\r\n apps: AppsForAuthConnection[];\r\n handleAppSelect(appId: number): void;\r\n}) => {\r\n const { apps, handleAppSelect } = props;\r\n\r\n const [filteredApps, setFilteredApps] = useState<AppsForAuthConnection[]>(\r\n apps,\r\n );\r\n\r\n const [query, setQuery] = useState('');\r\n\r\n useEffect(() => {\r\n setFilteredApps(apps);\r\n }, [apps]);\r\n\r\n useEffect(() => {\r\n if (query) {\r\n const filtered = fuzzysort\r\n .go(query, apps, {\r\n keys: ['name'],\r\n scoreFn: (keysResult) => {\r\n const nameResult = keysResult[0];\r\n const tagsResult = keysResult[1];\r\n // assign higher score to name result\r\n const score = Math.max(\r\n nameResult ? nameResult.score + 100 : -Infinity,\r\n tagsResult ? tagsResult.score : -Infinity,\r\n );\r\n return score;\r\n },\r\n })\r\n .map((el) => el.obj);\r\n setFilteredApps(filtered);\r\n } else {\r\n setFilteredApps(apps);\r\n }\r\n }, [query]);\r\n\r\n return html`\r\n <div class=${styles.appSelection}>\r\n <${Search}\r\n placeholder=\"Search for an app\"\r\n onChange=${(val: string) => setQuery(val)}\r\n >\r\n <//>\r\n <div class=${styles.template_grid}>\r\n ${filteredApps.map(\r\n (el) => html` <div\r\n onclick=${() => handleAppSelect(el.id)}\r\n class=${styles.appCard}\r\n >\r\n <div>\r\n <img src=${el.icon_url} />\r\n </div>\r\n <div>${el.name}</div>\r\n </div>`,\r\n )}\r\n </div>\r\n </div>\r\n `;\r\n};\r\n","import { html } from 'htm/preact';\r\nimport { Button, ButtonTypes } from '@/components/Button';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport const Footer = (props: {\r\n disableNext?: boolean;\r\n hideBackButton?: boolean;\r\n handleNav(direction: 'NEXT' | 'BACK'): void;\r\n}) => {\r\n const { handleNav, hideBackButton = false, disableNext = false } = props;\r\n\r\n return html`\r\n <div class=${styles.footer}>\r\n <div class=${styles.buttons}>\r\n ${!hideBackButton &&\r\n html`\r\n <${Button}\r\n label=\"Back\"\r\n onClick=${() => handleNav('BACK')}\r\n type=${ButtonTypes.SECONDARY}\r\n ><//>\r\n `}\r\n <${Button}\r\n label=\"Next\"\r\n onClick=${() => handleNav('NEXT')}\r\n hasError=${disableNext}\r\n ><//>\r\n </div>\r\n </div>\r\n `;\r\n};\r\n","import { html } from 'htm/preact';\r\n\r\nimport { AppsForAuthConnection } from '@/interfaces';\r\nimport { Radio } from '@/components/RadioGroup/Radio';\r\nimport { AuthorizationTypes } from '@/types';\r\n\r\nimport styles from './styles.module.scss';\r\nimport { Footer } from './Footer';\r\n\r\nconst AUTH_NAMES: {\r\n [key in AuthorizationTypes]: string;\r\n} = {\r\n 'OAuth2-1': 'Login to the app',\r\n OAuth2: 'Login to the app',\r\n APIKey: 'Provide an API Key',\r\n Basic: 'Enter username and password',\r\n BasicWithoutURL: 'Enter username and password',\r\n BasicAndAPIKey: 'Enter username and password',\r\n APIKeyWithURL: 'Provide an API Key',\r\n APIKeySecret: 'Provide an API Key',\r\n APIKeySecretRegion: 'Provide an API Key',\r\n APISecret: 'Provide an API Key',\r\n};\r\n\r\nexport const AuthTypeSelection = (props: {\r\n selectedApp: AppsForAuthConnection;\r\n selectedAuthTypeId: number;\r\n hideBackButton?: boolean;\r\n handleAuthTypeIdChange(id: number): void;\r\n handleNav(): void;\r\n}) => {\r\n const {\r\n selectedApp,\r\n selectedAuthTypeId,\r\n handleAuthTypeIdChange,\r\n handleNav,\r\n hideBackButton = false,\r\n } = props;\r\n\r\n const handleChange = (id: number) => {\r\n handleAuthTypeIdChange(id);\r\n };\r\n\r\n return html`\r\n <div class=${styles.auth_type_selection}>\r\n <div class=${styles.method_selection}>\r\n <div class=${styles.text}>\r\n Select one of the following methods to provide access.\r\n </div>\r\n <div class=${styles.authlist}>\r\n ${selectedApp.authorization_type.map(\r\n (el) => html`\r\n <${Radio}\r\n id=${el.id}\r\n value=${AUTH_NAMES[el.type] || el.type}\r\n isChecked=${selectedAuthTypeId === el.id}\r\n onChange=${handleChange}\r\n />\r\n `,\r\n )}\r\n </div>\r\n <${Footer} hideBackButton=${hideBackButton} handleNav=${handleNav}\r\n disableNext=${!selectedAuthTypeId} //>\r\n </div>\r\n </div>\r\n `;\r\n};\r\n","import { html } from 'htm/preact';\r\nimport { ComponentChild } from 'preact';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport const Header = (props: {\r\n children: ComponentChild;\r\n handleCloseClick(): void;\r\n}) => {\r\n const { children, handleCloseClick } = props;\r\n\r\n return html`\r\n <div class=${styles.header}>\r\n <div class=${styles.text}>${children}</div>\r\n <div class=${styles.close} onclick=${handleCloseClick}>\r\n <svg\r\n width=\"20\"\r\n height=\"22\"\r\n viewBox=\"0 0 20 22\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M14.2426 16.1822L5.75732 6.86328\"\r\n stroke=\"#999999\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n />\r\n <path\r\n d=\"M14.2426 6.86328L5.75732 16.1822\"\r\n stroke=\"#999999\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n </div>\r\n `;\r\n};\r\n","import { html, Component } from 'htm/preact';\r\nimport { Button } from '@/components/Button';\r\nimport { Header } from './Header';\r\n\r\nimport styles from './styles.module.scss';\r\n\r\nexport const PostAdditionPopup = (props: {\r\n title: string;\r\n iconUrl: string;\r\n children?: Component;\r\n handleCloseClick(): void;\r\n}) => {\r\n const { title, iconUrl, handleCloseClick, children } = props;\r\n\r\n return html`\r\n <div class=${styles.successModal}>\r\n <${Header} handleCloseClick=${handleCloseClick} //>\r\n <div class=${styles.contents}>\r\n <img class=${styles.img} src=${iconUrl} />\r\n <div class=${styles.title}>${title}</div>\r\n <div class=${styles.text}>${children}</div>\r\n <${Button} label=\"OK\" onClick=${handleCloseClick} width=${75}\r\n height=${38} //>\r\n </div>\r\n </div>\r\n `;\r\n};\r\n","import { html } from 'htm/preact';\r\nimport { useContext, useEffect, useState } from 'preact/hooks';\r\nimport { connect } from 'unistore/preact';\r\nimport { NewModal } from '@/components/NewModal';\r\nimport { actionFunctions } from '@/store';\r\nimport AppContext from '@/contexts/AppContext';\r\nimport { StoreType } from '@/types/store';\r\nimport { openPopupWindow } from '@/utils/popup';\r\nimport { AppsForAuthConnection } from '@/interfaces';\r\nimport { AuthData, isAuthMessage } from '@/utils/isAuthMessage';\r\nimport { ThreeDotLoader } from '@/components/ThreeDotLoader';\r\nimport { truncate } from '@/utils/truncate';\r\nimport isBrowser from '@/utils/isBrowser';\r\nimport { AppSelection } from './AppSelection';\r\nimport { AuthTypeSelection } from './AuthTypeSelection';\r\n\r\nimport styles from './styles.module.scss';\r\nimport { Header } from './Header';\r\nimport { PostAdditionPopup } from './PostAdditionPopup';\r\n\r\ninterface ContainerProps extends StoreType {\r\n deploymentId?: string;\r\n appId?: string;\r\n authTypeId?: string;\r\n isAnonymous: boolean;\r\n onClose(): void;\r\n showAppAuthModal: boolean;\r\n hideAppConnectionModal: boolean;\r\n forceRerender: boolean;\r\n}\r\n\r\nenum AUTH_MODAL_FLOWS {\r\n APP_SELECTION = 'APP_SELECTION',\r\n AUTH_TYPE_SELECTION = 'AUTH_TYPE_SELECTION',\r\n POST_ADDITION = 'POST_ADDITION',\r\n}\r\n\r\nconst AuthSetupContainer = (props: ContainerProps) => {\r\n const {\r\n deploymentId,\r\n isAnonymous,\r\n appId,\r\n authTypeId,\r\n hideAppConnectionModal,\r\n forceRerender,\r\n } = props;\r\n const context = useContext(AppContext);\r\n\r\n const [loadingApps, setLoadingApps] = useState(true);\r\n const [verifyingAuth, setVerifyingAuth] = useState(false);\r\n const [verificationError, setVerificationError] = useState('');\r\n const [apps, setApps] = useState<AppsForAuthConnection[]>([]);\r\n const [authInfo, setAuthInfo] = useState<AuthData | null>(null);\r\n const [selectedAuthTypeId, setSelectedAuthTypeId] = useState<number | null>(\r\n null,\r\n );\r\n const [selectedApp, setSelectedApp] = useState<AppsForAuthConnection | null>(\r\n null,\r\n );\r\n\r\n const [flow, setFlow] = useState<AUTH_MODAL_FLOWS>(\r\n props.appId\r\n ? AUTH_MODAL_FLOWS.AUTH_TYPE_SELECTION\r\n : AUTH_MODAL_FLOWS.APP_SELECTION,\r\n );\r\n\r\n const onModalClose = () => {\r\n props.onClose();\r\n };\r\n\r\n useEffect(() => {\r\n const cb = (messageEvent: MessageEvent<AuthData>) => {\r\n if (\r\n isAuthMessage(messageEvent) &&\r\n messageEvent.data.activity_name &&\r\n (props.authTypeId || selectedApp)\r\n ) {\r\n const eventPayload = {\r\n identity: messageEvent.data.user_identity,\r\n authorizationId: Number(messageEvent.data.authorization_id),\r\n flowId: null,\r\n appId: Number(selectedApp?.id),\r\n appName: selectedApp?.name || '',\r\n appIcon: selectedApp?.icon_url || '',\r\n alreadyExists: messageEvent.data.already_exists,\r\n };\r\n window.removeEventListener('message', cb);\r\n context?.eventEmitter.emit('did-add-authorization', eventPayload);\r\n }\r\n };\r\n if (appId) {\r\n // fetch app and set selected app\r\n context?.apiHandler.getAppById(appId).then((app) => {\r\n if (app) {\r\n // eslint-disable-next-line no-use-before-define\r\n if (app.authorization_type.length > 1) {\r\n setLoadingApps(false);\r\n setSelectedApp(app);\r\n setFlow(AUTH_MODAL_FLOWS.AUTH_TYPE_SELECTION);\r\n } else {\r\n throw new Error(\r\n 'IntegrySDK: App only has one auth type, please pass the auth type ID directly instead of the app ID',\r\n );\r\n }\r\n }\r\n });\r\n } else if (authTypeId) {\r\n // eslint-disable-next-line no-use-before-define\r\n openAuthWindow(Number(authTypeId));\r\n window.addEventListener('message', cb);\r\n } else {\r\n context?.apiHandler\r\n .getAppsForAuthConnection({\r\n deploymentId: deploymentId ? `${deploymentId}` : '',\r\n page: 1,\r\n })\r\n .then((data) => {\r\n setLoadingApps(false);\r\n setApps(data?.apps ?? []);\r\n });\r\n }\r\n return () => {\r\n window.removeEventListener('message', cb);\r\n };\r\n }, [appId, authTypeId, forceRerender]);\r\n\r\n useEffect(() => {\r\n const onAuthResponseReceived = (messageEvent: MessageEvent<AuthData>) => {\r\n if (\r\n isAuthMessage(messageEvent) &&\r\n messageEvent.data.activity_name &&\r\n (props.authTypeId || selectedApp)\r\n ) {\r\n const eventPayload = {\r\n identity: messageEvent.data.user_identity,\r\n authorizationId: Number(messageEvent.data.authorization_id),\r\n flowId: null,\r\n appId: Number(selectedApp?.id),\r\n appName: selectedApp?.name || '',\r\n appIcon: selectedApp?.icon_url || '',\r\n alreadyExists: messageEvent.data.already_exists,\r\n };\r\n setAuthInfo(messageEvent.data);\r\n\r\n const authIdToVerify = messageEvent.data.authorization_id;\r\n\r\n setFlow(AUTH_MODAL_FLOWS.POST_ADDITION);\r\n\r\n if (authIdToVerify) {\r\n if (!isAnonymous) {\r\n context?.apiHandler\r\n .verifyOAuth(authIdToVerify)\r\n .then((addedSuccessfully) => {\r\n if (addedSuccessfully) {\r\n context?.eventEmitter.emit(\r\n 'did-add-authorization',\r\n eventPayload,\r\n );\r\n } else {\r\n setVerificationError(\r\n `Your ${selectedApp?.name} account could not be verified due to incorrect credentials.\r\n Please try again.`,\r\n );\r\n context?.eventEmitter.emit(\r\n 'did-fail-authorization-verification',\r\n eventPayload,\r\n );\r\n context.apiHandler.deleteAuth(authIdToVerify);\r\n }\r\n if (hideAppConnectionModal) {\r\n onModalClose();\r\n } else {\r\n setVerifyingAuth(false);\r\n }\r\n });\r\n } else {\r\n context?.eventEmitter.emit('did-add-authorization', eventPayload);\r\n onModalClose();\r\n }\r\n } else {\r\n context?.eventEmitter.emit(\r\n 'did-fail-authorization-verification',\r\n eventPayload,\r\n );\r\n console.error('IntegryJS: Auth ID was not returned');\r\n setVerificationError('Auth ID was not returned');\r\n }\r\n }\r\n };\r\n if (isBrowser() && !authTypeId) {\r\n window.addEventListener('message', onAuthResponseReceived);\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('message', onAuthResponseReceived);\r\n };\r\n }, [selectedApp, authTypeId]);\r\n\r\n const openAuthWindow = (typeId: number) => {\r\n const url = context?.apiHandler.getAuthUrl(typeId);\r\n if (url) {\r\n openPopupWindow(url, 'Auth Window', window, 800, 600);\r\n }\r\n };\r\n\r\n const setApp = (app: AppsForAuthConnection) => {\r\n setSelectedApp(app);\r\n if (app.authorization_type.length > 1) {\r\n // multiple authorizations so we need to show picker\r\n setFlow(AUTH_MODAL_FLOWS.AUTH_TYPE_SELECTION);\r\n } else {\r\n setVerifyingAuth(true);\r\n openAuthWindow(app.authorization_type[0].id);\r\n }\r\n };\r\n\r\n const onAppSelect = (selectedAppId: number) => {\r\n const app = apps.filter((el) => el.id === selectedAppId)[0];\r\n setApp(app);\r\n };\r\n\r\n const handleNav = (direction: 'NEXT' | 'BACK') => {\r\n switch (direction) {\r\n case 'BACK':\r\n setSelectedApp(null);\r\n setSelectedAuthTypeId(null);\r\n setFlow(AUTH_MODAL_FLOWS.APP_SELECTION);\r\n break;\r\n case 'NEXT':\r\n if (selectedAuthTypeId) openAuthWindow(selectedAuthTypeId);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return html`\r\n <${NewModal}\r\n isOpen=${props.showAppAuthModal}\r\n onClose=${onModalClose}\r\n CustomCloseElement=${() => html``}\r\n >\r\n <div class=\"${styles.form} ${'integry-container__auth_connection_form'}\">\r\n ${flow !== AUTH_MODAL_FLOWS.POST_ADDITION &&\r\n html`\r\n <div class=${styles.inner}>\r\n ${loadingApps\r\n ? html`<div\r\n class=${props.appId ? styles.smallerLoader : styles.loader}\r\n >\r\n <${ThreeDotLoader} color=\"#999\" />\r\n </div>`\r\n : html`\r\n ${flow === AUTH_MODAL_FLOWS.APP_SELECTION &&\r\n html`\r\n <${Header} handleCloseClick=${onModalClose}>Connect an app</${Header}>\r\n <${AppSelection} apps=${apps} handleAppSelect=${onAppSelect} //>\r\n `}\r\n ${flow === AUTH_MODAL_FLOWS.AUTH_TYPE_SELECTION &&\r\n html`\r\n <${Header} handleCloseClick=${onModalClose}>How would you like to authenticate?</${Header}>\r\n <${AuthTypeSelection} selectedApp=${selectedApp} handleNav=${handleNav} selectedAuthTypeId=${selectedAuthTypeId} handleAuthTypeIdChange=${(\r\n id: number,\r\n ) =>\r\n setSelectedAuthTypeId(\r\n id,\r\n )} hideBackButton=${!!props.appId} //>\r\n `}\r\n `}\r\n </div>\r\n `}\r\n ${flow === AUTH_MODAL_FLOWS.POST_ADDITION &&\r\n selectedApp &&\r\n authInfo &&\r\n html`\r\n ${verifyingAuth\r\n ? html` <div class=${styles.loadingModal}>\r\n <${ThreeDotLoader} color=\"#999\" />\r\n </div>`\r\n : html`\r\n <${PostAdditionPopup}\r\n iconUrl=${selectedApp.icon_url}\r\n title=${verificationError\r\n ? 'Error adding Account'\r\n : 'Account Connected'}\r\n handleCloseClick=${onModalClose}\r\n >\r\n ${verificationError\r\n ? html`${verificationError}`\r\n : html`\r\n Your account${' '}\r\n ${truncate(authInfo.user_identity)}${' '}in${' '}\r\n ${selectedApp.name} has been connected. You can now use\r\n it in an integration.\r\n `}\r\n <//>\r\n `}\r\n `}\r\n </div>\r\n <//>\r\n `;\r\n};\r\n\r\nconst AuthSetupContainerWrap = (props: ContainerProps) => {\r\n const { deploymentId, authTypeId, appId, onClose } = props;\r\n\r\n const [render, setRender] = useState(true);\r\n\r\n const handleClose = () => {\r\n setRender(false);\r\n onClose();\r\n };\r\n\r\n return render\r\n ? html`\r\n <${AuthSetupContainer}\r\n deploymentId=${deploymentId}\r\n appId=${appId}\r\n authTypeId=${authTypeId}\r\n onClose=${handleClose}\r\n isAnonymous=${props.genericData.isAnonymous}\r\n showAppAuthModal=${props.genericData.showAppAuthModal}\r\n forceRerender=${props.forceRerender}\r\n hideAppConnectionModal=${props.userConfig?.hideAppConnectionModal}\r\n >\r\n <//>\r\n `\r\n : html``;\r\n};\r\n\r\nexport default connect<ContainerProps, unknown, StoreType, unknown>(\r\n ['userConfig', 'genericData'],\r\n actionFunctions,\r\n)(AuthSetupContainerWrap);\r\n","import { html, render } from 'htm/preact';\r\nimport { Provider } from 'unistore/preact';\r\n\r\nimport { IntegryAPI } from '@/modules/api';\r\nimport {\r\n InitConfig,\r\n ConfigWithObject,\r\n ConfigWithUrlParams,\r\n APIConfig,\r\n PreviewPayload,\r\n} from '@/interfaces/index';\r\n\r\nimport { HMAC } from '@/extensions/HMAC';\r\n\r\nimport { EventEmitter } from '@/modules/event-emitter';\r\nimport AppContext from '@/contexts/AppContext';\r\n\r\nimport {\r\n IntegrySDKEvents,\r\n TemplateFormRenderModes,\r\n TemplateListingRenderModes,\r\n} from '@/types';\r\n\r\nimport { createSDKStore, initialState } from '@/store';\r\nimport isBrowser from '@/utils/isBrowser';\r\nimport { getUrlParam } from '@/utils/getUrlParam';\r\n\r\nimport SDKContainer from '@/features/containers/SDKContainer';\r\nimport AuthSetupContainer from '@/features/containers/AuthSetupContainer';\r\nimport FlowSetupContainer from '@/features/containers/FlowSetupContainer';\r\n\r\nconst Helpers = { getAuthHash: HMAC };\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\nconst __buildVersion__ = '';\r\n\r\n/**\r\n * Integry JS SDK\r\n */\r\nexport class IntegryJS {\r\n static SDK_VERSION = __buildVersion__;\r\n\r\n private config: ConfigWithObject & ConfigWithUrlParams;\r\n\r\n private apiHandler: IntegryAPI;\r\n\r\n eventEmitter = new EventEmitter<IntegrySDKEvents>();\r\n\r\n // allow customers to use template tagging\r\n static html = html;\r\n\r\n static RenderModes: typeof TemplateFormRenderModes = TemplateFormRenderModes;\r\n\r\n static Helpers: {\r\n getAuthHash: (key: string, message: string) => Promise<string>;\r\n };\r\n\r\n private authModalId = '';\r\n\r\n private forceRerender = false;\r\n\r\n constructor(config: ConfigWithObject | ConfigWithUrlParams) {\r\n let integryAPIParams: APIConfig;\r\n\r\n let apiConfig;\r\n\r\n if (config.env === 'staging') {\r\n apiConfig = {\r\n oauthVerifyPath: 'auth/verify',\r\n endpointsUrl: 'https://integry-app.appspot.com',\r\n baseUrl: 'https://beta.integry.io',\r\n baseUrlv2: 'https://beta.integry.io/v2',\r\n apiKey: config.xIntegryConfig?.appAuth?.apiKey,\r\n authId: config.xIntegryConfig?.appAuth?.authId,\r\n extras: config.xIntegryConfig?.appAuth?.extras,\r\n };\r\n } else {\r\n apiConfig = {\r\n oauthVerifyPath: 'auth/verify',\r\n endpointsUrl: 'https://integry-app.appspot.com',\r\n baseUrl: 'https://app.integry.io',\r\n baseUrlv2: 'https://app.integry.io/v2',\r\n apiKey: config.xIntegryConfig?.appAuth?.apiKey,\r\n authId: config.xIntegryConfig?.appAuth?.authId,\r\n extras: config.xIntegryConfig?.appAuth?.extras,\r\n };\r\n }\r\n\r\n if ('appKey' in config) {\r\n if (!config.appKey || !config.hash || !config.userId) {\r\n throw new Error(\r\n 'Invalid SDK config: Missing auth credentials. Please check if the correct app key, hash and user ID are passed.',\r\n );\r\n }\r\n\r\n integryAPIParams = {\r\n ...config,\r\n ...apiConfig,\r\n appKey: config.appKey,\r\n hash: config.hash,\r\n userId: config.userId,\r\n };\r\n this.config = {\r\n ...config,\r\n ...apiConfig,\r\n appKey: config.appKey,\r\n hash: config.hash,\r\n userId: config.userId,\r\n deploymentId: config.deploymentId,\r\n userConfig: config.userConfig,\r\n };\r\n } else {\r\n const urlparams = this.getAuthParamsFromUrl() || {};\r\n integryAPIParams = {\r\n ...apiConfig,\r\n ...urlparams,\r\n };\r\n this.config = {\r\n ...apiConfig,\r\n ...urlparams,\r\n userConfig: config.userConfig,\r\n };\r\n }\r\n this.authModalId = this.getRandomFlowId(6);\r\n this.apiHandler = new IntegryAPI(integryAPIParams);\r\n this.verifyAuthConfig()\r\n .then((response) => {\r\n if (!response?.config_verified) {\r\n console.error(\r\n 'IntegrySDK: Auth config verification failed, are your auth parameters correct?',\r\n );\r\n }\r\n })\r\n .catch((err) => console.error(err));\r\n }\r\n\r\n /**\r\n *\r\n * @param length Length of string to randomly generate\r\n * @returns {string} Returns a random string\r\n */\r\n private getRandomFlowId = (length: number): string => {\r\n const result = [];\r\n const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\r\n const charactersLength = characters.length;\r\n for (let i = 0; i < length; i += 1) {\r\n result.push(\r\n characters.charAt(Math.floor(Math.random() * charactersLength)),\r\n );\r\n }\r\n return `x-integry-modal-${result.join('')}`;\r\n };\r\n\r\n private getAuthParamsFromUrl = (): ConfigWithObject => {\r\n const urlParams =\r\n isBrowser() && new URLSearchParams(window.location.search);\r\n if (urlParams) {\r\n const userId = urlParams.get('user_id');\r\n const appKey = urlParams.get('app_key');\r\n const hash = urlParams.get('hash');\r\n const deploymentId = urlParams.get('deployment_id');\r\n if (!userId || !appKey || !hash || !deploymentId) {\r\n throw new Error(\r\n `The following auth variables are undefined: ${\r\n !userId ? 'userId' : ''\r\n } ${!appKey ? 'appKey' : ''} ${!hash ? 'hash' : ''} ${\r\n !deploymentId ? 'deploymentId' : ''\r\n }`,\r\n );\r\n }\r\n return {\r\n userId,\r\n appKey,\r\n hash,\r\n deploymentId,\r\n };\r\n }\r\n return {\r\n userId: '',\r\n appKey: '',\r\n hash: '',\r\n deploymentId: '',\r\n };\r\n };\r\n\r\n /**\r\n * Prints version number of this SDK version\r\n */\r\n public printVersion = (): void => {\r\n console.info(`@integry/sdk@${IntegryJS.SDK_VERSION}`);\r\n };\r\n\r\n /**\r\n *\r\n * @param renderMode\r\n * @param templateContainerId\r\n * @returns {HTMLElement | null}\r\n */\r\n private setupFlowFormDestination = (\r\n renderMode: TemplateFormRenderModes,\r\n templateContainerId?: string,\r\n ): HTMLElement | null => {\r\n let el: HTMLElement | null = null;\r\n\r\n if (templateContainerId) {\r\n if (\r\n renderMode === TemplateFormRenderModes.MODAL ||\r\n renderMode === TemplateFormRenderModes.INLINE\r\n ) {\r\n throw new Error(\r\n 'The `templateContainerId` property is unsupported when render mode is set to \"MODAL\" or \"INLINE\"',\r\n );\r\n }\r\n el = document.getElementById(templateContainerId);\r\n if (!el) {\r\n console.warn(\r\n `The template form render target with id ${templateContainerId} was not found`,\r\n );\r\n // throw new Error('The template form render target was not found');\r\n }\r\n }\r\n\r\n switch (renderMode) {\r\n case TemplateFormRenderModes.MODAL:\r\n el = document.createElement('div');\r\n el.id = this.getRandomFlowId(8);\r\n document.body.appendChild(el);\r\n return el;\r\n case TemplateFormRenderModes.INLINE:\r\n return null;\r\n case TemplateFormRenderModes.DETACHED:\r\n return el;\r\n case TemplateFormRenderModes.CUSTOM:\r\n return el;\r\n default:\r\n throw new Error(\r\n `Unsupported renderMode ${renderMode} configuration, please provide one of ${JSON.stringify(\r\n Object.keys(TemplateFormRenderModes),\r\n )}`,\r\n );\r\n }\r\n };\r\n\r\n /**\r\n * Render the template form we ship\r\n * @param data\r\n */\r\n public renderFlowSetupForm = (data: {\r\n flowId?: string;\r\n integrationId?: number;\r\n flowContainerId: string;\r\n }): void => {\r\n const { flowId, flowContainerId } = data;\r\n const targetEl = document.getElementById(flowContainerId);\r\n if (!targetEl) {\r\n console.warn(\r\n `Integry template form render target with id ${flowContainerId} was not found`,\r\n );\r\n return;\r\n }\r\n let parsedFlowId = Number(flowId);\r\n let parsedIntegrationId = this.config.integrationId || data.integrationId;\r\n\r\n if (!parsedIntegrationId) {\r\n parsedIntegrationId = Number(getUrlParam('integrationId'));\r\n }\r\n\r\n if (!parsedFlowId) {\r\n parsedFlowId = Number(getUrlParam('flowId'));\r\n }\r\n\r\n const store = createSDKStore();\r\n\r\n store.setState({\r\n integrationIdToEdit: parsedIntegrationId,\r\n userConfig: this.config.userConfig,\r\n genericData: {\r\n ...initialState.genericData,\r\n implicitAuthEnabled: !!this.config.xIntegryConfig?.appAuth?.apiKey,\r\n deploymentId: Number(this.config.deploymentId),\r\n isAnonymous: !!this.config.xIntegryConfig?.isAnonymous,\r\n },\r\n });\r\n\r\n render(\r\n html`\r\n <${AppContext.Provider}\r\n value=${{\r\n apiHandler: this.apiHandler,\r\n eventEmitter: this.eventEmitter,\r\n isPreviewMode: false,\r\n }}\r\n >\r\n <${Provider} store=${store}>\r\n <${FlowSetupContainer}\r\n deploymentId=${this.config.deploymentId}\r\n integrationId=${parsedIntegrationId}\r\n flowId=${parsedFlowId}\r\n >\r\n <//>\r\n <//>\r\n <//>\r\n `,\r\n targetEl,\r\n );\r\n };\r\n\r\n /**\r\n * Render the template form we ship\r\n * @param data\r\n */\r\n public renderAccountConnectionModal = (data?: {\r\n deploymentId?: string;\r\n appId?: number;\r\n authTypeId?: number;\r\n }): void => {\r\n const store = createSDKStore();\r\n if (data) {\r\n const { appId, authTypeId } = data;\r\n if (appId && authTypeId) {\r\n throw new Error(\r\n `IntegrySDK: Both deploymentId and appId should not be specified when calling 'renderAccountConnectionModal'`,\r\n );\r\n }\r\n }\r\n\r\n let targetEl = document.getElementById(this.authModalId);\r\n if (!targetEl) {\r\n targetEl = document.createElement('div');\r\n targetEl.id = this.authModalId;\r\n document.body.appendChild(targetEl);\r\n } else {\r\n store.setState({\r\n genericData: {\r\n ...initialState.genericData,\r\n showAppAuthModal: true,\r\n },\r\n });\r\n }\r\n if (data && data.authTypeId) {\r\n this.forceRerender = !this.forceRerender;\r\n }\r\n\r\n store.setState({\r\n userConfig: this.config.userConfig,\r\n genericData: {\r\n ...initialState.genericData,\r\n deploymentId:\r\n data && data.deploymentId ? Number(data.deploymentId) : null,\r\n authConnection: {\r\n appId: data && data.appId ? Number(data.appId) : null,\r\n authTypeId: data && data.authTypeId ? Number(data.authTypeId) : null,\r\n },\r\n authModalId: this.authModalId,\r\n showAppAuthModal: !data?.authTypeId,\r\n isAnonymous: !!this.config.xIntegryConfig?.isAnonymous,\r\n },\r\n });\r\n\r\n render(\r\n html`\r\n <${AppContext.Provider}\r\n value=${{\r\n apiHandler: this.apiHandler,\r\n eventEmitter: this.eventEmitter,\r\n isPreviewMode: false,\r\n }}\r\n >\r\n <${Provider} store=${store}>\r\n <${AuthSetupContainer}\r\n deploymentId=${data?.deploymentId}\r\n appId=${data?.appId}\r\n authTypeId=${data?.authTypeId}\r\n forceRerender=${this.forceRerender}\r\n onClose=${() => {\r\n const authIdElement = document.getElementById(this.authModalId);\r\n if (authIdElement) {\r\n authIdElement.remove();\r\n }\r\n }}\r\n >\r\n <//>\r\n <//>\r\n <//>\r\n `,\r\n targetEl,\r\n );\r\n };\r\n\r\n /**\r\n * Render the template form we ship\r\n * @param templateId\r\n */\r\n public renderPreview = (params: PreviewPayload): void => {\r\n const { templateData, metadata, previewContainerId } = params;\r\n const targetEl = document.getElementById(previewContainerId);\r\n if (!targetEl) {\r\n console.warn(\r\n `Integry template form render target with id ${previewContainerId} was not found`,\r\n );\r\n return;\r\n }\r\n const store = createSDKStore();\r\n\r\n store.setState({\r\n genericData: {\r\n ...initialState.genericData,\r\n implicitAuthEnabled: !!this.config.xIntegryConfig?.appAuth?.apiKey,\r\n },\r\n });\r\n\r\n render(\r\n html`\r\n <${AppContext.Provider}\r\n value=${{\r\n apiHandler: this.apiHandler,\r\n eventEmitter: this.eventEmitter,\r\n isPreviewMode: true,\r\n }}\r\n >\r\n <${Provider} store=${store}>\r\n <${FlowSetupContainer}\r\n deploymentId=${this.config.deploymentId}\r\n isPreviewMode=${true}\r\n templatePreviewData=${templateData}\r\n previewMetadata=${metadata}\r\n >\r\n <//>\r\n <//>\r\n <//>\r\n `,\r\n targetEl,\r\n );\r\n };\r\n\r\n /**\r\n *\r\n * @param initConfig\r\n */\r\n public init = (initConfig: InitConfig) => {\r\n const { containerId, templateContainerId, renderMode } = initConfig;\r\n\r\n const target = document.getElementById(containerId);\r\n\r\n if (!renderMode) {\r\n throw new Error('Template form render mode needs to be defined');\r\n }\r\n\r\n this.setupFlowFormDestination(renderMode, templateContainerId);\r\n\r\n if (target) {\r\n const layout =\r\n (target.getAttribute(\r\n 'x-integry-layout',\r\n ) as TemplateListingRenderModes) || TemplateListingRenderModes.LIST;\r\n // this.renderMode = renderMode;\r\n\r\n const store = createSDKStore();\r\n store.setState({\r\n userConfig: this.config.userConfig,\r\n genericData: {\r\n ...initialState.genericData,\r\n implicitAuthEnabled: !!this.config.xIntegryConfig?.appAuth?.apiKey,\r\n deploymentId: Number(this.config.deploymentId),\r\n isAnonymous: !!this.config.xIntegryConfig?.isAnonymous,\r\n },\r\n customComponents: this.config.userConfig?.customComponents,\r\n });\r\n\r\n render(\r\n html`\r\n <${AppContext.Provider}\r\n value=${{\r\n apiHandler: this.apiHandler,\r\n eventEmitter: this.eventEmitter,\r\n isPreviewMode: false,\r\n }}\r\n >\r\n <${Provider} store=${store}>\r\n <${SDKContainer}\r\n deploymentId=${this.config.deploymentId}\r\n userConfig=${this.config.userConfig}\r\n layout=${layout}\r\n renderMode=${renderMode}\r\n >\r\n <//>\r\n <//>\r\n <//>\r\n `,\r\n target,\r\n );\r\n } else {\r\n console.warn(\r\n `Integry SDK render target with id ${containerId} was not found`,\r\n );\r\n // throw new Error('The render target was not found');\r\n }\r\n };\r\n\r\n public verifyAuthConfig = () =>\r\n this.apiHandler.verifyAuthConfig({\r\n deploymentId: this.config.deploymentId,\r\n });\r\n\r\n /**\r\n * Destroy SDK instance and cleanup store\r\n */\r\n public destroy = () => {\r\n try {\r\n this.eventEmitter.offAll();\r\n const authIdElement = document.getElementById(this.authModalId);\r\n if (authIdElement) {\r\n authIdElement.remove();\r\n }\r\n } catch (error) {\r\n console.error('There was an error unsubscribing from all events');\r\n }\r\n };\r\n}\r\n\r\nexport { Helpers, html };\r\n","import { HMAC } from '@/extensions/HMAC';\r\nimport { html } from 'htm/preact';\r\n\r\n// import { Template } from '@/features/templates/Template';\r\n// import TemplatesView from '@/features/templates/TemplatesView';\r\n// import { TemplateSearch } from '@/features/templates/TemplateSearch';\r\nimport { IntegryJS } from './index';\r\n\r\n// IntegryJS.Widgets = { Template, TemplatesView, TemplateSearch };\r\nIntegryJS.Helpers = { getAuthHash: HMAC };\r\nIntegryJS.html = html;\r\n\r\nexport default IntegryJS;\r\n"],"names":["_arrayLikeToArray","arrayLikeToArray","_unsupportedIterableToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","Op","Object","prototype","hasOwn","hasOwnProperty","undefined","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","obj","arg","type","call","err","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","constructor","displayName","defineIteratorMethods","forEach","method","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","__await","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","value","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","toString","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","keys","object","key","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","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","n","t","s","r","e","u","h","p","a","assign","apply","Map","get","set","replace","l","arguments","m","bind","url","options","request","XMLHttpRequest","all","headers","response","ok","status","statusText","responseURL","text","responseText","json","JSON","parse","blob","Blob","clone","entries","toLowerCase","has","const","open","onload","getAllResponseHeaders","onerror","withCredentials","credentials","setRequestHeader","send","body","assertThisInitialized","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","superPropBase","createContext","props","let","arrayWithHoles","iterableToArrayLimit","nonIterableRest","currentIndex","currentComponent","prevRaf","afterPaintEffects","oldBeforeRender","_render","oldAfterDiff","diffed","oldCommit","_commit","oldBeforeUnmount","unmount","getHookState","index","_hook","hooks","__hooks","_list","_pendingEffects","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_component","_value","nextValue","action","setState","useEffect","callback","args","argsChanged","_args","useRef","initialValue","useMemo","current","factory","_factory","useCallback","useContext","provider","_id","_defaultValue","sub","useErrorBoundary","cb","errState","componentDidCatch","flushAfterPaintEffects","some","component","_parentDom","invokeCleanup","invokeEffect","hook","_cleanup","oldArgs","newArgs","f","vnode","c","requestAnimationFrame","raf","clearTimeout","timeout","cancelAnimationFrame","setTimeout","window","commitQueue","_renderCallbacks","filter","root","UMD","module","exports","fuzzysort","this","fuzzysortNew","instanceOptions","single","search","target","isObj","getPreparedSearch","getPrepared","allowTypo","algorithm","algorithmNoTypo","go","targets","noResults","prepareSearch","searchLowerCode","threshold","limit","resultsLen","limitedCount","targetsLen","scoreFn","defaultScoreFn","keysLen","objResults","Array","keyI","getValue","score","q","add","peek","replaceTop","_targetLowerCodes","_nextBeginningIndexes","indexes","results","poll","total","goAsync","canceled","fastpriorityqueue","iCurrent","step","startMs","Date","now","isNode","setImmediate","cancel","highlight","hOpen","hClose","highlighted","matchesIndex","opened","targetLen","matchesBest","char","substr","prepare","prepareLowerCodes","prepareSlow","prepareNextBeginningIndexes","targetPrepared","preparedCache","searchPrepared","preparedSearchCache","searchLowerCodes","prepared","targetLowerCodes","searchLen","searchI","targetI","typoSimpleI","matchesSimpleLen","isMatch","matchesSimple","searchLowerCodeNew","typoStrictI","successStrict","matchesStrictLen","nextBeginningIndexes","firstPossibleI","lastMatch","matchesStrict","matchesBestLen","lastTargetI","str","strLen","lowerCodes","lower","charCodeAt","prepareBeginningIndexes","beginningIndexes","beginningIndexesLen","wasUpper","wasAlphanum","targetCode","isUpper","isAlphanum","isBeginning","lastIsBeginning","lastIsBeginningI","cleanup","new","require","clear","max","prop","tmp","segs","isArray","split","len","x","o","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","html","styles","Component","connect","IntegrationsList","objectWithoutPropertiesLoose","StructError","failure","failures","rest","path","msg","cached","classNames","classes","argType","inner","join","default","cx","NewMappingUI","MappingUI","AuthSelector","Step","useElementResize","assert","StepNavigation","Steps","TemplatesView","FlowSetupContainer","render","Provider","AuthSetupContainer","SDKContainer"],"mappings":";;;;;;;;EAAe,SAASA,mBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE;EACpD,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;AACxD;EACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;EACvD,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;EACrB,GAAG;AACH;EACA,EAAE,OAAO,IAAI,CAAC;EACd;;ECPe,SAAS,kBAAkB,CAAC,GAAG,EAAE;EAChD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAOC,mBAAgB,CAAC,GAAG,CAAC,CAAC;EACvD;;ECHe,SAAS,gBAAgB,CAAC,IAAI,EAAE;EAC/C,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC5H;;ECDe,SAASC,6BAA2B,CAAC,CAAC,EAAE,MAAM,EAAE;EAC/D,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO;EACjB,EAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,OAAOD,mBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;EAChE,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;EACzD,EAAE,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;EAC9D,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;EACvD,EAAE,IAAI,CAAC,KAAK,WAAW,IAAI,0CAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAOA,mBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;EAClH;;ECRe,SAAS,kBAAkB,GAAG;EAC7C,EAAE,MAAM,IAAI,SAAS,CAAC,sIAAsI,CAAC,CAAC;EAC9J;;ECEe,SAAS,kBAAkB,CAAC,GAAG,EAAE;EAChD,EAAE,OAAOE,kBAAiB,CAAC,GAAG,CAAC,IAAIC,gBAAe,CAAC,GAAG,CAAC,IAAIC,6BAA0B,CAAC,GAAG,CAAC,IAAIC,kBAAiB,EAAE,CAAC;EAClH;;ECNA,SAAS,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;EAC3E,EAAE,IAAI;EACN,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;EAC7B,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;EAC3B,GAAG,CAAC,OAAO,KAAK,EAAE;EAClB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;EAClB,IAAI,OAAO;EACX,GAAG;AACH;EACA,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE;EACjB,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;EACnB,GAAG,MAAM;EACT,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;EAC/C,GAAG;EACH,CAAC;AACD;EACe,SAAS,iBAAiB,CAAC,EAAE,EAAE;EAC9C,EAAE,OAAO,YAAY;EACrB,IAAI,IAAI,IAAI,GAAG,IAAI;EACnB,QAAQ,IAAI,GAAG,SAAS,CAAC;EACzB,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;EAClD,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC;EACA,MAAM,SAAS,KAAK,CAAC,KAAK,EAAE;EAC5B,QAAQ,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;EAC/E,OAAO;AACP;EACA,MAAM,SAAS,MAAM,CAAC,GAAG,EAAE;EAC3B,QAAQ,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;EAC9E,OAAO;AACP;EACA,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;EACvB,KAAK,CAAC,CAAC;EACP,GAAG,CAAC;EACJ;;EClCe,SAAS,OAAO,CAAC,GAAG,EAAE;EACrC,EAAE,yBAAyB,CAAC;AAC5B;EACA,EAAE,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;EAC3E,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE;EACpC,MAAM,OAAO,OAAO,GAAG,CAAC;EACxB,KAAK,CAAC;EACN,GAAG,MAAM;EACT,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE;EACpC,MAAM,OAAO,GAAG,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC;EACnI,KAAK,CAAC;EACN,GAAG;AACH;EACA,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;EACtB;;ECdA;EACA;EACA;EACA;EACA;EACA;EAGA,IAAIC,EAAE,GAAGC,MAAM,CAACC,SAAhB;EACA,IAAIC,MAAM,GAAGH,EAAE,CAACI,cAAhB;EACA,IAAIC,WAAJ;;EACA,IAAIC,OAAO,GAAG,OAAOC,MAAP,KAAkB,UAAlB,GAA+BA,MAA/B,GAAwC,EAAtD;EACA,IAAIC,cAAc,GAAGF,OAAO,CAACG,QAAR,IAAoB,YAAzC;EACA,IAAIC,mBAAmB,GAAGJ,OAAO,CAACK,aAAR,IAAyB,iBAAnD;EACA,IAAIC,iBAAiB,GAAGN,OAAO,CAACO,WAAR,IAAuB,eAA/C;;EAEA,SAASC,IAAT,CAAcC,OAAd,EAAuBC,OAAvB,EAAgCC,IAAhC,EAAsCC,WAAtC,EAAmD;EACjD;EACA,MAAIC,cAAc,GAAGH,OAAO,IAAIA,OAAO,CAACd,SAAR,YAA6BkB,SAAxC,GAAoDJ,OAApD,GAA8DI,SAAnF;EACA,MAAIC,SAAS,GAAGpB,MAAM,CAACqB,MAAP,CAAcH,cAAc,CAACjB,SAA7B,CAAhB;EACA,MAAIqB,OAAO,GAAG,IAAIC,OAAJ,CAAYN,WAAW,IAAI,EAA3B,CAAd,CAJiD;EAOjD;;EACAG,EAAAA,SAAS,CAACI,OAAV,GAAoBC,gBAAgB,CAACX,OAAD,EAAUE,IAAV,EAAgBM,OAAhB,CAApC;EAEA,SAAOF,SAAP;EACD;EAGD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EACA,SAASM,QAAT,CAAkBC,EAAlB,EAAsBC,GAAtB,EAA2BC,GAA3B,EAAgC;EAC9B,MAAI;EACF,WAAO;EAAEC,MAAAA,IAAI,EAAE,QAAR;EAAkBD,MAAAA,GAAG,EAAEF,EAAE,CAACI,IAAH,CAAQH,GAAR,EAAaC,GAAb;EAAvB,KAAP;EACD,GAFD,CAEE,OAAOG,GAAP,EAAY;EACZ,WAAO;EAAEF,MAAAA,IAAI,EAAE,OAAR;EAAiBD,MAAAA,GAAG,EAAEG;EAAtB,KAAP;EACD;EACF;;EAED,IAAIC,sBAAsB,GAAG,gBAA7B;EACA,IAAIC,sBAAsB,GAAG,gBAA7B;EACA,IAAIC,iBAAiB,GAAG,WAAxB;EACA,IAAIC,iBAAiB,GAAG,WAAxB;EAGA;;EACA,IAAIC,gBAAgB,GAAG,EAAvB;EAGA;EACA;EACA;;EACA,SAASlB,SAAT,GAAqB;;EACrB,SAASmB,iBAAT,GAA6B;;EAC7B,SAASC,0BAAT,GAAsC;EAGtC;;;EACA,IAAIC,iBAAiB,GAAG,EAAxB;;EACAA,iBAAiB,CAACjC,cAAD,CAAjB,GAAoC,YAAY;EAC9C,SAAO,IAAP;EACD,CAFD;;EAIA,IAAIkC,QAAQ,GAAGzC,MAAM,CAAC0C,cAAtB;EACA,IAAIC,uBAAuB,GAAGF,QAAQ,IAAIA,QAAQ,CAACA,QAAQ,CAACG,MAAM,CAAC,EAAD,CAAP,CAAT,CAAlD;;EACA,IAAID,uBAAuB,IACzBA,uBAAuB,KAAK5C,EAD1B,IAEFG,MAAM,CAAC6B,IAAP,CAAYY,uBAAZ,EAAqCpC,cAArC,CAFF,EAEwD;EACtD;EACA;EACAiC,EAAAA,iBAAiB,GAAGG,uBAApB;EACD;;EAED,IAAIE,EAAE,GAAGN,0BAA0B,CAACtC,SAA3B,GACPkB,SAAS,CAAClB,SAAV,GAAsBD,MAAM,CAACqB,MAAP,CAAcmB,iBAAd,CADxB;EAEAF,iBAAiB,CAACrC,SAAlB,GAA8B4C,EAAE,CAACC,WAAH,GAAiBP,0BAA/C;EACAA,0BAA0B,CAACO,WAA3B,GAAyCR,iBAAzC;EACAC,0BAA0B,CAAC5B,iBAAD,CAA1B,GACE2B,iBAAiB,CAACS,WAAlB,GAAgC,mBADlC;EAIA;;EACA,SAASC,qBAAT,CAA+B/C,SAA/B,EAA0C;EACxC,GAAC,MAAD,EAAS,OAAT,EAAkB,QAAlB,EAA4BgD,OAA5B,CAAoC,UAASC,MAAT,EAAiB;EACnDjD,IAAAA,SAAS,CAACiD,MAAD,CAAT,GAAoB,UAASrB,GAAT,EAAc;EAChC,aAAO,KAAKL,OAAL,CAAa0B,MAAb,EAAqBrB,GAArB,CAAP;EACD,KAFD;EAGD,GAJD;EAKD;;EAED,SAASsB,mBAAT,CAA8BC,MAA9B,EAAsC;EACpC,MAAIC,IAAI,GAAG,OAAOD,MAAP,KAAkB,UAAlB,IAAgCA,MAAM,CAACN,WAAlD;EACA,SAAOO,IAAI,GACPA,IAAI,KAAKf,iBAAT;EAEF;EACA,GAACe,IAAI,CAACN,WAAL,IAAoBM,IAAI,CAACC,IAA1B,MAAoC,mBAJ3B,GAKP,KALJ;EAMD;;EAED,SAASC,IAAT,CAAeH,MAAf,EAAuB;EACrB,MAAIpD,MAAM,CAACwD,cAAX,EAA2B;EACzBxD,IAAAA,MAAM,CAACwD,cAAP,CAAsBJ,MAAtB,EAA8Bb,0BAA9B;EACD,GAFD,MAEO;EACLa,IAAAA,MAAM,CAACK,SAAP,GAAmBlB,0BAAnB;;EACA,QAAI,EAAE5B,iBAAiB,IAAIyC,MAAvB,CAAJ,EAAoC;EAClCA,MAAAA,MAAM,CAACzC,iBAAD,CAAN,GAA4B,mBAA5B;EACD;EACF;;EACDyC,EAAAA,MAAM,CAACnD,SAAP,GAAmBD,MAAM,CAACqB,MAAP,CAAcwB,EAAd,CAAnB;EACA,SAAOO,MAAP;EACD;EAGD;EACA;EACA;;EACA,SAASM,KAAT,CAAgB7B,GAAhB,EAAqB;EACnB,SAAO;EAAE8B,IAAAA,OAAO,EAAE9B;EAAX,GAAP;EACD;;EAED,SAAS+B,aAAT,CAAuBxC,SAAvB,EAAkCyC,WAAlC,EAA+C;EAC7C,WAASC,MAAT,CAAgBZ,MAAhB,EAAwBrB,GAAxB,EAA6BkC,OAA7B,EAAsCC,MAAtC,EAA8C;EAC5C,QAAIC,MAAM,GAAGvC,QAAQ,CAACN,SAAS,CAAC8B,MAAD,CAAV,EAAoB9B,SAApB,EAA+BS,GAA/B,CAArB;;EACA,QAAIoC,MAAM,CAACnC,IAAP,KAAgB,OAApB,EAA6B;EAC3BkC,MAAAA,MAAM,CAACC,MAAM,CAACpC,GAAR,CAAN;EACD,KAFD,MAEO;EACL,UAAIqC,MAAM,GAAGD,MAAM,CAACpC,GAApB;EACA,UAAIsC,KAAK,GAAGD,MAAM,CAACC,KAAnB;;EACA,UAAIA,KAAK,IACP,QAAOA,KAAP,MAAiB,QADf,IAEFjE,MAAM,CAAC6B,IAAP,CAAYoC,KAAZ,EAAmB,SAAnB,CAFF,EAEiC;EAC/B,eAAON,WAAW,CAACE,OAAZ,CAAoBI,KAAK,CAACR,OAA1B,EAAmCS,IAAnC,CAAwC,UAASD,KAAT,EAAgB;EAC7DL,UAAAA,MAAM,CAAC,MAAD,EAASK,KAAT,EAAgBJ,OAAhB,EAAyBC,MAAzB,CAAN;EACD,SAFM,EAEJ,UAAShC,GAAT,EAAc;EACf8B,UAAAA,MAAM,CAAC,OAAD,EAAU9B,GAAV,EAAe+B,OAAf,EAAwBC,MAAxB,CAAN;EACD,SAJM,CAAP;EAKD;;EAED,aAAOH,WAAW,CAACE,OAAZ,CAAoBI,KAApB,EAA2BC,IAA3B,CAAgC,UAASC,SAAT,EAAoB;EACzD;EACA;EACA;EACAH,QAAAA,MAAM,CAACC,KAAP,GAAeE,SAAf;EACAN,QAAAA,OAAO,CAACG,MAAD,CAAP;EACD,OANM,EAMJ,UAASI,KAAT,EAAgB;EACjB;EACA;EACA,eAAOR,MAAM,CAAC,OAAD,EAAUQ,KAAV,EAAiBP,OAAjB,EAA0BC,MAA1B,CAAb;EACD,OAVM,CAAP;EAWD;EACF;;EAED,MAAIO,eAAJ;;EAEA,WAASC,OAAT,CAAiBtB,MAAjB,EAAyBrB,GAAzB,EAA8B;EAC5B,aAAS4C,0BAAT,GAAsC;EACpC,aAAO,IAAIZ,WAAJ,CAAgB,UAASE,OAAT,EAAkBC,MAAlB,EAA0B;EAC/CF,QAAAA,MAAM,CAACZ,MAAD,EAASrB,GAAT,EAAckC,OAAd,EAAuBC,MAAvB,CAAN;EACD,OAFM,CAAP;EAGD;;EAED,WAAOO,eAAe;EAEpB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACAA,IAAAA,eAAe,GAAGA,eAAe,CAACH,IAAhB,CAChBK,0BADgB;EAGhB;EACAA,IAAAA,0BAJgB,CAAH,GAKXA,0BAA0B,EAlBhC;EAmBD,GA5D4C;EA+D7C;;;EACA,OAAKjD,OAAL,GAAegD,OAAf;EACD;;EAEDxB,qBAAqB,CAACY,aAAa,CAAC3D,SAAf,CAArB;;EACA2D,aAAa,CAAC3D,SAAd,CAAwBQ,mBAAxB,IAA+C,YAAY;EACzD,SAAO,IAAP;EACD,CAFD;EAKA;EACA;;;EACC,SAASiE,KAAT,CAAgB5D,OAAhB,EAAyBC,OAAzB,EAAkCC,IAAlC,EAAwCC,WAAxC,EAAqD4C,WAArD,EAAkE;EACjE,MAAIA,WAAW,KAAK,KAAK,CAAzB,EAA4BA,WAAW,GAAGc,OAAd;EAE5B,MAAIC,IAAI,GAAG,IAAIhB,aAAJ,CACT/C,IAAI,CAACC,OAAD,EAAUC,OAAV,EAAmBC,IAAnB,EAAyBC,WAAzB,CADK,EAET4C,WAFS,CAAX;EAKA,SAAOV,mBAAmB,CAACpC,OAAD,CAAnB,GACH6D,IADG;EAAA,IAEHA,IAAI,CAACC,IAAL,GAAYT,IAAZ,CAAiB,UAASF,MAAT,EAAiB;EAClC,WAAOA,MAAM,CAACY,IAAP,GAAcZ,MAAM,CAACC,KAArB,GAA6BS,IAAI,CAACC,IAAL,EAApC;EACD,GAFC,CAFJ;EAKD;;EAED,SAASpD,gBAAT,CAA0BX,OAA1B,EAAmCE,IAAnC,EAAyCM,OAAzC,EAAkD;EAChD,MAAIyD,KAAK,GAAG9C,sBAAZ;EAEA,SAAO,SAAS6B,MAAT,CAAgBZ,MAAhB,EAAwBrB,GAAxB,EAA6B;EAClC,QAAIkD,KAAK,KAAK5C,iBAAd,EAAiC;EAC/B,YAAM,IAAI6C,KAAJ,CAAU,8BAAV,CAAN;EACD;;EAED,QAAID,KAAK,KAAK3C,iBAAd,EAAiC;EAC/B,UAAIc,MAAM,KAAK,OAAf,EAAwB;EACtB,cAAMrB,GAAN;EACD,OAH8B;EAM/B;;;EACA,aAAOoD,UAAU,EAAjB;EACD;;EAED3D,IAAAA,OAAO,CAAC4B,MAAR,GAAiBA,MAAjB;EACA5B,IAAAA,OAAO,CAACO,GAAR,GAAcA,GAAd;;EAEA,WAAO,IAAP,EAAa;EACX,UAAIqD,QAAQ,GAAG5D,OAAO,CAAC4D,QAAvB;;EACA,UAAIA,QAAJ,EAAc;EACZ,YAAIC,cAAc,GAAGC,mBAAmB,CAACF,QAAD,EAAW5D,OAAX,CAAxC;;EACA,YAAI6D,cAAJ,EAAoB;EAClB,cAAIA,cAAc,KAAK9C,gBAAvB,EAAyC;EACzC,iBAAO8C,cAAP;EACD;EACF;;EAED,UAAI7D,OAAO,CAAC4B,MAAR,KAAmB,MAAvB,EAA+B;EAC7B;EACA;EACA5B,QAAAA,OAAO,CAAC+D,IAAR,GAAe/D,OAAO,CAACgE,KAAR,GAAgBhE,OAAO,CAACO,GAAvC;EAED,OALD,MAKO,IAAIP,OAAO,CAAC4B,MAAR,KAAmB,OAAvB,EAAgC;EACrC,YAAI6B,KAAK,KAAK9C,sBAAd,EAAsC;EACpC8C,UAAAA,KAAK,GAAG3C,iBAAR;EACA,gBAAMd,OAAO,CAACO,GAAd;EACD;;EAEDP,QAAAA,OAAO,CAACiE,iBAAR,CAA0BjE,OAAO,CAACO,GAAlC;EAED,OARM,MAQA,IAAIP,OAAO,CAAC4B,MAAR,KAAmB,QAAvB,EAAiC;EACtC5B,QAAAA,OAAO,CAACkE,MAAR,CAAe,QAAf,EAAyBlE,OAAO,CAACO,GAAjC;EACD;;EAEDkD,MAAAA,KAAK,GAAG5C,iBAAR;EAEA,UAAI8B,MAAM,GAAGvC,QAAQ,CAACZ,OAAD,EAAUE,IAAV,EAAgBM,OAAhB,CAArB;;EACA,UAAI2C,MAAM,CAACnC,IAAP,KAAgB,QAApB,EAA8B;EAC5B;EACA;EACAiD,QAAAA,KAAK,GAAGzD,OAAO,CAACwD,IAAR,GACJ1C,iBADI,GAEJF,sBAFJ;;EAIA,YAAI+B,MAAM,CAACpC,GAAP,KAAeQ,gBAAnB,EAAqC;EACnC;EACD;;EAED,eAAO;EACL8B,UAAAA,KAAK,EAAEF,MAAM,CAACpC,GADT;EAELiD,UAAAA,IAAI,EAAExD,OAAO,CAACwD;EAFT,SAAP;EAKD,OAhBD,MAgBO,IAAIb,MAAM,CAACnC,IAAP,KAAgB,OAApB,EAA6B;EAClCiD,QAAAA,KAAK,GAAG3C,iBAAR,CADkC;EAGlC;;EACAd,QAAAA,OAAO,CAAC4B,MAAR,GAAiB,OAAjB;EACA5B,QAAAA,OAAO,CAACO,GAAR,GAAcoC,MAAM,CAACpC,GAArB;EACD;EACF;EACF,GAxED;EAyED;EAGD;EACA;EACA;;;EACA,SAASuD,mBAAT,CAA6BF,QAA7B,EAAuC5D,OAAvC,EAAgD;EAC9C,MAAI4B,MAAM,GAAGgC,QAAQ,CAAC1E,QAAT,CAAkBc,OAAO,CAAC4B,MAA1B,CAAb;;EACA,MAAIA,MAAM,KAAK9C,WAAf,EAA0B;EACxB;EACA;EACAkB,IAAAA,OAAO,CAAC4D,QAAR,GAAmB,IAAnB;;EAEA,QAAI5D,OAAO,CAAC4B,MAAR,KAAmB,OAAvB,EAAgC;EAC9B;EACA,UAAIgC,QAAQ,CAAC1E,QAAT,CAAkB,QAAlB,CAAJ,EAAiC;EAC/B;EACA;EACAc,QAAAA,OAAO,CAAC4B,MAAR,GAAiB,QAAjB;EACA5B,QAAAA,OAAO,CAACO,GAAR,GAAczB,WAAd;EACAgF,QAAAA,mBAAmB,CAACF,QAAD,EAAW5D,OAAX,CAAnB;;EAEA,YAAIA,OAAO,CAAC4B,MAAR,KAAmB,OAAvB,EAAgC;EAC9B;EACA;EACA,iBAAOb,gBAAP;EACD;EACF;;EAEDf,MAAAA,OAAO,CAAC4B,MAAR,GAAiB,OAAjB;EACA5B,MAAAA,OAAO,CAACO,GAAR,GAAc,IAAI4D,SAAJ,CACZ,gDADY,CAAd;EAED;;EAED,WAAOpD,gBAAP;EACD;;EAED,MAAI4B,MAAM,GAAGvC,QAAQ,CAACwB,MAAD,EAASgC,QAAQ,CAAC1E,QAAlB,EAA4Bc,OAAO,CAACO,GAApC,CAArB;;EAEA,MAAIoC,MAAM,CAACnC,IAAP,KAAgB,OAApB,EAA6B;EAC3BR,IAAAA,OAAO,CAAC4B,MAAR,GAAiB,OAAjB;EACA5B,IAAAA,OAAO,CAACO,GAAR,GAAcoC,MAAM,CAACpC,GAArB;EACAP,IAAAA,OAAO,CAAC4D,QAAR,GAAmB,IAAnB;EACA,WAAO7C,gBAAP;EACD;;EAED,MAAIqD,IAAI,GAAGzB,MAAM,CAACpC,GAAlB;;EAEA,MAAI,CAAE6D,IAAN,EAAY;EACVpE,IAAAA,OAAO,CAAC4B,MAAR,GAAiB,OAAjB;EACA5B,IAAAA,OAAO,CAACO,GAAR,GAAc,IAAI4D,SAAJ,CAAc,kCAAd,CAAd;EACAnE,IAAAA,OAAO,CAAC4D,QAAR,GAAmB,IAAnB;EACA,WAAO7C,gBAAP;EACD;;EAED,MAAIqD,IAAI,CAACZ,IAAT,EAAe;EACb;EACA;EACAxD,IAAAA,OAAO,CAAC4D,QAAQ,CAACS,UAAV,CAAP,GAA+BD,IAAI,CAACvB,KAApC,CAHa;;EAMb7C,IAAAA,OAAO,CAACuD,IAAR,GAAeK,QAAQ,CAACU,OAAxB,CANa;EASb;EACA;EACA;EACA;EACA;;EACA,QAAItE,OAAO,CAAC4B,MAAR,KAAmB,QAAvB,EAAiC;EAC/B5B,MAAAA,OAAO,CAAC4B,MAAR,GAAiB,MAAjB;EACA5B,MAAAA,OAAO,CAACO,GAAR,GAAczB,WAAd;EACD;EAEF,GAnBD,MAmBO;EACL;EACA,WAAOsF,IAAP;EACD,GAvE6C;EA0E9C;;;EACApE,EAAAA,OAAO,CAAC4D,QAAR,GAAmB,IAAnB;EACA,SAAO7C,gBAAP;EACD;EAGD;;;EACAW,qBAAqB,CAACH,EAAD,CAArB;EAEAA,EAAE,CAAClC,iBAAD,CAAF,GAAwB,WAAxB;EAGA;EACA;EACA;EACA;;EACAkC,EAAE,CAACtC,cAAD,CAAF,GAAqB,YAAW;EAC9B,SAAO,IAAP;EACD,CAFD;;EAIAsC,EAAE,CAACgD,QAAH,GAAc,YAAW;EACvB,SAAO,oBAAP;EACD,CAFD;;EAIA,SAASC,YAAT,CAAsBC,IAAtB,EAA4B;EAC1B,MAAIC,KAAK,GAAG;EAAEC,IAAAA,MAAM,EAAEF,IAAI,CAAC,CAAD;EAAd,GAAZ;;EAEA,MAAI,KAAKA,IAAT,EAAe;EACbC,IAAAA,KAAK,CAACE,QAAN,GAAiBH,IAAI,CAAC,CAAD,CAArB;EACD;;EAED,MAAI,KAAKA,IAAT,EAAe;EACbC,IAAAA,KAAK,CAACG,UAAN,GAAmBJ,IAAI,CAAC,CAAD,CAAvB;EACAC,IAAAA,KAAK,CAACI,QAAN,GAAiBL,IAAI,CAAC,CAAD,CAArB;EACD;;EAED,OAAKM,UAAL,CAAgBC,IAAhB,CAAqBN,KAArB;EACD;;EAED,SAASO,aAAT,CAAuBP,KAAvB,EAA8B;EAC5B,MAAI/B,MAAM,GAAG+B,KAAK,CAACQ,UAAN,IAAoB,EAAjC;EACAvC,EAAAA,MAAM,CAACnC,IAAP,GAAc,QAAd;EACA,SAAOmC,MAAM,CAACpC,GAAd;EACAmE,EAAAA,KAAK,CAACQ,UAAN,GAAmBvC,MAAnB;EACD;;EAED,SAAS1C,OAAT,CAAiBN,WAAjB,EAA8B;EAC5B;EACA;EACA;EACA,OAAKoF,UAAL,GAAkB,CAAC;EAAEJ,IAAAA,MAAM,EAAE;EAAV,GAAD,CAAlB;EACAhF,EAAAA,WAAW,CAACgC,OAAZ,CAAoB6C,YAApB,EAAkC,IAAlC;EACA,OAAKW,KAAL,CAAW,IAAX;EACD;;EAED,SAASC,IAAT,CAAeC,MAAf,EAAuB;EACrB,MAAID,IAAI,GAAG,EAAX;;EACA,OAAK,IAAIE,GAAT,IAAgBD,MAAhB,EAAwB;EACtBD,IAAAA,IAAI,CAACJ,IAAL,CAAUM,GAAV;EACD;;EACDF,EAAAA,IAAI,CAACG,OAAL,GALqB;EAQrB;;EACA,SAAO,SAAShC,IAAT,GAAgB;EACrB,WAAO6B,IAAI,CAACI,MAAZ,EAAoB;EAClB,UAAIF,GAAG,GAAGF,IAAI,CAACK,GAAL,EAAV;;EACA,UAAIH,GAAG,IAAID,MAAX,EAAmB;EACjB9B,QAAAA,IAAI,CAACV,KAAL,GAAayC,GAAb;EACA/B,QAAAA,IAAI,CAACC,IAAL,GAAY,KAAZ;EACA,eAAOD,IAAP;EACD;EACF,KARoB;EAWrB;EACA;;;EACAA,IAAAA,IAAI,CAACC,IAAL,GAAY,IAAZ;EACA,WAAOD,IAAP;EACD,GAfD;EAgBD;;EAED,SAASjC,MAAT,CAAgBoE,QAAhB,EAA0B;EACxB,MAAIA,QAAJ,EAAc;EACZ,QAAIC,cAAc,GAAGD,QAAQ,CAACzG,cAAD,CAA7B;;EACA,QAAI0G,cAAJ,EAAoB;EAClB,aAAOA,cAAc,CAAClF,IAAf,CAAoBiF,QAApB,CAAP;EACD;;EAED,QAAI,OAAOA,QAAQ,CAACnC,IAAhB,KAAyB,UAA7B,EAAyC;EACvC,aAAOmC,QAAP;EACD;;EAED,QAAI,CAACE,KAAK,CAACF,QAAQ,CAACF,MAAV,CAAV,EAA6B;EAC3B,UAAIK,CAAC,GAAG,CAAC,CAAT;EAAA,UAAYtC,IAAI,GAAG,SAASA,IAAT,GAAgB;EACjC,eAAO,EAAEsC,CAAF,GAAMH,QAAQ,CAACF,MAAtB,EAA8B;EAC5B,cAAI5G,MAAM,CAAC6B,IAAP,CAAYiF,QAAZ,EAAsBG,CAAtB,CAAJ,EAA8B;EAC5BtC,YAAAA,IAAI,CAACV,KAAL,GAAa6C,QAAQ,CAACG,CAAD,CAArB;EACAtC,YAAAA,IAAI,CAACC,IAAL,GAAY,KAAZ;EACA,mBAAOD,IAAP;EACD;EACF;;EAEDA,QAAAA,IAAI,CAACV,KAAL,GAAa/D,WAAb;EACAyE,QAAAA,IAAI,CAACC,IAAL,GAAY,IAAZ;EAEA,eAAOD,IAAP;EACD,OAbD;;EAeA,aAAOA,IAAI,CAACA,IAAL,GAAYA,IAAnB;EACD;EACF,GA7BuB;;;EAgCxB,SAAO;EAAEA,IAAAA,IAAI,EAAEI;EAAR,GAAP;EACD;;EAED,SAASA,UAAT,GAAsB;EACpB,SAAO;EAAEd,IAAAA,KAAK,EAAE/D,WAAT;EAAoB0E,IAAAA,IAAI,EAAE;EAA1B,GAAP;EACD;;EAEDvD,OAAO,CAACtB,SAAR,GAAoB;EAClB6C,EAAAA,WAAW,EAAEvB,OADK;EAGlBkF,EAAAA,KAAK,EAAE,eAASW,aAAT,EAAwB;EAC7B,SAAKC,IAAL,GAAY,CAAZ;EACA,SAAKxC,IAAL,GAAY,CAAZ,CAF6B;EAI7B;;EACA,SAAKQ,IAAL,GAAY,KAAKC,KAAL,GAAalF,WAAzB;EACA,SAAK0E,IAAL,GAAY,KAAZ;EACA,SAAKI,QAAL,GAAgB,IAAhB;EAEA,SAAKhC,MAAL,GAAc,MAAd;EACA,SAAKrB,GAAL,GAAWzB,WAAX;EAEA,SAAKiG,UAAL,CAAgBpD,OAAhB,CAAwBsD,aAAxB;;EAEA,QAAI,CAACa,aAAL,EAAoB;EAClB,WAAK,IAAI9D,IAAT,IAAiB,IAAjB,EAAuB;EACrB;EACA,YAAIA,IAAI,CAACgE,MAAL,CAAY,CAAZ,MAAmB,GAAnB,IACFpH,MAAM,CAAC6B,IAAP,CAAY,IAAZ,EAAkBuB,IAAlB,CADE,IAEF,CAAC4D,KAAK,CAAC,CAAC5D,IAAI,CAACiE,KAAL,CAAW,CAAX,CAAF,CAFR,EAE0B;EACxB,eAAKjE,IAAL,IAAalD,WAAb;EACD;EACF;EACF;EACF,GA3BiB;EA6BlBoH,EAAAA,IAAI,EAAE,gBAAW;EACf,SAAK1C,IAAL,GAAY,IAAZ;EAEA,QAAI2C,SAAS,GAAG,KAAKpB,UAAL,CAAgB,CAAhB,CAAhB;EACA,QAAIqB,UAAU,GAAGD,SAAS,CAACjB,UAA3B;;EACA,QAAIkB,UAAU,CAAC5F,IAAX,KAAoB,OAAxB,EAAiC;EAC/B,YAAM4F,UAAU,CAAC7F,GAAjB;EACD;;EAED,WAAO,KAAK8F,IAAZ;EACD,GAvCiB;EAyClBpC,EAAAA,iBAAiB,EAAE,2BAASqC,SAAT,EAAoB;EACrC,QAAI,KAAK9C,IAAT,EAAe;EACb,YAAM8C,SAAN;EACD;;EAED,QAAItG,OAAO,GAAG,IAAd;;EACA,aAASuG,MAAT,CAAgBC,GAAhB,EAAqBC,MAArB,EAA6B;EAC3B9D,MAAAA,MAAM,CAACnC,IAAP,GAAc,OAAd;EACAmC,MAAAA,MAAM,CAACpC,GAAP,GAAa+F,SAAb;EACAtG,MAAAA,OAAO,CAACuD,IAAR,GAAeiD,GAAf;;EAEA,UAAIC,MAAJ,EAAY;EACV;EACA;EACAzG,QAAAA,OAAO,CAAC4B,MAAR,GAAiB,MAAjB;EACA5B,QAAAA,OAAO,CAACO,GAAR,GAAczB,WAAd;EACD;;EAED,aAAO,CAAC,CAAE2H,MAAV;EACD;;EAED,SAAK,IAAIZ,CAAC,GAAG,KAAKd,UAAL,CAAgBS,MAAhB,GAAyB,CAAtC,EAAyCK,CAAC,IAAI,CAA9C,EAAiD,EAAEA,CAAnD,EAAsD;EACpD,UAAInB,KAAK,GAAG,KAAKK,UAAL,CAAgBc,CAAhB,CAAZ;EACA,UAAIlD,MAAM,GAAG+B,KAAK,CAACQ,UAAnB;;EAEA,UAAIR,KAAK,CAACC,MAAN,KAAiB,MAArB,EAA6B;EAC3B;EACA;EACA;EACA,eAAO4B,MAAM,CAAC,KAAD,CAAb;EACD;;EAED,UAAI7B,KAAK,CAACC,MAAN,IAAgB,KAAKoB,IAAzB,EAA+B;EAC7B,YAAIW,QAAQ,GAAG9H,MAAM,CAAC6B,IAAP,CAAYiE,KAAZ,EAAmB,UAAnB,CAAf;EACA,YAAIiC,UAAU,GAAG/H,MAAM,CAAC6B,IAAP,CAAYiE,KAAZ,EAAmB,YAAnB,CAAjB;;EAEA,YAAIgC,QAAQ,IAAIC,UAAhB,EAA4B;EAC1B,cAAI,KAAKZ,IAAL,GAAYrB,KAAK,CAACE,QAAtB,EAAgC;EAC9B,mBAAO2B,MAAM,CAAC7B,KAAK,CAACE,QAAP,EAAiB,IAAjB,CAAb;EACD,WAFD,MAEO,IAAI,KAAKmB,IAAL,GAAYrB,KAAK,CAACG,UAAtB,EAAkC;EACvC,mBAAO0B,MAAM,CAAC7B,KAAK,CAACG,UAAP,CAAb;EACD;EAEF,SAPD,MAOO,IAAI6B,QAAJ,EAAc;EACnB,cAAI,KAAKX,IAAL,GAAYrB,KAAK,CAACE,QAAtB,EAAgC;EAC9B,mBAAO2B,MAAM,CAAC7B,KAAK,CAACE,QAAP,EAAiB,IAAjB,CAAb;EACD;EAEF,SALM,MAKA,IAAI+B,UAAJ,EAAgB;EACrB,cAAI,KAAKZ,IAAL,GAAYrB,KAAK,CAACG,UAAtB,EAAkC;EAChC,mBAAO0B,MAAM,CAAC7B,KAAK,CAACG,UAAP,CAAb;EACD;EAEF,SALM,MAKA;EACL,gBAAM,IAAInB,KAAJ,CAAU,wCAAV,CAAN;EACD;EACF;EACF;EACF,GAnGiB;EAqGlBQ,EAAAA,MAAM,EAAE,gBAAS1D,IAAT,EAAeD,GAAf,EAAoB;EAC1B,SAAK,IAAIsF,CAAC,GAAG,KAAKd,UAAL,CAAgBS,MAAhB,GAAyB,CAAtC,EAAyCK,CAAC,IAAI,CAA9C,EAAiD,EAAEA,CAAnD,EAAsD;EACpD,UAAInB,KAAK,GAAG,KAAKK,UAAL,CAAgBc,CAAhB,CAAZ;;EACA,UAAInB,KAAK,CAACC,MAAN,IAAgB,KAAKoB,IAArB,IACFnH,MAAM,CAAC6B,IAAP,CAAYiE,KAAZ,EAAmB,YAAnB,CADE,IAEF,KAAKqB,IAAL,GAAYrB,KAAK,CAACG,UAFpB,EAEgC;EAC9B,YAAI+B,YAAY,GAAGlC,KAAnB;EACA;EACD;EACF;;EAED,QAAIkC,YAAY,KACbpG,IAAI,KAAK,OAAT,IACCA,IAAI,KAAK,UAFG,CAAZ,IAGFoG,YAAY,CAACjC,MAAb,IAAuBpE,GAHrB,IAIFA,GAAG,IAAIqG,YAAY,CAAC/B,UAJtB,EAIkC;EAChC;EACA;EACA+B,MAAAA,YAAY,GAAG,IAAf;EACD;;EAED,QAAIjE,MAAM,GAAGiE,YAAY,GAAGA,YAAY,CAAC1B,UAAhB,GAA6B,EAAtD;EACAvC,IAAAA,MAAM,CAACnC,IAAP,GAAcA,IAAd;EACAmC,IAAAA,MAAM,CAACpC,GAAP,GAAaA,GAAb;;EAEA,QAAIqG,YAAJ,EAAkB;EAChB,WAAKhF,MAAL,GAAc,MAAd;EACA,WAAK2B,IAAL,GAAYqD,YAAY,CAAC/B,UAAzB;EACA,aAAO9D,gBAAP;EACD;;EAED,WAAO,KAAK8F,QAAL,CAAclE,MAAd,CAAP;EACD,GArIiB;EAuIlBkE,EAAAA,QAAQ,EAAE,kBAASlE,MAAT,EAAiBmC,QAAjB,EAA2B;EACnC,QAAInC,MAAM,CAACnC,IAAP,KAAgB,OAApB,EAA6B;EAC3B,YAAMmC,MAAM,CAACpC,GAAb;EACD;;EAED,QAAIoC,MAAM,CAACnC,IAAP,KAAgB,OAAhB,IACFmC,MAAM,CAACnC,IAAP,KAAgB,UADlB,EAC8B;EAC5B,WAAK+C,IAAL,GAAYZ,MAAM,CAACpC,GAAnB;EACD,KAHD,MAGO,IAAIoC,MAAM,CAACnC,IAAP,KAAgB,QAApB,EAA8B;EACnC,WAAK6F,IAAL,GAAY,KAAK9F,GAAL,GAAWoC,MAAM,CAACpC,GAA9B;EACA,WAAKqB,MAAL,GAAc,QAAd;EACA,WAAK2B,IAAL,GAAY,KAAZ;EACD,KAJM,MAIA,IAAIZ,MAAM,CAACnC,IAAP,KAAgB,QAAhB,IAA4BsE,QAAhC,EAA0C;EAC/C,WAAKvB,IAAL,GAAYuB,QAAZ;EACD;;EAED,WAAO/D,gBAAP;EACD,GAxJiB;EA0JlB+F,EAAAA,MAAM,EAAE,gBAASjC,UAAT,EAAqB;EAC3B,SAAK,IAAIgB,CAAC,GAAG,KAAKd,UAAL,CAAgBS,MAAhB,GAAyB,CAAtC,EAAyCK,CAAC,IAAI,CAA9C,EAAiD,EAAEA,CAAnD,EAAsD;EACpD,UAAInB,KAAK,GAAG,KAAKK,UAAL,CAAgBc,CAAhB,CAAZ;;EACA,UAAInB,KAAK,CAACG,UAAN,KAAqBA,UAAzB,EAAqC;EACnC,aAAKgC,QAAL,CAAcnC,KAAK,CAACQ,UAApB,EAAgCR,KAAK,CAACI,QAAtC;EACAG,QAAAA,aAAa,CAACP,KAAD,CAAb;EACA,eAAO3D,gBAAP;EACD;EACF;EACF,GAnKiB;EAqKlB,WAAS,gBAAS4D,MAAT,EAAiB;EACxB,SAAK,IAAIkB,CAAC,GAAG,KAAKd,UAAL,CAAgBS,MAAhB,GAAyB,CAAtC,EAAyCK,CAAC,IAAI,CAA9C,EAAiD,EAAEA,CAAnD,EAAsD;EACpD,UAAInB,KAAK,GAAG,KAAKK,UAAL,CAAgBc,CAAhB,CAAZ;;EACA,UAAInB,KAAK,CAACC,MAAN,KAAiBA,MAArB,EAA6B;EAC3B,YAAIhC,MAAM,GAAG+B,KAAK,CAACQ,UAAnB;;EACA,YAAIvC,MAAM,CAACnC,IAAP,KAAgB,OAApB,EAA6B;EAC3B,cAAIuG,MAAM,GAAGpE,MAAM,CAACpC,GAApB;EACA0E,UAAAA,aAAa,CAACP,KAAD,CAAb;EACD;;EACD,eAAOqC,MAAP;EACD;EACF,KAXuB;EAcxB;;;EACA,UAAM,IAAIrD,KAAJ,CAAU,uBAAV,CAAN;EACD,GArLiB;EAuLlBsD,EAAAA,aAAa,EAAE,uBAAStB,QAAT,EAAmBrB,UAAnB,EAA+BC,OAA/B,EAAwC;EACrD,SAAKV,QAAL,GAAgB;EACd1E,MAAAA,QAAQ,EAAEoC,MAAM,CAACoE,QAAD,CADF;EAEdrB,MAAAA,UAAU,EAAEA,UAFE;EAGdC,MAAAA,OAAO,EAAEA;EAHK,KAAhB;;EAMA,QAAI,KAAK1C,MAAL,KAAgB,MAApB,EAA4B;EAC1B;EACA;EACA,WAAKrB,GAAL,GAAWzB,WAAX;EACD;;EAED,WAAOiC,gBAAP;EACD;EArMiB,CAApB;;AAyMA,4BAAe;EACbxB,EAAAA,IAAI,EAAJA,IADa;EAEbsC,EAAAA,mBAAmB,EAAnBA,mBAFa;EAGbS,EAAAA,aAAa,EAAbA,aAHa;EAIbL,EAAAA,IAAI,EAAJA,IAJa;EAKbG,EAAAA,KAAK,EAALA,KALa;EAMbgB,EAAAA,KAAK,EAALA,KANa;EAObgC,EAAAA,IAAI,EAAJA,IAPa;EAQb9D,EAAAA,MAAM,EAANA;EARa,CAAf;;ECzrBA;;;;;EAKG;WACmB,IAAtB;EAAA;EAAA;;;qEAAO,iBAAoB,OAApB,EAAqC,GAArC;EAAA;EAAA;EAAA;EAAA;EAAA;EACC,YAAA,CADD,GACK,SAAJ,CAAI,CAAC,GAAD;EAAA,qBACR,IAAI,UAAJ,CACE,mBAAI,QAAQ,CAAC,kBAAkB,CAAC,GAAD,CAAnB,CAAZ,EAAuC,GAAvC,CAA2C,UAAC,CAAD;EAAA,uBAAO,CAAC,CAAC,UAAF,CAAa,CAAb,CAAP;EAAA,eAA3C,CADF,CADQ;EAAA,aADL;;EAKC,YAAA,CALD,GAKK,CAAC,CAAC,GAAD,CALN;EAMC,YAAA,CAND,GAMK,CAAC,CAAC,OAAD,CANN;EAAA;EAAA,mBAOW,MAAM,CAAC,MAAP,CAAc,SAAd,CACd,KADc,EAEd,CAFc,EAGd;EAAE,cAAA,IAAI,EAAE,MAAR;EAAgB,cAAA,IAAI,EAAE;EAAtB,aAHc,EAId,IAJc,EAKd,CAAC,MAAD,CALc,CAPX;;EAAA;EAOC,YAAA,CAPD;EAAA;EAAA,mBAcW,MAAM,CAAC,MAAP,CAAc,IAAd,CAAmB,MAAnB,EAA2B,CAA3B,EAA8B,CAA9B,CAdX;;EAAA;EAcC,YAAA,CAdD;EAAA,6CAeE,mBAAI,IAAI,UAAJ,CAAe,CAAf,CAAJ,EACJ,GADI,CACA,UAAC,CAAD;EAAA,qBAAO,CAAC,CAAC,QAAF,CAAW,EAAX,EAAe,QAAf,CAAwB,CAAxB,EAA2B,GAA3B,CAAP;EAAA,aADA,EAEJ,IAFI,CAEC,EAFD,CAfF;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;;ECNA,OAAA;EAAA,KAAA;EAAA,OAAA;EAAA,OAAA;EAAA,OAAA;EAAA,OAAA;EAAA,OAAA;EAAA,IAAM2F,GAAAA,GAAY,EAAlB;EAAA,IACMC,GAAAA,GAAY,EADlB;EAAA,IAEMC,GAAAA,GAAqB,6DAF3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECAP,IAAIC,GAAC,GAAC,SAAFA,CAAE,CAASC,CAAT,EAAWC,CAAX,EAAaC,CAAb,EAAeC,CAAf,EAAiB;EAAC,MAAIC,CAAJ;EAAMH,EAAAA,CAAC,CAAC,CAAD,CAAD,GAAK,CAAL;;EAAO,OAAI,IAAII,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACJ,CAAC,CAAC9B,MAAhB,EAAuBkC,CAAC,EAAxB,EAA2B;EAAC,QAAIC,CAAC,GAACL,CAAC,CAACI,CAAC,EAAF,CAAP;EAAA,QAAaE,CAAC,GAACN,CAAC,CAACI,CAAD,CAAD,IAAMJ,CAAC,CAAC,CAAD,CAAD,IAAMK,CAAC,GAAC,CAAD,GAAG,CAAV,EAAYJ,CAAC,CAACD,CAAC,CAACI,CAAC,EAAF,CAAF,CAAnB,IAA6BJ,CAAC,CAAC,EAAEI,CAAH,CAA7C;EAAmD,UAAIC,CAAJ,GAAMH,CAAC,CAAC,CAAD,CAAD,GAAKI,CAAX,GAAa,MAAID,CAAJ,GAAMH,CAAC,CAAC,CAAD,CAAD,GAAK9I,MAAM,CAACmJ,MAAP,CAAcL,CAAC,CAAC,CAAD,CAAD,IAAM,EAApB,EAAuBI,CAAvB,CAAX,GAAqC,MAAID,CAAJ,GAAM,CAACH,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,CAAD,CAAD,IAAM,EAAZ,EAAgBF,CAAC,CAAC,EAAEI,CAAH,CAAjB,IAAwBE,CAA9B,GAAgC,MAAID,CAAJ,GAAMH,CAAC,CAAC,CAAD,CAAD,CAAKF,CAAC,CAAC,EAAEI,CAAH,CAAN,KAAcE,CAAC,GAAC,EAAtB,GAAyBD,CAAC,IAAEF,CAAC,GAACJ,CAAC,CAACS,KAAF,CAAQF,CAAR,EAAUR,CAAC,CAACC,CAAD,EAAGO,CAAH,EAAKL,CAAL,EAAO,CAAC,EAAD,EAAI,IAAJ,CAAP,CAAX,CAAF,EAAgCC,CAAC,CAACxC,IAAF,CAAOyC,CAAP,CAAhC,EAA0CG,CAAC,CAAC,CAAD,CAAD,GAAKN,CAAC,CAAC,CAAD,CAAD,IAAM,CAAX,IAAcA,CAAC,CAACI,CAAC,GAAC,CAAH,CAAD,GAAO,CAAP,EAASJ,CAAC,CAACI,CAAD,CAAD,GAAKD,CAA5B,CAA5C,IAA4ED,CAAC,CAACxC,IAAF,CAAO4C,CAAP,CAAxL;EAAkM;;EAAA,SAAOJ,CAAP;EAAS,CAA/T;EAAA,IAAgUH,GAAC,GAAC,IAAIU,GAAJ,EAAlU;;EAAyV,cAAST,CAAT,EAAW;EAAC,MAAIC,CAAC,GAACF,GAAC,CAACW,GAAF,CAAM,IAAN,CAAN;EAAkB,SAAOT,CAAC,KAAGA,CAAC,GAAC,IAAIQ,GAAJ,EAAF,EAAUV,GAAC,CAACY,GAAF,CAAM,IAAN,EAAWV,CAAX,CAAb,CAAD,EAA6B,CAACA,CAAC,GAACH,GAAC,CAAC,IAAD,EAAMG,CAAC,CAACS,GAAF,CAAMV,CAAN,MAAWC,CAAC,CAACU,GAAF,CAAMX,CAAN,EAAQC,CAAC,GAAC,UAASH,CAAT,EAAW;EAAC,SAAI,IAAIC,CAAJ,EAAMC,CAAN,EAAQC,CAAC,GAAC,CAAV,EAAYC,CAAC,GAAC,EAAd,EAAiBC,CAAC,GAAC,EAAnB,EAAsBC,CAAC,GAAC,CAAC,CAAD,CAAxB,EAA4BC,CAAC,GAAC,SAAFA,CAAE,CAASP,CAAT,EAAW;EAAC,YAAIG,CAAJ,KAAQH,CAAC,KAAGI,CAAC,GAACA,CAAC,CAACU,OAAF,CAAU,sBAAV,EAAiC,EAAjC,CAAL,CAAT,IAAqDR,CAAC,CAAC1C,IAAF,CAAO,CAAP,EAASoC,CAAT,EAAWI,CAAX,CAArD,GAAmE,MAAID,CAAJ,KAAQH,CAAC,IAAEI,CAAX,KAAeE,CAAC,CAAC1C,IAAF,CAAO,CAAP,EAASoC,CAAT,EAAWI,CAAX,GAAcD,CAAC,GAAC,CAA/B,IAAkC,MAAIA,CAAJ,IAAO,UAAQC,CAAf,IAAkBJ,CAAlB,GAAoBM,CAAC,CAAC1C,IAAF,CAAO,CAAP,EAASoC,CAAT,EAAW,CAAX,CAApB,GAAkC,MAAIG,CAAJ,IAAOC,CAAP,IAAU,CAACJ,CAAX,GAAaM,CAAC,CAAC1C,IAAF,CAAO,CAAP,EAAS,CAAT,EAAW,CAAC,CAAZ,EAAcwC,CAAd,CAAb,GAA8BD,CAAC,IAAE,CAAH,KAAO,CAACC,CAAC,IAAE,CAACJ,CAAD,IAAI,MAAIG,CAAZ,MAAiBG,CAAC,CAAC1C,IAAF,CAAOuC,CAAP,EAAS,CAAT,EAAWC,CAAX,EAAaF,CAAb,GAAgBC,CAAC,GAAC,CAAnC,GAAsCH,CAAC,KAAGM,CAAC,CAAC1C,IAAF,CAAOuC,CAAP,EAASH,CAAT,EAAW,CAAX,EAAaE,CAAb,GAAgBC,CAAC,GAAC,CAArB,CAA9C,CAArK,EAA4OC,CAAC,GAAC,EAA9O;EAAiP,KAA3R,EAA4RI,CAAC,GAAC,CAAlS,EAAoSA,CAAC,GAACR,CAAC,CAAC5B,MAAxS,EAA+SoC,CAAC,EAAhT,EAAmT;EAACA,MAAAA,CAAC,KAAG,MAAIL,CAAJ,IAAOI,CAAC,EAAR,EAAWA,CAAC,CAACC,CAAD,CAAf,CAAD;;EAAqB,WAAI,IAAIO,CAAC,GAAC,CAAV,EAAYA,CAAC,GAACf,CAAC,CAACQ,CAAD,CAAD,CAAKpC,MAAnB,EAA0B2C,CAAC,EAA3B;EAA8Bd,QAAAA,CAAC,GAACD,CAAC,CAACQ,CAAD,CAAD,CAAKO,CAAL,CAAF,EAAU,MAAIZ,CAAJ,GAAM,QAAMF,CAAN,IAASM,CAAC,IAAGD,CAAC,GAAC,CAACA,CAAD,CAAL,EAASH,CAAC,GAAC,CAArB,IAAwBC,CAAC,IAAEH,CAAjC,GAAmC,MAAIE,CAAJ,GAAM,SAAOC,CAAP,IAAU,QAAMH,CAAhB,IAAmBE,CAAC,GAAC,CAAF,EAAIC,CAAC,GAAC,EAAzB,IAA6BA,CAAC,GAACH,CAAC,GAACG,CAAC,CAAC,CAAD,CAAxC,GAA4CC,CAAC,GAACJ,CAAC,KAAGI,CAAJ,GAAMA,CAAC,GAAC,EAAR,GAAWD,CAAC,IAAEH,CAAf,GAAiB,QAAMA,CAAN,IAAS,QAAMA,CAAf,GAAiBI,CAAC,GAACJ,CAAnB,GAAqB,QAAMA,CAAN,IAASM,CAAC,IAAGJ,CAAC,GAAC,CAAf,IAAkBA,CAAC,KAAG,QAAMF,CAAN,IAASE,CAAC,GAAC,CAAF,EAAID,CAAC,GAACE,CAAN,EAAQA,CAAC,GAAC,EAAnB,IAAuB,QAAMH,CAAN,KAAUE,CAAC,GAAC,CAAF,IAAK,QAAMH,CAAC,CAACQ,CAAD,CAAD,CAAKO,CAAC,GAAC,CAAP,CAArB,KAAiCR,CAAC,IAAG,MAAIJ,CAAJ,KAAQG,CAAC,GAACA,CAAC,CAAC,CAAD,CAAX,CAAH,EAAmBH,CAAC,GAACG,CAArB,EAAuB,CAACA,CAAC,GAACA,CAAC,CAAC,CAAD,CAAJ,EAAS1C,IAAT,CAAc,CAAd,EAAgB,CAAhB,EAAkBuC,CAAlB,CAAvB,EAA4CA,CAAC,GAAC,CAAhF,IAAmF,QAAMF,CAAN,IAAS,SAAOA,CAAhB,IAAmB,SAAOA,CAA1B,IAA6B,SAAOA,CAApC,IAAuCM,CAAC,IAAGJ,CAAC,GAAC,CAA7C,IAAgDC,CAAC,IAAEH,CAAhK,CAAnJ,EAAsT,MAAIE,CAAJ,IAAO,UAAQC,CAAf,KAAmBD,CAAC,GAAC,CAAF,EAAIG,CAAC,GAACA,CAAC,CAAC,CAAD,CAA1B,CAAtT;EAA9B;EAAmX;;EAAA,WAAOC,CAAC,IAAGD,CAAX;EAAa,GAArtB,CAAstBJ,CAAttB,CAAV,GAAouBC,CAA/uB,CAAN,EAAwvBa,SAAxvB,EAAkwB,EAAlwB,CAAJ,EAA2wB5C,MAA3wB,GAAkxB,CAAlxB,GAAoxB+B,CAApxB,GAAsxBA,CAAC,CAAC,CAAD,CAA3zB;EAA+zB;;ECAtkC,IAAIc,GAAC,GAACb,GAAC,CAACc,IAAF,CAAOf,CAAP,CAAN;;ECAjG,SAAS,sBAAsB,CAAC,OAAO,EAAE,GAAG,EAAE;EAC7D,EAAE,IAAI,CAAC,GAAG,EAAE;EACZ,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;EAC3B,GAAG;AACH;EACA,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE;EACxD,IAAI,GAAG,EAAE;EACT,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;EAC/B,KAAK;EACL,GAAG,CAAC,CAAC,CAAC;EACN;;ECVe,SAAS,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE;EAC/D,EAAE,IAAI,EAAE,QAAQ,YAAY,WAAW,CAAC,EAAE;EAC1C,IAAI,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;EAC7D,GAAG;EACH;;ECJe,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;EACzD,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE;EAClB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;EACpC,MAAM,KAAK,EAAE,KAAK;EAClB,MAAM,UAAU,EAAE,IAAI;EACtB,MAAM,YAAY,EAAE,IAAI;EACxB,MAAM,QAAQ,EAAE,IAAI;EACpB,KAAK,CAAC,CAAC;EACP,GAAG,MAAM;EACT,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;EACrB,GAAG;AACH;EACA,EAAE,OAAO,GAAG,CAAC;EACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECbe,gBAASgB,CAAT,EAAcC,CAAd,EAAcA;EAAAA,SAC5BA,CAAAA,GAAUA,CAAAA,IAAW,EAArBA,EACO,IAAInF,OAAJ,CAAIA,UAAUZ,CAAVY,EAAmBX,CAAnBW,EAAmBX;EAAAA,QACvB+F,CAAAA,GAAU,IAAIC,cAAJ,EADahG;EAAAA,QAEvB0C,CAAAA,GAAO,EAFgB1C;EAAAA,QAGvBiG,CAAAA,GAAM,EAHiBjG;EAAAA,QAIvBkG,CAAAA,GAAU,EAJalG;EAAAA,QAMvBmG,CAAAA,GAAAA,SAAAA,CAAAA,GAAAA;EAAAA,aAAAA;EACLC,QAAAA,EAAAA,EAA8B,MAAzBL,CAAAA,CAAQM,MAARN,GAAe,GAAfA,GAAmB,CAAM,CADzBI;EAELG,QAAAA,UAAAA,EAAYP,CAAAA,CAAQO,UAFfH;EAGLE,QAAAA,MAAAA,EAAQN,CAAAA,CAAQM,MAHXF;EAILN,QAAAA,GAAAA,EAAKE,CAAAA,CAAQQ,WAJRJ;EAKLK,QAAAA,IAAAA,EAAAA,gBAAAA;EAAAA,iBAAY7F,OAAAA,CAAQZ,OAARY,CAAgBoF,CAAAA,CAAQU,YAAxB9F,CAAZ6F;EAAoCC,SAL/BN;EAMLO,QAAAA,IAAAA,EAAAA,gBAAAA;EAAAA,iBAAY/F,OAAAA,CAAQZ,OAARY,CAAgBoF,CAAAA,CAAQU,YAAxB9F,EAAsCP,IAAtCO,CAA2CgG,IAAAA,CAAKC,KAAhDjG,CAAZ+F;EAA4DE,SANvDT;EAOLU,QAAAA,IAAAA,EAAAA,gBAAAA;EAAAA,iBAAYlG,OAAAA,CAAQZ,OAARY,CAAgB,IAAImG,IAAJ,CAAS,CAACf,CAAAA,CAAQI,QAAT,CAAT,CAAhBxF,CAAZkG;EAA8CV,SAPzCA;EAQLY,QAAAA,KAAAA,EAAOZ,CARFA;EASLD,QAAAA,OAAAA,EAAS;EACRxD,UAAAA,IAAAA,EAAAA,gBAAAA;EAAAA,mBAAYA,CAAZA;EAAYA,WADJ;EAERsE,UAAAA,OAAAA,EAAAA,mBAAAA;EAAAA,mBAAef,CAAfe;EAAef,WAFP;EAGRX,UAAAA,GAAAA,EAAAA,aAAKZ,CAALY,EAAKZ;EAAAA,mBAAKwB,CAAAA,CAAQxB,CAAAA,CAAEuC,WAAFvC,EAARwB,CAALxB;EAAeuC,WAHZ;EAIRC,UAAAA,GAAAA,EAAAA,aAAKxC,CAALwC,EAAKxC;EAAAA,mBAAKA,CAAAA,CAAEuC,WAAFvC,MAAmBwB,CAAxBxB;EAAwBwB;EAJrB;EATJC,OAAAA;EAayBD,KAnBFlG;;EAmBEkG,SAmB1BiB,IAAMhE,CAnBoB+C,IAI/BH,CAAAA,CAAQqB,IAARrB,CAAaD,CAAAA,CAAQ5G,MAAR4G,IAAkB,KAA/BC,EAAsCF,CAAtCE,EAAsCF,CAAK,CAA3CE,GAEAA,CAAAA,CAAQsB,MAARtB,GAAQsB,YAAAA;EACPtB,MAAAA,CAAAA,CAAQuB,qBAARvB,GAAgCP,OAAhCO,CAAwC,8BAAxCA,EAAwC,UAAiCJ,CAAjC,EAAoC/C,CAApC,EAAyCzC,CAAzC,EAAyCA;EAChFuC,QAAAA,CAAAA,CAAKJ,IAALI,CAAUE,CAAAA,GAAMA,CAAAA,CAAIqE,WAAJrE,EAAhBF,GACAuD,CAAAA,CAAI3D,IAAJ2D,CAAS,CAACrD,CAAD,EAAMzC,CAAN,CAAT8F,CADAvD,EAEAwD,CAAAA,CAAQtD,CAARsD,CAAAA,GAAeA,CAAAA,CAAQtD,CAARsD,CAAAA,GAAkBA,CAAAA,CAAQtD,CAARsD,CAAAA,GAAQtD,GAARsD,GAAgB/F,CAAlC+F,GAA4C/F,CAF3DuC;EAE2DvC,OAH5D4F,GAKAhG,CAAAA,CAAQoG,CAAAA,EAARpG,CALAgG;EAKQI,KARTJ,EAWAA,CAAAA,CAAQwB,OAARxB,GAAkB/F,CAXlB+F,EAaAA,CAAAA,CAAQyB,eAARzB,GAA+C,aAArBD,CAAAA,CAAQ2B,WAblC1B,EAegBD,CAAAA,CAAQI,OAnBOA;EAoB9BH,MAAAA,CAAAA,CAAQ2B,gBAAR3B,CAAyB5C,CAAzB4C,EAA4BD,CAAAA,CAAQI,OAARJ,CAAgB3C,CAAhB2C,CAA5BC;EApB8BG;;EAuB/BH,IAAAA,CAAAA,CAAQ4B,IAAR5B,CAAaD,CAAAA,CAAQ8B,IAAR9B,IAAgB,IAA7BC;EAA6B,GA1CvB,CAFqBD;EA4CE;;EC5ChB,SAAS,sBAAsB,CAAC,IAAI,EAAE;EACrD,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;EACvB,IAAI,MAAM,IAAI,cAAc,CAAC,2DAA2D,CAAC,CAAC;EAC1F,GAAG;AACH;EACA,EAAE,OAAO,IAAI,CAAC;EACd;;ECNe,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;EAC9C,EAAE,eAAe,GAAG,MAAM,CAAC,cAAc,IAAI,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;EAC5E,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;EACpB,IAAI,OAAO,CAAC,CAAC;EACb,GAAG,CAAC;AACJ;EACA,EAAE,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAC/B;;ECNe,SAAS,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE;EACxD,EAAE,IAAI,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,IAAI,EAAE;EAC/D,IAAI,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;EAC9E,GAAG;AACH;EACA,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE;EACzE,IAAI,WAAW,EAAE;EACjB,MAAM,KAAK,EAAE,QAAQ;EACrB,MAAM,QAAQ,EAAE,IAAI;EACpB,MAAM,YAAY,EAAE,IAAI;EACxB,KAAK;EACL,GAAG,CAAC,CAAC;EACL,EAAE,IAAI,UAAU,EAAEtG,eAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;EACvD;;ECZe,SAAS,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE;EAC/D,EAAE,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU,CAAC,EAAE;EAC1E,IAAI,OAAO,IAAI,CAAC;EAChB,GAAG;AACH;EACA,EAAE,OAAOqI,sBAAqB,CAAC,IAAI,CAAC,CAAC;EACrC;;ECRe,SAAS,eAAe,CAAC,CAAC,EAAE;EAC3C,EAAE,eAAe,GAAG,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,SAAS,eAAe,CAAC,CAAC,EAAE;EAChG,IAAI,OAAO,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;EACnD,GAAG,CAAC;EACJ,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;EAC5B;;ECLe,SAAS,iBAAiB,CAAC,EAAE,EAAE;EAC9C,EAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;EACpE;;ECFe,SAASC,2BAAyB,GAAG;EACpD,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC;EACzE,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC;EAC3C,EAAE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC;AAC/C;EACA,EAAE,IAAI;EACN,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;EACnF,IAAI,OAAO,IAAI,CAAC;EAChB,GAAG,CAAC,OAAO,CAAC,EAAE;EACd,IAAI,OAAO,KAAK,CAAC;EACjB,GAAG;EACH;;ECTe,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;EACxD,EAAE,IAAIC,2BAAwB,EAAE,EAAE;EAClC,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;EACnC,GAAG,MAAM;EACT,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;EAC1D,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EACrB,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;EAC5B,MAAM,IAAI,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;EACvD,MAAM,IAAI,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;EACvC,MAAM,IAAI,KAAK,EAAEvI,eAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;EAC3D,MAAM,OAAO,QAAQ,CAAC;EACtB,KAAK,CAAC;EACN,GAAG;AACH;EACA,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;EAC3C;;ECbe,SAAS,gBAAgB,CAAC,KAAK,EAAE;EAChD,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,KAAK,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,SAAS,CAAC;AACjE;EACA,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,KAAK,EAAE;EACtD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAACwI,iBAAgB,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AACjE;EACA,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;EACrC,MAAM,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;EAChF,KAAK;AACL;EACA,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;EACvC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD;EACA,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;EACjC,KAAK;AACL;EACA,IAAI,SAAS,OAAO,GAAG;EACvB,MAAM,OAAOC,UAAS,CAAC,KAAK,EAAE,SAAS,EAAEvJ,eAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC;EAC3E,KAAK;AACL;EACA,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;EACvD,MAAM,WAAW,EAAE;EACnB,QAAQ,KAAK,EAAE,OAAO;EACtB,QAAQ,UAAU,EAAE,KAAK;EACzB,QAAQ,QAAQ,EAAE,IAAI;EACtB,QAAQ,YAAY,EAAE,IAAI;EAC1B,OAAO;EACP,KAAK,CAAC,CAAC;EACP,IAAI,OAAOc,eAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;EAC1C,GAAG,CAAC;AACJ;EACA,EAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;EACjC;;;;;;EClCA;;EAEG;MACG;;;;;EAKJ,2BAAY,YAAZ,EAAkC,QAAlC,EAA4D;EAAA;;EAAA;;EAC1D,8BAAM,YAAN;;EAD0D;;EAAA;;EAE1D,UAAK,IAAL,GAAY,MAAK,WAAL,CAAiB,IAA7B;EACA,UAAK,UAAL,GAAkB,QAAlB,aAAkB,QAAlB,uBAAkB,QAAQ,CAAE,MAA5B;EACA,UAAK,QAAL,GAAgB,QAAhB;EAJ0D;EAK3D;;;mCAV2B;;ECAvB,IAAM,eAAe;EAAA,sEAAG,iBAC7B,QAD6B;EAAA;EAAA;EAAA;EAAA;EAAA;EAMvB,YAAA,SANuB,GAMX,CAAC,CAAC,IANS;;EAAA,iBAQzB,QAAQ,CAAC,EARgB;EAAA;EAAA;EAAA;;EAAA;EAAA;EAAA,mBAUO,QAAQ,CAAC,IAAT,EAVP;;EAAA;EAUnB,YAAA,cAVmB;EAWzB,gBAAI,SAAJ,EAAe,OAAO,CAAC,GAAR,CAAY,cAAZ;EAXU,6CAYlB;EACL,cAAA,IAAI,EAAE,cADD;EAEL,cAAA,MAAM,EAAE,QAAQ,CAAC;EAFZ,aAZkB;;EAAA;EAAA;EAAA;EAiBzB,gBAAI,SAAJ,EAAe,OAAO,CAAC,GAAR,CAAY,yBAAZ;EAjBU,6CAkBlB;EACL,cAAA,IAAI,EAAE,IADD;EAEL,cAAA,MAAM,EAAE,QAAQ,CAAC;EAFZ,aAlBkB;;EAAA;EAAA;EAAA;;EAAA;EAAA,kBAuBlB,QAAQ,CAAC,MAAT,KAAoB,GAvBF;EAAA;EAAA;EAAA;;EAAA;EAAA,mBAyBb,QAAQ,CAAC,IAAT,EAzBa;;EAAA;EAAA;EAAA,0BA0BjB,QAAQ,CAAC,MA1BQ;EAAA;EAyBzB,cAAA,IAzByB;EA0BzB,cAAA,MA1ByB;EAAA;;EAAA;EA6B7B,gBAAI,SAAJ,EAAe,OAAO,CAAC,GAAR,CAAY,gCAAZ;EACT,YAAA,KA9BuB,GA8Bf,IAAI,eAAJ,CAAoB,QAAQ,CAAC,UAA7B,EAAyC,QAAzC,CA9Be;EAAA,6CA+BtB,OAAO,CAAC,MAAR,CAAe,KAAf,CA/BsB;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,GAAH;;EAAA,kBAAf,eAAe;EAAA;EAAA;EAAA,GAArB;;;;;;MCgBD,aAGJ,oBAAY,MAAZ,EAA6B;EAAA;;EAAA;;EAAA;;EAAA;EAAA,wEAeR,iBACnB,UADmB;EAAA;EAAA;EAAA;EAAA;EAAA;EAGb,cAAA,GAHa,GAGP,IAAI,GAAJ,WAAW,KAAI,CAAC,MAAL,CAAY,SAAvB,uBAA6C,UAA7C,OAHO;EAKnB,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADY;EAEjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFe;EAGjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MAHY;EAIjC,gBAAA,YAAY,EAAE,KAAI,CAAC,MAAL,CAAY,MAAZ,IAAsB,IAJH;EAKjC,gBAAA,YAAY,EAAE,KAAI,CAAC,MAAL,CAAY,MAAZ,IAAsB,IALH;EAMjC,gBAAA,gBAAgB,EAAE,KAAI,CAAC,MAAL,CAAY,MAAZ,GACd,IAAI,CAAC,SAAL,CAAe,KAAI,CAAC,MAAL,CAAY,MAA3B,CADc,GAEd;EAR6B,eAAnC;EALmB;EAAA;EAAA,qBAiBM,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,CAAL,CAAsB,IAAtB,CAA2B,UAAC,IAAD;EAAA,uBAChD,eAAe,CAAmB,IAAnB,CADiC;EAAA,eAA3B,CAjBN;;EAAA;EAiBX,cAAA,QAjBW;EAAA,+CAoBV,QAAQ,CAAC,IApBC;;EAAA;EAAA;EAAA;EAsBjB,cAAA,OAAO,CAAC,KAAR;EAtBiB,+CAuBV,IAvBU;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KAfQ;;EAAA;EAAA;EAAA;EAAA;;EAAA,sCA0CT,UAAC,mBAAD,EAAwC;EAC1D,QAAM,GAAG,GAAG,IAAI,GAAJ,WACP,KAAI,CAAC,MAAL,CAAY,OADL,yBAC2B,mBAD3B,OAAZ;EAIA,IAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,MAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADY;EAEjC,MAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFe;EAGjC,MAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY;EAHY,KAAnC;EAMA,WAAO,GAAG,CAAC,QAAJ,EAAP;EACD,GAtD4B;;EAAA;EAAA,yEAwDT,kBAClB,KADkB;EAAA;EAAA;EAAA;EAAA;EAAA;EAGZ,cAAA,GAHY,GAGN,IAAI,GAAJ,WAAW,KAAI,CAAC,MAAL,CAAY,OAAvB,kBAAsC,KAAtC,OAHM;EAKlB,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADY;EAEjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFe;EAGjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MAHY;EAIjC,gBAAA,WAAW,EAAE;EAJoB,eAAnC;EALkB;EAAA;EAAA,qBAaO,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,CAAL,CAAsB,IAAtB,CAA2B,UAAC,IAAD;EAAA,uBAChD,eAAe,CAAwB,IAAxB,CADiC;EAAA,eAA3B,CAbP;;EAAA;EAaV,cAAA,QAbU;EAAA,gDAiBT,QAAQ,CAAC,IAjBA;;EAAA;EAAA;EAAA;EAmBhB,cAAA,OAAO,CAAC,KAAR;EAnBgB,gDAoBT,IApBS;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KAxDS;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,yEAgFJ,kBACvB,MADuB,EAEvB,aAFuB;EAAA;EAAA;EAAA;EAAA;EAAA;EAIjB,cAAA,GAJiB,GAIX,IAAI,GAAJ,WAAW,KAAI,CAAC,MAAL,CAAY,OAAvB,4BAAgD,MAAhD,OAJW;EAMvB,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADY;EAEjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFe;EAGjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MAHY;EAIjC,gBAAA,YAAY,EAAE,KAAI,CAAC,MAAL,CAAY,MAAZ,IAAsB,IAJH;EAKjC,gBAAA,YAAY,EAAE,KAAI,CAAC,MAAL,CAAY,MAAZ,IAAsB,IALH;EAMjC,gBAAA,cAAc,EAAE,aAAa,aAAM,aAAN,IAAwB,IANpB;EAOjC,gBAAA,gBAAgB,EAAE,KAAI,CAAC,MAAL,CAAY,MAAZ,GACd,IAAI,CAAC,SAAL,CAAe,KAAI,CAAC,MAAL,CAAY,MAA3B,CADc,GAEd;EAT6B,eAAnC;EANuB;EAAA;EAAA,qBAmBE,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,CAAL,CAAsB,IAAtB,CAA2B,UAAC,IAAD;EAAA,uBAChD,eAAe,CAAe,IAAf,CADiC;EAAA,eAA3B,CAnBF;;EAAA;EAmBf,cAAA,QAnBe;EAAA,gDAuBd,QAAQ,CAAC,IAvBK;;EAAA;EAAA;EAAA;EAyBrB,cAAA,OAAO,CAAC,KAAR;EAzBqB,gDA0Bd,IA1Bc;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KAhFI;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,yEA8GR,kBAAO,MAAP;EAAA;EAAA;EAAA;EAAA;EAAA;EACb,cAAA,GADa,GACP,IAAI,GAAJ,WACP,KAAI,CAAC,MAAL,CAAY,OADL,cACgB,KAAI,CAAC,MAAL,CAAY,eAD5B,EADO;EAKnB,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,gBAAgB,YAAK,MAAL,CADiB;EAEjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MAFY;EAGjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAHe;EAIjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY;EAJY,eAAnC;EALmB;EAAA;EAAA,qBAaM,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,EAAiB;EAAE,gBAAA,MAAM,EAAE;EAAV,eAAjB,CAAL,CAA0C,IAA1C,CACrB,eADqB,CAbN;;EAAA;EAaX,cAAA,QAbW;EAAA,gDAgBV,CAAC,CAAC,QAAQ,CAAC,IAhBD;;EAAA;EAAA;EAAA;EAkBjB,cAAA,OAAO,CAAC,KAAR;EAlBiB,gDAmBV,IAnBU;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KA9GQ;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,yEAqIT,kBAClB,MADkB;EAAA;EAAA;EAAA;EAAA;EAAA;EAMZ,cAAA,GANY,GAMN,IAAI,GAAJ,WAAW,KAAI,CAAC,MAAL,CAAY,OAAvB,iCAAqD,MAArD,EANM;EAQlB,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADY;EAEjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFe;EAGjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY;EAHY,eAAnC;EARkB;EAAA;EAAA,qBAeO,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,EAAiB;EAC3C,gBAAA,MAAM,EAAE;EADmC,eAAjB,CAAL,CAEpB,IAFoB,CAEf,UAAC,IAAD;EAAA,uBAAU,eAAe,CAAS,IAAT,CAAzB;EAAA,eAFe,CAfP;;EAAA;EAeV,cAAA,QAfU;EAAA,gDAmBT;EACL,gBAAA,MAAM,EAAE,QAAQ,CAAC,MADZ;EAEL,gBAAA,IAAI,EAAE,QAAQ,CAAC;EAFV,eAnBS;;EAAA;EAAA;EAAA;EAwBhB,cAAA,OAAO,CAAC,KAAR;EAxBgB,gDAyBT,IAzBS;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KArIS;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,yEAkKI,kBAC/B,GAD+B;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAE/B,cAAA,YAF+B,8DAEQ,EAFR;EAI/B,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B;EACE,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADvB;EAEE,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFpB;EAGE,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY;EAHvB,iBAIK,YAJL;EAJ+B;EAAA;EAAA,qBAYN,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,CAAL,CAAsB,IAAtB,CAA2B,UAAC,IAAD;EAAA,uBAChD,eAAe,CAAI,IAAJ,CADiC;EAAA,eAA3B,CAZM;;EAAA;EAYvB,cAAA,QAZuB;EAAA,gDAetB,QAAQ,CAAC,IAfa;;EAAA;EAAA;EAAA;EAiB7B,cAAA,OAAO,CAAC,KAAR;EAjB6B,gDAkBtB,IAlBsB;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KAlKJ;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,yEAwLD,kBAC1B,YAD0B;EAAA;EAAA;EAAA;EAAA;EAAA;EAGpB,cAAA,GAHoB,GAGd,IAAI,GAAJ,WAAW,KAAI,CAAC,MAAL,CAAY,OAAvB,qBAAyC,YAAzC,OAHc;EAK1B,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADY;EAEjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFe;EAGjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY;EAHY,eAAnC;EAL0B;EAAA;EAAA,qBAYD,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,CAAL,CAAsB,IAAtB,CAA2B,UAAC,IAAD;EAAA,uBAChD,eAAe,CAAiB,IAAjB,CADiC;EAAA,eAA3B,CAZC;;EAAA;EAYlB,cAAA,QAZkB;EAAA,gDAejB,QAAQ,CAAC,IAfQ;;EAAA;EAAA;EAAA;EAiBxB,cAAA,OAAO,CAAC,KAAR;EAjBwB,gDAkBjB,IAlBiB;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KAxLC;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,yEA8MJ,kBACvB,IADuB;EAAA;EAAA;EAAA;EAAA;EAAA;EAGjB,cAAA,GAHiB,GAGX,IAAI,GAAJ,WAAW,KAAI,CAAC,MAAL,CAAY,SAAvB,mBAHW;EAKvB,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,KAAK,EAAE,KAD0B;EAEjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MAFY;EAGjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAHe;EAIjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MAJY;EAKjC,gBAAA,QAAQ,EAAE;EALuB,eAAnC;EALuB;EAAA;EAAA,qBAcE,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,EAAiB;EAC3C,gBAAA,MAAM,EAAE,MADmC;EAE3C,gBAAA,IAAI,EAAE,IAAI,CAAC,SAAL,CAAe,IAAf,CAFqC;EAG3C,gBAAA,OAAO,EAAE;EACP,kCAAgB;EADT;EAHkC,eAAjB,CAAL,CAMpB,IANoB,CAMf,UAAC,IAAD;EAAA,uBAAU,eAAe,CAA0B,IAA1B,CAAzB;EAAA,eANe,CAdF;;EAAA;EAcf,cAAA,QAde;EAAA,gDAqBd,QAAQ,CAAC,IArBK;;EAAA;EAAA;EAAA;EAuBrB,cAAA,OAAO,CAAC,KAAR;EAvBqB,gDAwBd,IAxBc;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KA9MI;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,yEA0OK,kBAAO,OAAP;EAAA;;EAAA;EAAA;EAAA;EAAA;EAAA;EAI1B,cAAA,GAJ0B,GAIpB,IAAI,GAAJ,WAAW,KAAI,CAAC,MAAL,CAAY,OAAvB,gCAJoB;EAMhC,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADY;EAEjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFe;EAGjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MAHY;EAIjC,gBAAA,IAAI,6BAAK,OAAL,aAAK,OAAL,uBAAK,OAAO,CAAE,IAAd,yDAAsB,EAAtB,CAJ6B;EAKjC,gBAAA,aAAa,2BAAE,OAAF,aAAE,OAAF,uBAAE,OAAO,CAAE,YAAX,yEAA2B;EALP,eAAnC;EANgC;EAAA;EAAA,qBAeP,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,EAAiB;EAC3C,gBAAA,MAAM,EAAE;EADmC,eAAjB,CAAL,CAEpB,IAFoB,CAEf,UAAC,IAAD;EAAA,uBAAU,eAAe,CAAgC,IAAhC,CAAzB;EAAA,eAFe,CAfO;;EAAA;EAexB,cAAA,QAfwB;EAAA,gDAkBvB,QAAQ,CAAC,IAlBc;;EAAA;EAAA;EAAA;EAoB9B,cAAA,OAAO,CAAC,KAAR;EApB8B,gDAqBvB,IArBuB;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KA1OL;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,0EAmQF,mBACzB,aADyB,EAEzB,IAFyB;EAAA;EAAA;EAAA;EAAA;EAAA;EAInB,cAAA,GAJmB,GAIb,IAAI,GAAJ,WACP,KAAI,CAAC,MAAL,CAAY,SADL,0BAC8B,aAD9B,OAJa;EAQzB,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,KAAK,EAAE,KAD0B;EAEjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MAFY;EAGjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAHe;EAIjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MAJY;EAKjC,gBAAA,QAAQ,EAAE;EALuB,eAAnC;EARyB;EAAA;EAAA,qBAiBA,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,EAAiB;EAC3C,gBAAA,MAAM,EAAE,KADmC;EAE3C,gBAAA,IAAI,EAAE,IAAI,CAAC,SAAL,CAAe,IAAf,CAFqC;EAG3C,gBAAA,OAAO,EAAE;EACP,kCAAgB;EADT;EAHkC,eAAjB,CAAL,CAMpB,IANoB,CAMf,UAAC,IAAD;EAAA,uBAAU,eAAe,CAAU,IAAV,CAAzB;EAAA,eANe,CAjBA;;EAAA;EAiBjB,cAAA,QAjBiB;EAAA,iDAwBhB,QAAQ,CAAC,IAxBO;;EAAA;EAAA;EAAA;EA0BvB,cAAA,OAAO,CAAC,KAAR;EA1BuB,iDA2BhB,IA3BgB;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KAnQE;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,0EAkSF,mBACzB,aADyB;EAAA;EAAA;EAAA;EAAA;EAAA;EAGnB,cAAA,GAHmB,GAGb,IAAI,GAAJ,WACP,KAAI,CAAC,MAAL,CAAY,OADL,6BAC+B,aAD/B,OAHa;EAOzB,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADY;EAEjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFe;EAGjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY;EAHY,eAAnC;EAPyB;EAAA;EAAA,qBAcA,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,EAAiB;EAC3C,gBAAA,MAAM,EAAE;EADmC,eAAjB,CAAL,CAEpB,IAFoB,CAEf,UAAC,IAAD;EAAA,uBAAU,eAAe,CAAU,IAAV,CAAzB;EAAA,eAFe,CAdA;;EAAA;EAcjB,cAAA,QAdiB;EAAA,iDAiBhB,QAAQ,CAAC,IAjBO;;EAAA;EAAA;EAAA;EAmBvB,cAAA,OAAO,CAAC,KAAR;EAnBuB,iDAoBhB,IApBgB;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KAlSE;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,0EA0TF,mBACzB,aADyB,EAEzB,QAFyB;EAAA;EAAA;EAAA;EAAA;EAAA;EAInB,cAAA,GAJmB,GAIb,IAAI,GAAJ,WACP,KAAI,CAAC,MAAL,CAAY,SADL,0BAC8B,aAD9B,cAER,QAAQ,GAAG,QAAH,GAAc,SAFd,OAJa;EAUzB,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADY;EAEjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFe;EAGjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY;EAHY,eAAnC;EAVyB;EAAA;EAAA,qBAiBA,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,EAAiB;EAC3C,gBAAA,MAAM,EAAE;EADmC,eAAjB,CAAL,CAEpB,IAFoB,CAEf,UAAC,IAAD;EAAA,uBAAU,eAAe,CAAS,IAAT,CAAzB;EAAA,eAFe,CAjBA;;EAAA;EAiBjB,cAAA,QAjBiB;EAAA,iDAoBhB,QAAQ,CAAC,IApBO;;EAAA;EAAA;EAAA;EAsBvB,cAAA,OAAO,CAAC,KAAR;EAtBuB,iDAuBhB,IAvBgB;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KA1TE;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,0EAqVD,mBAC1B,aAD0B;EAAA;EAAA;EAAA;EAAA;EAAA;EAGpB,cAAA,GAHoB,GAGd,IAAI,GAAJ,WACP,KAAI,CAAC,MAAL,CAAY,SADL,0BAC8B,aAD9B,EAHc;EAO1B,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADY;EAEjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFe;EAGjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY;EAHY,eAAnC;EAP0B;EAAA;EAAA,qBAcD,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,EAAiB;EAC3C,gBAAA,MAAM,EAAE;EADmC,eAAjB,CAAL,CAEpB,IAFoB,CAEf,UAAC,IAAD;EAAA,uBAAU,eAAe,CAAsB,IAAtB,CAAzB;EAAA,eAFe,CAdC;;EAAA;EAclB,cAAA,QAdkB;EAAA,iDAiBjB,QAAQ,CAAC,IAjBQ;;EAAA;EAAA;EAAA;EAmBxB,cAAA,OAAO,CAAC,KAAR;EAnBwB,iDAoBjB,IApBiB;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KArVC;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,0EA6WJ,mBAAO,MAAP;EAAA;EAAA;EAAA;EAAA;EAAA;EAMjB,cAAA,GANiB,GAMX,IAAI,GAAJ,WACP,KAAI,CAAC,MAAL,CAAY,OADL,0CAC4C,MAAM,CAAC,eADnD,OANW;EAUvB,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B;EACE,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADvB;EAEE,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFpB;EAGE,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MAHvB;EAIE,gBAAA,SAAS,EAAE,MAAM,CAAC,QAAP,IAAmB,EAJhC;EAKE,gBAAA,gBAAgB,YAAK,MAAM,CAAC,eAAZ;EALlB,iBAMM,MAAM,CAAC,YAAP,IAAuB,EAN7B;EAVuB;EAAA;EAAA,qBAoBE,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,EAAiB;EAC3C,gBAAA,MAAM,EAAE;EADmC,eAAjB,CAAL,CAEpB,IAFoB,CAEf,UAAC,IAAD;EAAA,uBAAU,eAAe,CAAwB,IAAxB,CAAzB;EAAA,eAFe,CApBF;;EAAA;EAoBf,cAAA,QApBe;EAAA,iDAuBd,QAAQ,CAAC,IAvBK;;EAAA;EAAA;EAAA;EAyBrB,cAAA,OAAO,CAAC,KAAR;EAzBqB,iDA0Bd,IA1Bc;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KA7WI;;EAAA;EAAA;EAAA;EAAA;;EAAA;EAAA,0EA2YH,mBAAO,MAAP;EAAA;EAAA;EAAA;EAAA;EAAA;EAGlB,cAAA,GAHkB,GAGZ,IAAI,GAAJ,WAAW,KAAI,CAAC,MAAL,CAAY,OAAvB,yBAHY;EAKxB,cAAA,UAAU,CAAC,kBAAX,CAA8B,GAA9B,EAAmC;EACjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MADY;EAEjC,gBAAA,IAAI,EAAE,KAAI,CAAC,MAAL,CAAY,IAFe;EAGjC,gBAAA,OAAO,EAAE,KAAI,CAAC,MAAL,CAAY,MAHY;EAIjC,gBAAA,SAAS,EAAE,MAAM,CAAC;EAJe,eAAnC;EALwB;EAAA;EAAA,qBAaC,KAAK,CAAC,GAAG,CAAC,QAAJ,EAAD,EAAiB;EAC3C,gBAAA,MAAM,EAAE;EADmC,eAAjB,CAAL,CAEpB,IAFoB,CAEf,UAAC,IAAD;EAAA,uBAAU,eAAe,CAA+B,IAA/B,CAAzB;EAAA,eAFe,CAbD;;EAAA;EAahB,cAAA,QAbgB;EAAA,iDAgBf,QAAQ,CAAC,IAhBM;;EAAA;EAAA;EAAA;EAkBtB,cAAA,OAAO,CAAC,KAAR;EAlBsB,iDAmBf,IAnBe;;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KA3YG;;EAAA;EAAA;EAAA;EAAA;;EAC3B,OAAK,MAAL,GAAc,MAAd;EACD;;kBALG,kCAOwB,UAC1B,GAD0B,EAE1B,SAF0B;EAAA,SAI1B,MAAM,CAAC,IAAP,CAAY,SAAZ,EAAuB,GAAvB,CACE,UAAC,MAAD;EAAA,WACE,SAAS,CAAC,MAAD,CAAT,KAAsB,SAAtB,IACA,SAAS,CAAC,MAAD,CAAT,KAAsB,IADtB,IAEA,GAAG,CAAC,YAAJ,CAAiB,MAAjB,CAAwB,MAAxB,YAAmC,SAAS,CAAC,MAAD,CAA5C,EAHF;EAAA,GADF,CAJ0B;EAAA;;EC5B9B,SAAS,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE;EAC1C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACzC,IAAI,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;EAC9B,IAAI,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC;EAC3D,IAAI,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;EACnC,IAAI,IAAI,OAAO,IAAI,UAAU,EAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;EAC1D,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;EAC9D,GAAG;EACH,CAAC;AACD;EACe,SAAS,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;EAC3E,EAAE,IAAI,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;EACvE,EAAE,IAAI,WAAW,EAAE,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;EAC/D,EAAE,OAAO,WAAW,CAAC;EACrB;;MCZ8B;EAI5B;EACA,+BACY,OADZ,EAEY,OAFZ,EAEoC;EAAA;;EAAA;;EAAA;;EADxB,SAAA,OAAA,GAAA,OAAA;EACA,SAAA,OAAA,GAAA,OAAA;EACR;;;;aAEJ,sBAAU;EACR,aAAO,KAAK,OAAZ;EACD;;;;;;;;;;MCXkB;;;;;;;;;;;;;aAInB,aAAI,UAAJ,EAA+D;EAAA,wCAAjC,IAAiC;EAAjC,QAAA,IAAiC;EAAA;;EAC7D,WAAK,OAAL,CAAa,KAAb,CAAmB,IAAnB,EAAyB,IAAzB;EACD;;;;IAHO;;ECLK,SAAS,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE;EACzD,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;EAClE,IAAI,MAAM,GAAGd,eAAc,CAAC,MAAM,CAAC,CAAC;EACpC,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,MAAM;EAC/B,GAAG;AACH;EACA,EAAE,OAAO,MAAM,CAAC;EAChB;;ECPe,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;EACzD,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;EACrD,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;EACvB,GAAG,MAAM;EACT,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;EACrD,MAAM,IAAI,IAAI,GAAGwJ,cAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EACjD,MAAM,IAAI,CAAC,IAAI,EAAE,OAAO;EACxB,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjE;EACA,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;EACpB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EACvC,OAAO;AACP;EACA,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC;EACxB,KAAK,CAAC;EACN,GAAG;AACH;EACA,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC;EACpD;;;;;;MChBqB;;;;;EAMnB,6BACE,OADF,EAEE,OAFF,EAGmB;EAAA;;EAAA,QAAT,KAAS,uEAAD,CAAC;;EAAA;;EAEjB,8BAAM,OAAN,EAAe,OAAf;;EAFiB;;EAAA,wDALP,CAKO;;EAAT,UAAA,KAAA,GAAA,KAAA;;EAGR,QAAI,MAAK,KAAL,GAAa,CAAjB,EAAoB;EAClB,YAAM,IAAI,KAAJ,kCAAN;EACD;;EALgB;EAMlB;;;;aAED,aAAI,SAAJ,EAA8D;EAAA;;EAAA,wCAAjC,IAAiC;EAAjC,QAAA,IAAiC;EAAA;;EAC5D,yGAAU,SAAV,SAAwB,IAAxB,GAD4D;;;EAG5D,UAAI,EAAE,KAAK,CAAP,IAAY,KAAK,KAArB,EAA4B;EAC1B,aAAK,OAAL,CAAa,GAAb,CAAiB,SAAjB,EAA4B,KAAK,OAAjC;EACD;EACF;;;;IApBO;;MCKG,YAAb;EAAA;EAAA;;EAAA,oCAE+C,MAAM,CAAC,MAAP,CAAc,IAAd,CAF/C;EAAA;;EAAA;EAAA;EAAA,WAIE,YACE,SADF,EAEE,OAFF,EAE0B;EAExB,WAAK,gBAAL,CAAsB,SAAtB,EAAiC,IAAI,kBAAJ,CAAuB,IAAvB,EAA6B,OAA7B,CAAjC;EACD;EATH;EAAA;EAAA,WAWE,cACE,SADF,EAEE,OAFF,EAE0B;EAExB,WAAK,gBAAL,CAAsB,SAAtB,EAAiC,IAAI,iBAAJ,CAAsB,IAAtB,EAA4B,OAA5B,EAAqC,CAArC,CAAjC;EACD;EAhBH;EAAA;EAAA,WAkBE,aACE,SADF,EAEE,OAFF,EAE0B;EAExB,UAAM,MAAM,GAAG,KAAK,MAAL,CAAY,SAAZ,CAAf;;EACA,UAAI,EAAC,MAAD,aAAC,MAAD,eAAC,MAAM,CAAE,MAAT,CAAJ,EAAqB;EACnB;EACD;;EACD,WAAK,MAAL,CAAY,SAAZ,IAAyB,MAAM,CAAC,MAAP,CAAc,UAAC,CAAD;EAAA,eAAO,CAAC,CAAC,UAAF,OAAmB,OAA1B;EAAA,OAAd,CAAzB;EACD;EA3BH;EAAA;EAAA,WA6BE,kBAAM;EAAA;;EACJ,MAAA,MAAM,CAAC,IAAP,CAAY,KAAK,MAAjB,EAAyB,OAAzB,CAAiC,UAAC,SAAD,EAAc;EAC7C,YAAM,MAAM,GAAG,KAAI,CAAC,MAAL,CAAY,SAAZ,CAAf;;EACA,YAAI,MAAJ,EAAY;EACV,UAAA,MAAM,CAAC,MAAP,GAAgB,CAAhB;EACD;EACF,OALD;EAMA,WAAK,MAAL,GAAc,MAAM,CAAC,MAAP,CAAc,IAAd,CAAd;EACD;EArCH;EAAA;EAAA,WAuCE,cACE,SADF,EAEsC;EAAA,wCAAjC,IAAiC;EAAjC,QAAA,IAAiC;EAAA;;EAEpC,UAAM,MAAM,GAAG,KAAK,MAAL,CAAY,SAAZ,CAAf;;EACA,UAAI,MAAJ,EAAY;EACV,QAAA,MAAM,CAAC,OAAP,CAAe,UAAC,OAAD;EAAA,iBAAa,OAAO,CAAC,GAAR,OAAA,OAAO,GAAK,SAAL,SAAmB,IAAnB,EAApB;EAAA,SAAf;EACD;EACF;EA/CH;EAAA;EAAA,WAiDU,0BACN,SADM,EAEN,MAFM,EAEgC;EAEtC,UAAM,MAAM,GAAG,KAAK,MAAL,CAAY,SAAZ,CAAf;;EACA,UAAI,KAAK,CAAC,OAAN,CAAc,MAAd,CAAJ,EAA2B;EACzB,QAAA,MAAM,CAAC,IAAP,CAAY,MAAZ;EACD,OAFD,MAEO;EACL,aAAK,MAAL,CAAY,SAAZ,IAAyB,CAAC,MAAD,CAAzB;EACD;EACF;EA3DH;;EAAA;EAAA;;ACNA,mBAAeC,CAAa,CAIlB,IAJkB,CAA5B;;EC+DA,IAAY,uBAAZ;;EAAA,CAAA,UAAY,uBAAZ,EAAmC;EACjC,EAAA,uBAAA,CAAA,OAAA,CAAA,GAAA,OAAA;EACA,EAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAA;EACA,EAAA,uBAAA,CAAA,UAAA,CAAA,GAAA,UAAA;EACA,EAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAA;EACD,CALD,EAAY,uBAAuB,KAAvB,uBAAuB,GAAA,EAAA,CAAnC;;EAOA,IAAY,0BAAZ;;EAAA,CAAA,UAAY,0BAAZ,EAAsC;EACpC,EAAA,0BAAA,CAAA,MAAA,CAAA,GAAA,MAAA;EACA,EAAA,0BAAA,CAAA,MAAA,CAAA,GAAA,MAAA;EACD,CAHD,EAAY,0BAA0B,KAA1B,0BAA0B,GAAA,EAAA,CAAtC;;EClDO,SAAShD,CAAT,CAAgBvH,CAAhB,EAAqBwK,CAArB,EAAqBA;EAAAA,OACtBC,IAAIlF,CADkBiF,IACbA,CADaA;EACNxK,IAAAA,CAAAA,CAAIuF,CAAJvF,CAAAA,GAASwK,CAAAA,CAAMjF,CAANiF,CAATxK;EADMwK;;EACSjF,SAC7BvF,CAD6BuF;EAC7BvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECzBD,IAAM,YAAY,GAAU;EACjC,EAAA,SAAS,EAAE;EACT,IAAA,KAAK,EAAE,EADE;EAET,IAAA,WAAW,EAAE;EACX,MAAA,IAAI,EAAE;EADK,KAFJ;EAKT,IAAA,SAAS,EAAE,CALF;EAMT,IAAA,cAAc,EAAE,IANP;EAOT,IAAA,cAAc,EAAE,KAPP;EAQT,IAAA,iBAAiB,EAAE;EARV,GADsB;EAWjC,EAAA,WAAW,EAAE;EACX,IAAA,YAAY,EAAE,IADH;EAEX,IAAA,mBAAmB,EAAE,KAFV;EAGX,IAAA,UAAU,EAAE,IAHD;EAIX,IAAA,sBAAsB,EAAE,IAJb;EAKX,IAAA,aAAa,EAAE,KALJ;EAMX,IAAA,WAAW,EAAE,IANF;EAOX,IAAA,IAAI,EAAE,EAPK;EAQX,IAAA,WAAW,EAAE,EARF;EASX,IAAA,gBAAgB,EAAE,KATP;EAUX,IAAA,WAAW,EAAE;EAVF,GAXoB;EAuBjC,EAAA,WAAW,EAAE,EAvBoB;EAwBjC,EAAA,eAAe,EAAE,EAxBgB;EAyBjC,EAAA,kBAAkB,EAAE,EAzBa;EA0BjC,EAAA,uBAAuB,EAAE,EA1BQ;EA2BjC,EAAA,gBAAgB,EAAE,EA3Be;EA4BjC,EAAA,YAAY,EAAE,EA5BmB;EA6BjC,EAAA,SAAS,EAAE,EA7BsB;EA8BjC,EAAA,cAAc,EAAE,KA9BiB;EA+BjC,EAAA,eAAe,EAAE,KA/BgB;EAgCjC,EAAA,oBAAoB,EAAE,KAhCW;EAiCjC,EAAA,iBAAiB,EAAE,KAjCc;EAkCjC,EAAA,mBAAmB,EAAE,IAlCY;EAmCjC,EAAA,WAAW,EAAE;EAnCoB,CAA5B;;ECFQ,SAAS,eAAe,CAAC,GAAG,EAAE;EAC7C,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC;EACrC;;ECFe,SAAS,qBAAqB,CAAC,GAAG,EAAE,CAAC,EAAE;EACtD,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AAC3G;EACA,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,OAAO;EACzB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;EAChB,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;EAChB,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;AACjB;EACA,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACb;EACA,EAAE,IAAI;EACN,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;EACtE,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1B;EACA,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM;EACxC,KAAK;EACL,GAAG,CAAC,OAAO,GAAG,EAAE;EAChB,IAAI,EAAE,GAAG,IAAI,CAAC;EACd,IAAI,EAAE,GAAG,GAAG,CAAC;EACb,GAAG,SAAS;EACZ,IAAI,IAAI;EACR,MAAM,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;EACtD,KAAK,SAAS;EACd,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;EACvB,KAAK;EACL,GAAG;AACH;EACA,EAAE,OAAO,IAAI,CAAC;EACd;;EC5Be,SAAS,gBAAgB,GAAG;EAC3C,EAAE,MAAM,IAAI,SAAS,CAAC,2IAA2I,CAAC,CAAC;EACnK;;ECEe,SAAS,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE;EAC/C,EAAE,OAAO0K,eAAc,CAAC,GAAG,CAAC,IAAIC,qBAAoB,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI1M,6BAA0B,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI2M,gBAAe,EAAE,CAAC;EACxH;;ECNO,IAAM,UAAU,GAAG,SAAb,UAAa,CAAC,UAAD,EAAuB;EAC/C,MAAI;EACF,WAAO,IAAI,CAAC,KAAL,CAAW,UAAX,CAAP;EACD,GAFD,CAEE,OAAO,CAAP,EAAU;EACV,WAAO,IAAP;EACD;EACF,CANM;;ECEA,IAAM,oBAAoB,GAAG,SAAvB,oBAAuB,CAClC,MADkC,EAElC,eAFkC,EAOlC,eAPkC,EAQhC;EACF,MAAI,KAAK,GAAG,KAAZ,CADE;;EAGF,OAAK,IAAI,KAAK,GAAG,CAAjB,EAAoB,KAAK,GAAG,eAAe,CAAC,MAA5C,EAAoD,KAAK,IAAI,CAA7D,EAAgE;EAC9D,gCAAiC,eAAe,CAAC,KAAD,CAAhD;EAAA,QAAQ,aAAR,yBAAQ,aAAR;EAAA,QAAuB,KAAvB,yBAAuB,KAAvB;EACA,QAAM,WAAW,GACf,eAAe,CAAC,MAAD,CAAf,IAA2B,eAAe,CAAC,MAAD,CAAf,CAAwB,aAAxB,CAD7B;;EAEA,QAAI,WAAW,IAAI,WAAW,CAAC,KAAZ,KAAsB,KAAzC,EAAgD;EAC9C,MAAA,KAAK,GAAG,IAAR;EACA;EACD;EACF;;EACD,SAAO,KAAP;EACD,CArBM;;;;;ECcA,IAAM,eAAe,GAAG,SAAlB,eAAkB,CAAC,aAAD;EAAA,SAAkC;EAC/D,IAAA,aAD+D,yBACjD,KADiD,EACnC,aADmC,EACN;EACvD,iDACK,KADL,GAEK,aAFL;EAID,KAN8D;EAO/D,IAAA,WAP+D,uBAOnD,KAPmD,EAOrC,cAPqC,EAOP;EACtD,iDACK,KADL;EAEE,QAAA,YAAY,EAAE,cAAc,CAAC,YAAf,CAA4B,GAA5B,CAAgC,UAAC,EAAD;EAAA,qDACzC,EADyC;EAE5C,YAAA,OAAO,EAAE;EAFmC;EAAA,SAAhC,CAFhB;EAME,QAAA,SAAS,EAAE,cAAc,CAAC,SAN5B;EAOE,QAAA,oBAAoB,EAAE,KAPxB;EAQE,QAAA,iBAAiB,EAAE;EARrB;EAUD,KAlB8D;EAoB/D,IAAA,QApB+D,oBAoBtD,KApBsD,EAoBxC,aApBwC,EAoBX;EAClD,UAAM,WAAW,GAAoB,EAArC;EACA,UAAI,SAAS,GAAG,CAAC,CAAjB;EAEA,MAAA,aAAa,CAAC,OAAd,CAAsB,UAAC,OAAD,EAAY;EAChC,YAAI,CAAC,OAAO,CAAC,kBAAb,EAAiC;EAC/B,UAAA,SAAS,IAAI,CAAb,CAD+B;;EAG/B,UAAA,WAAW,CAAC,IAAZ,CAAiB;EACf,YAAA,MAAM,EAAE,OAAO,CAAC,EADD;EAEf,YAAA,KAAK,oBAAa,OAAO,CAAC,QAAR,CAAiB,GAAjB,CAAqB,IAAlC,CAFU;EAGf,YAAA,OAAO,EAAE,OAAO,CAAC,QAAR,CAAiB,GAAjB,CAAqB,QAHf;EAIf,YAAA,WAAW,EAAE,KAJE;EAKf,YAAA,eAAe,EAAE,KALF;EAMf,YAAA,IAAI,EAAE,MANS;EAOf,YAAA,cAAc,EAAE,CAAC,OAAO,CAAC,EAAT,CAPD;EAQf,YAAA,aAAa,sBACV,OAAO,CAAC,EADE,EACG,EADH,CARE;EAWf,YAAA,OAAO,EAAE,KAXM;EAYf,YAAA,SAAS,EAAT;EAZe,WAAjB;EAcD;;EAID,YAAI,OAAO,CAAC,UAAZ,EAAwB;EACtB;EACA,cAAI,OAAO,CAAC,eAAR,CAAwB,MAAxB,GAAiC,CAArC,EAAwC;EACtC;EACA,gBAAM,wBAAwB,GAC5B,OAAO,CAAC,eAAR,CAAwB,MAAxB,CAA+B,UAAC,EAAD;EAAA,qBAAQ,EAAE,CAAC,UAAX;EAAA,aAA/B,EAAsD,MAAtD,GAA+D,CADjE,CAFsC;;EAMtC,gBAAM,cAAc,GAAG,OAAO,CAAC,eAAR,CACpB,MADoB,CACb,UAAC,EAAD;EAAA,qBAAQ,EAAE,CAAC,WAAH,IAAkB,EAAE,CAAC,UAA7B;EAAA,aADa,EAEpB,GAFoB,CAEhB,UAAC,KAAD;EAAA,qBAAW,KAAK,CAAC,EAAjB;EAAA,aAFgB,CAAvB,CANsC;;EAWtC,gBAAM,aAAa,GAAG,OAAO,CAAC,eAAR,CACnB,MADmB,CACZ,UAAC,EAAD;EAAA,qBAAQ,EAAE,CAAC,WAAH,IAAkB,CAAC,EAAE,CAAC,aAA9B;EAAA,aADY,EAEnB,MAFmB,CAEZ,UAAC,IAAD,EAAO,KAAP;EAAA,yDAAuB,IAAvB,2BAA8B,KAAK,CAAC,EAApC,EAAyC,EAAzC;EAAA,aAFY,EAEoC,EAFpC,CAAtB;EAIA,gBAAM,OAAO,GAAG,EAAE,MAAM,CAAC,IAAP,CAAY,aAAZ,EAA2B,MAA3B,GAAoC,CAAtC,CAAhB;;EAEA,gBAAI,wBAAJ,EAA8B;EAC5B,cAAA,SAAS,IAAI,CAAb;EACA,cAAA,WAAW,CAAC,IAAZ,CAAiB;EACf,gBAAA,MAAM,EAAE,OAAO,CAAC,EADD;EAEf,gBAAA,KAAK,EAAE,OAAO,CAAC,KAFA;EAGf,gBAAA,OAAO,EAAE,OAAO,CAAC,QAAR,CAAiB,GAAjB,CAAqB,QAHf;EAIf,gBAAA,WAAW,EAAE,KAJE;EAKf,gBAAA,eAAe,EAAE,KALF;EAMf,gBAAA,IAAI,EAAE,eANS;EAOf,gBAAA,cAAc,EAAd,cAPe;EAQf,gBAAA,aAAa,EAAb,aARe;EASf,gBAAA,OAAO,EAAP,OATe;EAUf,gBAAA,SAAS,EAAT;EAVe,eAAjB;EAYD;EACF;EACF;EACF,OA1DD;EA4DA,iDACK,KADL;EAEE,QAAA,SAAS,EAAE;EACT,UAAA,KAAK,EAAE,WADE;EAET,UAAA,cAAc,EAAE,IAFP;EAGT,UAAA,WAAW,EAAE,WAAW,CAAC,CAAD,CAHf;EAIT,UAAA,SAAS,EAAE,CAJF;EAKT,UAAA,cAAc,EAAE,KALP;EAMT,UAAA,iBAAiB,EAAE;EANV;EAFb;EAWD,KA/F8D;EAiG/D,IAAA,0BAjG+D,sCAkG7D,KAlG6D,EAmG7D,IAnG6D,EAwG5D;EAED,UAAQ,aAAR,GAAkD,IAAlD,CAAQ,aAAR;EAAA,UAAuB,SAAvB,GAAkD,IAAlD,CAAuB,SAAvB;EAAA,UAAkC,EAAlC,GAAkD,IAAlD,CAAkC,EAAlC;EAAA,UAAsC,OAAtC,GAAkD,IAAlD,CAAsC,OAAtC;EACA,UAAM,KAAK,GAAG,KAAK,CAAC,YAAN,CAAmB,SAAnB,CAA6B,UAAC,EAAD;EAAA,eAAQ,EAAE,CAAC,EAAH,KAAU,aAAlB;EAAA,OAA7B,CAAd;;EACA,UAAI,EAAE,KAAK,QAAX,EAAqB;EACnB,mDACK,KADL;EAEE,UAAA,YAAY,EAAE,KAAK,CAAC,YAAN,CAAmB,MAAnB,CACZ,UAAC,EAAD;EAAA,mBAAQ,EAAE,CAAC,EAAH,KAAU,aAAlB;EAAA,WADY;EAFhB;EAMD;;EACD,UAAI,EAAE,KAAK,MAAP,IAAiB,KAAK,GAAG,CAAC,CAA9B,EAAiC;EAC/B,YAAM,GAAG,uCACJ,KAAK,CAAC,YAAN,CAAmB,KAAnB,CADI;EAEP,UAAA,OAAO,EAAE;EAFF,UAAT;;EAIA,YAAI,OAAO,KAAK,IAAZ,IAAoB,OAAO,KAAK,SAApC,EAA+C;EAC7C,UAAA,GAAG,CAAC,MAAJ,GAAa,OAAO,GAAG,QAAH,GAAc,UAAlC;EACD;;EACD,mDACK,KADL;EAEE,UAAA,YAAY,+BACP,KAAK,CAAC,YAAN,CAAmB,KAAnB,CAAyB,CAAzB,EAA4B,KAA5B,CADO,IAEV,GAFU,sBAGP,KAAK,CAAC,YAAN,CAAmB,KAAnB,CAAyB,KAAK,GAAG,CAAjC,CAHO;EAFd;EAQD;;EACD,iCACK,KADL;EAGD,KAxI8D;EA0I/D,IAAA,uBA1I+D,mCA0IvC,KA1IuC,EA0I3B;EAClC,UAAQ,SAAR,GAAsB,KAAtB,CAAQ,SAAR;EACA,aAAO;EACL,QAAA,SAAS,sCACJ,SADI;EAEP,UAAA,cAAc,EAAE;EAFT;EADJ,OAAP;EAMD,KAlJ8D;EAoJ/D,IAAA,uBApJ+D,mCAoJvC,KApJuC,EAoJ3B;EAClC,UAAQ,SAAR,GAAsB,KAAtB,CAAQ,SAAR;EACA,aAAO;EACL,QAAA,SAAS,sCACJ,SADI;EAEP,UAAA,cAAc,EAAE;EAFT;EADJ,OAAP;EAMD,KA5J8D;EA8J/D,IAAA,YA9J+D,wBA8JlD,KA9JkD,EA8JtC;EACvB,UAAQ,SAAR,GAAsB,KAAtB,CAAQ,SAAR;;EACA,UAAI,SAAJ,EAAe;EACb,YAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,SAAX,CAAN,GAA8B,CAA/C;EACA,YAAM,IAAI,GAAG,SAAS,CAAC,KAAV,CAAgB,MAAM,CAAC,SAAS,CAAC,SAAX,CAAN,GAA8B,CAA9C,CAAb;;EACA,YAAM,WAAW,uCACZ,SAAS,CAAC,KAAV,CAAgB,KAAK,CAAC,SAAN,CAAgB,SAAhC,CADY;EAEf,UAAA,WAAW,EAAE;EAFE,UAAjB;;EAIA,YAAI,CAAC,IAAL,EAAW;EACT;EACA,iBAAO;EACL,YAAA,SAAS,sCACJ,SADI;EAEP,cAAA,KAAK,+BACA,SAAS,CAAC,KAAV,CAAgB,KAAhB,CAAsB,CAAtB,EAAyB,SAAS,CAAC,SAAnC,CADA,IAEH,WAFG,sBAGA,SAAS,CAAC,KAAV,CAAgB,KAAhB,CAAsB,SAAS,CAAC,SAAV,GAAsB,CAA5C,CAHA,EAFE;EAOP,cAAA,WAAW,EAAE;EACX,gBAAA,IAAI,EAAE;EADK,eAPN;EAUP,cAAA,SAAS,EAAE,QAVJ;EAWP,cAAA,iBAAiB,EAAE,IAXZ;EAYP,cAAA,cAAc,EAAE;EAZT;EADJ,WAAP;EAgBD;;EAED,eAAO;EACL,UAAA,SAAS,sCACJ,SADI;EAEP,YAAA,KAAK,+BACA,SAAS,CAAC,KAAV,CAAgB,KAAhB,CAAsB,CAAtB,EAAyB,SAAS,CAAC,SAAnC,CADA,IAEH,WAFG,sBAGA,SAAS,CAAC,KAAV,CAAgB,KAAhB,CAAsB,SAAS,CAAC,SAAV,GAAsB,CAA5C,CAHA,EAFE;EAOP,YAAA,WAAW,sBACN,IADM,CAPJ;EAUP,YAAA,SAAS,EAAE,QAVJ;EAWP,YAAA,cAAc,EAAE;EAXT;EADJ,SAAP;EAeD;;EACD,aAAO,KAAP;EACD,KA5M8D;EA8M/D,IAAA,gBA9M+D,4BA8M9C,KA9M8C,EA8MlC;EAC3B,UAAI,KAAK,CAAC,SAAV,EAAqB;EACnB,YAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,SAAN,CAAgB,SAAjB,CAAN,GAAoC,CAArD;EACA,YAAM,IAAI,GAAG,KAAK,CAAC,SAAN,CAAgB,KAAhB,CAAsB,MAAM,CAAC,KAAK,CAAC,SAAN,CAAgB,SAAjB,CAAN,GAAoC,CAA1D,CAAb;EAEA,eAAO;EACL,UAAA,SAAS,sCACJ,KAAK,CAAC,SADF;EAEP,YAAA,WAAW,EAAE,IAFN;EAGP,YAAA,SAAS,EAAE,QAHJ;EAIP,YAAA,cAAc,EAAE,CAAC,IAAI,CAAC;EAJf;EADJ,SAAP;EAQD;;EACD,aAAO,KAAP;EACD,KA7N8D;EA+N/D,IAAA,iBAAiB,EAAE,2BACjB,KADiB,EAEjB,eAFiB,EAGC;EAClB,UAAQ,SAAR,GAAsB,KAAtB,CAAQ,SAAR;EACA,UAAQ,MAAR,GAAyB,eAAzB,CAAQ,MAAR;EAAA,UAAgB,IAAhB,GAAyB,eAAzB,CAAgB,IAAhB;;EAEA,UAAI,MAAM,IAAI,IAAI,KAAK,cAAvB,EAAuC;EACrC;EACA,YAAM,qBAAqB,GAAG,SAAS,CAAC,KAAV,CAAgB,SAAhB,CAC5B,UAAC,EAAD;EAAA,iBAAQ,EAAE,CAAC,MAAH,KAAc,MAAd,IAAwB,EAAE,CAAC,IAAH,KAAY,IAA5C;EAAA,SAD4B,CAA9B;EAGA,YAAI,qBAAqB,GAAG,CAAC,CAA7B,EACE,OAAO;EACL,UAAA,SAAS,sCACJ,KAAK,CAAC,SADF;EAEP,YAAA,WAAW,EAAE,SAAS,CAAC,KAAV,CAAgB,qBAAhB,CAFN;EAGP,YAAA,SAAS,EAAE,qBAHJ;EAIP,YAAA,iBAAiB,EAAE;EAJZ;EADJ,SAAP;EAQH;;EAED,UAAI,CAAC,MAAD,IAAW,IAAI,KAAK,cAAxB,EAAwC;EACtC,eAAO;EACL,UAAA,SAAS,sCACJ,SADI;EAEP,YAAA,WAAW,EAAE;EACX,cAAA,IAAI,EAAE;EADK,aAFN;EAKP,YAAA,SAAS,EAAE,SAAS,CAAC,KAAV,CAAgB,MALpB;EAMP,YAAA,iBAAiB,EAAE;EANZ;EADJ,SAAP;EAUD;;EACD,aAAO,KAAP;EACD,KAnQ8D;EAqQ/D,IAAA,QAAQ,EAAE,kBAAC,KAAD,EAAe,SAAf,EAAoD;EAC5D,UAAQ,SAAR,GAAsB,KAAtB,CAAQ,SAAR;EACA,UAAmB,YAAnB,GAAoC,SAApC,CAAQ,SAAR;;EACA,UAAI,SAAJ,EAAe;EAAA;;EACb,YAAM,WAAW,GAAG,SAAS,CAAC,KAAV,CAAgB,YAAhB,CAApB;EACA,YAAM,gBAAgB,GAAG,SAAS,CAAC,KAAV,CAAgB,SAAhB,CAAzB;;EAEA,YAAI,KAAK,CAAC,WAAN,CAAkB,aAAtB,EAAqC;EACnC;EACA,cAAI,SAAS,KAAK,SAAS,CAAC,KAAV,CAAgB,MAAlC,EAA0C;EACxC,mBAAO;EACL,cAAA,SAAS,sCACJ,SADI;EAEP,gBAAA,WAAW,EAAE;EACX,kBAAA,IAAI,EAAE;EADK,iBAFN;EAKP,gBAAA,SAAS,EAAE,SAAS,CAAC,KAAV,CAAgB,MALpB;EAMP,gBAAA,iBAAiB,EAAE;EANZ;EADJ,aAAP;EAUD;;EACD,iBAAO;EACL,YAAA,SAAS,sCACJ,KAAK,CAAC,SADF;EAEP,cAAA,WAAW,sBACN,gBADM,CAFJ;EAKP,cAAA,SAAS,EAAT,SALO;EAMP,cAAA,iBAAiB,EAAE;EANZ;EADJ,WAAP;EAUD,SA5BY;;;EA+Bb,YACE,SAAS,CAAC,iBAAV,IACA,SAAS,KAAK,SAAS,CAAC,KAAV,CAAgB,MAD9B,IAEA,0BAAA,SAAS,CAAC,WAAV,gFAAuB,IAAvB,MAAgC,cAFhC,8BAGA,SAAS,CAAC,WAHV,mDAGA,uBAAuB,OAJzB,EAKE;EACA,iBAAO;EACL,YAAA,SAAS,sCACJ,SADI;EAEP,cAAA,WAAW,EAAE;EACX,gBAAA,IAAI,EAAE;EADK,eAFN;EAKP,cAAA,SAAS,EAAE,SAAS,CAAC,KAAV,CAAgB,MALpB;EAMP,cAAA,iBAAiB,EAAE;EANZ;EADJ,WAAP;EAUD,SA/CY;;;EAkDb,YACE,WAAW,IACX,WAAW,CAAC,OADZ,IAEA,YAAY,KAAK,SAAS,CAAC,KAAV,CAAgB,MAAhB,GAAyB,CAF1C,IAGA,SAAS,KAAK,SAAS,CAAC,KAAV,CAAgB,MAJhC,EAKE;EACA,cAAM,WAAW,uCACZ,SAAS,CAAC,KAAV,CAAgB,YAAhB,CADY;EAEf,YAAA,WAAW,EAAE;EAFE,YAAjB;;EAIA,iBAAO;EACL,YAAA,SAAS,sCACJ,SADI;EAEP,cAAA,KAAK,+BACA,SAAS,CAAC,KAAV,CAAgB,KAAhB,CAAsB,CAAtB,EAAyB,YAAzB,CADA,IAEH,WAFG,sBAGA,SAAS,CAAC,KAAV,CAAgB,KAAhB,CAAsB,YAAY,GAAG,CAArC,CAHA,EAFE;EAOP,cAAA,WAAW,EAAE;EACX,gBAAA,IAAI,EAAE;EADK,eAPN;EAUP,cAAA,SAAS,EAAT,SAVO;EAWP,cAAA,iBAAiB,EAAE;EAXZ;EADJ,WAAP;EAeD,SA3EY;;;EA8Eb,YACG,gBAAgB,IAAI,gBAAgB,CAAC,WAAtC,IACC,2BAAA,SAAS,CAAC,WAAV,kFAAuB,IAAvB,MAAgC,cAAhC,8BACC,SAAS,CAAC,WADX,mDACC,uBAAuB,WADxB,IAEC,gBAAgB,CAAC,IAAjB,KAA0B,cAJ9B,EAKE;EACA,iBAAO;EACL,YAAA,SAAS,sCACJ,KAAK,CAAC,SADF;EAEP,cAAA,WAAW,sBACN,gBADM,CAFJ;EAKP,cAAA,SAAS,EAAT,SALO;EAMP,cAAA,cAAc,EAAE,CAAC,gBAAgB,CAAC;EAN3B;EADJ,WAAP;EAUD;;EACD;EAEE,mCAAA,SAAS,CAAC,WAAV,kFAAuB,IAAvB,MAAgC,cAAhC,8BACA,SAAS,CAAC,WADV,mDACA,uBAAuB,OADvB,IAEA,SAAS,KAAK,YAAY,GAAG,CAJ/B,EAKE;EACA,cAAM,YAAW,uCACZ,SAAS,CAAC,KAAV,CAAgB,YAAhB,CADY;EAEf,YAAA,WAAW,EAAE;EAFE,YAAjB;;EAIA,iBAAO;EACL,YAAA,SAAS,sCACJ,KAAK,CAAC,SADF;EAEP,cAAA,KAAK,+BACA,SAAS,CAAC,KAAV,CAAgB,KAAhB,CAAsB,CAAtB,EAAyB,YAAzB,CADA,IAEH,YAFG,sBAGA,SAAS,CAAC,KAAV,CAAgB,KAAhB,CAAsB,YAAY,GAAG,CAArC,CAHA,EAFE;EAOP,cAAA,WAAW,sBACN,gBADM,CAPJ;EAUP,cAAA,SAAS,EAAT;EAVO;EADJ,WAAP;EAcD;EACF;;EACD,aAAO,KAAP;EACD,KAlY8D;EAoY/D,IAAA,kBApY+D,8BAoY5C,KApY4C,EAoY9B,MApY8B,EAoYhB;EAC7C,UAAQ,eAAR,GAAqD,KAArD,CAAQ,eAAR;EAAA,UAAyB,uBAAzB,GAAqD,KAArD,CAAyB,uBAAzB;EACA,UAAM,OAAO,GAAG,eAAe,CAAC,MAAD,CAA/B;EAEA,UAAM,UAAU,GAAG,MAAM,CAAC,IAAP,CAAY,OAAZ,EAAqB,GAArB,CAAyB,UAAC,OAAD,EAAY;EACtD,YAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,OAAD,CAAP,CAAnB;EACA,eAAO,GAAP;EACD,OAHkB,CAAnB;EAKA,UAAM,aAAa,GAAG,UAAU,CAAC,MAAX,CAAkB,UAAC,EAAD,EAAO;EAC7C;EACA,YAAM,eAAe,GAAG,uBAAuB,CAAC,MAAD,CAAvB,CAAgC,EAAE,CAAC,WAAnC,CAAxB;;EACA,YAAI,eAAJ,EAAqB;EACnB,iBAAO,oBAAoB,CAAC,MAAD,EAAS,eAAT,EAA0B,eAA1B,CAA3B;EACD;;EACD,eAAO,IAAP;EACD,OAPqB,CAAtB;EASA,UAAM,OAAO,GAAG,aAAa,CAAC,MAAd,CACd,UAAC,EAAD;EAAA,eACG,EAAE,CAAC,UAAH,IAAiB,CAAC,EAAE,CAAC,KAArB,IAA8B,CAAC,EAAE,CAAC,WAAnC,IAAmD,CAAC,EAAE,CAAC,eADzD;EAAA,OADc,CAAhB;EAKA,UAAM,OAAO,GAAG,EAAE,OAAO,CAAC,MAAR,GAAiB,CAAnB,CAAhB;EACA,aAAO;EACL,QAAA,SAAS,sCACJ,KAAK,CAAC,SADF;EAEP,UAAA,WAAW,sCACN,KAAK,CAAC,SAAN,CAAgB,WADV;EAET,YAAA,OAAO,EAAP;EAFS;EAFJ;EADJ,OAAP;EASD,KAra8D;EAua/D,IAAA,YAva+D,0BAuanD;EACV,aAAO,aAAa,CAAC,QAAd,GAAyB,SAAhC;EACD,KAza8D;EA2a/D,IAAA,cA3a+D,0BA4a7D,KA5a6D,EA6a7D,WA7a6D,EAib3D;EAEF,aAAO;EACL,QAAA,WAAW,sCACN,KAAK,CAAC,WADA,GAEN,WAFM;EADN,OAAP;EAMD,KAzb8D;EA2b/D,IAAA,cA3b+D,0BA4b7D,KA5b6D,EA6b7D,KA7b6D,EA8b7D,aA9b6D,EA8bvC;EAEtB,UAAM,mBAAmB,GAAG,KAAK,CAAC,mBAAN,IAA6B,aAAzD;EAEA,UAAM,sBAAsB,GAAG,KAAK,CAAC,CAAD,CAApC;EACA,UAAI,sBAAsB,GAAG,IAA7B;EACA,UAAI,oBAAoB,GAEpB,EAFJ;;EAGA,UACE,sBAAsB,IACtB,sBAAsB,CAAC,QADvB,KAEC,sBAAsB,CAAC,QAAvB,CAAgC,IAAhC,KAAyC,SAAzC,IACC,sBAAsB,CAAC,QAAvB,CAAgC,IAAhC,KAAyC,OAD1C,IAEC,sBAAsB,CAAC,QAAvB,CAAgC,IAAhC,KAAyC,SAJ3C,CADF,EAME;EACA,QAAA,sBAAsB,GAAG,sBAAzB;EACD;;EAED,UAAI,2BAA2B,GAE3B,EAFJ;EAIA,UAAI,sBAAsB,GAAG,EAA7B;EAEA,MAAA,oBAAoB,GAAG,KAAK,CACzB,GADoB,CAChB,UAAC,IAAD;EAAA,eACH,IAAI,CAAC,eAAL,CAAqB,MAArB,CAA4B,UAAC,IAAD,EAAO,IAAP,EAAe;EAAA;;EACzC,cAAI,yBAAA,IAAI,CAAC,cAAL,8EAAqB,IAArB,MAA8B,YAAlC,EAAgD;EAC9C,uDACK,IADL,4CAEa,IAAI,CAAC,YAFlB,uDAGO,IAHP;EAII,cAAA,MAAM,EAAE,IAAI,CAAC;EAJjB;EAOD;;EACD,iBAAO,IAAP;EACD,SAXD,EAWG,EAXH,CADG;EAAA,OADgB,EAepB,MAfoB,CAeb,UAAC,EAAD;EAAA,eAAQ,MAAM,CAAC,IAAP,CAAY,EAAZ,EAAgB,MAAhB,GAAyB,CAAjC;EAAA,OAfa,EAgBpB,MAhBoB,CAgBb,UAAC,IAAD,EAAO,IAAP;EAAA,mDAAsB,IAAtB,GAA+B,IAA/B;EAAA,OAhBa,EAgB2B,EAhB3B,CAAvB;EAkBA,UAAM,WAAW,GAAQ,KAAK,CAAC,MAAN,CAAa,UAAC,IAAD,EAAO,IAAP,EAAe;EAAA;;EACnD,YAAI,cAAc,GAAG,IAArB;EACA,YAAI,oBAAoB,GAAG,KAA3B;;EACA,YAAI,IAAI,CAAC,kBAAL,IAA2B,KAAK,CAAC,WAAN,CAAkB,aAAjD,EAAgE;EAAA;;EAC9D,UAAA,oBAAoB,GAAG,IAAvB;EACA,UAAA,cAAc,sDAAG,IAAI,CAAC,kBAAL,CAAwB,cAAxB,CAAuC,CAAvC,CAAH,2DAAG,uBAA2C,EAA9C,yEAAoD,IAAlE;EACD,SAHD,MAGO,IAAI,KAAK,CAAC,WAAN,CAAkB,IAAI,CAAC,EAAvB,CAAJ,EAAgC;EACrC,UAAA,cAAc,GAAG,KAAK,CAAC,WAAN,CAAkB,IAAI,CAAC,EAAvB,EAA2B,cAA5C;EACD,SAFM,MAEA,IAAI,mBAAmB,IAAI,IAAI,CAAC,kBAAhC,EAAoD;EACzD,UAAA,oBAAoB,GAAG,IAAvB;EACA,UAAA,cAAc,GAAG,IAAI,CAAC,kBAAtB,CAFyD;EAG1D;;EACD,mDACK,IADL,2BAEG,IAAI,CAAC,EAFR,EAEa;EACT,UAAA,IAAI,EAAJ,IADS;EAET,UAAA,iBAAiB,EAAE,IAAI,CAAC,aAFf;EAGT,UAAA,cAAc,sDACZ,IAAI,CAAC,kBAAL,CAAwB,cADZ,2DACZ,uBAAwC,GAAxC,CAA4C,UAAC,EAAD;EAAA,mBAAS;EACnD,cAAA,eAAe,EAAE,EAAE,CAAC,EAD+B;EAEnD,cAAA,YAAY,EAAE,EAAE,CAAC,aAFkC;EAGnD,cAAA,QAAQ,EAAE,EAAE,CAAC,kBAHsC;EAInD,cAAA,WAAW,EAAE,EAAE,CAAC,YAJmC;EAKnD,cAAA,SAAS,EAAE,KALwC;EAMnD,cAAA,WAAW,EAAE,KANsC;EAOnD,cAAA,UAAU,EAAE;EAPuC,aAAT;EAAA,WAA5C,CADY,2EASL,EAZA;EAaT,UAAA,cAAc,EAAE,oBAbP;EAcT,UAAA,cAAc,EAAd,cAdS;EAeT,UAAA,aAAa,EAAE,EAfN;EAgBT,UAAA,OAAO,EAAE,CAAC,CAAC,mBAhBF;EAiBT,UAAA,WAAW,EAAE,CAAC,CAAC;EAjBN,SAFb;EAsBD,OAlCwB,EAkCtB,EAlCsB,CAAzB;EAoCA,UAAM,eAAe,GAAG,KAAK,CAAC,SAAN,CAAgB,KAAhB,CAAsB,GAAtB,CAA0B,UAAC,EAAD;EAAA,mDAC7C,EAD6C;EAEhD,UAAA,aAAa,EAAE,EAFiC;EAGhD,UAAA,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAJ,CAAX,CAAuB,cAHc;EAIhD,UAAA,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAJ,CAAX,CAAuB;EAJU;EAAA,OAA1B,CAAxB;EAOA,UAAM,eAAe,GAAwB,KAAK,CAAC,MAAN,CAC3C,UAAC,IAAD,EAAO,IAAP;EAAA,mDACK,IADL,2BAEG,IAAI,CAAC,EAFR,sCAGO,KAAK,CAAC,eAAN,CAAsB,IAAI,CAAC,EAA3B,CAHP,GAIO,IAAI,CAAC,eAAL,CAAqB,MAArB,CAA4B,UAAC,GAAD,EAAM,IAAN,EAAc;EAAA;;EAC3C,cAAI,KAAK,GAAG,IAAZ;EACA,cAAI,WAAW,GAAG,IAAlB;EACA,cAAM,UAAU,GAAG,CAAC,CAAC,mBAArB;EACA,cAAM,cAAc,GAClB,yBAAA,IAAI,CAAC,cAAL,8EAAqB,IAArB,MAA8B,eADhC;EAEA,cAAM,cAAc,GAAG,0BAAA,IAAI,CAAC,cAAL,gFAAqB,IAArB,MAA8B,SAArD;EACA,cAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,UAA7B;EACA,cAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,UAA9B;EACA,cAAM,QAAQ,GACX,IAAI,CAAC,aAAL,IACC,IAAI,CAAC,aAAL,CAAmB,MAAnB,GAA4B,CAD7B,IAEC,IAAI,CAAC,aAAL,CAAmB,CAAnB,CAFF,IAGA,IAJF;;EAMA,cAAI,UAAU,IAAI,CAAC,cAAf,IAAiC,QAArC,EAA+C;EAC7C;EACA,gBAAI,cAAJ,EAAoB;EAClB;EACA,cAAA,WAAW,GAAG,IAAI,CAAC,KAAL,WAAc,QAAQ,CAAC,KAAT,IAAkB,IAAhC,EAAd;EACD,aAHD,MAGO;EACL,cAAA,KAAK,GAAG,QAAQ,CAAC,KAAjB;EACD;EACF,WARD,MAQO,IAAI,CAAC,aAAD,IAAkB,CAAC,cAAvB,EAAuC;EAC5C,YAAA,KAAK,GAAG,IAAI,CAAC,aAAb;EACD,WAFM,MAEA,IAAI,cAAc,IAAI,QAAlB,IAA8B,QAAQ,CAAC,KAA3C,EAAkD;EACvD;EACA;EACA,gBAAM,WAAW,GAGb,IAAI,CAAC,KAAL,WAAc,QAAQ,CAAC,KAAvB,EAHJ;EAKA,YAAA,sBAAsB,aAAM,IAAI,CAAC,EAAX,CAAtB;EAEA,YAAA,2BAA2B,GAAG,MAAM,CAAC,WAAP,CAC5B,MAAM,CAAC,OAAP,CAAe,WAAf,EAA4B,MAA5B,CACE;EAAA;EAAA,kBAAE,GAAF;;EAAA,qBAAW,OAAO,WAAW,CAAC,GAAD,CAAlB,KAA4B,QAAvC;EAAA,aADF,CAD4B,CAA9B;EAMA,gBAAM,OAAO,GAAG,MAAM,CAAC,WAAP,CACd,MAAM,CAAC,OAAP,CAAe,WAAf,EAA4B,MAA5B,CACE;EAAA;EAAA,kBAAE,GAAF;;EAAA,qBAAW,OAAO,WAAW,CAAC,GAAD,CAAlB,KAA4B,QAAvC;EAAA,aADF,CADc,CAAhB;EAMA,YAAA,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAP,CAAY,OAAZ,EAAqB,CAArB,CAAD,CAArB;EACD,WAvBM,MAuBA;EACL,YAAA,KAAK,GAAG,EAAR;EACD;;EAED,qDACK,GADL,2BAEG,IAAI,CAAC,EAFR,EAEa;EACT,YAAA,OAAO,EAAE,IAAI,CAAC,EADL;EAET,YAAA,KAAK,EAAL,KAFS;EAGT,YAAA,WAAW,EAAX,WAHS;EAIT,YAAA,WAAW,2BAAE,IAAI,CAAC,cAAP,0DAAE,sBAAqB,YAJzB;EAKT,YAAA,UAAU,EAAE,IAAI,CAAC,WALR;EAMT,YAAA,SAAS,EAAE,IAAI,CAAC,UANP;EAOT,YAAA,SAAS,EACP,0BAAA,IAAI,CAAC,cAAL,gFAAqB,IAArB,MAA8B,SAA9B,IACA,0BAAA,IAAI,CAAC,cAAL,gFAAqB,IAArB,MAA8B,eATvB;EAUT,YAAA,kBAAkB,EAChB,IAAI,CAAC,aAAL,IAAsB,IAAI,CAAC,aAAL,CAAmB,MAAnB,GAA4B,CAAlD,GACI,IAAI,CAAC,aAAL,CAAmB,CAAnB,EAAsB,EAD1B,GAEI,IAbG;EAcT,YAAA,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,gBAdhB;EAeT,YAAA,KAAK,2BAAE,IAAI,CAAC,cAAP,0DAAE,sBAAqB,KAfnB;EAgBT,YAAA,iBAAiB,2BAAE,IAAI,CAAC,cAAP,0DAAE,sBAAqB,mBAhB/B;EAiBT,YAAA,eAAe,EAAE,IAjBR;;EAAA,WAFb;EAsBD,SA1EE,EA0EA,EA1EA,CAJP;EAAA,OAD2C,EAkF3C,EAlF2C,CAA7C,CAtFsB;;EA4KtB,UACE,MAAM,CAAC,IAAP,CAAY,2BAAZ,EAAyC,MAAzC,GAAkD,CAAlD,IACA,sBAFF,EAGE;EACA,QAAA,MAAM,CAAC,IAAP,CAAY,eAAZ,EAA6B,OAA7B,CAAqC,UAAC,MAAD,EAAW;EAC9C,cAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,MAAD,CAAP,CAA/B;EACA,UAAA,MAAM,CAAC,IAAP,CAAY,OAAZ,EAAqB,OAArB,CAA6B,UAAC,OAAD,EAAY;EACvC,gBAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,OAAD,CAAP,CAArB;;EACA,gBAAI,2BAA2B,CAAC,KAAK,CAAC,WAAP,CAA/B,EAAoD;EAClD,cAAA,KAAK,CAAC,KAAN,GAAc,2BAA2B,CAAC,KAAK,CAAC,WAAP,CAAzC;EACD;EACF,WALD;EAMD,SARD;EASD;;EAED,aAAO;EACL,QAAA,SAAS,EAAE,mBAAmB,uCAErB,KAAK,CAAC,SAFe;EAGxB,UAAA,KAAK,EAAE,eAHiB;EAIxB,UAAA,WAAW,EAAE,eAAe,CAAC,CAAD,CAJJ;EAKxB,UAAA,cAAc,EAAE,CAAC,mBALO;EAMxB,UAAA,iBAAiB,EAAE,CAAC,CAAC;EANG,aAQ1B,KAAK,CAAC,SATL;EAUL,QAAA,WAAW,sCACN,KAAK,CAAC,WADA,GAEN,WAFM,CAVN;EAcL,QAAA,eAAe,sCACV,KAAK,CAAC,eADI,GAEV,eAFU,CAdV;EAkBL,QAAA,gBAAgB,EAAE,oBAlBb;EAmBL,QAAA,WAAW,sCACN,KAAK,CAAC,WADA;EAET,UAAA,sBAAsB,EAAtB;EAFS;EAnBN,OAAP;EAwBD,KAjpB8D;EAmpB/D,IAAA,qBAnpB+D,iCAopB7D,KAppB6D,EAqpB7D,IArpB6D,EA0pB5D;EAED,iDACK,KADL;EAEE,QAAA,kBAAkB,EAAE,IAAI,CAAC;EAF3B;EAID,KAhqB8D;EAkqB/D,IAAA,mBAlqB+D,+BAmqB7D,KAnqB6D,EAoqB7D,IApqB6D,EAwqB5D;EAED,iDACK,KADL;EAEE,QAAA,gBAAgB,EAAE,MAAM,CAAC,IAAP,CAAY,IAAI,CAAC,gBAAjB,EAAmC,MAAnC,CAChB,UAAC,IAAD,EAAO,IAAP;EAAA,qDACK,IADL,sCAEO,IAFP,QAEiB,IAAI,CAAC,gBAAL,CAAsB,IAAtB,CAFjB;EAAA,SADgB,EAKhB,EALgB;EAFpB;EAUD,KAprB8D;EAsrB/D,IAAA,qBAtrB+D,iCAsrBzC,KAtrByC,EAsrB3B,KAtrB2B,EAsrBN;EACvD,UAAM,kBAAkB,GAAG,KAAK,CAAC,MAAN,CACzB,UAAC,IAAD,EAAO,IAAP;EAAA,mDACK,IADL,2BAEG,IAAI,CAAC,EAFR,sCAGO,KAAK,CAAC,kBAAN,CAAyB,IAAI,CAAC,EAA9B,CAHP,GAIO,IAAI,CAAC,eAAL,CAAqB,MAArB,CAA4B,UAAC,GAAD,EAAM,IAAN,EAAc;EAAA;;EAC3C,cAAI,IAAI,CAAC,cAAT,EACE,2CACK,GADL,oDAEG,IAAI,CAAC,cAFR,0DAEG,sBAAqB,YAFxB,EAEuC;EACnC,YAAA,OAAO,EAAE,IAAI,CAAC,EADqB;EAEnC,YAAA,WAAW,EAAE,yBAAA,IAAI,CAAC,cAAL,wEAAqB,YAArB,GACT,IAAI,CAAC,KAAL,oDAAW,IAAI,CAAC,cAAhB,2DAAW,uBAAqB,YAAhC,yEAAgD,IAAhD,CADS,GAET,IAJ+B;EAKnC,YAAA,YAAY,EAAE,0BAAA,IAAI,CAAC,cAAL,0EAAqB,aAArB,GACV,IAAI,CAAC,KAAL,qDAAW,IAAI,CAAC,cAAhB,2DAAW,uBAAqB,aAAhC,2EAAiD,IAAjD,CADU,GAEV;EAP+B,WAFvC;EAYF,iBAAO,GAAP;EACD,SAfE,EAeA,EAfA,CAJP;EAAA,OADyB,EAuBzB,EAvByB,CAA3B;EA0BA,aAAO;EACL,QAAA,kBAAkB,sCACb,KAAK,CAAC,kBADO,GAEb,kBAFa;EADb,OAAP;EAMD,KAvtB8D;EAytB/D,IAAA,0BAztB+D,sCA0tB7D,KA1tB6D,EA2tB7D,KA3tB6D,EA2tBxC;EAErB,UAAM,uBAAuB,GAAG,KAAK,CAAC,MAAN,CAC9B,UAAC,IAAD,EAAO,IAAP;EAAA,mDACK,IADL,2BAEG,IAAI,CAAC,EAFR,sCAGO,KAAK,CAAC,uBAAN,CAA8B,IAAI,CAAC,EAAnC,CAHP,GAIO,IAAI,CAAC,eAAL,CAAqB,MAArB,CAA4B,UAAC,GAAD,EAA6B,IAA7B,EAAqC;EAClE,cACE,IAAI,CAAC,cAAL,IACA,CAAC,CAAC,IAAI,CAAC,cAAL,CAAoB,kBAFxB,EAGE;EAAA;;EACA,gBAAM,iBAAiB,6BAAG,IAAI,CAAC,cAAR,2DAAG,uBAAqB,YAA/C;EACA,gBAAM,aAAa,GAAG,IAAI,CAAC,EAA3B;EACA,gBAAM,UAAU,GAAI,UAAU,CAC5B,IAD4B,aAC5B,IAD4B,iDAC5B,IAAI,CAAE,cADsB,2DAC5B,uBAAsB,kBADM,CAAV,IAEf,EAFL;EAGA,uDACK,GADL,GAEK,UAAU,CAAC,MAAX,CAAkB,UAAC,YAAD,EAAe,YAAf,EAA+B;EAClD,kBAAQ,KAAR,GAAkB,YAAlB,CAAQ,KAAR;EACA,kBAAM,WAAW,GAAI,UAAU,CAAC,YAAY,CAAC,WAAd,CAAV,IACnB,EADF;EAEA,yDACK,YADL,GAEK,WAAW,CAAC,MAAZ,CACD,UAAC,QAAD,EAAW,SAAX;EAAA,2DACK,QADL,2BAEG,SAFH,+BAGQ,GAAG,CAAC,SAAD,CAAH,IAAkB,EAH1B,IAII;EAAE,kBAAA,KAAK,EAAL,KAAF;EAAS,kBAAA,iBAAiB,EAAjB,iBAAT;EAA4B,kBAAA,aAAa,EAAb;EAA5B,iBAJJ;EAAA,eADC,EAQD,EARC,CAFL;EAaD,aAjBE,EAiBA,EAjBA,CAFL;EAqBD;;EACD,iBAAO,GAAP;EACD,SAjCE,EAiCA,EAjCA,CAJP;EAAA,OAD8B,EAyC9B,EAzC8B,CAAhC;EA4CA,aAAO;EACL,QAAA,uBAAuB,sCAClB,KAAK,CAAC,uBADY,GAElB,uBAFkB;EADlB,OAAP;EAMD,KA/wB8D;EAixB/D,IAAA,gBAjxB+D,4BAkxB7D,KAlxB6D,EAmxB7D,MAnxB6D,EAsxB5D;EAED,UAAQ,MAAR,GAA6B,MAA7B,CAAQ,MAAR;EAAA,UAAgB,QAAhB,GAA6B,MAA7B,CAAgB,QAAhB;EACA,aAAO;EACL,QAAA,WAAW,sCACN,KAAK,CAAC,WADA,2BAER,MAFQ,sCAGJ,KAAK,CAAC,WAAN,CAAkB,MAAlB,CAHI;EAIP,UAAA,cAAc,+BACT,KAAK,CAAC,WAAN,CAAkB,MAAlB,EAA0B,cADjB,IAEZ,QAFY;EAJP;EADN,OAAP;EAYD,KAryB8D;EAuyB/D,IAAA,mBAvyB+D,+BAwyB7D,KAxyB6D,EAyyB7D,MAzyB6D,EA4yB5D;EAED,UAAQ,MAAR,GAA2B,MAA3B,CAAQ,MAAR;EAAA,UAAgB,MAAhB,GAA2B,MAA3B,CAAgB,MAAhB;EAEA,UAAM,UAAU,GAAG,KAAK,CAAC,WAAN,CAAkB,MAAlB,EAA0B,cAA1B,CAAyC,MAAzC,CACjB,UAAC,EAAD;EAAA,eAAQ,EAAE,CAAC,eAAH,KAAuB,MAA/B;EAAA,OADiB,CAAnB;EAIA,UAAM,IAAI,GAAG,KAAK,CAAC,SAAN,CAAgB,WAA7B;EACA,aAAO;EACL,QAAA,SAAS,sCACJ,KAAK,CAAC,SADF;EAEP,UAAA,WAAW,sCACN,IADM;EAET,YAAA,OAAO,EAAE,UAAU,CAAC,MAAX,GAAoB,CAApB,GAAwB,IAAI,CAAC,OAA7B,GAAuC,KAFvC;EAGT,YAAA,WAAW,EAAE,UAAU,CAAC,MAAX,GAAoB,CAApB,GAAwB,IAAI,CAAC,WAA7B,GAA2C;EAH/C;EAFJ,UADJ;EASL,QAAA,WAAW,sCACN,KAAK,CAAC,WADA,2BAER,MAFQ,sCAGJ,KAAK,CAAC,WAAN,CAAkB,MAAlB,CAHI;EAIP,UAAA,cAAc,EAAE;EAJT;EATN,OAAP;EAiBD,KAt0B8D;EAw0B/D,IAAA,6BAx0B+D,yCAy0B7D,KAz0B6D,EA00B7D,MA10B6D,EA80B5D;EAED,UAAQ,MAAR,GAAwC,MAAxC,CAAQ,MAAR;EAAA,UAAgB,MAAhB,GAAwC,MAAxC,CAAgB,MAAhB;EAAA,UAAwB,WAAxB,GAAwC,MAAxC,CAAwB,WAAxB;EACA,UAAM,YAAY,GAAG,KAAK,CAAC,WAAN,CAAkB,MAAlB,EAA0B,cAA1B,CAAyC,SAAzC,CACnB,UAAC,EAAD;EAAA,eAAQ,EAAE,CAAC,eAAH,KAAuB,MAA/B;EAAA,OADmB,CAArB;EAGA,aAAO;EACL,QAAA,WAAW,sCACN,KAAK,CAAC,WADA,2BAER,MAFQ,sCAGJ,KAAK,CAAC,WAAN,CAAkB,MAAlB,CAHI;EAIP,UAAA,cAAc,+BACT,KAAK,CAAC,WAAN,CAAkB,MAAlB,EAA0B,cAA1B,CAAyC,KAAzC,CAA+C,CAA/C,EAAkD,YAAlD,CADS,wCAGP,KAAK,CAAC,WAAN,CAAkB,MAAlB,EAA0B,cAA1B,CAAyC,YAAzC,CAHO;EAIV,YAAA,WAAW,EAAX;EAJU,kCAMT,KAAK,CAAC,WAAN,CAAkB,MAAlB,EAA0B,cAA1B,CAAyC,KAAzC,CAA+C,YAAY,GAAG,CAA9D,CANS;EAJP;EADN,OAAP;EAgBD,KAp2B8D;EAs2B/D,IAAA,6BAt2B+D,yCAu2B7D,KAv2B6D,EAw2B7D,MAx2B6D,EA62B5D;EAED,UAAQ,MAAR,GAA8C,MAA9C,CAAQ,MAAR;EAAA,UAAgB,MAAhB,GAA8C,MAA9C,CAAgB,MAAhB;EAAA,UAAwB,UAAxB,GAA8C,MAA9C,CAAwB,UAAxB;EAAA,UAAoC,KAApC,GAA8C,MAA9C,CAAoC,KAApC;EACA,UAAM,YAAY,GAAG,KAAK,CAAC,WAAN,CAAkB,MAAlB,EAA0B,cAA1B,CAAyC,SAAzC,CACnB,UAAC,EAAD;EAAA,eAAQ,EAAE,CAAC,eAAH,KAAuB,MAA/B;EAAA,OADmB,CAArB;EAGA,aAAO;EACL,QAAA,WAAW,sCACN,KAAK,CAAC,WADA,2BAER,MAFQ,sCAGJ,KAAK,CAAC,WAAN,CAAkB,MAAlB,CAHI;EAIP,UAAA,cAAc,+BACT,KAAK,CAAC,WAAN,CAAkB,MAAlB,EAA0B,cAA1B,CAAyC,KAAzC,CAA+C,CAA/C,EAAkD,YAAlD,CADS,wCAGP,KAAK,CAAC,WAAN,CAAkB,MAAlB,EAA0B,cAA1B,CAAyC,YAAzC,CAHO;EAIV,YAAA,UAAU,EAAV,UAJU;EAKV,YAAA,KAAK,EAAL;EALU,kCAOT,KAAK,CAAC,WAAN,CAAkB,MAAlB,EAA0B,cAA1B,CAAyC,KAAzC,CAA+C,YAAY,GAAG,CAA9D,CAPS;EAJP;EADN,OAAP;EAiBD,KAp4B8D;EAs4B/D,IAAA,aAt4B+D,yBAu4B7D,KAv4B6D,EAw4B7D,MAx4B6D,EAw4BnB;EAE1C,UAAQ,MAAR,GAA2B,MAA3B,CAAQ,MAAR;EAAA,UAAgB,MAAhB,GAA2B,MAA3B,CAAgB,MAAhB;EACA,aAAO;EACL,QAAA,WAAW,sCACN,KAAK,CAAC,WADA,2BAER,MAFQ,sCAGJ,KAAK,CAAC,WAAN,CAAkB,MAAlB,CAHI;EAIP,UAAA,cAAc,EAAE;EAJT;EADN,OAAP;EASD,KAp5B8D;EAs5B/D,IAAA,oBAt5B+D,gCAu5B7D,KAv5B6D,EAw5B7D,MAx5B6D,EAy5B7D,cAz5B6D,EA05B7D,UA15B6D,EA25B7D,aA35B6D,EA45B7D,QA55B6D,EA45B5C;EAAA;;EAEjB,UAAM,IAAI,GAAG,KAAK,CAAC,SAAN,CAAgB,KAAhB,CAAsB,KAAK,CAAC,SAAN,CAAgB,SAAtC,CAAb;EACA,UAAM,eAAe,GAAG,KAAK,CAAC,WAAN,CAAkB,MAAlB,CAAxB;EACA,UAAM,eAAe,GAAG,aAAa,CAAC,QAAd,GAAyB,SAAjD;;EACA,UACE,IAAI,CAAC,IAAL,KAAc,cAAd,IACA,0BAAA,eAAe,CAAC,WAAhB,gFAA6B,IAA7B,MAAsC,cADtC,IAEA,2BAAA,eAAe,CAAC,WAAhB,kFAA6B,MAA7B,MAAwC,MAH1C,EAIE;EACA,YAAQ,aAAR,GAA0B,IAA1B,CAAQ,aAAR;EACA,YAAI,UAAJ,EAAgB,OAAO,aAAa,CAAC,MAAD,CAApB;;EAChB,YAAM,WAAW,uCACZ,KAAK,CAAC,SAAN,CAAgB,KAAhB,CAAsB,KAAK,CAAC,SAAN,CAAgB,SAAtC,CADY;EAEf,UAAA,aAAa,EAAb,aAFe;EAGf,UAAA,OAAO,EAAE,MAAM,CAAC,IAAP,CAAY,aAAZ,EAA2B,MAA3B,GAAoC,CAH9B;EAIf,UAAA,WAAW,EAAE,eAAe,CAAC,cAAhB,KAAmC,IAAnC,IAA2C;EAJzC,UAAjB;;EAMA,YAAM,YAAY,GAAG,KAAK,CAAC,WAAN,CAAkB,MAAlB,EAA0B,cAA1B,CAAyC,SAAzC,CACnB,UAAC,EAAD;EAAA,iBAAQ,EAAE,CAAC,eAAH,KAAuB,cAA/B;EAAA,SADmB,CAArB,CATA;;EAcA,YAAI,eAAe,GAAG,EAAtB;EAEA,QAAA,MAAM,CAAC,IAAP,CAAY,KAAK,CAAC,WAAlB,EAA+B,OAA/B,CAAuC,UAAC,MAAD,EAAW;EAChD,cAAM,WAAW,GAAG,KAAK,CAAC,WAAN,CAAkB,MAAlB,CAApB;EACA,cAAM,QAAQ,GAAG,KAAK,CAAC,WAAN,CAAkB,MAAlB,CAAjB;EACA,UAAA,eAAe,uCACV,eADU,2BAEZ,MAFY,sCAGR,WAHQ;EAIX,YAAA,cAAc,EACX,UAAU,IAAI,MAAM,KAAK,MAAM,CAAC,MAAD,CAAhC,IACA,WAAW,CAAC,IAAZ,CAAiB,kBAAjB,CAAoC,EAApC,KACE,QAAQ,CAAC,IAAT,CAAc,kBAAd,CAAiC,EAFnC;EAAA,cAGI,cAHJ,GAII,WAAW,CAAC,cATP;EAUX,YAAA,cAAc,EACZ,MAAM,CAAC,MAAD,CAAN,KAAmB,MAAnB,gCAES,WAAW,CAAC,cAAZ,CAA2B,KAA3B,CAAiC,CAAjC,EAAoC,YAApC,CAFT,wCAIW,WAAW,CAAC,cAAZ,CAA2B,YAA3B,CAJX;EAKQ,cAAA,UAAU,EAAV,UALR;EAMQ,cAAA,WAAW,EAAE,KANrB;EAOQ,cAAA,cAAc,EAAE,IAPxB;EAQQ,cAAA,KAAK,EAAE;EARf,oCAUS,WAAW,CAAC,cAAZ,CAA2B,KAA3B,CAAiC,YAAY,GAAG,CAAhD,CAVT,KAYI,WAAW,CAAC;EAvBP,cAAf;EA0BD,SA7BD;EA+BA,eAAO;EACL,UAAA,SAAS,sCACJ,KAAK,CAAC,SADF;EAEP,YAAA,KAAK,+BACA,KAAK,CAAC,SAAN,CAAgB,KAAhB,CAAsB,KAAtB,CAA4B,CAA5B,EAA+B,KAAK,CAAC,SAAN,CAAgB,SAA/C,CADA,IAEH,WAFG,sBAGA,KAAK,CAAC,SAAN,CAAgB,KAAhB,CAAsB,KAAtB,CAA4B,KAAK,CAAC,SAAN,CAAgB,SAAhB,GAA4B,CAAxD,CAHA,EAFE;EAOP,YAAA,WAAW,EAAE,WAPN;EAQP,YAAA,cAAc,EAAE,CAAC,UAAD,IAAe,CAAC,eAAe,CAAC;EARzC,YADJ;EAWL,UAAA,WAAW,EAAE,eAXR;EAYL;EACA,UAAA,eAAe,EAAE,QAAQ,GACrB,KAAK,CAAC,eADe,uCAGhB,KAAK,CAAC,eAHU,2BAIlB,MAJkB,sCAKd,KAAK,CAAC,eAAN,CAAsB,MAAtB,CALc,GAMd,aAAa,CAAC,MAAd,CACD,UAAC,GAAD,EAAM,IAAN;EAAA,uDACK,GADL,2BAEG,IAFH,sCAGO,KAAK,CAAC,eAAN,CAAsB,MAAtB,EAA8B,IAA9B,CAHP;EAII,cAAA,KAAK,EAAE;EAJX;EAAA,WADC,EAQD,EARC,CANc;EAbpB,SAAP;EAgCD;;EACD,aAAO,KAAP;EACD,KAt/B8D;EAw/B/D,IAAA,sBAx/B+D,kCAw/BxC,KAx/BwC,EAw/B1B,MAx/B0B,EAw/BZ;EAAA;;EACjD,UAAM,IAAI,GAAG,KAAK,CAAC,WAAN,CAAkB,MAAlB,CAAb;EACA,UAAM,cAAc,4BAAG,IAAI,CAAC,IAAL,CAAU,eAAV,CAA0B,MAA1B,CACrB,UAAC,EAAD;EAAA;;EAAA,eAAQ,uBAAA,EAAE,CAAC,cAAH,0EAAmB,IAAnB,MAA4B,SAApC;EAAA,OADqB,EAErB,CAFqB,CAAH,0DAAG,sBAEjB,EAFN;;EAIA,UAAI,cAAJ,EAAoB;EAClB,YAAM,QAAQ,GAAG,KAAK,CAAC,eAAN,CAAsB,MAAtB,EAA8B,cAA9B,CAAjB;EACA,YAAI,QAAJ,EAAc,QAAQ,CAAC,WAAT,GAAuB,EAAvB;EACd,eAAO;EACL,UAAA,eAAe,sCACV,KAAK,CAAC,eADI,2BAEZ,MAFY,sCAGR,KAAK,CAAC,eAAN,CAAsB,MAAtB,CAHQ,2BAIV,cAJU,EAIO,QAJP;EADV,SAAP;EASD;;EACD,aAAO,KAAP;EACD,KA5gC8D;EA8gC/D,IAAA,gBA9gC+D,4BA+gC7D,KA/gC6D,EAghC7D,IAhhC6D,EAshC5D;EAED,UAAQ,MAAR,GAA2D,IAA3D,CAAQ,MAAR;EAAA,UAAgB,OAAhB,GAA2D,IAA3D,CAAgB,OAAhB;EAAA,UAAyB,KAAzB,GAA2D,IAA3D,CAAyB,KAAzB;EAAA,kCAA2D,IAA3D,CAAgC,eAAhC;EAAA,UAAgC,eAAhC,sCAAkD,IAAlD;EACA,UAAM,IAAI,GAAG,KAAK,CAAC,SAAN,CAAgB,KAAhB,CAAsB,KAAK,CAAC,SAAN,CAAgB,SAAtC,CAAb;;EACA,UAAI,IAAI,CAAC,IAAL,KAAc,cAAlB,EAAkC;EAChC;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA,eAAO;EACL,UAAA,SAAS,sCACJ,KAAK,CAAC,SADF;EAEP;EACA;EACA;EACA;EACA;EACA;EACA,YAAA,iBAAiB,EAAE;EARZ,YADJ;EAWL,UAAA,eAAe,sCACV,KAAK,CAAC,eADI,2BAEZ,MAFY,sCAGR,KAAK,CAAC,eAAN,CAAsB,MAAtB,CAHQ,2BAIV,OAJU,sCAKN,KAAK,CAAC,eAAN,CAAsB,MAAtB,EAA8B,OAA9B,CALM;EAMT,YAAA,KAAK,EAAL,KANS;EAOT,YAAA,eAAe,EAAf;EAPS;EAXV,SAAP;EAuBD;;EACD,aAAO,KAAP;EACD,KAnkC8D;EAqkC/D,IAAA,kBArkC+D,8BAskC7D,KAtkC6D,EAukC7D,IAvkC6D,EA4kC5D;EAAA;;EAED,UAAM,GAAG,4BAAG,KAAK,CAAC,eAAN,CAAsB,IAAI,CAAC,MAA3B,EAAmC,IAAI,CAAC,OAAxC,CAAH,0DAAG,sBAAkD,WAA9D;EACA,UAAI,MAAJ;;EACA,UAAI,IAAI,CAAC,KAAT,EAAgB;EAAA;;EACd,QAAA,MAAM,2FACA,KAAK,CAAC,eAAN,CAAsB,IAAI,CAAC,MAA3B,EAAmC,IAAI,CAAC,OAAxC,CADA,2DACA,uBAAkD,WADlD,2EAEF,EAFE,uBAGE,IAAI,CAAC,EAHP,EAGY,IAAI,CAAC,KAHjB,EAAN;EAKD,OAND,MAMO,IAAI,GAAJ,EAAS;EACd,eAAO,GAAG,CAAC,IAAI,CAAC,EAAN,CAAV;EACA,QAAA,MAAM,GAAG,GAAT;EACA,YAAI,MAAM,CAAC,IAAP,CAAY,MAAZ,EAAoB,MAApB,KAA+B,CAAnC,EAAsC,MAAM,GAAG,IAAT;EACvC;;EACD,UAAI,MAAJ,EACE,OAAO;EACL,QAAA,eAAe,sCACV,KAAK,CAAC,eADI,2BAEZ,IAAI,CAAC,MAFO,sCAGR,KAAK,CAAC,eAAN,CAAsB,IAAI,CAAC,MAA3B,CAHQ,2BAIV,IAAI,CAAC,OAJK,sCAKN,KAAK,CAAC,eAAN,CAAsB,IAAI,CAAC,MAA3B,EAAmC,IAAI,CAAC,OAAxC,CALM;EAMT,UAAA,WAAW,EAAE;EANJ;EADV,OAAP;EAYF,aAAO,KAAP;EACD,KAzmC8D;EA0mC/D,IAAA,mBA1mC+D,+BA0mC3C,KA1mC2C,EA0mC/B;EAC9B,iDACK,KADL;EAEE,QAAA,WAAW,EAAE,YAAY,CAAC,WAF5B;EAGE,QAAA,eAAe,EAAE,YAAY,CAAC,eAHhC;EAIE,QAAA,SAAS,EAAE,YAAY,CAAC,SAJ1B;EAKE,QAAA,cAAc,EAAE,YAAY,CAAC,cAL/B;EAME,QAAA,eAAe,EAAE,YAAY,CAAC,eANhC;EAOE,QAAA,kBAAkB,EAAE,YAAY,CAAC,kBAPnC;EAQE,QAAA,mBAAmB,EAAE,YAAY,CAAC,mBARpC;EASE,QAAA,WAAW,sCACN,KAAK,CAAC,WADA;EAET,UAAA,WAAW,EAAE,YAAY,CAAC,WAAb,CAAyB,WAF7B;EAGT,UAAA,UAAU,EAAE,YAAY,CAAC,WAAb,CAAyB;EAH5B;EATb;EAeD,KA1nC8D;EA2nC/D,IAAA,KA3nC+D,mBA2nC1D;EACH,aAAO,YAAP;EACD;EA7nC8D,GAAlC;EAAA,CAAxB;;ECRP,IAAM,cAAc,GAAG,SAAjB,cAAiB,GAAmB;EACxC,MAAM,kBAAkB,GAAG,SAArB,kBAAqB;EAAA,WAAM,WAAW,CAAQ,YAAR,CAAjB;EAAA,GAA3B;;EACA,MAAM,KAAK,GAAG,kBAAkB,EAAhC,CAFwC;;EAIxC,SAAO,KAAP;EACD,CALD;;ACRA,mBAAe;EAAA,SAAM,CAAC,QAAQ,MAAR,yCAAQ,MAAR,UAAuB,QAAvB,yCAAuB,QAAvB,GAAiC,QAAjC,CAA0C,WAA1C,CAAP;EAAA,CAAf;;ECEA;;;EAGG;;EACI,IAAM,WAAW,GAAG,SAAd,WAAc,CAAC,KAAD,EAAkB;EAC3C,MAAI,CAAC,SAAL,EAAgB,OAAO,IAAP;EAChB,MAAM,MAAM,GAAG,IAAI,eAAJ,CAAoB,MAAM,CAAC,QAAP,CAAgB,MAApC,CAAf;EACA,SAAO,MAAM,CAAC,GAAP,CAAW,KAAX,CAAP;EACD,CAJM;;ECHP,IAAIC,CAAJ;EAAA,IAGIC,CAHJ;EAAA,IAcIC,CAdJ;EAAA,IAMIC,CAAAA,GAAoB,EANxB;EAAA,IAQIC,CAAAA,GAAkB/C,GAAAA,CAAQgD,GAR9B;EAAA,IASIC,CAAAA,GAAejD,GAAAA,CAAQkD,MAT3B;EAAA,IAUIC,CAAAA,GAAYnD,GAAAA,CAAQoD,GAVxB;EAAA,IAWIC,CAAAA,GAAmBrD,GAAAA,CAAQsD,OAX/B;;EAuEA,SAASC,CAAT,CAAsBC,CAAtB,EAAsBA;EACjBxD,EAAAA,GAAAA,CAAQyD,GAARzD,IAAeA,GAAAA,CAAQyD,GAARzD,CAAc4C,CAAd5C,CAAfA;EAA6B4C,MAM3Bc,CAAAA,GACLd,CAAAA,CAAiBe,GAAjBf,KACCA,CAAAA,CAAiBe,GAAjBf,GAA2B;EAAEgB,IAAAA,CAAAA,EAAO,EAAT;EAAaC,IAAAA,CAAAA,EAAiB;EAA9B,GAD5BjB,CAPgCA;EAQ0B,SAEvDY,CAAAA,IAASE,CAAAA,CAAME,CAANF,CAAY1G,MAArBwG,IACHE,CAAAA,CAAME,CAANF,CAAYlH,IAAZkH,CAAiB,EAAjBA,CADGF,EAGGE,CAAAA,CAAME,CAANF,CAAYF,CAAZE,CALoD;EAWrD;;EAAA,SAASI,CAAT,CAAkBC,CAAlB,EAAkBA;EAAAA,SACjBC,CAAAA,CAAWC,CAAXD,EAA2BD,CAA3BC,CADiBD;EAUzB;;EAAA,SAAgBC,CAAhB,CAA2BE,CAA3B,EAAoCH,CAApC,EAAkDI,CAAlD,EAAkDA;EAAAA,MAE3CC,CAAAA,GAAYb,CAAAA,CAAaZ,CAAAA,EAAbY,CAF+BY;EAElBxB,SAC1ByB,CAAAA,CAAUC,GAAVD,KACJA,CAAAA,CAAUC,GAAVD,GAAuBxB,CAAvBwB,EAEAA,CAAAA,CAAUE,CAAVF,GAAmB,CACjBD,CAAAA,GAAiDA,CAAAA,CAAKJ,CAALI,CAAjDA,GAAOF,CAAAA,CAAAA,KAAe3N,CAAf2N,EAA0BF,CAA1BE,CADU,EAGlB,UAAA,CAAA,EAAA;EAAA,QACOM,CAAAA,GAAYL,CAAAA,CAAQE,CAAAA,CAAUE,CAAVF,CAAiB,CAAjBA,CAARF,EAA6BM,CAA7BN,CADnB;EAEKE,IAAAA,CAAAA,CAAUE,CAAVF,CAAiB,CAAjBA,MAAwBG,CAAxBH,KACHA,CAAAA,CAAUE,CAAVF,CAAiB,CAAjBA,IAAsBG,CAAtBH,EACAA,CAAAA,CAAUC,GAAVD,CAAqBK,QAArBL,CAA8B,EAA9BA,CAFGA;EAE2B,GAPd,CAHfA,GAgBEA,CAAAA,CAAUE,CAjBc3B;EAwBzB;;EAAA,SAAS+B,CAAT,CAAmBC,CAAnB,EAA6BC,CAA7B,EAA6BA;EAAAA,MAE7B3J,CAAAA,GAAQsI,CAAAA,CAAaZ,CAAAA,EAAbY,CAFqBqB;EAG/BC,EAAAA,CAAAA,CAAY5J,CAAAA,CAAM6J,CAAlBD,EAAyBD,CAAzBC,CAAAA,KACH5J,CAAAA,CAAMqJ,CAANrJ,GAAe0J,CAAf1J,EACAA,CAAAA,CAAM6J,CAAN7J,GAAc2J,CADd3J,EAGA2H,CAAAA,CAAiBe,GAAjBf,CAAyBiB,CAAzBjB,CAAyCpG,IAAzCoG,CAA8C3H,CAA9C2H,CAJGiC;EAYE;;EAWA,SAASE,CAAT,CAAgBC,CAAhB,EAAgBA;EAAAA,SACfC,CAAAA,CAAQ,YAAA;EAAA,WAAO;EAAEC,MAAAA,OAAAA,EAASF;EAAX,KAAP;EAAkBA,GAA1BC,EAA2C,EAA3CA,CADeD;EASvB;;EAcO,SAASC,CAAT,CAAiBE,CAAjB,EAA0BP,CAA1B,EAA0BA;EAAAA,MAE1B3J,CAAAA,GAAQsI,CAAAA,CAAaZ,CAAAA,EAAbY,CAFkBqB;EAELjC,SACvBkC,CAAAA,CAAY5J,CAAAA,CAAM6J,CAAlBD,EAAyBD,CAAzBC,CAAAA,IACH5J,CAAAA,CAAM6J,CAAN7J,GAAc2J,CAAd3J,EACAA,CAAAA,CAAMmK,CAANnK,GAAiBkK,CADjBlK,EAEQA,CAAAA,CAAMqJ,CAANrJ,GAAekK,CAAAA,EAHpBN,IAMG5J,CAAAA,CAAMqJ,CAPc3B;EAcrB;;EAAA,SAAS0C,CAAT,CAAqBV,CAArB,EAA+BC,CAA/B,EAA+BA;EAAAA,SAC9BK,CAAAA,CAAQ,YAAA;EAAA,WAAMN,CAAN;EAAMA,GAAdM,EAAwBL,CAAxBK,CAD8BL;EAO/B;;EAAA,SAASU,CAAT,CAAoB9N,CAApB,EAAoBA;EAAAA,MACpB+N,CAAAA,GAAW3C,CAAAA,CAAiBpL,OAAjBoL,CAAyBpL,CAAAA,CAAQgO,GAAjC5C,CADSpL;EACwBgO,MAAAA,CAC7CD,CAD6CC,EACnC,OAAOhO,CAAAA,CAAQiO,EAAf;EAAeA,MACxBxK,CAAAA,GAAQsI,CAAAA,CAAaZ,CAAAA,EAAbY,CADgBkC;EACH9C,SAEP,QAAhB1H,CAAAA,CAAMqJ,CAAU,KACnBrJ,CAAAA,CAAMqJ,CAANrJ,GAAMqJ,CAAS,CAAfrJ,EACAsK,CAAAA,CAASG,GAATH,CAAa3C,CAAb2C,CAFmB,GAIbA,CAAAA,CAASjD,KAATiD,CAAelL,KANKsI;EAarB;;EAMA,SAASgD,CAAT,CAA0BC,CAA1B,EAA0BA;EAAAA,MAC1B3K,CAAAA,GAAQsI,CAAAA,CAAaZ,CAAAA,EAAbY,CADkBqC;EAAAA,MAE1BC,CAAAA,GAAW/B,CAAAA,EAFe8B;EAEf9B,SACjB7I,CAAAA,CAAMqJ,CAANrJ,GAAe2K,CAAf3K,EACK2H,CAAAA,CAAiBkD,iBAAjBlD,KACJA,CAAAA,CAAiBkD,iBAAjBlD,GAAqC,UAAA,CAAA,EAAA;EAChC3H,IAAAA,CAAAA,CAAMqJ,CAANrJ,IAAcA,CAAAA,CAAMqJ,CAANrJ,CAAa/C,CAAb+C,CAAdA,EACJ4K,CAAAA,CAAS,CAATA,CAAAA,CAAY3N,CAAZ2N,CADI5K;EACQ/C,GAHT0K,CADL3H,EAOO,CACN4K,CAAAA,CAAS,CAATA,CADM,EAEN,YAAA;EACCA,IAAAA,CAAAA,CAAS,CAATA,CAAAA,CAAS,KAAGvP,CAAZuP;EAAYvP,GAHP,CARUwN;EAmBlB;;EAAA,SAASiC,CAAT,GAASA;EACRjD,EAAAA,CAAAA,CAAkBkD,IAAlBlD,CAAuB,UAAA,CAAA,EAAA;EAClBmD,IAAAA,CAAAA,CAAUC,GAAVD,KACHA,CAAAA,CAAUtC,GAAVsC,CAAkBpC,CAAlBoC,CAAkC9M,OAAlC8M,CAA0CE,CAA1CF,GACAA,CAAAA,CAAUtC,GAAVsC,CAAkBpC,CAAlBoC,CAAkC9M,OAAlC8M,CAA0CG,CAA1CH,CADAA,EAEAA,CAAAA,CAAUtC,GAAVsC,CAAkBpC,CAAlBoC,GAAoC,EAHjCA;EAGiC,GAJtCnD,GAOAA,CAAAA,GAAoB,EAPpBA;EAqDD;;EAAA,SAASqD,CAAT,CAAuBE,CAAvB,EAAuBA;EAClBA,EAAAA,CAAAA,CAAKC,CAALD,IAAeA,CAAAA,CAAKC,CAALD,EAAfA;EAOL;;EAAA,SAASD,CAAT,CAAsBC,CAAtB,EAAsBA;EAAAA,MACfjM,CAAAA,GAASiM,CAAAA,CAAK/B,CAAL+B,EADMA;EAEC,gBAAA,OAAXjM,CAAW,KAAYiM,CAAAA,CAAKC,CAALD,GAAgBjM,CAA5B;EAOvB;;EAAA,SAASyK,CAAT,CAAqB0B,CAArB,EAA8BC,CAA9B,EAA8BA;EAAAA,SAAAA,CACrBD,CADqBC,IACVA,CAAAA,CAAQR,IAARQ,CAAa,UAACzO,CAAD,EAAMyL,CAAN,EAAMA;EAAAA,WAAUzL,CAAAA,KAAQwO,CAAAA,CAAQ/C,CAAR+C,CAAlB/C;EAA0BA,GAA7CgD,CADUA;EAI9B;;EAAA,SAASvC,CAAT,CAAwBlM,CAAxB,EAA6B0O,CAA7B,EAA6BA;EAAAA,SACR,cAAA,OAANA,CAAM,GAAaA,CAAAA,CAAE1O,CAAF0O,CAAb,GAAsBA,CADdA;EA7S7BzG;;AAAAA,KAAAA,CAAQgD,GAARhD,GAAkB,UAAA,CAAA,EAAA;EACb+C,EAAAA,CAAAA,IAAiBA,CAAAA,CAAgB2D,CAAhB3D,CAAjBA,EAGJJ,CAAAA,GAAe,CAHXI,EAGW,CADfH,CAAAA,GAAmB8D,CAAAA,CAAMrC,GACV,EAEMV,GAFN,KAGdf,CAAAA,CAAiBe,GAAjBf,CAAyBiB,CAAzBjB,CAAyCzJ,OAAzCyJ,CAAiDuD,CAAjDvD,GACAA,CAAAA,CAAiBe,GAAjBf,CAAyBiB,CAAzBjB,CAAyCzJ,OAAzCyJ,CAAiDwD,CAAjDxD,CADAA,EAEAA,CAAAA,CAAiBe,GAAjBf,CAAyBiB,CAAzBjB,GAA2C,EAL7B,CAHXG;EAQwC,CAT7C/C,EAaAA,GAAAA,CAAQkD,MAARlD,GAAiB,UAAA,CAAA,EAAA;EACZiD,EAAAA,CAAAA,IAAcA,CAAAA,CAAayD,CAAbzD,CAAdA;EAA2ByD,MAEzBC,CAAAA,GAAID,CAAAA,CAAMrC,GAFeqC;;EAEfrC,MACXsC,CADWtC,EACXsC;EAAAA,QAECjD,CAAAA,GAAQiD,CAAAA,CAAEhD,GAFXgD;EAGDjD,IAAAA,CAAAA,IACCA,CAAAA,CAAMG,CAANH,CAAsB1G,MADvB0G,KAyPmB,MAvPVZ,CAAAA,CAAkBtG,IAAlBsG,CAAuB6D,CAAvB7D,CAuPU,IAAKD,CAAAA,KAAY7C,GAAAA,CAAQ4G,qBAAzB,IAAyBA,CAAAA,CAC/C/D,CAAAA,GAAU7C,GAAAA,CAAQ4G,qBAD6BA,KAtBjD,UAAwBjC,CAAxB,EAAwBA;EAAAA,UAQnBkC,CARmBlC;EAAAA,UACjB3J,CAAAA,GAAO,SAAPA,CAAO,GAAA;EACZ8L,QAAAA,YAAAA,CAAaC,CAAbD,CAAAA,EACAE,oBAAAA,CAAqBH,CAArBG,CADAF,EAEAG,UAAAA,CAAWtC,CAAXsC,CAFAH;EAEWnC,OAJWA;EAAAA,UAMjBoC,CAAAA,GAAUE,UAAAA,CAAWjM,CAAXiM,EAhQG,GAgQHA,CANOtC;;EASD,qBAAA,OAAXuC,MAAW,KACrBL,CAAAA,GAAMD,qBAAAA,CAAsB5L,CAAtB4L,CADe;EACO5L,KAYmB4L,EAInBb,CAJmBa,CAzP5ClD;EA6PyBqC;EAAAA,CAjR9B/F,EA2BAA,GAAAA,CAAQoD,GAARpD,GAAkB,UAAC0G,CAAD,EAAQS,CAAR,EAAQA;EACzBA,EAAAA,CAAAA,CAAYnB,IAAZmB,CAAiB,UAAA,CAAA,EAAA;EAChBlB,IAAAA,CAAAA,CAAUmB,GAAVnB,CAA2B9M,OAA3B8M,CAAmCE,CAAnCF,GACAA,CAAAA,CAAUmB,GAAVnB,GAA6BA,CAAAA,CAAUmB,GAAVnB,CAA2BoB,MAA3BpB,CAAkC,UAAA,CAAA,EAAA;EAAA,aAAA,CAC9DL,CAAAA,CAAGtB,CAD2D,IAClD8B,CAAAA,CAAaR,CAAbQ,CADkD;EACrCR,KADGK,CAD7BA;EAE0BL,GAH3BuB,GAOIhE,CAAAA,IAAWA,CAAAA,CAAUuD,CAAVvD,EAAiBgE,CAAjBhE,CAPfgE;EAOgCA,CAnCjCnH,EAsCAA,GAAAA,CAAQsD,OAARtD,GAAkB,UAAA,CAAA,EAAA;EACbqD,EAAAA,CAAAA,IAAkBA,CAAAA,CAAiBqD,CAAjBrD,CAAlBA;EAAmCqD,MAEjCC,CAAAA,GAAID,CAAAA,CAAMrC,GAFuBqC;;EAEvBrC,MACXsC,CADWtC,EACXsC;EAAAA,QAECjD,CAAAA,GAAQiD,CAAAA,CAAEhD,GAFXgD;EAGDjD,IAAAA,CAAAA,IACHA,CAAAA,CAAME,CAANF,CAAYvK,OAAZuK,CAAoB,UAAA,CAAA,EAAA;EAAA,aAAQ2C,CAAAA,CAAKC,CAALD,IAAiBA,CAAAA,CAAKC,CAALD,EAAzB;EAA8BC,KAAlD5C,CADGA;EAC+C4C;EAAAA,CA9CpDtG;;;;ECHC,GAAC,UAASsH,IAAT,EAAeC,GAAf,EAAoB;EACpB,IACK,IAAiCC,MAAM,CAACC,OAAxC,EAAiDD,cAAA,GAAiBD,GAAG,EAApB,CAAjD,KACAD,IAAI,CAACI,SAAL,GAAiBH,GAAG,EAApB;EACN,GAJA,EAIEI,cAJF,EAIQ,SAASJ,GAAT,GAAe;EAAE,aAASK,YAAT,CAAsBC,eAAtB,EAAuC;EAE/D,UAAIH,SAAS,GAAG;EAEdI,QAAAA,MAAM,EAAE,gBAASC,MAAT,EAAiBC,MAAjB,EAAyBhI,OAAzB,EAAkC;EACxC,cAAG,CAAC+H,MAAJ,EAAY,OAAO,IAAP;EACZ,cAAG,CAACE,KAAK,CAACF,MAAD,CAAT,EAAmBA,MAAM,GAAGL,SAAS,CAACQ,iBAAV,CAA4BH,MAA5B,CAAT;EAEnB,cAAG,CAACC,MAAJ,EAAY,OAAO,IAAP;EACZ,cAAG,CAACC,KAAK,CAACD,MAAD,CAAT,EAAmBA,MAAM,GAAGN,SAAS,CAACS,WAAV,CAAsBH,MAAtB,CAAT;EAEnB,cAAII,SAAS,GAAGpI,OAAO,IAAIA,OAAO,CAACoI,SAAR,KAAoB9R,SAA/B,GAA2C0J,OAAO,CAACoI,SAAnD,GACZP,eAAe,IAAIA,eAAe,CAACO,SAAhB,KAA4B9R,SAA/C,GAA2DuR,eAAe,CAACO,SAA3E,GACA,IAFJ;EAGA,cAAIC,SAAS,GAAGD,SAAS,GAAGV,SAAS,CAACW,SAAb,GAAyBX,SAAS,CAACY,eAA5D;EACA,iBAAOD,SAAS,CAACN,MAAD,EAASC,MAAT,EAAiBD,MAAM,CAAC,CAAD,CAAvB,CAAhB,CAXwC;;;;;EAiBzC,SAnBa;EAqBdQ,QAAAA,EAAE,EAAE,YAASR,MAAT,EAAiBS,OAAjB,EAA0BxI,OAA1B,EAAmC;EACrC,cAAG,CAAC+H,MAAJ,EAAY,OAAOU,SAAP;EACZV,UAAAA,MAAM,GAAGL,SAAS,CAACgB,aAAV,CAAwBX,MAAxB,CAAT;EACA,cAAIY,eAAe,GAAGZ,MAAM,CAAC,CAAD,CAA5B;EAEA,cAAIa,SAAS,GAAG5I,OAAO,IAAIA,OAAO,CAAC4I,SAAnB,IAAgCf,eAAe,IAAIA,eAAe,CAACe,SAAnE,IAAgF,CAAC,gBAAjG;EACA,cAAIC,KAAK,GAAG7I,OAAO,IAAIA,OAAO,CAAC6I,KAAnB,IAA4BhB,eAAe,IAAIA,eAAe,CAACgB,KAA/D,IAAwE,gBAApF;EACA,cAAIT,SAAS,GAAGpI,OAAO,IAAIA,OAAO,CAACoI,SAAR,KAAoB9R,SAA/B,GAA2C0J,OAAO,CAACoI,SAAnD,GACZP,eAAe,IAAIA,eAAe,CAACO,SAAhB,KAA4B9R,SAA/C,GAA2DuR,eAAe,CAACO,SAA3E,GACA,IAFJ;EAGA,cAAIC,SAAS,GAAGD,SAAS,GAAGV,SAAS,CAACW,SAAb,GAAyBX,SAAS,CAACY,eAA5D;EACA,cAAIQ,UAAU,GAAG,CAAjB;EAAoB,cAAIC,YAAY,GAAG,CAAnB;EACpB,cAAIC,UAAU,GAAGR,OAAO,CAACxL,MAAzB,CAZqC;;;EAiBrC,cAAGgD,OAAO,IAAIA,OAAO,CAACpD,IAAtB,EAA4B;EAC1B,gBAAIqM,OAAO,GAAGjJ,OAAO,CAACiJ,OAAR,IAAmBC,cAAjC;EACA,gBAAItM,IAAI,GAAGoD,OAAO,CAACpD,IAAnB;EACA,gBAAIuM,OAAO,GAAGvM,IAAI,CAACI,MAAnB;;EACA,iBAAI,IAAIK,CAAC,GAAG2L,UAAU,GAAG,CAAzB,EAA4B3L,CAAC,IAAI,CAAjC,EAAoC,EAAEA,CAAtC,EAAyC;EAAE,kBAAIvF,GAAG,GAAG0Q,OAAO,CAACnL,CAAD,CAAjB;EACzC,kBAAI+L,UAAU,GAAG,IAAIC,KAAJ,CAAUF,OAAV,CAAjB;;EACA,mBAAK,IAAIG,IAAI,GAAGH,OAAO,GAAG,CAA1B,EAA6BG,IAAI,IAAI,CAArC,EAAwC,EAAEA,IAA1C,EAAgD;EAC9C,oBAAIxM,GAAG,GAAGF,IAAI,CAAC0M,IAAD,CAAd;EACA,oBAAItB,MAAM,GAAGuB,QAAQ,CAACzR,GAAD,EAAMgF,GAAN,CAArB;;EACA,oBAAG,CAACkL,MAAJ,EAAY;EAAEoB,kBAAAA,UAAU,CAACE,IAAD,CAAV,GAAmB,IAAnB;EAAyB;EAAU;;EACjD,oBAAG,CAACrB,KAAK,CAACD,MAAD,CAAT,EAAmBA,MAAM,GAAGN,SAAS,CAACS,WAAV,CAAsBH,MAAtB,CAAT;EAEnBoB,gBAAAA,UAAU,CAACE,IAAD,CAAV,GAAmBjB,SAAS,CAACN,MAAD,EAASC,MAAT,EAAiBW,eAAjB,CAA5B;EACD;;EACDS,cAAAA,UAAU,CAACtR,GAAX,GAAiBA,GAAjB,CAVuC;;EAWvC,kBAAI0R,KAAK,GAAGP,OAAO,CAACG,UAAD,CAAnB;EACA,kBAAGI,KAAK,KAAK,IAAb,EAAmB;EACnB,kBAAGA,KAAK,GAAGZ,SAAX,EAAsB;EACtBQ,cAAAA,UAAU,CAACI,KAAX,GAAmBA,KAAnB;;EACA,kBAAGV,UAAU,GAAGD,KAAhB,EAAuB;EAAEY,gBAAAA,CAAC,CAACC,GAAF,CAAMN,UAAN;EAAmB,kBAAEN,UAAF;EAAc,eAA1D,MACK;EACH,kBAAEC,YAAF;EACA,oBAAGS,KAAK,GAAGC,CAAC,CAACE,IAAF,GAASH,KAApB,EAA2BC,CAAC,CAACG,UAAF,CAAaR,UAAb;EAC5B;EACF,aAxByB;;EA2B3B,WA3BD,MA2BO,IAAGpJ,OAAO,IAAIA,OAAO,CAAClD,GAAtB,EAA2B;EAChC,gBAAIA,GAAG,GAAGkD,OAAO,CAAClD,GAAlB;;EACA,iBAAI,IAAIO,CAAC,GAAG2L,UAAU,GAAG,CAAzB,EAA4B3L,CAAC,IAAI,CAAjC,EAAoC,EAAEA,CAAtC,EAAyC;EAAE,kBAAIvF,GAAG,GAAG0Q,OAAO,CAACnL,CAAD,CAAjB;EACzC,kBAAI2K,MAAM,GAAGuB,QAAQ,CAACzR,GAAD,EAAMgF,GAAN,CAArB;EACA,kBAAG,CAACkL,MAAJ,EAAY;EACZ,kBAAG,CAACC,KAAK,CAACD,MAAD,CAAT,EAAmBA,MAAM,GAAGN,SAAS,CAACS,WAAV,CAAsBH,MAAtB,CAAT;EAEnB,kBAAI5N,MAAM,GAAGiO,SAAS,CAACN,MAAD,EAASC,MAAT,EAAiBW,eAAjB,CAAtB;EACA,kBAAGvO,MAAM,KAAK,IAAd,EAAoB;EACpB,kBAAGA,MAAM,CAACoP,KAAP,GAAeZ,SAAlB,EAA6B,SAPU;;EAUvCxO,cAAAA,MAAM,GAAG;EAAC4N,gBAAAA,MAAM,EAAC5N,MAAM,CAAC4N,MAAf;EAAuB6B,gBAAAA,iBAAiB,EAAC,IAAzC;EAA+CC,gBAAAA,qBAAqB,EAAC,IAArE;EAA2EN,gBAAAA,KAAK,EAACpP,MAAM,CAACoP,KAAxF;EAA+FO,gBAAAA,OAAO,EAAC3P,MAAM,CAAC2P,OAA9G;EAAuHjS,gBAAAA,GAAG,EAACA;EAA3H,eAAT,CAVuC;;EAYvC,kBAAGgR,UAAU,GAAGD,KAAhB,EAAuB;EAAEY,gBAAAA,CAAC,CAACC,GAAF,CAAMtP,MAAN;EAAe,kBAAE0O,UAAF;EAAc,eAAtD,MACK;EACH,kBAAEC,YAAF;EACA,oBAAG3O,MAAM,CAACoP,KAAP,GAAeC,CAAC,CAACE,IAAF,GAASH,KAA3B,EAAkCC,CAAC,CAACG,UAAF,CAAaxP,MAAb;EACnC;EACF,aAnB+B;;EAsBjC,WAtBM,MAsBA;EACL,iBAAI,IAAIiD,CAAC,GAAG2L,UAAU,GAAG,CAAzB,EAA4B3L,CAAC,IAAI,CAAjC,EAAoC,EAAEA,CAAtC,EAAyC;EAAE,kBAAI2K,MAAM,GAAGQ,OAAO,CAACnL,CAAD,CAApB;EACzC,kBAAG,CAAC2K,MAAJ,EAAY;EACZ,kBAAG,CAACC,KAAK,CAACD,MAAD,CAAT,EAAmBA,MAAM,GAAGN,SAAS,CAACS,WAAV,CAAsBH,MAAtB,CAAT;EAEnB,kBAAI5N,MAAM,GAAGiO,SAAS,CAACN,MAAD,EAASC,MAAT,EAAiBW,eAAjB,CAAtB;EACA,kBAAGvO,MAAM,KAAK,IAAd,EAAoB;EACpB,kBAAGA,MAAM,CAACoP,KAAP,GAAeZ,SAAlB,EAA6B;;EAC7B,kBAAGE,UAAU,GAAGD,KAAhB,EAAuB;EAAEY,gBAAAA,CAAC,CAACC,GAAF,CAAMtP,MAAN;EAAe,kBAAE0O,UAAF;EAAc,eAAtD,MACK;EACH,kBAAEC,YAAF;EACA,oBAAG3O,MAAM,CAACoP,KAAP,GAAeC,CAAC,CAACE,IAAF,GAASH,KAA3B,EAAkCC,CAAC,CAACG,UAAF,CAAaxP,MAAb;EACnC;EACF;EACF;;EAED,cAAG0O,UAAU,KAAK,CAAlB,EAAqB,OAAOL,SAAP;EACrB,cAAIuB,OAAO,GAAG,IAAIX,KAAJ,CAAUP,UAAV,CAAd;;EACA,eAAI,IAAIzL,CAAC,GAAGyL,UAAU,GAAG,CAAzB,EAA4BzL,CAAC,IAAI,CAAjC,EAAoC,EAAEA,CAAtC;EAAyC2M,YAAAA,OAAO,CAAC3M,CAAD,CAAP,GAAaoM,CAAC,CAACQ,IAAF,EAAb;EAAzC;;EACAD,UAAAA,OAAO,CAACE,KAAR,GAAgBpB,UAAU,GAAGC,YAA7B;EACA,iBAAOiB,OAAP;EACD,SA5Ga;EA8GdG,QAAAA,OAAO,EAAE,iBAASpC,MAAT,EAAiBS,OAAjB,EAA0BxI,OAA1B,EAAmC;EAC1C,cAAIoK,QAAQ,GAAG,KAAf;EACA,cAAIjL,CAAC,GAAG,IAAItE,OAAJ,CAAY,UAASZ,OAAT,EAAkBC,MAAlB,EAA0B;EAC5C,gBAAG,CAAC6N,MAAJ,EAAY,OAAO9N,OAAO,CAACwO,SAAD,CAAd;EACZV,YAAAA,MAAM,GAAGL,SAAS,CAACgB,aAAV,CAAwBX,MAAxB,CAAT;EACA,gBAAIY,eAAe,GAAGZ,MAAM,CAAC,CAAD,CAA5B;EAEA,gBAAI0B,CAAC,GAAGY,iBAAiB,EAAzB;EACA,gBAAIC,QAAQ,GAAG9B,OAAO,CAACxL,MAAR,GAAiB,CAAhC;EACA,gBAAI4L,SAAS,GAAG5I,OAAO,IAAIA,OAAO,CAAC4I,SAAnB,IAAgCf,eAAe,IAAIA,eAAe,CAACe,SAAnE,IAAgF,CAAC,gBAAjG;EACA,gBAAIC,KAAK,GAAG7I,OAAO,IAAIA,OAAO,CAAC6I,KAAnB,IAA4BhB,eAAe,IAAIA,eAAe,CAACgB,KAA/D,IAAwE,gBAApF;EACA,gBAAIT,SAAS,GAAGpI,OAAO,IAAIA,OAAO,CAACoI,SAAR,KAAoB9R,SAA/B,GAA2C0J,OAAO,CAACoI,SAAnD,GACZP,eAAe,IAAIA,eAAe,CAACO,SAAhB,KAA4B9R,SAA/C,GAA2DuR,eAAe,CAACO,SAA3E,GACA,IAFJ;EAGA,gBAAIC,SAAS,GAAGD,SAAS,GAAGV,SAAS,CAACW,SAAb,GAAyBX,SAAS,CAACY,eAA5D;EACA,gBAAIQ,UAAU,GAAG,CAAjB;EAAoB,gBAAIC,YAAY,GAAG,CAAnB;;EACpB,qBAASwB,IAAT,GAAgB;EACd,kBAAGH,QAAH,EAAa,OAAOlQ,MAAM,CAAC,UAAD,CAAb;EAEb,kBAAIsQ,OAAO,GAAGC,IAAI,CAACC,GAAL,EAAd,CAHc;;;EAQd,kBAAG1K,OAAO,IAAIA,OAAO,CAACpD,IAAtB,EAA4B;EAC1B,oBAAIqM,OAAO,GAAGjJ,OAAO,CAACiJ,OAAR,IAAmBC,cAAjC;EACA,oBAAItM,IAAI,GAAGoD,OAAO,CAACpD,IAAnB;EACA,oBAAIuM,OAAO,GAAGvM,IAAI,CAACI,MAAnB;;EACA,uBAAMsN,QAAQ,IAAI,CAAlB,EAAqB,EAAEA,QAAvB,EAAiC;EAAE,sBAAIxS,GAAG,GAAG0Q,OAAO,CAAC8B,QAAD,CAAjB;EACjC,sBAAIlB,UAAU,GAAG,IAAIC,KAAJ,CAAUF,OAAV,CAAjB;;EACA,uBAAK,IAAIG,IAAI,GAAGH,OAAO,GAAG,CAA1B,EAA6BG,IAAI,IAAI,CAArC,EAAwC,EAAEA,IAA1C,EAAgD;EAC9C,wBAAIxM,GAAG,GAAGF,IAAI,CAAC0M,IAAD,CAAd;EACA,wBAAItB,MAAM,GAAGuB,QAAQ,CAACzR,GAAD,EAAMgF,GAAN,CAArB;;EACA,wBAAG,CAACkL,MAAJ,EAAY;EAAEoB,sBAAAA,UAAU,CAACE,IAAD,CAAV,GAAmB,IAAnB;EAAyB;EAAU;;EACjD,wBAAG,CAACrB,KAAK,CAACD,MAAD,CAAT,EAAmBA,MAAM,GAAGN,SAAS,CAACS,WAAV,CAAsBH,MAAtB,CAAT;EAEnBoB,oBAAAA,UAAU,CAACE,IAAD,CAAV,GAAmBjB,SAAS,CAACN,MAAD,EAASC,MAAT,EAAiBW,eAAjB,CAA5B;EACD;;EACDS,kBAAAA,UAAU,CAACtR,GAAX,GAAiBA,GAAjB,CAV+B;;EAW/B,sBAAI0R,KAAK,GAAGP,OAAO,CAACG,UAAD,CAAnB;EACA,sBAAGI,KAAK,KAAK,IAAb,EAAmB;EACnB,sBAAGA,KAAK,GAAGZ,SAAX,EAAsB;EACtBQ,kBAAAA,UAAU,CAACI,KAAX,GAAmBA,KAAnB;;EACA,sBAAGV,UAAU,GAAGD,KAAhB,EAAuB;EAAEY,oBAAAA,CAAC,CAACC,GAAF,CAAMN,UAAN;EAAmB,sBAAEN,UAAF;EAAc,mBAA1D,MACK;EACH,sBAAEC,YAAF;EACA,wBAAGS,KAAK,GAAGC,CAAC,CAACE,IAAF,GAASH,KAApB,EAA2BC,CAAC,CAACG,UAAF,CAAaR,UAAb;EAC5B;;EAED,sBAAGkB,QAAQ,GAAC;EAAI;EAAb,sBAAmC,CAAtC,EAAyC;EACvC,wBAAGG,IAAI,CAACC,GAAL,KAAaF,OAAb,IAAwB;EAAE;EAA7B,sBAAgD;EAC9CG,sBAAAA,MAAM,GAACC,YAAY,CAACL,IAAD,CAAb,GAAoBtD,UAAU,CAACsD,IAAD,CAApC;EACA;EACD;EACF;EACF,iBA/ByB;;EAkC3B,eAlCD,MAkCO,IAAGvK,OAAO,IAAIA,OAAO,CAAClD,GAAtB,EAA2B;EAChC,oBAAIA,GAAG,GAAGkD,OAAO,CAAClD,GAAlB;;EACA,uBAAMwN,QAAQ,IAAI,CAAlB,EAAqB,EAAEA,QAAvB,EAAiC;EAAE,sBAAIxS,GAAG,GAAG0Q,OAAO,CAAC8B,QAAD,CAAjB;EACjC,sBAAItC,MAAM,GAAGuB,QAAQ,CAACzR,GAAD,EAAMgF,GAAN,CAArB;EACA,sBAAG,CAACkL,MAAJ,EAAY;EACZ,sBAAG,CAACC,KAAK,CAACD,MAAD,CAAT,EAAmBA,MAAM,GAAGN,SAAS,CAACS,WAAV,CAAsBH,MAAtB,CAAT;EAEnB,sBAAI5N,MAAM,GAAGiO,SAAS,CAACN,MAAD,EAASC,MAAT,EAAiBW,eAAjB,CAAtB;EACA,sBAAGvO,MAAM,KAAK,IAAd,EAAoB;EACpB,sBAAGA,MAAM,CAACoP,KAAP,GAAeZ,SAAlB,EAA6B,SAPE;;EAU/BxO,kBAAAA,MAAM,GAAG;EAAC4N,oBAAAA,MAAM,EAAC5N,MAAM,CAAC4N,MAAf;EAAuB6B,oBAAAA,iBAAiB,EAAC,IAAzC;EAA+CC,oBAAAA,qBAAqB,EAAC,IAArE;EAA2EN,oBAAAA,KAAK,EAACpP,MAAM,CAACoP,KAAxF;EAA+FO,oBAAAA,OAAO,EAAC3P,MAAM,CAAC2P,OAA9G;EAAuHjS,oBAAAA,GAAG,EAACA;EAA3H,mBAAT,CAV+B;;EAY/B,sBAAGgR,UAAU,GAAGD,KAAhB,EAAuB;EAAEY,oBAAAA,CAAC,CAACC,GAAF,CAAMtP,MAAN;EAAe,sBAAE0O,UAAF;EAAc,mBAAtD,MACK;EACH,sBAAEC,YAAF;EACA,wBAAG3O,MAAM,CAACoP,KAAP,GAAeC,CAAC,CAACE,IAAF,GAASH,KAA3B,EAAkCC,CAAC,CAACG,UAAF,CAAaxP,MAAb;EACnC;;EAED,sBAAGkQ,QAAQ,GAAC;EAAI;EAAb,sBAAmC,CAAtC,EAAyC;EACvC,wBAAGG,IAAI,CAACC,GAAL,KAAaF,OAAb,IAAwB;EAAE;EAA7B,sBAAgD;EAC9CG,sBAAAA,MAAM,GAACC,YAAY,CAACL,IAAD,CAAb,GAAoBtD,UAAU,CAACsD,IAAD,CAApC;EACA;EACD;EACF;EACF,iBA1B+B;;EA6BjC,eA7BM,MA6BA;EACL,uBAAMD,QAAQ,IAAI,CAAlB,EAAqB,EAAEA,QAAvB,EAAiC;EAAE,sBAAItC,MAAM,GAAGQ,OAAO,CAAC8B,QAAD,CAApB;EACjC,sBAAG,CAACtC,MAAJ,EAAY;EACZ,sBAAG,CAACC,KAAK,CAACD,MAAD,CAAT,EAAmBA,MAAM,GAAGN,SAAS,CAACS,WAAV,CAAsBH,MAAtB,CAAT;EAEnB,sBAAI5N,MAAM,GAAGiO,SAAS,CAACN,MAAD,EAASC,MAAT,EAAiBW,eAAjB,CAAtB;EACA,sBAAGvO,MAAM,KAAK,IAAd,EAAoB;EACpB,sBAAGA,MAAM,CAACoP,KAAP,GAAeZ,SAAlB,EAA6B;;EAC7B,sBAAGE,UAAU,GAAGD,KAAhB,EAAuB;EAAEY,oBAAAA,CAAC,CAACC,GAAF,CAAMtP,MAAN;EAAe,sBAAE0O,UAAF;EAAc,mBAAtD,MACK;EACH,sBAAEC,YAAF;EACA,wBAAG3O,MAAM,CAACoP,KAAP,GAAeC,CAAC,CAACE,IAAF,GAASH,KAA3B,EAAkCC,CAAC,CAACG,UAAF,CAAaxP,MAAb;EACnC;;EAED,sBAAGkQ,QAAQ,GAAC;EAAI;EAAb,sBAAmC,CAAtC,EAAyC;EACvC,wBAAGG,IAAI,CAACC,GAAL,KAAaF,OAAb,IAAwB;EAAE;EAA7B,sBAAgD;EAC9CG,sBAAAA,MAAM,GAACC,YAAY,CAACL,IAAD,CAAb,GAAoBtD,UAAU,CAACsD,IAAD,CAApC;EACA;EACD;EACF;EACF;EACF;;EAED,kBAAGzB,UAAU,KAAK,CAAlB,EAAqB,OAAO7O,OAAO,CAACwO,SAAD,CAAd;EACrB,kBAAIuB,OAAO,GAAG,IAAIX,KAAJ,CAAUP,UAAV,CAAd;;EACA,mBAAI,IAAIzL,CAAC,GAAGyL,UAAU,GAAG,CAAzB,EAA4BzL,CAAC,IAAI,CAAjC,EAAoC,EAAEA,CAAtC;EAAyC2M,gBAAAA,OAAO,CAAC3M,CAAD,CAAP,GAAaoM,CAAC,CAACQ,IAAF,EAAb;EAAzC;;EACAD,cAAAA,OAAO,CAACE,KAAR,GAAgBpB,UAAU,GAAGC,YAA7B;EACA9O,cAAAA,OAAO,CAAC+P,OAAD,CAAP;EACD;;EAEDW,YAAAA,MAAM,GAACC,YAAY,CAACL,IAAD,CAAb,GAAoBA,IAAI,EAA9B;EACD,WApHO,CAAR;;EAqHApL,UAAAA,CAAC,CAAC0L,MAAF,GAAW,YAAW;EAAET,YAAAA,QAAQ,GAAG,IAAX;EAAiB,WAAzC;;EACA,iBAAOjL,CAAP;EACD,SAvOa;EAyOd2L,QAAAA,SAAS,EAAE,mBAAS1Q,MAAT,EAAiB2Q,KAAjB,EAAwBC,MAAxB,EAAgC;EACzC,cAAG5Q,MAAM,KAAK,IAAd,EAAoB,OAAO,IAAP;EACpB,cAAG2Q,KAAK,KAAKzU,SAAb,EAAwByU,KAAK,GAAG,KAAR;EACxB,cAAGC,MAAM,KAAK1U,SAAd,EAAyB0U,MAAM,GAAG,MAAT;EACzB,cAAIC,WAAW,GAAG,EAAlB;EACA,cAAIC,YAAY,GAAG,CAAnB;EACA,cAAIC,MAAM,GAAG,KAAb;EACA,cAAInD,MAAM,GAAG5N,MAAM,CAAC4N,MAApB;EACA,cAAIoD,SAAS,GAAGpD,MAAM,CAAChL,MAAvB;EACA,cAAIqO,WAAW,GAAGjR,MAAM,CAAC2P,OAAzB;;EACA,eAAI,IAAI1M,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAG+N,SAAnB,EAA8B,EAAE/N,CAAhC,EAAmC;EAAE,gBAAIiO,IAAI,GAAGtD,MAAM,CAAC3K,CAAD,CAAjB;;EACnC,gBAAGgO,WAAW,CAACH,YAAD,CAAX,KAA8B7N,CAAjC,EAAoC;EAClC,gBAAE6N,YAAF;;EACA,kBAAG,CAACC,MAAJ,EAAY;EAAEA,gBAAAA,MAAM,GAAG,IAAT;EACZF,gBAAAA,WAAW,IAAIF,KAAf;EACD;;EAED,kBAAGG,YAAY,KAAKG,WAAW,CAACrO,MAAhC,EAAwC;EACtCiO,gBAAAA,WAAW,IAAIK,IAAI,GAAGN,MAAP,GAAgBhD,MAAM,CAACuD,MAAP,CAAclO,CAAC,GAAC,CAAhB,CAA/B;EACA;EACD;EACF,aAVD,MAUO;EACL,kBAAG8N,MAAH,EAAW;EAAEA,gBAAAA,MAAM,GAAG,KAAT;EACXF,gBAAAA,WAAW,IAAID,MAAf;EACD;EACF;;EACDC,YAAAA,WAAW,IAAIK,IAAf;EACD;;EAED,iBAAOL,WAAP;EACD,SAvQa;EAyQdO,QAAAA,OAAO,EAAE,iBAASxD,MAAT,EAAiB;EACxB,cAAG,CAACA,MAAJ,EAAY;EACZ,iBAAO;EAACA,YAAAA,MAAM,EAACA,MAAR;EAAgB6B,YAAAA,iBAAiB,EAACnC,SAAS,CAAC+D,iBAAV,CAA4BzD,MAA5B,CAAlC;EAAuE8B,YAAAA,qBAAqB,EAAC,IAA7F;EAAmGN,YAAAA,KAAK,EAAC,IAAzG;EAA+GO,YAAAA,OAAO,EAAC,IAAvH;EAA6HjS,YAAAA,GAAG,EAAC;EAAjI,WAAP,CAFwB;EAGzB,SA5Qa;EA6Qd4T,QAAAA,WAAW,EAAE,qBAAS1D,MAAT,EAAiB;EAC5B,cAAG,CAACA,MAAJ,EAAY;EACZ,iBAAO;EAACA,YAAAA,MAAM,EAACA,MAAR;EAAgB6B,YAAAA,iBAAiB,EAACnC,SAAS,CAAC+D,iBAAV,CAA4BzD,MAA5B,CAAlC;EAAuE8B,YAAAA,qBAAqB,EAACpC,SAAS,CAACiE,2BAAV,CAAsC3D,MAAtC,CAA7F;EAA4IwB,YAAAA,KAAK,EAAC,IAAlJ;EAAwJO,YAAAA,OAAO,EAAC,IAAhK;EAAsKjS,YAAAA,GAAG,EAAC;EAA1K,WAAP,CAF4B;EAG7B,SAhRa;EAiRd4Q,QAAAA,aAAa,EAAE,uBAASX,MAAT,EAAiB;EAC9B,cAAG,CAACA,MAAJ,EAAY;EACZ,iBAAOL,SAAS,CAAC+D,iBAAV,CAA4B1D,MAA5B,CAAP;EACD,SApRa;;;;;EA+RdI,QAAAA,WAAW,EAAE,qBAASH,MAAT,EAAiB;EAC5B,cAAGA,MAAM,CAAChL,MAAP,GAAgB,GAAnB,EAAwB,OAAO0K,SAAS,CAAC8D,OAAV,CAAkBxD,MAAlB,CAAP,CADI;;EAE5B,cAAI4D,cAAc,GAAGC,aAAa,CAACrM,GAAd,CAAkBwI,MAAlB,CAArB;EACA,cAAG4D,cAAc,KAAKtV,SAAtB,EAAiC,OAAOsV,cAAP;EACjCA,UAAAA,cAAc,GAAGlE,SAAS,CAAC8D,OAAV,CAAkBxD,MAAlB,CAAjB;EACA6D,UAAAA,aAAa,CAACpM,GAAd,CAAkBuI,MAAlB,EAA0B4D,cAA1B;EACA,iBAAOA,cAAP;EACD,SAtSa;EAuSd1D,QAAAA,iBAAiB,EAAE,2BAASH,MAAT,EAAiB;EAClC,cAAGA,MAAM,CAAC/K,MAAP,GAAgB,GAAnB,EAAwB,OAAO0K,SAAS,CAACgB,aAAV,CAAwBX,MAAxB,CAAP,CADU;;EAElC,cAAI+D,cAAc,GAAGC,mBAAmB,CAACvM,GAApB,CAAwBuI,MAAxB,CAArB;EACA,cAAG+D,cAAc,KAAKxV,SAAtB,EAAiC,OAAOwV,cAAP;EACjCA,UAAAA,cAAc,GAAGpE,SAAS,CAACgB,aAAV,CAAwBX,MAAxB,CAAjB;EACAgE,UAAAA,mBAAmB,CAACtM,GAApB,CAAwBsI,MAAxB,EAAgC+D,cAAhC;EACA,iBAAOA,cAAP;EACD,SA9Sa;EAgTdzD,QAAAA,SAAS,EAAE,mBAAS2D,gBAAT,EAA2BC,QAA3B,EAAqCtD,eAArC,EAAsD;EAC/D,cAAIuD,gBAAgB,GAAGD,QAAQ,CAACpC,iBAAhC;EACA,cAAIsC,SAAS,GAAGH,gBAAgB,CAAChP,MAAjC;EACA,cAAIoO,SAAS,GAAGc,gBAAgB,CAAClP,MAAjC;EACA,cAAIoP,OAAO,GAAG,CAAd,CAJ+D;;EAK/D,cAAIC,OAAO,GAAG,CAAd,CAL+D;;EAM/D,cAAIC,WAAW,GAAG,CAAlB;EACA,cAAIC,gBAAgB,GAAG,CAAvB,CAP+D;;;;EAY/D,mBAAQ;EACN,gBAAIC,OAAO,GAAG7D,eAAe,KAAKuD,gBAAgB,CAACG,OAAD,CAAlD;;EACA,gBAAGG,OAAH,EAAY;EACVC,cAAAA,aAAa,CAACF,gBAAgB,EAAjB,CAAb,GAAoCF,OAApC;EACA,gBAAED,OAAF;EAAW,kBAAGA,OAAO,KAAKD,SAAf,EAA0B;EACrCxD,cAAAA,eAAe,GAAGqD,gBAAgB,CAACM,WAAW,KAAG,CAAd,GAAgBF,OAAhB,GAA2BE,WAAW,KAAGF,OAAd,GAAsBA,OAAO,GAAC,CAA9B,GAAmCE,WAAW,KAAGF,OAAO,GAAC,CAAtB,GAAwBA,OAAO,GAAC,CAAhC,GAAoCA,OAAnG,CAAlC;EACD;;EAED,cAAEC,OAAF;;EAAW,gBAAGA,OAAO,IAAIjB,SAAd,EAAyB;;;;;EAIlC,uBAAQ;EACN,oBAAGgB,OAAO,IAAI,CAAd,EAAiB,OAAO,IAAP,CADX;;EAEN,oBAAGE,WAAW,KAAK,CAAnB,EAAsB;;EACpB,oBAAEF,OAAF;EACA,sBAAIM,kBAAkB,GAAGV,gBAAgB,CAACI,OAAD,CAAzC;EACA,sBAAGzD,eAAe,KAAK+D,kBAAvB,EAA2C,SAHvB;;EAIpBJ,kBAAAA,WAAW,GAAGF,OAAd;EACD,iBALD,MAKO;EACL,sBAAGE,WAAW,KAAK,CAAnB,EAAsB,OAAO,IAAP,CADjB;;EAEL,oBAAEA,WAAF;EACAF,kBAAAA,OAAO,GAAGE,WAAV;EACA3D,kBAAAA,eAAe,GAAGqD,gBAAgB,CAACI,OAAO,GAAG,CAAX,CAAlC;EACA,sBAAIM,kBAAkB,GAAGV,gBAAgB,CAACI,OAAD,CAAzC;EACA,sBAAGzD,eAAe,KAAK+D,kBAAvB,EAA2C,SANtC;EAON;;EACDH,gBAAAA,gBAAgB,GAAGH,OAAnB;EACAC,gBAAAA,OAAO,GAAGI,aAAa,CAACF,gBAAgB,GAAG,CAApB,CAAb,GAAsC,CAAhD;EACA;EACD;EACF;EACF;;EAED,cAAIH,OAAO,GAAG,CAAd;EACA,cAAIO,WAAW,GAAG,CAAlB;EACA,cAAIC,aAAa,GAAG,KAApB;EACA,cAAIC,gBAAgB,GAAG,CAAvB;EAEA,cAAIC,oBAAoB,GAAGb,QAAQ,CAACnC,qBAApC;EACA,cAAGgD,oBAAoB,KAAK,IAA5B,EAAkCA,oBAAoB,GAAGb,QAAQ,CAACnC,qBAAT,GAAiCpC,SAAS,CAACiE,2BAAV,CAAsCM,QAAQ,CAACjE,MAA/C,CAAxD;EAClC,cAAI+E,cAAc,GAAGV,OAAO,GAAGI,aAAa,CAAC,CAAD,CAAb,KAAmB,CAAnB,GAAuB,CAAvB,GAA2BK,oBAAoB,CAACL,aAAa,CAAC,CAAD,CAAb,GAAiB,CAAlB,CAA9E,CArD+D;;;;EA0D/D,cAAGJ,OAAO,KAAKjB,SAAf,EAA0B,SAAQ;EAChC,gBAAGiB,OAAO,IAAIjB,SAAd,EAAyB;;EAEvB,kBAAGgB,OAAO,IAAI,CAAd,EAAiB;;;EAEf,kBAAEO,WAAF;EAAe,oBAAGA,WAAW,GAAGR,SAAS,GAAC,CAA3B,EAA8B;EAC7C,oBAAGH,gBAAgB,CAACW,WAAD,CAAhB,KAAkCX,gBAAgB,CAACW,WAAW,GAAC,CAAb,CAArD,EAAsE,SAHvD;;EAIfN,gBAAAA,OAAO,GAAGU,cAAV;EACA;EACD;;EAED,gBAAEX,OAAF;EACA,kBAAIY,SAAS,GAAGC,aAAa,CAAC,EAAEJ,gBAAH,CAA7B;EACAR,cAAAA,OAAO,GAAGS,oBAAoB,CAACE,SAAD,CAA9B;EAED,aAdD,MAcO;EACL,kBAAIR,OAAO,GAAGR,gBAAgB,CAACW,WAAW,KAAG,CAAd,GAAgBP,OAAhB,GAA2BO,WAAW,KAAGP,OAAd,GAAsBA,OAAO,GAAC,CAA9B,GAAmCO,WAAW,KAAGP,OAAO,GAAC,CAAtB,GAAwBA,OAAO,GAAC,CAAhC,GAAoCA,OAAnG,CAAhB,KAAkIF,gBAAgB,CAACG,OAAD,CAAhK;;EACA,kBAAGG,OAAH,EAAY;EACVS,gBAAAA,aAAa,CAACJ,gBAAgB,EAAjB,CAAb,GAAoCR,OAApC;EACA,kBAAED,OAAF;;EAAW,oBAAGA,OAAO,KAAKD,SAAf,EAA0B;EAAES,kBAAAA,aAAa,GAAG,IAAhB;EAAsB;EAAO;;EACpE,kBAAEP,OAAF;EACD,eAJD,MAIO;EACLA,gBAAAA,OAAO,GAAGS,oBAAoB,CAACT,OAAD,CAA9B;EACD;EACF;EACF;EAED;;EACE,gBAAGO,aAAH,EAAkB;EAAE,kBAAIvB,WAAW,GAAG4B,aAAlB;EAAiC,kBAAIC,cAAc,GAAGL,gBAArB;EAAuC,aAA5F,MACK;EAAE,kBAAIxB,WAAW,GAAGoB,aAAlB;EAAiC,kBAAIS,cAAc,GAAGX,gBAArB;EAAuC;;EAC/E,gBAAI/C,KAAK,GAAG,CAAZ;EACA,gBAAI2D,WAAW,GAAG,CAAC,CAAnB;;EACA,iBAAI,IAAI9P,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAG8O,SAAnB,EAA8B,EAAE9O,CAAhC,EAAmC;EAAE,kBAAIgP,OAAO,GAAGhB,WAAW,CAAChO,CAAD,CAAzB,CAAF;;EAEjC,kBAAG8P,WAAW,KAAKd,OAAO,GAAG,CAA7B,EAAgC7C,KAAK,IAAI6C,OAAT;EAChCc,cAAAA,WAAW,GAAGd,OAAd;EACD;;EACD,gBAAG,CAACO,aAAJ,EAAmB;EACjBpD,cAAAA,KAAK,IAAI,IAAT;EACA,kBAAG8C,WAAW,KAAK,CAAnB,EAAsB9C,KAAK,IAAI,CAAC,EAAV;EAAY;EACnC,aAHD,MAGO;EACL,kBAAGmD,WAAW,KAAK,CAAnB,EAAsBnD,KAAK,IAAI,CAAC,EAAV;EAAY;EACnC;;EACDA,YAAAA,KAAK,IAAI4B,SAAS,GAAGe,SAArB;EACAF,YAAAA,QAAQ,CAACzC,KAAT,GAAiBA,KAAjB;EACAyC,YAAAA,QAAQ,CAAClC,OAAT,GAAmB,IAAIV,KAAJ,CAAU6D,cAAV,CAAnB;;EAA8C,iBAAI,IAAI7P,CAAC,GAAG6P,cAAc,GAAG,CAA7B,EAAgC7P,CAAC,IAAI,CAArC,EAAwC,EAAEA,CAA1C;EAA6C4O,cAAAA,QAAQ,CAAClC,OAAT,CAAiB1M,CAAjB,IAAsBgO,WAAW,CAAChO,CAAD,CAAjC;EAA7C;;EAE9C,mBAAO4O,QAAP;EACD;EACF,SA3Za;EA6Zd3D,QAAAA,eAAe,EAAE,yBAAS0D,gBAAT,EAA2BC,QAA3B,EAAqCtD,eAArC,EAAsD;EACrE,cAAIuD,gBAAgB,GAAGD,QAAQ,CAACpC,iBAAhC;EACA,cAAIsC,SAAS,GAAGH,gBAAgB,CAAChP,MAAjC;EACA,cAAIoO,SAAS,GAAGc,gBAAgB,CAAClP,MAAjC;EACA,cAAIoP,OAAO,GAAG,CAAd,CAJqE;;EAKrE,cAAIC,OAAO,GAAG,CAAd,CALqE;;EAMrE,cAAIE,gBAAgB,GAAG,CAAvB,CANqE;;;;EAWrE,mBAAQ;EACN,gBAAIC,OAAO,GAAG7D,eAAe,KAAKuD,gBAAgB,CAACG,OAAD,CAAlD;;EACA,gBAAGG,OAAH,EAAY;EACVC,cAAAA,aAAa,CAACF,gBAAgB,EAAjB,CAAb,GAAoCF,OAApC;EACA,gBAAED,OAAF;EAAW,kBAAGA,OAAO,KAAKD,SAAf,EAA0B;EACrCxD,cAAAA,eAAe,GAAGqD,gBAAgB,CAACI,OAAD,CAAlC;EACD;;EACD,cAAEC,OAAF;EAAW,gBAAGA,OAAO,IAAIjB,SAAd,EAAyB,OAAO,IAAP,CAP9B;EAQP;;EAED,cAAIgB,OAAO,GAAG,CAAd;EACA,cAAIQ,aAAa,GAAG,KAApB;EACA,cAAIC,gBAAgB,GAAG,CAAvB;EAEA,cAAIC,oBAAoB,GAAGb,QAAQ,CAACnC,qBAApC;EACA,cAAGgD,oBAAoB,KAAK,IAA5B,EAAkCA,oBAAoB,GAAGb,QAAQ,CAACnC,qBAAT,GAAiCpC,SAAS,CAACiE,2BAAV,CAAsCM,QAAQ,CAACjE,MAA/C,CAAxD;EAClC,UAAqBqE,OAAO,GAAGI,aAAa,CAAC,CAAD,CAAb,KAAmB,CAAnB,GAAuB,CAAvB,GAA2BK,oBAAoB,CAACL,aAAa,CAAC,CAAD,CAAb,GAAiB,CAAlB,EA3BT;;;;EAgCrE,cAAGJ,OAAO,KAAKjB,SAAf,EAA0B,SAAQ;EAChC,gBAAGiB,OAAO,IAAIjB,SAAd,EAAyB;;EAEvB,kBAAGgB,OAAO,IAAI,CAAd,EAAiB,MAFM;;EAIvB,gBAAEA,OAAF;EACA,kBAAIY,SAAS,GAAGC,aAAa,CAAC,EAAEJ,gBAAH,CAA7B;EACAR,cAAAA,OAAO,GAAGS,oBAAoB,CAACE,SAAD,CAA9B;EAED,aARD,MAQO;EACL,kBAAIR,OAAO,GAAGR,gBAAgB,CAACI,OAAD,CAAhB,KAA8BF,gBAAgB,CAACG,OAAD,CAA5D;;EACA,kBAAGG,OAAH,EAAY;EACVS,gBAAAA,aAAa,CAACJ,gBAAgB,EAAjB,CAAb,GAAoCR,OAApC;EACA,kBAAED,OAAF;;EAAW,oBAAGA,OAAO,KAAKD,SAAf,EAA0B;EAAES,kBAAAA,aAAa,GAAG,IAAhB;EAAsB;EAAO;;EACpE,kBAAEP,OAAF;EACD,eAJD,MAIO;EACLA,gBAAAA,OAAO,GAAGS,oBAAoB,CAACT,OAAD,CAA9B;EACD;EACF;EACF;EAED;;EACE,gBAAGO,aAAH,EAAkB;EAAE,kBAAIvB,WAAW,GAAG4B,aAAlB;EAAiC,kBAAIC,cAAc,GAAGL,gBAArB;EAAuC,aAA5F,MACK;EAAE,kBAAIxB,WAAW,GAAGoB,aAAlB;EAAiC,kBAAIS,cAAc,GAAGX,gBAArB;EAAuC;;EAC/E,gBAAI/C,KAAK,GAAG,CAAZ;EACA,gBAAI2D,WAAW,GAAG,CAAC,CAAnB;;EACA,iBAAI,IAAI9P,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAG8O,SAAnB,EAA8B,EAAE9O,CAAhC,EAAmC;EAAE,kBAAIgP,OAAO,GAAGhB,WAAW,CAAChO,CAAD,CAAzB,CAAF;;EAEjC,kBAAG8P,WAAW,KAAKd,OAAO,GAAG,CAA7B,EAAgC7C,KAAK,IAAI6C,OAAT;EAChCc,cAAAA,WAAW,GAAGd,OAAd;EACD;;EACD,gBAAG,CAACO,aAAJ,EAAmBpD,KAAK,IAAI,IAAT;EACnBA,YAAAA,KAAK,IAAI4B,SAAS,GAAGe,SAArB;EACAF,YAAAA,QAAQ,CAACzC,KAAT,GAAiBA,KAAjB;EACAyC,YAAAA,QAAQ,CAAClC,OAAT,GAAmB,IAAIV,KAAJ,CAAU6D,cAAV,CAAnB;;EAA8C,iBAAI,IAAI7P,CAAC,GAAG6P,cAAc,GAAG,CAA7B,EAAgC7P,CAAC,IAAI,CAArC,EAAwC,EAAEA,CAA1C;EAA6C4O,cAAAA,QAAQ,CAAClC,OAAT,CAAiB1M,CAAjB,IAAsBgO,WAAW,CAAChO,CAAD,CAAjC;EAA7C;;EAE9C,mBAAO4O,QAAP;EACD;EACF,SAnea;EAqedR,QAAAA,iBAAiB,EAAE,2BAAS2B,GAAT,EAAc;EAC/B,cAAIC,MAAM,GAAGD,GAAG,CAACpQ,MAAjB;EACA,cAAIsQ,UAAU,GAAG,EAAjB,CAF+B;;EAG/B,cAAIC,KAAK,GAAGH,GAAG,CAACjM,WAAJ,EAAZ;;EACA,eAAI,IAAI9D,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAGgQ,MAAnB,EAA2B,EAAEhQ,CAA7B;EAAgCiQ,YAAAA,UAAU,CAACjQ,CAAD,CAAV,GAAgBkQ,KAAK,CAACC,UAAN,CAAiBnQ,CAAjB,CAAhB;EAAhC;;EACA,iBAAOiQ,UAAP;EACD,SA3ea;EA4edG,QAAAA,uBAAuB,EAAE,iCAASzF,MAAT,EAAiB;EACxC,cAAIoD,SAAS,GAAGpD,MAAM,CAAChL,MAAvB;EACA,cAAI0Q,gBAAgB,GAAG,EAAvB;EAA2B,cAAIC,mBAAmB,GAAG,CAA1B;EAC3B,cAAIC,QAAQ,GAAG,KAAf;EACA,cAAIC,WAAW,GAAG,KAAlB;;EACA,eAAI,IAAIxQ,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAG+N,SAAnB,EAA8B,EAAE/N,CAAhC,EAAmC;EACjC,gBAAIyQ,UAAU,GAAG9F,MAAM,CAACwF,UAAP,CAAkBnQ,CAAlB,CAAjB;EACA,gBAAI0Q,OAAO,GAAGD,UAAU,IAAE,EAAZ,IAAgBA,UAAU,IAAE,EAA1C;EACA,gBAAIE,UAAU,GAAGD,OAAO,IAAID,UAAU,IAAE,EAAZ,IAAgBA,UAAU,IAAE,GAAvC,IAA8CA,UAAU,IAAE,EAAZ,IAAgBA,UAAU,IAAE,EAA3F;EACA,gBAAIG,WAAW,GAAGF,OAAO,IAAI,CAACH,QAAZ,IAAwB,CAACC,WAAzB,IAAwC,CAACG,UAA3D;EACAJ,YAAAA,QAAQ,GAAGG,OAAX;EACAF,YAAAA,WAAW,GAAGG,UAAd;EACA,gBAAGC,WAAH,EAAgBP,gBAAgB,CAACC,mBAAmB,EAApB,CAAhB,GAA0CtQ,CAA1C;EACjB;;EACD,iBAAOqQ,gBAAP;EACD,SA3fa;EA4fd/B,QAAAA,2BAA2B,EAAE,qCAAS3D,MAAT,EAAiB;EAC5C,cAAIoD,SAAS,GAAGpD,MAAM,CAAChL,MAAvB;EACA,cAAI0Q,gBAAgB,GAAGhG,SAAS,CAAC+F,uBAAV,CAAkCzF,MAAlC,CAAvB;EACA,cAAI8E,oBAAoB,GAAG,EAA3B,CAH4C;;EAI5C,cAAIoB,eAAe,GAAGR,gBAAgB,CAAC,CAAD,CAAtC;EACA,cAAIS,gBAAgB,GAAG,CAAvB;;EACA,eAAI,IAAI9Q,CAAC,GAAG,CAAZ,EAAeA,CAAC,GAAG+N,SAAnB,EAA8B,EAAE/N,CAAhC,EAAmC;EACjC,gBAAG6Q,eAAe,GAAG7Q,CAArB,EAAwB;EACtByP,cAAAA,oBAAoB,CAACzP,CAAD,CAApB,GAA0B6Q,eAA1B;EACD,aAFD,MAEO;EACLA,cAAAA,eAAe,GAAGR,gBAAgB,CAAC,EAAES,gBAAH,CAAlC;EACArB,cAAAA,oBAAoB,CAACzP,CAAD,CAApB,GAA0B6Q,eAAe,KAAG5X,SAAlB,GAA8B8U,SAA9B,GAA0C8C,eAApE;EACD;EACF;;EACD,iBAAOpB,oBAAP;EACD,SA3gBa;EA6gBdsB,QAAAA,OAAO,EAAEA,OA7gBK;EA8gBdC,QAAAA,GAAG,EAAEzG;EA9gBS,OAAhB;EAghBA,aAAOF,SAAP;EACD,KAnhBuB;EAqhBxB;;;EACA,QAAIiD,MAAM,GAAG,OAAO2D,eAAP,KAAmB,WAAnB,IAAkC,OAAOpH,MAAP,KAAkB,WAAjE,CAthBwB;EAwhBxB;;EACA,QAAI2E,aAAa,GAAG,IAAItM,GAAJ,EAApB;EACA,QAAIwM,mBAAmB,GAAG,IAAIxM,GAAJ,EAA1B;EACA,QAAIkJ,SAAS,GAAG,EAAhB;EAAoBA,IAAAA,SAAS,CAACyB,KAAV,GAAkB,CAAlB;EACpB,QAAIuC,aAAa,GAAG,EAApB;EAAwB,QAAIQ,aAAa,GAAG,EAApB;;EACxB,aAASmB,OAAT,GAAmB;EAAEvC,MAAAA,aAAa,CAAC0C,KAAd;EAAuBxC,MAAAA,mBAAmB,CAACwC,KAApB;EAA6B9B,MAAAA,aAAa,GAAG,EAAhB;EAAoBQ,MAAAA,aAAa,GAAG,EAAhB;EAAoB;;EACjH,aAAS/D,cAAT,CAAwB9J,CAAxB,EAA2B;EACzB,UAAIoP,GAAG,GAAG,CAAC,gBAAX;;EACA,WAAK,IAAInR,CAAC,GAAG+B,CAAC,CAACpC,MAAF,GAAW,CAAxB,EAA2BK,CAAC,IAAI,CAAhC,EAAmC,EAAEA,CAArC,EAAwC;EACtC,YAAIjD,MAAM,GAAGgF,CAAC,CAAC/B,CAAD,CAAd;EAAmB,YAAGjD,MAAM,KAAK,IAAd,EAAoB;EACvC,YAAIoP,KAAK,GAAGpP,MAAM,CAACoP,KAAnB;EACA,YAAGA,KAAK,GAAGgF,GAAX,EAAgBA,GAAG,GAAGhF,KAAN;EACjB;;EACD,UAAGgF,GAAG,KAAK,CAAC,gBAAZ,EAA8B,OAAO,IAAP;EAC9B,aAAOA,GAAP;EACD,KAviBuB;EA0iBxB;EACA;;;EACA,aAASjF,QAAT,CAAkBzR,GAAlB,EAAuB2W,IAAvB,EAA6B;EAC3B,UAAIC,GAAG,GAAG5W,GAAG,CAAC2W,IAAD,CAAb;EAAqB,UAAGC,GAAG,KAAKpY,SAAX,EAAsB,OAAOoY,GAAP;EAC3C,UAAIC,IAAI,GAAGF,IAAX;EACA,UAAG,CAACpF,KAAK,CAACuF,OAAN,CAAcH,IAAd,CAAJ,EAAyBE,IAAI,GAAGF,IAAI,CAACI,KAAL,CAAW,GAAX,CAAP;EACzB,UAAIC,GAAG,GAAGH,IAAI,CAAC3R,MAAf;EACA,UAAIK,CAAC,GAAG,CAAC,CAAT;;EACA,aAAOvF,GAAG,IAAK,EAAEuF,CAAF,GAAMyR,GAArB;EAA2BhX,QAAAA,GAAG,GAAGA,GAAG,CAAC6W,IAAI,CAACtR,CAAD,CAAL,CAAT;EAA3B;;EACA,aAAOvF,GAAP;EACD;;EAED,aAASmQ,KAAT,CAAe8G,CAAf,EAAkB;EAAE,aAAO,QAAOA,CAAP,MAAa,QAApB;EAA8B,KAtjB1B;EAwjBxB;;;EACA,QAAI1E,iBAAiB,GAAC,SAAlBA,iBAAkB,GAAU;EAAC,UAAItL,CAAC,GAAC,EAAN;EAAA,UAASiQ,CAAC,GAAC,CAAX;EAAA,UAAahQ,CAAC,GAAC,EAAf;;EAAkB,eAASJ,CAAT,GAAY;EAAC,aAAI,IAAII,CAAC,GAAC,CAAN,EAAQJ,CAAC,GAACG,CAAC,CAACC,CAAD,CAAX,EAAe2H,CAAC,GAAC,CAArB,EAAuBA,CAAC,GAACqI,CAAzB,GAA4B;EAAC,cAAIvI,CAAC,GAACE,CAAC,GAAC,CAAR;EAAU3H,UAAAA,CAAC,GAAC2H,CAAF,EAAIF,CAAC,GAACuI,CAAF,IAAKjQ,CAAC,CAAC0H,CAAD,CAAD,CAAK+C,KAAL,GAAWzK,CAAC,CAAC4H,CAAD,CAAD,CAAK6C,KAArB,KAA6BxK,CAAC,GAACyH,CAA/B,CAAJ,EAAsC1H,CAAC,CAACC,CAAC,GAAC,CAAF,IAAK,CAAN,CAAD,GAAUD,CAAC,CAACC,CAAD,CAAjD,EAAqD2H,CAAC,GAAC,KAAG3H,CAAC,IAAE,CAAN,CAAvD;EAAgE;;EAAA,aAAI,IAAII,CAAC,GAACJ,CAAC,GAAC,CAAF,IAAK,CAAf,EAAiBA,CAAC,GAAC,CAAF,IAAKJ,CAAC,CAAC4K,KAAF,GAAQzK,CAAC,CAACK,CAAD,CAAD,CAAKoK,KAAnC,EAAyCpK,CAAC,GAAC,CAACJ,CAAC,GAACI,CAAH,IAAM,CAAN,IAAS,CAApD;EAAsDL,UAAAA,CAAC,CAACC,CAAD,CAAD,GAAKD,CAAC,CAACK,CAAD,CAAN;EAAtD;;EAAgEL,QAAAA,CAAC,CAACC,CAAD,CAAD,GAAKJ,CAAL;EAAO;;EAAA,aAAOI,CAAC,CAAC0K,GAAF,GAAM,UAAS1K,CAAT,EAAW;EAAC,YAAIJ,CAAC,GAACoQ,CAAN;EAAQjQ,QAAAA,CAAC,CAACiQ,CAAC,EAAF,CAAD,GAAOhQ,CAAP;;EAAS,aAAI,IAAI2H,CAAC,GAAC/H,CAAC,GAAC,CAAF,IAAK,CAAf,EAAiBA,CAAC,GAAC,CAAF,IAAKI,CAAC,CAACwK,KAAF,GAAQzK,CAAC,CAAC4H,CAAD,CAAD,CAAK6C,KAAnC,EAAyC7C,CAAC,GAAC,CAAC/H,CAAC,GAAC+H,CAAH,IAAM,CAAN,IAAS,CAApD;EAAsD5H,UAAAA,CAAC,CAACH,CAAD,CAAD,GAAKG,CAAC,CAAC4H,CAAD,CAAN;EAAtD;;EAAgE5H,QAAAA,CAAC,CAACH,CAAD,CAAD,GAAKI,CAAL;EAAO,OAA1G,EAA2GA,CAAC,CAACiL,IAAF,GAAO,YAAU;EAAC,YAAG,MAAI+E,CAAP,EAAS;EAAC,cAAIhQ,CAAC,GAACD,CAAC,CAAC,CAAD,CAAP;EAAW,iBAAOA,CAAC,CAAC,CAAD,CAAD,GAAKA,CAAC,CAAC,EAAEiQ,CAAH,CAAN,EAAYpQ,CAAC,EAAb,EAAgBI,CAAvB;EAAyB;EAAC,OAA5K,EAA6KA,CAAC,CAAC2K,IAAF,GAAO,UAAS3K,CAAT,EAAW;EAAC,YAAG,MAAIgQ,CAAP,EAAS,OAAOjQ,CAAC,CAAC,CAAD,CAAR;EAAY,OAArN,EAAsNC,CAAC,CAAC4K,UAAF,GAAa,UAASoF,CAAT,EAAW;EAACjQ,QAAAA,CAAC,CAAC,CAAD,CAAD,GAAKiQ,CAAL,EAAOpQ,CAAC,EAAR;EAAW,OAA1P,EAA2PI,CAAlQ;EAAoQ,KAAlf;;EACA,QAAIyK,CAAC,GAAGY,iBAAiB,EAAzB,CA1jBwB;;EA4jBxB,WAAOzC,YAAY,EAAnB;EACC,GAjkBA;EAmkBD;EAEA;EAEA;EAEA;EAEA;;;;EC3lBA,SAASqH,WAAT,CAAqBC,GAArB,EAA0BC,GAA1B,EAA+B;EAC7B,MAAKA,GAAG,KAAK,KAAK,CAAlB,EAAsBA,GAAG,GAAG,EAAN;EACtB,MAAIC,QAAQ,GAAGD,GAAG,CAACC,QAAnB;;EAEA,MAAI,CAACF,GAAD,IAAQ,OAAOG,QAAP,KAAoB,WAAhC,EAA6C;EAAE;EAAS;;EAExD,MAAIC,IAAI,GAAGD,QAAQ,CAACC,IAAT,IAAiBD,QAAQ,CAACE,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,CAA5B;EACA,MAAIC,KAAK,GAAGH,QAAQ,CAACI,aAAT,CAAuB,OAAvB,CAAZ;EACAD,EAAAA,KAAK,CAACxX,IAAN,GAAa,UAAb;;EAEA,MAAIoX,QAAQ,KAAK,KAAjB,EAAwB;EACtB,QAAIE,IAAI,CAACI,UAAT,EAAqB;EACnBJ,MAAAA,IAAI,CAACK,YAAL,CAAkBH,KAAlB,EAAyBF,IAAI,CAACI,UAA9B;EACD,KAFD,MAEO;EACLJ,MAAAA,IAAI,CAACM,WAAL,CAAiBJ,KAAjB;EACD;EACF,GAND,MAMO;EACLF,IAAAA,IAAI,CAACM,WAAL,CAAiBJ,KAAjB;EACD;;EAED,MAAIA,KAAK,CAACK,UAAV,EAAsB;EACpBL,IAAAA,KAAK,CAACK,UAAN,CAAiBC,OAAjB,GAA2BZ,GAA3B;EACD,GAFD,MAEO;EACLM,IAAAA,KAAK,CAACI,WAAN,CAAkBP,QAAQ,CAACU,cAAT,CAAwBb,GAAxB,CAAlB;EACD;EACF;;;;;;;;;;;ECrBD,IAAM,MAAM,GAAG,SAAT,MAAS;EAAA,SAAMc,GAAN,k5CAEHC,QAAM,CAAC,MAFJ;EAAA,CAAf;;;;;;;;;;;;ECMA,IAAM,GAAG,GAAG,SAAN,GAAM,CAAC,KAAD,EAAoB;EAC9B,MAAQ,KAAR,GAAsC,KAAtC,CAAQ,KAAR;EAAA,MAAe,SAAf,GAAsC,KAAtC,CAAe,SAAf;EAAA,MAA0B,OAA1B,GAAsC,KAAtC,CAA0B,OAA1B;;EAEA,MAAM,cAAc,GAAG,SAAjB,cAAiB,GAAK;EAC1B,IAAA,OAAO,CAAC,KAAD,CAAP;EACD,GAFD;;EAIA,SAAOD,GAAP,qKAEeC,QAAM,CAAC,GAFtB,cAGM,SAAS,KAAK,KAAd,aACOA,QAAM,CAAC,SADd,mDAEI,EALV,0CAOc,cAPd,EASM,KATN;EAYD,CAnBD;;;;ECGA,IAAM,MAAM,GAAG,SAAT,MAAS,CAAC,KAAD,EAAuB;EACpC,MAAQ,cAAR,GAAqC,KAArC,CAAQ,cAAR;EAAA,MAAwB,QAAxB,GAAqC,KAArC,CAAwB,QAAxB;;EAEA,MAAI,CAAC,KAAK,CAAC,OAAN,CAAc,QAAd,CAAD,IAA4B,QAAQ,CAAC,MAAT,GAAkB,CAAlD,EAAqD;EACnD,UAAM,IAAI,KAAJ,CAAU,yCAAV,CAAN;EACD,GALmC;;;EAQpC,kBAAkCnM,CAAQ,CACxC,cAAc,IAAI,QAAQ,CAAC,CAAD,CAAR,CAAY,KAAZ,CAAkB,KADI,CAA1C;EAAA;EAAA,MAAO,SAAP;EAAA,MAAkB,YAAlB;;EAIA,MAAM,cAAc,GAAG,SAAjB,cAAiB,CAAC,KAAD,EAAkB;EACvC,IAAA,YAAY,CAAC,KAAD,CAAZ;EACD,GAFD;;EAIA,SAAOkM,GAAP,4PAEiBC,QAAM,CAAC,GAFxB,EAGQ,QAAQ,CAAC,GAAT,CAAa,UAAC,KAAD,EAAU;EACvB,QAAQ,KAAR,GAAkB,KAAK,CAAC,KAAxB,CAAQ,KAAR;EACA,WAAOD,GAAP,wPACK,GADL,EAEgB,SAFhB,EAGU,KAHV,EAIY,KAJZ,EAKc,cALd;EASD,GAXC,CAHR,EAiBQ,QAAQ,CAAC,GAAT,CAAa,UAAC,KAAD,EAAU;EACvB,QAAI,KAAK,CAAC,KAAN,CAAY,KAAZ,KAAsB,SAA1B,EAAqC,OAAO,SAAP;EACrC,WAAO,KAAK,CAAC,KAAN,CAAY,QAAnB;EACD,GAHC,CAjBR;EAwBD,CAxCD;;;;;;;;;;;;;;MCCa,MAAb;EAAA;;EAAA;;EACE,kBAAY,KAAZ,EAA8B;EAAA;;EAAA;;EAC5B,8BAAM,KAAN;;EAD4B,8DAOpB,UAAC,CAAD,EAAa;EACrB,UAAI,CAAC,CAAC,MAAF,YAAoB,gBAAxB,EAA0C;EACxC,YAAQ,KAAR,GAAkB,CAAC,CAAC,MAApB,CAAQ,KAAR;;EACA,cAAK,QAAL,CAAc;EAAE,UAAA,KAAK,EAAL;EAAF,SAAd;;EACA,cAAK,KAAL,CAAW,QAAX,CAAoB,KAApB;EACD;EACF,KAb6B;;EAE5B,UAAK,KAAL,GAAa;EACX,MAAA,KAAK,EAAE,MAAK,KAAL,CAAW,YAAX,IAA2B;EADvB,KAAb;EAF4B;EAK7B;;EANH;EAAA;EAAA,WAgBE,kBAAM;EACJ,aAAOA,GAAP,u9CACgBC,QAAM,CAAC,MADvB,EAGoB,KAAK,KAAL,CAAW,WAAX,IAA0B,WAH9C,EAIc,KAAK,KAAL,CAAW,KAJzB,EAKgB,KAAK,OALrB,EAOkBA,QAAM,CAAC,WAPzB;EAuBD;EAxCH;;EAAA;EAAA,EAA4BC,GAA5B;;ECdA;;;;EAIG;EACH,SAAS,4BAAT,CAAsC,MAAtC,EAAoD;EAClD,SAAO,KAAK,CAAC,IAAN,CAAW;EAAE,IAAA,MAAM,EAAN;EAAF,GAAX,EAAuB,UAAC,CAAD,EAAI,CAAJ,EAAS;EACrC,QAAI,CAAC,GAAG,EAAR,EAAY,kBAAW,CAAX;EACZ,qBAAU,CAAC,GAAG,CAAd;EACD,GAHM,CAAP;EAID;;EAaD,IAAM,OAAO,GAAG,SAAV,OAAU,CAAC,IAAD,EAAe;EAC7B,MAAM,SAAS,GAAG,CAChB;EAAE,IAAA,KAAK,EAAE,MAAT;EAAiB,IAAA,OAAO,EAAE;EAA1B,GADgB,EAEhB;EAAE,IAAA,KAAK,EAAE,OAAT;EAAkB,IAAA,OAAO,EAAE;EAA3B,GAFgB,EAGhB;EAAE,IAAA,KAAK,EAAE,KAAT;EAAgB,IAAA,OAAO,EAAE;EAAzB,GAHgB,EAIhB;EAAE,IAAA,KAAK,EAAE,MAAT;EAAiB,IAAA,OAAO,EAAE;EAA1B,GAJgB,EAKhB;EAAE,IAAA,KAAK,EAAE,QAAT;EAAmB,IAAA,OAAO,EAAE;EAA5B,GALgB,EAMhB;EAAE,IAAA,KAAK,EAAE,cAAT;EAAyB,IAAA,OAAO,EAAE;EAAlC,GANgB,CAAlB;EASA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAL,CAAW,CAAC,IAAI,CAAC,GAAL,KAAa,IAAI,CAAC,OAAL,EAAd,IAAgC,IAA3C,CAAhB;EACA,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAV,CAAe,UAAC,CAAD;EAAA,WAAO,CAAC,CAAC,OAAF,GAAY,OAAnB;EAAA,GAAf,CAAjB;;EACA,MAAI,QAAQ,KAAK,SAAjB,EAA4B;EAAE;EAC5B,QAAI,KAAK,GAAG,IAAI,CAAC,KAAL,CAAW,OAAO,GAAG,QAAQ,CAAC,OAA9B,CAAZ;EACA,QAAI,CAAC,MAAM,CAAC,SAAP,CAAiB,KAAjB,CAAL,EAA8B,KAAK,GAAG,CAAR;EAC9B,qBAAU,KAAK,GAAG,CAAR,GAAY,KAAZ,GAAoB,EAA9B,cAAoC,QAAQ,CAAC,KAA7C,SACE,KAAK,KAAK,CAAV,GAAc,GAAd,GAAoB,EADtB;EAGD;;EACD,qDAA4C,QAA5C;EACD,CApBD;;;;;;;;;;;ECbA;;;EAGG;;EACH,IAAM,MAAM,GAAG,SAAT,MAAS,CAAC,KAAD,EAAuB;EACpC,MAAQ,EAAR,GAA2C,KAA3C,CAAQ,EAAR;EAAA,MAAmB,SAAnB,GAA2C,KAA3C,CAAY,KAAZ;EAAA,MAA8B,QAA9B,GAA2C,KAA3C,CAA8B,QAA9B;;EAEA,MAAM,YAAY,GAAG,SAAf,YAAe,GAAK;EACxB,IAAA,QAAQ,CAAC,CAAC,SAAF,CAAR;EACD,GAFD;;EAIA,SAAOF,GAAP,6PACeC,QAAM,CAAC,MADtB,YAEoBA,QAAM,CAAC,KAF3B,cAEoC,SAAS,GAAGA,QAAM,CAAC,OAAV,GAAoB,EAFjE,QAGmB,EAHnB,YAGkC,SAAS,GAAGA,QAAM,CAAC,OAAV,GAAoB,EAH/D,QAIkC,EAJlC,EAIgD,YAJhD;EAQD,CAfD;;;;;;;;;;;;;;;;ECmBM,SAAU,QAAV,CAAmB,KAAnB,EAAmC;EACvC,MAAM,IAAI,GAAGlL,CAAM,CAAyB,IAAzB,CAAnB;EAEA,MAAQ,QAAR,GAA6B,KAA7B,CAAQ,QAAR;EAAA,MAAkB,MAAlB,GAA6B,KAA7B,CAAkB,MAAlB;EAEA,SAAOiL,GAAP,kOAEgBC,QAAM,CAAC,aAAD,CAFtB,cAGM,QAAQ,KAAK,KAAb,GACIA,QAAM,CAAC,kBAAD,CADV,GAEIA,QAAM,CAAC,qBAAD,CALhB,uCAQS;EACD,IAAA,IAAI,EAAE,KAAK,CAAC,kBAAN,CAAyB,IAAzB,GAAgC,KAAK,CAAC,gBAAN,CAAuB;EAD5D,GART,GAWU,QAAQ,KAAK,KAAb,GACA;EACE,IAAA,MAAM,EACJ,KAAK,CAAC,gBAAN,CAAuB,MAAvB,GACA,KAAK,CAAC,kBAAN,CAAyB,GADzB,GAEA,KAAK,CAAC,gBAAN,CAAuB,GAFvB,GAGA,CAHA,GAIA;EANJ,GADA,GASA;EACE,IAAA,GAAG,EACD,KAAK,CAAC,gBAAN,CAAuB,MAAvB,GACA,KAAK,CAAC,kBAAN,CAAyB,GADzB,GAEA,KAAK,CAAC,gBAAN,CAAuB,GAFvB,GAGA,CAHA,GAIA;EANJ,GApBV,GA8BiBA,QAAM,CAAC,sBAAD,CA9BvB,EA8BuD,IA9BvD,EA+BQ,KAAK,CAAC,QAAN,GAAiB,KAAK,CAAC,QAAN,CAAe,KAAK,CAAC,OAArB,CAAjB,GAAiD,KAAK,CAAC,OA/B/D;EAoCD;EAEM,IAAM,IAAI,GAAG,SAAP,IAAO,CAAC,KAAD,EAAwB;EAC1C,wBAAqE,KAArE,CAAQ,QAAR;EAAA,MAAQ,QAAR,gCAAmB,QAAnB;EAAA,yBAAqE,KAArE,CAA6B,SAA7B;EAAA,MAA6B,SAA7B,iCAAyC,WAAzC;EAAA,sBAAqE,KAArE,CAAsD,MAAtD;EAAA,MAAsD,MAAtD,8BAA+D,CAA/D;;EACA,kBAA8BnM,CAAQ,CAAS,EAAT,CAAtC;EAAA;EAAA,MAAO,OAAP;EAAA,MAAgB,UAAhB;;EACA,mBAGIA,CAAQ,CAAwB,IAAxB,CAHZ;EAAA;EAAA,MACE,gBADF;EAAA,MAEE,mBAFF;;EAIA,mBAGIA,CAAQ,CAAoB,IAApB,CAHZ;EAAA;EAAA,MACE,kBADF;EAAA,MAEE,qBAFF;;EAKA,MAAM,WAAW,GAAGuB,CAAW,CAC7B,UAAC,IAAD,EAAgC;EAC9B,IAAA,mBAAmB,CAAC,IAAD,CAAnB;;EACA,QAAI,gBAAJ,EAAsB;EACpB,MAAA,gBAAgB,CAAC,gBAAjB,CAAkC,WAAlC,EAA+C,UAAC,CAAD,EAAM;EACnD,YAAI,CAAC,CAAC,MAAF,YAAoB,OAApB,IAA+B,CAAC,CAAC,MAAF,CAAS,YAAT,CAAsB,SAAtB,CAAnC,EAAqE;EACnE,UAAA,UAAU,CAAC,CAAC,CAAC,MAAF,CAAS,YAAT,CAAsB,SAAtB,KAAoC,EAArC,CAAV;EACA,UAAA,qBAAqB,CAAC,CAAC,CAAC,MAAF,CAAS,qBAAT,EAAD,CAArB;EACD;EACF,OALD;EAMA,MAAA,gBAAgB,CAAC,gBAAjB,CAAkC,UAAlC,EAA8C,UAAC,CAAD,EAAM;EAClD,YAAI,CAAC,CAAC,MAAF,YAAoB,OAApB,IAA+B,CAAC,CAAC,MAAF,CAAS,YAAT,CAAsB,SAAtB,CAAnC,EAAqE;EACnE,UAAA,UAAU,CAAC,EAAD,CAAV;EACA,UAAA,qBAAqB,CAAC,IAAD,CAArB;EACD;EACF,OALD;EAMA,UAAI,KAAK,CAAC,cAAV,EACE,gBAAgB,CAAC,gBAAjB,CAAkC,OAAlC,EAA2C,YAAK;EAC9C,QAAA,UAAU,CAAC,EAAD,CAAV;EACA,QAAA,qBAAqB,CAAC,IAAD,CAArB;EACD,OAHD;EAIH;EACF,GAtB4B,EAuB7B,CAAC,gBAAD,CAvB6B,CAA/B;EA0BA,SAAO2K,GAAP,qKACa,WADb,EAEM,OAAO,IACT,gBADE,IAEF,kBAFE,IAGFA,GAHE,qPAGO,QAHP,EAIU,OAJV,EAKW,QALX,EAMS,MANT,EAOW,KAAK,CAAC,QAPjB,EAQmB,gBARnB,aAQmB,gBARnB,uBAQmB,gBAAgB,CAAE,qBAAlB,EARnB,EASqB,kBATrB,CAFN,EAaM,KAAK,CAAC,QAbZ;EAgBD,CAtDM;;ECvED,SAAU,iBAAV,CACJ,GADI,EAEJ,OAFI,EAE8B;EAElC,EAAAtL,CAAS,CAAC,YAAK;EACb,QAAM,QAAQ,GAAG,SAAX,QAAW,CAAC,KAAD,EAAoB;EACnC,UAAM,EAAE,GAAG,GAAH,aAAG,GAAH,uBAAG,GAAG,CAAE,OAAhB,CADmC;;EAInC,UAAI,CAAC,EAAD,IAAO,EAAE,CAAC,QAAH,CAAY,KAAK,CAAC,MAAlB,CAAX,EAA8C;EAC5C;EACD;;EAED,MAAA,OAAO,CAAC,KAAD,CAAP;EACD,KATD;;EAWA,IAAA,QAAQ,CAAC,gBAAT,cAAuC,QAAvC;EACA,IAAA,QAAQ,CAAC,gBAAT,eAAwC,QAAxC;EAEA,WAAO,YAAK;EACV,MAAA,QAAQ,CAAC,mBAAT,cAA0C,QAA1C;EACA,MAAA,QAAQ,CAAC,mBAAT,eAA2C,QAA3C;EACD,KAHD,CAfa;EAqBd,GArBQ,EAqBN,CAAC,GAAD,EAAM,OAAN,CArBM,CAAT;EAsBD;;;;;;;;;;;;;;;ECfD,IAAM,aAAa,GAAG,SAAhB,aAAgB,CAAC,KAAD,EAA8B;EAClD,uBAAsD,KAAtD,CAAQ,OAAR;EAAA,MAAQ,OAAR,+BAAkB,EAAlB;EAAA,8BAAsD,KAAtD,CAAsB,cAAtB;EAAA,MAAsB,cAAtB,sCAAuC;EAAA,WAAM,IAAN;EAAA,GAAvC;EAEA,MAAM,QAAQ,GAAGK,CAAM,EAAvB;;EAEA,kBAAwBjB,CAAQ,CAAC,KAAD,CAAhC;EAAA;EAAA,MAAO,IAAP;EAAA,MAAa,OAAb;;EAEA,MAAM,WAAW,GAAGuB,CAAW,CAAC;EAAA,WAAM,OAAO,CAAC,KAAD,CAAb;EAAA,GAAD,EAAuB,EAAvB,CAA/B;EAEA,EAAA,iBAAiB,CAAC,QAAD,EAAW,WAAX,CAAjB;;EAEA,MAAM,OAAO,GAAG,SAAV,OAAU,CAAC,MAAD,EAAmB;EACjC,IAAA,OAAO,CAAC,KAAD,CAAP;EACA,IAAA,cAAc,CAAC,MAAD,CAAd;EACD,GAHD;;EAKA,SAAO2K,GAAP,kzCACa,QADb,EAC+BC,QAAM,CAAC,aADtC,EAGcA,QAAM,CAAC,OAHrB,EAIgB,UAAC,CAAD,EAAkB;EAC1B,IAAA,CAAC,CAAC,eAAF;EACA,IAAA,OAAO,CAAC,UAAC,IAAD;EAAA,aAAU,CAAC,IAAX;EAAA,KAAD,CAAP;EACD,GAPP,EAoCkBA,QAAM,CAAC,KApCzB,EAoCkC,IAAI,GAAGA,QAAM,CAAC,IAAV,GAAiB,EApCvD,EAqCmBA,QAAM,CAAC,UArC1B,EAsCU,OAAO,CAAC,GAAR,CACA,UAAC,EAAD;EAAA,WACED,GADF,qJACoBC,QAAM,CAAC,MAD3B,EAC6C;EAAA,aAAM,OAAO,CAAC,EAAD,CAAb;EAAA,KAD7C,EAEM,EAAE,CAAC,KAFT;EAAA,GADA,CAtCV;EAgDD,CAhED;;;;;;;;;;;ECRA,IAAM,SAAS,GAAG,SAAZ,SAAY,CAAC,KAAD;EAAA,SAA4CD,GAA5C,kTAEN,KAAK,CAAC,IAFA,EAGL,KAAK,CAAC,IAHD,EAIC,KAAK,CAAC,IAJP,EAIe,KAAK,CAAC,IAJrB,EAKP,KAAK,CAAC,KALC,EASN,KAAK,CAAC,IAAN,GAAa,CATP,EAUP,KAAK,CAAC,IAAN,GAAa,CAVN,EAWR,KAAK,CAAC,IAAN,GAAa,CAXL,EAYL,KAAK,CAAC,KAZD;EAAA,CAAlB;;EAiBA,IAAM,cAAc,GAAG,SAAjB,cAAiB,CAAC,KAAD,EAA+B;EACpD,oBAAqC,KAArC,CAAQ,IAAR;EAAA,MAAQ,IAAR,4BAAe,CAAf;EAAA,qBAAqC,KAArC,CAAkB,KAAlB;EAAA,MAAkB,KAAlB,6BAA0B,MAA1B;EAEA,SAAOA,GAAP,iOACeC,QAAM,CAAC,MADtB,EAEO,SAFP,EAEyB,IAFzB,EAEuC,KAFvC,EAGO,SAHP,EAGyB,IAHzB,EAGuC,KAHvC,EAIO,SAJP,EAIyB,IAJzB,EAIuC,KAJvC;EAOD,CAVD;;;;ECvBA,IAAM,OAAO,GAAG,SAAV,OAAU;EAAA,SAAMD,GAAN;EAAA,CAAhB;;EAkBA,IAAM,IAAI,GAAG,SAAP,IAAO;EAAA,SAAMA,GAAN;EAAA,CAAb;;;;;;;;;;;;;;;;;;;ECMA,IAAM,cAAc,GAAG,SAAjB,cAAiB,CAAC,KAAD,EAA+B;EACpD,MACE,EADF,GAaI,KAbJ,CACE,EADF;EAAA,MAEE,IAFF,GAaI,KAbJ,CAEE,IAFF;EAAA,MAGE,OAHF,GAaI,KAbJ,CAGE,OAHF;EAAA,MAIE,eAJF,GAaI,KAbJ,CAIE,eAJF;EAAA,MAKE,cALF,GAaI,KAbJ,CAKE,cALF;EAAA,MAME,IANF,GAaI,KAbJ,CAME,IANF;EAAA,MAOE,eAPF,GAaI,KAbJ,CAOE,eAPF;EAAA,MAQE,iBARF,GAaI,KAbJ,CAQE,iBARF;EAAA,uBAaI,KAbJ,CASE,OATF;EAAA,MASE,OATF,+BASY,KATZ;EAAA,MAUE,MAVF,GAaI,KAbJ,CAUE,MAVF;EAAA,MAWE,QAXF,GAaI,KAbJ,CAWE,QAXF;EAAA,MAYE,QAZF,GAaI,KAbJ,CAYE,QAZF;;EAeA,MAAM,kBAAkB,GAAG,SAArB,kBAAqB,CAAC,MAAD,EAA0C;EACnE,YAAQ,MAAM,CAAC,EAAf;EACE,WAAK,MAAL;EACE,QAAA,MAAM;EACN;;EACF,WAAK,QAAL;EACE,QAAA,QAAQ;EACR;EANJ;EAUD,GAXD;;EAaA,SAAOA,GAAP,yqBACK,IADL,EAC4B,KAD5B,EAC8D,CAD9D,EAEkBC,QAAM,CAAC,cAFzB,EAGmBA,QAAM,CAAC,IAH1B,EAIqBA,QAAM,CAAC,eAJ5B,EAKY,eAAe,KAAK,MAApB,GACED,GADF,oFACU,IADV,IAEEA,GAFF,oFAEU,OAFV,CALZ,EASwB,OATxB,EASoDC,QAAM,CAAC,IAT3D,EAUqBA,QAAM,CAAC,IAV5B,EAUoC,IAVpC,EAYmBA,QAAM,CAAC,KAZ1B,EAaqBA,QAAM,CAAC,IAb5B,EAaoC,IAAI,GAAG,CAAP,GAAW,IAAX,GAAkB,CAbtD,EAcqBA,QAAM,CAAC,IAd5B,EAgBwB,eAAe,GACvB,IAAI,IAAJ,CAAS,eAAT,EAA0B,cAA1B,EADuB,GAEvB,IAlBhB,EAoBc,eAAe,GACb,OAAO,CAAC,IAAI,IAAJ,WAAY,eAAZ,cAA+B,iBAA/B,EAAD,CADM,GAEb,WAtBhB,EAyBU,OAAO,GACLD,GADK,2JACaC,QAAM,CAAC,MADpB,EAEA,cAFA,IAILD,GAJK,kbAKUC,QAAM,CAAC,QALjB,EAME,MANF,EAMe,EANf,EAM2B,cAAc,KAAK,QAN9C,EAOY,UAAC,GAAD;EAAA,WAAkB,QAAQ,CAAC,EAAD,EAAK,GAAL,CAA1B;EAAA,GAPZ,EAUI,aAVJ,EAWa,CACR;EACE,IAAA,EAAE,EAAE,MADN;EAEE,IAAA,KAAK,EAAE;EAFT,GADQ,EAKR;EACE,IAAA,EAAE,EAAE,QADN;EAEE,IAAA,KAAK,EAAE;EAFT,GALQ,CAXb,EAqBoB,UAAC,MAAD;EAAA,WAGX,kBAAkB,CAAC,MAAD,CAHP;EAAA,GArBpB,CAzBjB;EA0DD,CAvFD;;;;;;;;;;;;;ECtBA,IAAM,kBAAkB,GAAG,SAArB,kBAAqB,CAAC,KAAD,EAAqC;EAC9D,MAAQ,SAAR,GAAsB,KAAtB,CAAQ,SAAR;EACA,SAAOD,GAAP,whCAEaC,QAAM,CAAC,kBAFpB,EAIiBA,QAAM,CAAC,IAJxB,EAOiBA,QAAM,CAAC,KAPxB,EAUmBA,QAAM,CAAC,OAV1B,EAU6C,SAV7C;EA2BD,CA7BD;;;;;;;;;;;;;;;;;;;;;;;MCkBM;;;;;;;;;;;;;;;;0EAGwB,UAAC,aAAD,EAAwB,QAAxB,EAA6C;EACvE,YAAK,KAAL,CAAW,0BAAX,CAAsC;EACpC,QAAA,aAAa,EAAb,aADoC;EAEpC,QAAA,SAAS,EAAE,IAFyB;EAGpC,QAAA,EAAE,EAAE;EAHgC,OAAtC;;EAKA,YAAK,KAAL,CAAW,UAAX,CACG,iBADH,CACqB,aADrB,EACoC,QADpC,EAEG,IAFH,CAEQ,YAAK;EACT,cAAK,KAAL,CAAW,0BAAX,CAAsC;EACpC,UAAA,aAAa,EAAb,aADoC;EAEpC,UAAA,SAAS,EAAE,KAFyB;EAGpC,UAAA,OAAO,EAAE,QAH2B;EAIpC,UAAA,EAAE,EAAE;EAJgC,SAAtC;EAMD,OATH,EAUG,KAVH,CAUS,UAAC,GAAD;EAAA,eAAS,OAAO,CAAC,KAAR,CAAc,GAAd,CAAT;EAAA,OAVT,EAWG,OAXH,CAWW,YAAK;EACZ,cAAK,KAAL,CAAW,0BAAX,CAAsC;EACpC,UAAA,aAAa,EAAb,aADoC;EAEpC,UAAA,SAAS,EAAE,KAFyB;EAGpC,UAAA,EAAE,EAAE;EAHgC,SAAtC;EAKD,OAjBH;EAkBD;;4EAE6B,YAAK;EACjC,UAAI,MAAK,KAAL,CAAW,WAAX,CAAuB,YAA3B,EAAyC;EACvC,cAAK,KAAL,CAAW,aAAX,CAAyB;EACvB,UAAA,oBAAoB,EAAE;EADC,SAAzB;;EAGA,cAAK,OAAL,CAAa,UAAb,CACG,kBADH,CACsB,MAAK,KAAL,CAAW,WAAX,CAAuB,YAD7C,EAEG,IAFH,CAEQ,UAAC,GAAD,EAAwB;EAC5B,gBAAK,KAAL,CAAW,aAAX,CAAyB;EACvB,YAAA,YAAY,EAAE,GAAF,aAAE,GAAF,uBAAE,GAAG,CAAE,YADI;EAEvB,YAAA,oBAAoB,EAAE;EAFC,WAAzB;EAID,SAPH;EAQD;EACF;;4EAE6B,UAAC,aAAD,EAA0B;EACtD,YAAK,KAAL,CAAW,0BAAX,CAAsC;EACpC,QAAA,aAAa,EAAb,aADoC;EAEpC,QAAA,SAAS,EAAE,IAFyB;EAGpC,QAAA,EAAE,EAAE;EAHgC,OAAtC;;EAKA,YAAK,KAAL,CAAW,UAAX,CACG,iBADH,CACqB,aADrB,EAEG,IAFH,CAEQ,UAAC,GAAD,EAAQ;EACZ,QAAA,OAAO,CAAC,IAAR,CAAa,GAAb;;EACA,cAAK,KAAL,CAAW,0BAAX,CAAsC;EACpC,UAAA,aAAa,EAAb,aADoC;EAEpC,UAAA,SAAS,EAAE,KAFyB;EAGpC,UAAA,EAAE,EAAE;EAHgC,SAAtC;EAKD,OATH,EAUG,KAVH,CAUS,UAAC,GAAD;EAAA,eAAS,OAAO,CAAC,KAAR,CAAc,GAAd,CAAT;EAAA,OAVT;EAWD;;0EAE2B,UAAC,WAAD,EAA6B;EACvD,UAAQ,UAAR,GAAuB,MAAK,KAA5B,CAAQ,UAAR;;EACA,YAAK,KAAL,CAAW,aAAX,qDACK;EACD,QAAA,mBAAmB,EAAE,WAAW,CAAC,EADhC;EAED,QAAA,WAAW,sCACN,MAAK,KAAL,CAAW,WADL;EAET,UAAA,WAAW,EAAE,IAFJ;EAGT,UAAA,UAAU,EAAE,WAAW,CAAC;EAHf;EAFV,OADL,GASM,UAAU,KAAK,uBAAuB,CAAC,KAAvC,IAAgD;EAClD,QAAA,cAAc,EAAE;EADkC,OATtD,GAYM,UAAU,KAAK,uBAAuB,CAAC,MAAvC,IAAiD;EACnD,QAAA,eAAe,EAAE;EADkC,OAZvD;EAgBD;;;;;;;aAED,kBAAM;EAAA;;EACJ,aAAOD,GAAP,4FACI,KAAK,KAAL,CAAW,oBAAX,GACEA,GADF,0GACoBR,OAAK,CAAC,MAD1B,EACqC,MADrC,IAEEQ,GAFF,oSAIQ,KAAK,KAAL,CAAW,YAAX,CAAwB,MAAxB,GAAiC,CAAjC,IACFA,GADE,qIAEG,kBAFH,EAEmC,KAAK,mBAFxC,CAJR,EAQmBR,OAAK,CAAC,YARzB,EASU,KAAK,KAAL,CAAW,YAAX,CAAwB,MAAxB,GAAiC,CAAjC,IACFQ,GADE,iHACgBR,OAAK,CAAC,cADtB,CATV,EAWU,KAAK,KAAL,CAAW,YAAX,CAAwB,GAAxB,CACA,UAAC,EAAD;EAAA;;EAAA,eAAQQ,GAAR,0lBACK,cADL,EAES,EAAE,CAAC,EAFZ,EAGW,EAAE,CAAC,IAHd,EAIc,EAAE,CAAC,QAJjB,EAKsB,EAAE,CAAC,cAAH,CAAkB,MALxC,EAMqB,EAAE,CAAC,MANxB,EAOW,EAAE,CAAC,UAPd,2BAQsB,EAAE,CAAC,cAAH,CAAkB,iBARxC,0DAQsB,sBACd,IATR,4BAUwB,EAAE,CAAC,cAAH,CAAkB,iBAV1C,2DAUwB,uBAChB,QAXR,EAYc,EAAE,CAAC,OAZjB,EAaa;EAAA,iBAAM,MAAI,CAAC,iBAAL,CAAuB,EAAvB,CAAN;EAAA,SAbb,EAce;EAAA,iBAAM,MAAI,CAAC,mBAAL,CAAyB,EAAE,CAAC,EAA5B,CAAN;EAAA,SAdf,EAee,MAAI,CAAC,iBAfpB;EAAA,OADA,CAXV,CADJ;EAoCD;;;;IAzH4BE;;kBAAzB,iCACiB;;AA2HvB,2BAAeC,cAAO,CACpB,CAAC,sBAAD,EAAyB,aAAzB,CADoB,EAEpB,eAFoB,CAAP,CAGb,gBAHa,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCpIM;;;;;;;;;;;;;aACJ,kBAAM;EACJ,aAAOH,GAAP,mTAEc,KAAK,KAAL,CAAW,WAFzB,EAGa,KAAK,KAAL,CAAW,MAAX,KAAsB,0BAA0B,CAAC,IAAjD,GACL,KAAK,CAAC,kBADD,GAEL,KAAK,CAAC,kBALd,EAKoC,8BALpC,EAQiB,KAAK,KAAL,CAAW,MAR5B,EASiB,KAAK,CAAC,IATvB,EAS+B,KAAK,KAAL,CAAW,IAT1C,EAUiB,KAAK,CAAC,WAVvB,EAUsC,KAAK,KAAL,CAAW,WAVjD,EAYM,KAAK,KAAL,CAAW,IAAX,CAAgB,MAAhB,GAAyB,CAAzB,IACFA,GADE,sJAEa,KAAK,CAAC,IAFnB,EAGI,KAAK,KAAL,CAAW,IAAX,CACC,KADD,CACO,GADP,EAEC,GAFD,CAEK,UAAC,EAAD;EAAA,eAAQA,GAAR,wGAA2B,KAAK,CAAC,GAAjC,EAAwC,EAAxC;EAAA,OAFL,CAHJ,CAZN;EAsBD;;;;IAxBoBE;;;;;;;;MC0BjB;;;;;EAKJ,yBAAY,KAAZ,EAAwB;EAAA;;EAAA;;EAAA;;EACtB,8BAAM,KAAN;;EADsB;;EAAA,sEAwDN,UAAC,KAAD,EAAkB;EAClC,UAAI,KAAJ,EAAW;EACT,cAAK,QAAL,CAAc;EACZ,UAAA,KAAK,EAAL,KADY;EAEZ,UAAA,iBAAiB,EAAE,SAAS,CACzB,EADgB,CACb,KADa,EACN,MAAK,KAAL,CAAW,SADL,EACgB;EAC/B,YAAA,IAAI,EAAE,CAAC,MAAD,EAAS,mBAAT,CADyB;EAE/B,YAAA,OAAO,EAAE,iBAAC,UAAD,EAAe;EACtB,kBAAM,UAAU,GAAG,UAAU,CAAC,CAAD,CAA7B;EACA,kBAAM,UAAU,GAAG,UAAU,CAAC,CAAD,CAA7B,CAFsB;;EAItB,kBAAM,KAAK,GAAG,IAAI,CAAC,GAAL,CACZ,UAAU,GAAG,UAAU,CAAC,KAAX,GAAmB,GAAtB,GAA4B,CAAC,QAD3B,EAEZ,UAAU,GAAG,UAAU,CAAC,KAAd,GAAsB,CAAC,QAFrB,CAAd;EAIA,qBAAO,KAAP;EACD;EAX8B,WADhB,EAchB,GAdgB,CAcZ,UAAC,EAAD;EAAA,mBAAQ,EAAE,CAAC,GAAX;EAAA,WAdY;EAFP,SAAd;EAkBD,OAnBD,MAmBO;EACL,cAAK,QAAL,CAAc;EAAE,UAAA,iBAAiB,EAAE,MAAK,KAAL,CAAW;EAAhC,SAAd;EACD;EACF,KA/EuB;;EAAA,sEAiFN,UAAC,UAAD,EAAuB;EACvC,YAAK,KAAL,CAAW,cAAX,CAA0B;EACxB,QAAA,UAAU,EAAV;EADwB,OAA1B;;EAGA,UAAI,MAAK,KAAL,CAAW,eAAf,EAAgC;EAC9B,cAAK,KAAL,CAAW,eAAX,CAA2B,UAA3B;EACD;EACF,KAxFuB;;EAEtB,UAAK,KAAL,GAAa;EACX,MAAA,OAAO,EAAE,KADE;EAEX,MAAA,iBAAiB,EAAE,EAFR;EAGX,MAAA,KAAK,EAAE,IAHI;EAIX,MAAA,KAAK,EAAE;EAJI,KAAb;EAMA,UAAK,iBAAL,GAAyB,gCAAK,KAAL,CAAW,gBAAX,gFAA6B,QAA7B,KAAyC,QAAlE;EARsB;EASvB;;;;;aAUD,6BAAiB;EAAA;;EACf,WAAK,QAAL,CAAc;EAAE,QAAA,OAAO,EAAE;EAAX,OAAd;EACA,WAAK,KAAL,CAAW,aAAX,CAAyB;EACvB,QAAA,oBAAoB,EAAE,IADC;EAEvB,QAAA,iBAAiB,EAAE;EAFI,OAAzB;EAIA,WAAK,KAAL,CAAW,UAAX,CACG,kBADH,CACsB,KAAK,KAAL,CAAW,YADjC,EAEG,IAFH,CAEQ,UAAC,IAAD,EAAS;EACb,YAAI,IAAJ,EAAU;EACR,cAAI,IAAI,CAAC,IAAL,CAAU,MAAV,KAAqB,CAAzB,EAA4B;EAC1B,YAAA,MAAI,CAAC,QAAL,CAAc;EACZ,cAAA,OAAO,EAAE,KADG;EAEZ,cAAA,KAAK,EAAE;EAFK,aAAd;;EAIA;EACD;;EACD,UAAA,MAAI,CAAC,KAAL,CAAW,WAAX,CAAuB,IAAvB;;EACA,UAAA,MAAI,CAAC,OAAL,CAAa,YAAb,CAA0B,IAA1B,CAA+B,gBAA/B,EAAiD;EAC/C,YAAA,KAAK,EAAE,IAAI,CAAC;EADmC,WAAjD;;EAGA,UAAA,MAAI,CAAC,OAAL,CAAa,YAAb,CAA0B,IAA1B,CAA+B,uBAA/B,EAAwD;EACtD,YAAA,YAAY,EAAE,IAAI,CAAC;EADmC,WAAxD;;EAGA,UAAA,MAAI,CAAC,QAAL,CAAc;EACZ,YAAA,OAAO,EAAE,KADG;EAEZ,YAAA,iBAAiB,EAAE,IAAI,CAAC;EAFZ,WAAd;EAID,SAnBD,MAmBO;EACL,UAAA,MAAI,CAAC,QAAL,CAAc;EACZ,YAAA,OAAO,EAAE,KADG;EAEZ,YAAA,KAAK,EAAE;EAFK,WAAd;EAID;EACF,OA5BH;EA6BD;;;aAoCD,kBAAM;EAAA;EAAA;EAAA;;EACJ,aAAOF,GAAP,yHAEM,KAAK,KAAL,CAAW,OAAX,GACEA,GADF,2GACoBR,OAAK,CAAC,MAD1B,EACqC,MADrC,IAEEQ,GAFF,8GAGM,KAAK,KAAL,CAAW,KAAX,GACEA,GADF,gFACS,KAAK,KAAL,CAAW,KADpB,IAEEA,GAFF,k9BAGO,MAHP,EAKgB,+BAAK,KAAL,CAAW,UAAX,gFAAuB,mBAAvB,KACR,iBANR,EAQqBR,OAAK,CAAC,MAR3B,EASa,MATb,EAU0B,KAAK,KAAL,CAAW,iBAAX,CAA6B,MAVvD,EAWuB,UAAC,GAAD;EAAA,eACT,MAAI,CAAC,eAAL,CAAqB,GAArB,CADS;EAAA,OAXvB,EAiBmB,KAAK,KAAL,CAAW,MAAX,KACT,0BAA0B,CAAC,IADlB,GAELA,OAAK,CAAC,aAFD,GAGLA,OAAK,CAAC,aApBpB,EAoBqC,+BApBrC,EAsBY,KAAK,KAAL,CAAW,iBAAX,CAA6B,GAA7B,CACA,UAAC,QAAD;EAAA,eACEQ,GADF,4fAEO,MAAI,CAAC,iBAFZ,EAGa,QAAQ,CAAC,IAHtB,EAIoB,QAAQ,CAAC,WAJ7B,EAKe,MAAI,CAAC,KAAL,CAAW,MAL1B,EAMa,QAAQ,CAAC,YAAT,CAAsB,IANnC,EAOe,QAAQ,CAAC,YAAT,CAAsB,QAPrC,EAQoB;EAAA,iBACZ,MAAI,CAAC,eAAL,CAAqB,QAAQ,CAAC,EAA9B,CADY;EAAA,SARpB;EAAA,OADA,CAtBZ,EAsCU,KAAK,KAAL,CAAW,iBAAX,CAA6B,MAA7B,GAAsC,CAAtC,IACFA,GADE,4JACgBR,OAAK,CAAC,OADtB,EAEE,KAAK,KAAL,CAAW,KAAX,GACE,sCADF,GAEE,wCAJJ,CAtCV,EA8CgB,gCAAK,KAAL,CAAW,UAAX,kFAAuB,YAAvB,KACR,UA/CR,EAiDWY,kBAjDX,EAiD0C,KAAK,KAAL,CAAW,UAjDrD,EAkDuB,KAAK,KAAL,CAAW,YAlDlC,EAmDqB,KAAK,KAAL,CAAW,UAnDhC,CAHN,CAFN;EA+DD;;;aA9ID,qBAA4C,KAA5C,EAA6D;EAC3D,MAAA,KAAK,CAAC,cAAN;;EACA,UAAI,KAAK,CAAC,MAAN,YAAwB,WAA5B,EAAyC;EACvC,QAAA,OAAO,CAAC,IAAR,CAAa,KAAK,CAAC,MAAN,CAAa,SAA1B;EACD;EACF;;;;IAtByBF;;kBAAtB,8BACiB;;AAiKvB,wBAAeC,cAAO,CACpB,CAAC,YAAD,EAAe,cAAf,EAA+B,WAA/B,EAA4C,kBAA5C,CADoB,EAEpB,eAFoB,CAAP,CAGb,aAHa,CAAf;;;;;;;;;;;;;;;;;;;;;MChMM;;;;;;;;;;;;;aACJ,kBAAM;EACJ,wBAAuC,KAAK,KAA5C;EAAA,UAAQ,MAAR,eAAQ,MAAR;EAAA,UAAgB,kBAAhB,eAAgB,kBAAhB;EACA,aAAOH,GAAP,+iBAEeC,QAAM,CAAC,KAFtB,cAE+B,MAAM,aAAMA,QAAM,CAAC,IAAb,IAAsB,EAF3D,GAOiBA,QAAM,CAAC,cAPxB,EAQmBA,QAAM,CAAC,KAR1B,EAUoBA,QAAM,CAAC,IAV3B,YAamBA,QAAM,CAAC,WAb1B,cAayC,MAAM,aAAMA,QAAM,CAAC,IAAb,IAAsB,EAbrE,GAeqBA,QAAM,CAAC,OAf5B,EAgBY,kBAAkB,GAChBD,GADgB,uJACK,KAAK,KAAL,CAAW,OADhB,EAEX,kBAFW,IAIhBA,GAJgB,6/BAKC,KAAK,KAAL,CAAW,OALZ,EAK6BC,QAAM,CAAC,KALpC,CAhB9B,EA4CY,KAAK,KAAL,CAAW,MAAX,IAAqBD,GAArB,kFAA6B,KAAK,KAAL,CAAW,QAAxC,CA5CZ;EAkDD;;;;IArDiBE;;;;;;;;;;;;ECVL,SAAS,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE;EACxE,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;EAChC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;EAClB,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACvC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AACb;EACA,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC1C,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;EACxB,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS;EAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;EAC9B,GAAG;AACH;EACA,EAAE,OAAO,MAAM,CAAC;EAChB;;ECZe,SAAS,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE;EACnE,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;EAChC,EAAE,IAAI,MAAM,GAAGG,6BAA4B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EAC9D,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AACb;EACA,EAAE,IAAI,MAAM,CAAC,qBAAqB,EAAE;EACpC,IAAI,IAAI,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAChE;EACA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAClD,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;EAChC,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS;EAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS;EAC7E,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;EAChC,KAAK;EACL,GAAG;AACH;EACA,EAAE,OAAO,MAAM,CAAC;EAChB;;;;;;;;;;;;;;;;;;;;;EClBA;;;;EAcA;;;;;;;;MASaC;;;;;EAUXtX,uBAAYuX,OAAZvX,EAA8BwX,QAA9BxX,EAA8BwX;EAAAA;;EAAAA;;EAC5B,QAAA,MAAA;;EACA,QAAM,OAAN,GAAA,OAAA,CAAM,OAAN;EAAA,QAAoBC,IAApB,4BAAA,OAAA;;EACA,QAAQC,IAAR,GAAA,OAAA,CAAQA,IAAR;EACA,QAAMC,GAAG,GACPD,IAAI,CAAJA,MAAAA,KAAAA,CAAAA,GAAAA,OAAAA,GAAAA,cAA0CA,IAAI,CAAJA,IAAAA,CAA1CA,GAA0CA,CAA1CA,GAAAA,MAAAA,GADF,OAAA;EAEA,8BAAA,GAAA;EACAxa,IAAAA,MAAM,CAANA,MAAAA,gCAAAA,IAAAA;EACA,UAAA,IAAA,GAAY,MAAA,WAAA,CAAZ,IAAA;;EACA,UAAA,QAAA,GAAgB,YAAA;;;EACd,aAAA,CAAA,OAAA,GAAA,MAAA,KAAA,IAAA,GAAA,OAAA,GAAQ0a,MAAR,IAAmB,OAAnB,4BAAgCJ,QAAhC,EAAA,EAAA;EADF,KAAA;;EAT4BA;EAY7B;;;mCAtB8B7U;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECiX1B,IAAM,uBAAuB,GAAkC,MAAM,CAAC;EAC3E,EAAA,EAAE,EAAE,MAAM,EADiE;EAE3E,EAAA,IAAI,EAAE,MAAM,EAF+D;EAG3E,EAAA,WAAW,EAAE,MAAM,EAHwD;EAI3E,EAAA,GAAG,EAAE,MAAM,CAAC;EACV,IAAA,EAAE,EAAE,MAAM,EADA;EAEV,IAAA,IAAI,EAAE,MAAM,EAFF;EAGV,IAAA,WAAW,EAAE,MAAM,EAHT;EAIV,IAAA,QAAQ,EAAE,MAAM,EAJN;EAKV,IAAA,KAAK,EAAE,MAAM,EALH;EAMV,IAAA,iBAAiB,EAAE,MAAM,EANf;EAOV,IAAA,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAP,CAPL;EAQV,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAP,CARR;EASV,IAAA,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAP,CAAT,CATV;EAUV,IAAA,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAL,CAVV;EAWV,IAAA,IAAI,EAAE,MAAM;EAXF,GAAD,CAJgE;EAiB3E,EAAA,YAAY,EAAE,MAAM,CAAC;EACnB,IAAA,EAAE,EAAE,MAAM,EADS;EAEnB,IAAA,IAAI,EAAE,MAAM,EAFO;EAGnB,IAAA,WAAW,EAAE,MAAM,EAHA;EAInB,IAAA,QAAQ,EAAE,MAAM,EAJG;EAKnB,IAAA,KAAK,EAAE,MAAM,EALM;EAMnB,IAAA,iBAAiB,EAAE,MAAM,EANN;EAOnB,IAAA,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAP,CAPI;EAQnB,IAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAP,CARC;EASnB,IAAA,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAP,CAAT,CATD;EAUnB,IAAA,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAL,CAVD;EAWnB,IAAA,IAAI,EAAE,MAAM;EAXO,GAAD,CAjBuD;EA8B3E,EAAA,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAP,CA9BsD;EA+B3E,EAAA,SAAS,EAAE,OAAO,EA/ByD;EAgC3E,EAAA,iBAAiB,EAAE,MAAM,EAhCkD;EAiC3E,EAAA,KAAK,EAAE,IAAI,CACT,KAAK,CACH,MAAM,CAAC;EACL,IAAA,EAAE,EAAE,MAAM,EADL;EAEL,IAAA,MAAM,EAAE,MAAM,EAFT;EAGL,IAAA,KAAK,EAAE,MAAM,EAHR;EAIL,IAAA,UAAU,EAAE,OAAO,EAJd;EAKL,IAAA,qBAAqB,EAAE,OAAO,EALzB;EAML,IAAA,QAAQ,EAAE,MAAM,CAAC;EACf,MAAA,EAAE,EAAE,MAAM,EADK;EAEf,MAAA,IAAI,EAAE,MAAM,EAFG;EAGf,MAAA,IAAI,EAAE,MAAM,EAHG;EAIf,MAAA,QAAQ,EAAE,MAAM,EAJD;EAKf,MAAA,aAAa,EAAE,OAAO,EALP;EAMf,MAAA,YAAY,EAAE,MAAM,EANL;EAOf,MAAA,GAAG,EAAE,MAAM,CAAC;EACV,QAAA,EAAE,EAAE,MAAM,EADA;EAEV,QAAA,IAAI,EAAE,MAAM,EAFF;EAGV,QAAA,WAAW,EAAE,MAAM,EAHT;EAIV,QAAA,QAAQ,EAAE,MAAM,EAJN;EAKV,QAAA,KAAK,EAAE,MAAM,EALH;EAMV,QAAA,iBAAiB,EAAE,MAAM,EANf;EAOV,QAAA,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAP,CAPL;EAQV,QAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAP,CARR;EASV,QAAA,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAP,CAAT,CATV;EAUV,QAAA,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAL,CAVV;EAWV,QAAA,IAAI,EAAE,MAAM;EAXF,OAAD,CAPI;EAoBf,MAAA,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAP,CApBV;EAqBf,MAAA,mBAAmB,EAAE,QAAQ,CAAC,MAAM,EAAP,CArBd;EAsBf,MAAA,2BAA2B,EAAE,QAAQ,CAAC,MAAM,EAAP;EAtBtB,KAAD,CANX;EA8BL,IAAA,kBAAkB,EAAE,MAAM,CAAC;EACzB,MAAA,EAAE,EAAE,MAAM,EADe;EAEzB,MAAA,IAAI,EAAE,MAAM,EAFa;EAGzB,MAAA,cAAc,EAAE,KAAK,CACnB,MAAM,CAAC;EACL,QAAA,EAAE,EAAE,MAAM,EADL;EAEL,QAAA,kBAAkB,EAAE,MAAM,EAFrB;EAGL,QAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAP,CAHb;EAIL,QAAA,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAP,CAJhB;EAKL,QAAA,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAP,CALjB;EAML,QAAA,iBAAiB,EAAE,QAAQ,CAAC,MAAM,EAAP,CANtB;EAOL,QAAA,aAAa,EAAE,MAAM;EAPhB,OAAD,CADa,CAHI;EAczB,MAAA,QAAQ,EAAE,MAAM,EAdS;EAezB,MAAA,kBAAkB,EAAE,OAAO,EAfF;EAgBzB,MAAA,yBAAyB,EAAE,MAAM;EAhBR,KAAD,CA9BrB;EAgDL,IAAA,eAAe,EAAE,KAAK,CACpB,MAAM,CAAC;EACL,MAAA,EAAE,EAAE,MAAM,EADL;EAEL,MAAA,WAAW,EAAE,OAAO,EAFf;EAGL,MAAA,SAAS,EAAE,OAAO,EAHb;EAIL,MAAA,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAP,CAJlB;EAKL,MAAA,MAAM,EAAE,MAAM,EALT;EAML,MAAA,WAAW,EAAE,MAAM,EANd;EAOL,MAAA,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAP,CAPZ;EAQL,MAAA,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAP,CARhB;EASL,MAAA,gBAAgB,EAAE,QAAQ,CAAC,OAAO,EAAR,CATrB;EAUL,MAAA,oBAAoB,EAAE,QAAQ,CAAC,MAAM,EAAP,CAVzB;EAWL,MAAA,cAAc,EAAE,QAAQ,CACtB,MAAM,CAAC;EACL,QAAA,EAAE,EAAE,MAAM,EADL;EAEL,QAAA,YAAY,EAAE,MAAM,EAFf;EAGL,QAAA,IAAI,EAAE,MAAM,EAHP;EAIL,QAAA,KAAK,EAAE,MAAM,EAJR;EAKL,QAAA,WAAW,EAAE,MAAM,EALd;EAML,QAAA,MAAM,EAAE,MAAM,EANT;EAOL,QAAA,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAP,CAPhB;EAQL,QAAA,WAAW,EAAE,OAAO,EARf;EASL,QAAA,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAP,CATjB;EAUL,QAAA,UAAU,EAAE,OAAO,EAVd;EAWL,QAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAP,CAXb;EAYL,QAAA,iBAAiB,EAAE,QAAQ,CAAC,MAAM,EAAP,CAZtB;EAaL,QAAA,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAP,CAblB;EAcL,QAAA,iBAAiB,EAAE,QAAQ,CAAC,MAAM,EAAP,CAdtB;EAeL,QAAA,aAAa,EAAE,QAAQ,CAAC,MAAM,EAAP,CAflB;EAgBL,QAAA,iBAAiB,EAAE,MAAM,EAhBpB;EAiBL,QAAA,0BAA0B,EAAE,QAAQ,CAAC,MAAM,EAAP,CAjB/B;EAkBL,QAAA,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAP,CAlBV;EAmBL,QAAA,aAAa,EAAE,OAAO,EAnBjB;EAoBL,QAAA,kBAAkB,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAP,CAAT;EApBvB,OAAD,CADgB,CAXnB;EAmCL,MAAA,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAP,CAnCV;EAoCL,MAAA,IAAI,EAAE,MAAM,EApCP;EAqCL;EACA,MAAA,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAP,CAtChB;EAuCL,MAAA,iBAAiB,EAAE,QAAQ,CAAC,MAAM,EAAP,CAvCtB;EAwCL;EACA,MAAA,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAP,CAzChB;EA0CL;EACA,MAAA,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAP,CA3Cb;EA4CL,MAAA,gBAAgB,EAAE,QAAQ,CAAC,MAAM,EAAP,CA5CrB;EA6CL,MAAA,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAP,CA7CV;EA8CL,MAAA,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAP,CA9Cd;EA+CL,MAAA,UAAU,EAAE,OAAO;EA/Cd,KAAD,CADc,CAhDjB;EAmGL;EACA,IAAA,6BAA6B,EAAE,OAAO,EApGjC;EAqGL,IAAA,kBAAkB,EAAE,QAAQ,CAAC,MAAM,EAAP,CArGvB;EAsGL,IAAA,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAP,CAtGhB;EAuGL,IAAA,YAAY,EAAE,OAAO,EAvGhB;EAwGL,IAAA,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAP,CAxGZ;EAyGL,IAAA,gBAAgB,EAAE,QAAQ,CAAC,MAAM,EAAP,CAzGrB;EA0GL,IAAA,kBAAkB,EAAE,OAAO,EA1GtB;EA2GL;EACA,IAAA,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAP,CA5GjB;EA6GL,IAAA,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAP,CAAT,CA7GlB;EA8GL,IAAA,sBAAsB,EAAE,OAAO;EA9G1B,GAAD,CADH,CADI,EAmHT,CAnHS,EAoHT,MAAM,CAAC,iBApHE;EAjCgE,CAAD,CAArE;;ECxYP;;EAEG;EAYG,SAAU,QAAV,CACJ,KADI,EAC4B;EAEhC,SAAO,KAAK,KAAK,IAAV,IAAkB,KAAK,KAAK,SAAnC;EACD;;;ECbD;EAEC,eAAY;;EAGZ,QAAIvF,MAAM,GAAG,GAAGC,cAAhB;;EAEA,aAASwa,UAAT,GAAsB;EACrB,UAAIC,OAAO,GAAG,EAAd;;EAEA,WAAK,IAAIzT,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuC,SAAS,CAAC5C,MAA9B,EAAsCK,CAAC,EAAvC,EAA2C;EAC1C,YAAItF,GAAG,GAAG6H,SAAS,CAACvC,CAAD,CAAnB;EACA,YAAI,CAACtF,GAAL,EAAU;;EAEV,YAAIgZ,OAAO,WAAUhZ,GAAV,CAAX;;EAEA,YAAIgZ,OAAO,KAAK,QAAZ,IAAwBA,OAAO,KAAK,QAAxC,EAAkD;EACjDD,UAAAA,OAAO,CAACtU,IAAR,CAAazE,GAAb;EACA,SAFD,MAEO,IAAIsR,KAAK,CAACuF,OAAN,CAAc7W,GAAd,CAAJ,EAAwB;EAC9B,cAAIA,GAAG,CAACiF,MAAR,EAAgB;EACf,gBAAIgU,KAAK,GAAGH,UAAU,CAACvR,KAAX,CAAiB,IAAjB,EAAuBvH,GAAvB,CAAZ;;EACA,gBAAIiZ,KAAJ,EAAW;EACVF,cAAAA,OAAO,CAACtU,IAAR,CAAawU,KAAb;EACA;EACD;EACD,SAPM,MAOA,IAAID,OAAO,KAAK,QAAhB,EAA0B;EAChC,cAAIhZ,GAAG,CAACgE,QAAJ,KAAiB7F,MAAM,CAACC,SAAP,CAAiB4F,QAAtC,EAAgD;EAC/C,iBAAK,IAAIe,GAAT,IAAgB/E,GAAhB,EAAqB;EACpB,kBAAI3B,MAAM,CAAC6B,IAAP,CAAYF,GAAZ,EAAiB+E,GAAjB,KAAyB/E,GAAG,CAAC+E,GAAD,CAAhC,EAAuC;EACtCgU,gBAAAA,OAAO,CAACtU,IAAR,CAAaM,GAAb;EACA;EACD;EACD,WAND,MAMO;EACNgU,YAAAA,OAAO,CAACtU,IAAR,CAAazE,GAAG,CAACgE,QAAJ,EAAb;EACA;EACD;EACD;;EAED,aAAO+U,OAAO,CAACG,IAAR,CAAa,GAAb,CAAP;EACA;;EAED,QAAqCzJ,MAAM,CAACC,OAA5C,EAAqD;EACpDoJ,MAAAA,UAAU,CAACK,OAAX,GAAqBL,UAArB;EACArJ,MAAAA,cAAA,GAAiBqJ,UAAjB;EACA,KAHD,MAQO;EACN3J,MAAAA,MAAM,CAAC2J,UAAP,GAAoBA,UAApB;EACA;EACD,GAlDA,GAAD;;;;;;;;;;;;;;;;;;;;ECCA,IAAY,WAAZ;;EAAA,CAAA,UAAY,WAAZ,EAAuB;EACrB,EAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAA;EACA,EAAA,WAAA,CAAA,WAAA,CAAA,GAAA,WAAA;EACA,EAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAA;EACD,CAJD,EAAY,WAAW,KAAX,WAAW,GAAA,EAAA,CAAvB;EAsBA;;;EAGG;;;EACI,IAAM,MAAM,GAAG,SAAT,MAAS,CAAC,KAAD,EAAuB;EAAA;;EAC3C,MACE,KADF,GAeI,KAfJ,CACE,KADF;EAAA,oBAeI,KAfJ,CAEE,IAFF;EAAA,MAEE,IAFF,4BAES,WAAW,CAAC,OAFrB;EAAA,qBAeI,KAfJ,CAGE,KAHF;EAAA,MAGE,KAHF,6BAGU,IAHV;EAAA,8BAeI,KAfJ,CAIE,eAJF;EAAA,MAIE,eAJF,sCAIoB,IAJpB;EAAA,wBAeI,KAfJ,CAKE,QALF;EAAA,MAKE,QALF,gCAKa,KALb;EAAA,wBAeI,KAfJ,CAME,QANF;EAAA,MAME,QANF,gCAMa,KANb;EAAA,MAOE,OAPF,GAeI,KAfJ,CAOE,OAPF;EAAA,MAQE,KARF,GAeI,KAfJ,CAQE,KARF;EAAA,MASE,MATF,GAeI,KAfJ,CASE,MATF;EAAA,8BAeI,KAfJ,CAUE,cAVF;EAAA,MAUE,cAVF,sCAUmB,IAVnB;EAAA,yBAeI,KAfJ,CAWE,SAXF;EAAA,MAWE,SAXF,iCAWc,KAXd;EAAA,wBAeI,KAfJ,CAYE,QAZF;EAAA,MAYE,QAZF,gCAYa,QAZb;EAAA,uBAeI,KAfJ,CAaE,OAbF;EAAA,MAaE,OAbF,+BAaY,SAbZ;EAAA,MAcK,WAdL,4BAeI,KAfJ;;EAiBA,SAAOb,GAAP,iVACK,IADL,EAC4B,cAD5B,EACuD,QADvD,EAIgB,OAJhB,EAKkB,OAAO,IAAI,IAL7B,EAMcmB,UAAE,CACRlB,QAAM,CAAC,MADC,kCAGLA,QAAM,CAAC,aAHF,EAGkB,IAAI,KAAK,WAAW,CAAC,OAHvC,wBAILA,QAAM,CAAC,eAJF,EAIoB,IAAI,KAAK,WAAW,CAAC,SAJzC,wBAKLA,QAAM,CAAC,UALF,EAKe,IAAI,KAAK,WAAW,CAAC,IALpC,wBAMLA,QAAM,CAAC,QANF,EAMa,QAAQ,IAAI,QANzB,SAQR;EACE,0CAAsC,IAAI,KAAK,WAAW,CAAC,OAD7D;EAEE,4CACE,IAAI,KAAK,WAAW,CAAC,SAHzB;EAIE,uCAAmC,IAAI,KAAK,WAAW,CAAC,IAJ1D;EAKE,2CAAuC,QAAQ,IAAI;EALrD,GARQ,CANhB,EAsBiB,QAtBjB,EAuBc;EACN,IAAA,eAAe,EACb,IAAI,KAAK,WAAW,CAAC,OAArB,GAA+B,eAA/B,GAAiD,IAF7C;EAGN,IAAA,WAAW,EAAE,IAAI,KAAK,WAAW,CAAC,OAArB,GAA+B,eAA/B,GAAiD,KAHxD;EAIN,IAAA,KAAK,EAAL,KAJM;EAKN,IAAA,KAAK,EAAL,KALM;EAMN,IAAA,MAAM,EAAN;EANM,GAvBd,sBA+Ba,WA/Bb,GAiCQ,SAAS,GAAGD,GAAH,oFAAW,cAAX,IAAiC,KAjClD;EAqCD,CAvDM;;;;;;;;;;;;;ECrBP;;;EAGG;;EACH,IAAM,SAAS,GAAG,SAAZ,SAAY,CAAC,KAAD,EAA0B;EAC1C,MAAQ,KAAR,GAA+D,KAA/D,CAAQ,KAAR;EAAA,MAAe,WAAf,GAA+D,KAA/D,CAAe,WAAf;EAAA,MAA4B,YAA5B,GAA+D,KAA/D,CAA4B,YAA5B;EAAA,yBAA+D,KAA/D,CAA0C,SAA1C;EAAA,MAA0C,SAA1C,iCAAsD,IAAtD;EAEA,SAAOA,GAAP,gNACgBC,QAAM,CAAC,gBADvB,EAEiBA,QAAM,CAAC,UAFxB,EAEsC,KAFtC,EAGiBA,QAAM,CAAC,gBAHxB,EAG4C,WAH5C,EAIM,YAAY,IACdD,GADc,0MAECC,QAAM,CAAC,cAFR,EAGGA,QAAM,CAAC,YAHV,EAG0B,YAAY,CAAC,OAHvC,EAIGA,QAAM,CAAC,YAJV,EAI0B,YAAY,CAAC,KAJvC,CAJlB,EAWM,SAAS,IACXD,GADW,sKAGJ,MAHI,EAG8B,SAH9B,CAXf;EAmBD,CAtBD;;;;;;;;;;;;;;ECNA;;;EAGG;;EACI,IAAM,KAAK,GAAG,SAAR,KAAQ,CAAC,KAAD,EAAsB;EACzC,MACE,EADF,GAMI,KANJ,CACE,EADF;EAAA,2BAMI,KANJ,CAEE,WAFF;EAAA,MAEE,WAFF,mCAEgB,IAFhB;EAAA,MAGE,KAHF,GAMI,KANJ,CAGE,KAHF;EAAA,yBAMI,KANJ,CAIE,SAJF;EAAA,MAIE,SAJF,iCAIc,KAJd;EAAA,wBAMI,KANJ,CAKE,QALF;EAAA,MAKE,QALF,gCAKa;EAAA,WAAM,IAAN;EAAA,GALb;;EAQA,MAAM,iBAAiB,GAAG,SAApB,iBAAoB,CAAC,CAAD,EAAkB;EAC1C,IAAA,CAAC,CAAC,cAAF;;EACA,QAAI,CAAC,CAAC,aAAF,YAA2B,cAA/B,EAA+C;EAC7C,MAAA,QAAQ,CAAC,EAAD,CAAR;EACD;EACF,GALD;;EAOA,SAAOA,GAAP,+dACeC,QAAM,CAAC,KADtB,EAGW,KAHX,EAKa,EALb,EAMc,KANd,EAOgB,SAPhB,EASmB,iBATnB,EAUmB,KAVnB,EAWqBA,QAAM,CAAC,MAX5B,EAYY,SAAS,GACPD,GADO,8+BAuBPA,GAvBO,krBAZrB,EAqDuBC,QAAM,CAAC,IArD9B,EAqDsC,KArDtC,EAsDY,WAAW,IACbD,GADa,sGACKC,QAAM,CAAC,WADZ,EAC2B,WAD3B,CAtDvB;EA6DD,CA7EM;;;;;;;;;ECVP;;;EAGG;;EACH,IAAM,YAAY,GAAsB,SAAlC,YAAkC,CAAC,KAAD,EAAU;EAChD,MAAQ,QAAR,GAAqB,KAArB,CAAQ,QAAR;EAEA,SAAOD,GAAP,sGAA0BC,QAAM,CAAC,YAAjC,EAAiD,QAAjD;EACD,CAJD;;;;;;;;;;;ECCA,IAAM,KAAK,GAAG,SAAR,KAAQ,CAAC,KAAD,EAAsB;EAClC,MAAQ,KAAR,GAAmD,KAAnD,CAAQ,KAAR;EAAA,MAAe,WAAf,GAAmD,KAAnD,CAAe,WAAf;EAAA,0BAAmD,KAAnD,CAA4B,UAA5B;EAAA,MAA4B,UAA5B,kCAAyC,KAAzC;EACA,SAAOD,GAAP,yPACgBC,QAAM,CAAC,KADvB,EAIU,KAJV,EAKU,UAAU,IAAID,GAAJ,qGAAuBC,QAAM,CAAC,QAA9B,CALpB,EAOQ,WAAW,IAAID,GAAJ,2FAAgB,WAAhB,CAPnB;EAWD,CAbD;;ECVA;;;;;;;;EAQG;EACH,SAAS,eAAT,CACE,GADF,EAEE,UAFF,EAGE,GAHF,EAIE,CAJF,EAKE,CALF,EAKW;EAET,MAAI,GAAG,CAAC,GAAR,EAAa;EACX,QAAM,CAAC,GAAG,GAAG,CAAC,GAAJ,CAAQ,WAAR,GAAsB,CAAtB,GAA0B,GAAG,CAAC,GAAJ,CAAQ,OAAlC,GAA4C,CAAC,GAAG,CAA1D;EACA,QAAM,CAAC,GAAG,GAAG,CAAC,GAAJ,CAAQ,UAAR,GAAqB,CAArB,GAAyB,GAAG,CAAC,GAAJ,CAAQ,OAAjC,GAA2C,CAAC,GAAG,CAAzD;EACC,IAAA,MAAc,CAAC,GAAf,CAAmB,WAAnB,GAAiC,GAAG,CAAC,IAAJ,CAChC,GADgC,EAEhC,UAFgC,+HAGsF,CAHtF,sBAGmG,CAHnG,mBAG6G,CAH7G,oBAGwH,CAHxH,EAAjC;EAKA,WAAQ,MAAc,CAAC,GAAf,CAAmB,WAA3B;EACF;;EACD,SAAO,IAAP;EACD;;ECpBD,SAAS,aAAT,CACE,GADF,EAC6B;EAE3B,SAAQ,GAA8B,KAAK,SAA3C;EACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECyBD,IAAM,YAAY,GAAG,SAAf,YAAe,CAAC,KAAD,EAAqD;EACxE,MAAQ,QAAR,GAAqB,KAArB,CAAQ,QAAR;EACA,SAAOA,GAAP,4OACeC,QAAM,CAAC,YADtB,EAEiBA,QAAM,CAAC,IAFxB,EAGsB;EAAA,WAAM,QAAQ,CAAC,IAAD,CAAd;EAAA,GAHtB,EAIsB;EAAA,WAAM,QAAQ,CAAC,KAAD,CAAd;EAAA,GAJtB;EAOD,CATD;;EAWA,IAAM,MAAM,GAAG,SAAT,MAAS;EAAA,SAAMD,GAAN,gsBAEHC,QAAM,CAAC,MAFJ;EAAA,CAAf;;EAgBA,IAAM,gBAAgB,GAAG,SAAnB,gBAAmB,CAAC,KAAD,EAapB;EACH,MACE,EADF,GAYI,KAZJ,CACE,EADF;EAAA,MAEE,KAFF,GAYI,KAZJ,CAEE,KAFF;EAAA,MAGE,SAHF,GAYI,KAZJ,CAGE,SAHF;EAAA,sBAYI,KAZJ,CAIE,MAJF;EAAA,MAIE,MAJF,8BAIW,MAJX;EAAA,0BAYI,KAZJ,CAKE,UALF;EAAA,MAKE,UALF,kCAKe,KALf;EAAA,0BAYI,KAZJ,CAME,UANF;EAAA,MAME,UANF,kCAMe,KANf;EAAA,MAOE,YAPF,GAYI,KAZJ,CAOE,YAPF;EAAA,MAQE,cARF,GAYI,KAZJ,CAQE,cARF;EAAA,4BAYI,KAZJ,CASE,YATF;EAAA,MASE,YATF,oCASiB;EAAA,WAAM,IAAN;EAAA,GATjB;EAAA,8BAYI,KAZJ,CAUE,gBAVF;EAAA,MAUE,gBAVF,sCAUqB;EAAA,WAAM,IAAN;EAAA,GAVrB;EAAA,MAWE,KAXF,GAYI,KAZJ,CAWE,KAXF;EAaA,SAAOD,GAAP,sjBACeC,QAAM,CAAC,WADtB,EAEiBA,QAAM,CAAC,KAFxB,EAGS,KAHT,EAIa,EAJb,EAKgB,KALhB,EAMoB,SANpB,EAOmB,YAPnB,EAUiBA,QAAM,CAAC,UAVxB,EAWmBA,QAAM,CAAC,MAX1B,EAaY,MAAM,KAAK,WAAX,IACF,CAAC,UADC,IAEFD,GAFE,iIAEgBC,QAAM,CAAC,YAFvB,EAGa,MAHb,CAbZ,EAmBY,MAAM,KAAK,WAAX,IACF,CAAC,KADC,IAEF,CAAC,UAFC,IAGFD,GAHE,uHAGgBC,QAAM,CAAC,WAHvB,CAnBZ,EA0BY,MAAM,KAAK,OAAX,IACF,CAAC,UADC,IAEFD,GAFE,oKAEgBC,QAAM,CAAC,SAFvB,EAIe,cAJf,EAIkC,MAJlC,CA1BZ,EAgCU,UAAU,IAAID,GAAJ,oFAAY,MAAZ,CAhCpB,EAiCU,KAAK,IACP,CAAC,UADC,IAEF,EAAE,MAAM,KAAK,WAAb,CAFE,IAGFA,GAHE,sGAGgBC,QAAM,CAAC,KAHvB,EAGgC,KAHhC,CAjCV,EAuCM,UAAU,IACZ,CAAC,UADC,IAEFD,GAFE,oGAEO,YAFP,EAEgC,YAFhC,CAvCN,EA0CM,EAAE,MAAM,KAAK,WAAX,IAA0B,UAA1B,IAAwC,UAA1C,KACFA,GADE,yzBAEaC,QAAM,CAAC,UAFpB,EAE0C,gBAF1C,CA1CN;EAmED,CA9FD;;MAgGM;;;;;EAMJ,wBAAY,KAAZ,EAAwC;EAAA;;EAAA;;EACtC,8BAAM,KAAN;;EADsC,iEAwEnB,UAAC,SAAD,EAAoB,QAApB,EAA0C;EAC7D,UAAQ,MAAR,GAAmB,MAAK,KAAxB,CAAQ,MAAR;EACA,UAAM,IAAI,GAAG,MAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,EAA+B,cAA/B,CAA8C,SAA9C,CAAb;EAEA,UAAI,CAAC,IAAL,EAAW;;EAEX,UAAI,CAAC,MAAK,KAAL,CAAW,WAAX,CAAuB,aAAxB,IAAyC,IAAI,CAAC,UAAlD,EAA8D;EAC5D,cAAK,KAAL,CAAW,cAAX,CAA0B,IAAI,CAAC,eAA/B,EAAgD,IAAhD,EAAsD,CAAC,CAAC,QAAxD;;EACA,cAAK,OAAL,CAAa,YAAb,CAA0B,IAA1B,CAA+B,0BAA/B,EAA2D;EACzD,UAAA,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,eAAN;EADkC,SAA3D;;EAGA;EACD;;EAED,YAAK,QAAL,CAAc;EAAE,QAAA,SAAS,EAAE;EAAb,OAAd;;EACA,YAAK,KAAL,CAAW,6BAAX,CAAyC;EACvC,QAAA,MAAM,EAAN,MADuC;EAEvC,QAAA,MAAM,EAAE,IAAI,CAAC,eAF0B;EAGvC,QAAA,WAAW,EAAE;EAH0B,OAAzC;;EAMA,YAAK,KAAL,CAAW,UAAX,CACG,WADH,CACe,IAAI,CAAC,eADpB,EAEG,IAFH,CAEQ,UAAC,GAAD,EAAQ;EACZ,YAAI,GAAJ,EAAS;EACP,gBAAK,KAAL,CAAW,cAAX,CAA0B,IAAI,CAAC,eAA/B,EAAgD,IAAhD,EAAsD,CAAC,CAAC,QAAxD;;EACA,gBAAK,OAAL,CAAa,YAAb,CAA0B,IAA1B,CAA+B,0BAA/B,EAA2D;EACzD,YAAA,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,eAAN;EADkC,WAA3D;EAGD,SALD,MAKO;EACL,gBAAK,KAAL,CAAW,cAAX,CAA0B,IAAI,CAAC,eAA/B,EAAgD,KAAhD,EAAuD,CAAC,CAAC,QAAzD;EACD;EACF,OAXH,EAYG,KAZH,CAYS,UAAC,GAAD;EAAA,eAAS,OAAO,CAAC,KAAR,CAAc,GAAd,CAAT;EAAA,OAZT,EAaG,OAbH,CAaW,YAAK;EACZ,cAAK,KAAL,CAAW,6BAAX,CAAyC;EACvC,UAAA,MAAM,EAAN,MADuC;EAEvC,UAAA,MAAM,EAAE,IAAI,CAAC,eAF0B;EAGvC,UAAA,WAAW,EAAE;EAH0B,SAAzC;;EAKA,cAAK,QAAL,CAAc;EAAE,UAAA,SAAS,EAAE;EAAb,SAAd;EACD,OApBH;EAqBD,KAlHuC;;EAAA,iEAoHnB,UAAC,SAAD,EAAsB;EACzC,YAAK,QAAL,CAAc;EACZ,QAAA,uBAAuB,EAAE;EADb,OAAd;EAGD,KAxHuC;;EAAA,iEA0HnB,UAAC,SAAD,EAAsB;EACzC,UAAQ,MAAR,GAAmB,MAAK,KAAxB,CAAQ,MAAR;EACA,UAAM,IAAI,GAAG,MAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,EAA+B,cAA/B,CAA8C,SAA9C,CAAb;;EAEA,YAAK,KAAL,CAAW,6BAAX,CAAyC;EACvC,QAAA,MAAM,EAAN,MADuC;EAEvC,QAAA,MAAM,EAAE,IAAI,CAAC,eAF0B;EAGvC,QAAA,UAAU,EAAE,IAH2B;EAIvC,QAAA,KAAK,EAAE;EAJgC,OAAzC;;EAOA,YAAK,OAAL,CAAa,YAAb,CAA0B,IAA1B,CAA+B,gCAA/B,EAAiE;EAC/D,QAAA,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,eAAN;EADwC,OAAjE;;EAIA,YAAK,KAAL,CAAW,UAAX,CACG,UADH,CACc,IAAI,CAAC,eADnB,EAEG,IAFH,CAEQ,UAAC,GAAD,EAAQ;EACZ,YAAI,CAAA,GAAG,SAAH,IAAA,GAAG,WAAH,YAAA,GAAG,CAAE,MAAL,MAAgB,GAApB,EAAyB;EACvB,gBAAK,KAAL,CAAW,mBAAX,CAA+B;EAC7B,YAAA,MAAM,EAAN,MAD6B;EAE7B,YAAA,MAAM,EAAE,IAAI,CAAC;EAFgB,WAA/B;;EAIA,gBAAK,OAAL,CAAa,YAAb,CAA0B,IAA1B,CAA+B,0BAA/B,EAA2D;EACzD,YAAA,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,eAAN;EADkC,WAA3D;EAGD,SARD,MAQO,IAAI,CAAA,GAAG,SAAH,IAAA,GAAG,WAAH,YAAA,GAAG,CAAE,MAAL,MAAgB,GAApB,EAAyB;EAC9B;EACA,gBAAK,KAAL,CAAW,6BAAX,CAAyC;EACvC,YAAA,MAAM,EAAN,MADuC;EAEvC,YAAA,MAAM,EAAE,IAAI,CAAC,eAF0B;EAGvC,YAAA,UAAU,EAAE,KAH2B;EAIvC,YAAA,KAAK,YAAK,GAAG,CAAC,IAAT;EAJkC,WAAzC;EAMD,SARM,MAQA;EACL,gBAAK,KAAL,CAAW,6BAAX,CAAyC;EACvC,YAAA,MAAM,EAAN,MADuC;EAEvC,YAAA,MAAM,EAAE,IAAI,CAAC,eAF0B;EAGvC,YAAA,UAAU,EAAE,KAH2B;EAIvC,YAAA,KAAK,EAAE;EAJgC,WAAzC;EAMD;EACF,OA3BH,EA4BG,KA5BH,CA4BS,UAAC,GAAD,EAAQ;EACb,QAAA,OAAO,CAAC,KAAR,CAAc,GAAd;EACD,OA9BH,EA+BG,OA/BH,CA+BW;EAAA,eAAM,MAAK,QAAL,CAAc;EAAE,UAAA,uBAAuB,EAAE;EAA3B,SAAd,CAAN;EAAA,OA/BX;EAgCD,KAzKuC;;EAAA,6EA2KP,UAAC,YAAD,EAAyC;EACxE,UAAI,aAAa,CAAC,YAAD,CAAb,IAA+B,YAAY,CAAC,IAAb,CAAkB,aAArD,EAAoE;EAClE,QAAA,OAAO,CAAC,IAAR,CAAa,YAAY,CAAC,IAA1B;;EACA,YAAI,MAAK,KAAL,CAAW,MAAf,EAAuB;EAAA;;EACrB,cAAQ,MAAR,GAAmB,MAAK,KAAxB,CAAQ,MAAR;EACA,cAAM,OAAO,4BAAG,MAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,CAAH,oFAAG,sBAAgC,IAAnC,qFAAG,uBAAsC,QAAzC,2DAAG,uBAAgD,GAAhE;;EACA,cAAI,CAAC,YAAY,CAAC,IAAb,CAAkB,cAAvB,EAAuC;EACrC,kBAAK,KAAL,CAAW,gBAAX,CAA4B;EAC1B,cAAA,MAAM,EAAE,MAAK,KAAL,CAAW,MADO;EAE1B,cAAA,QAAQ,EAAE;EACR,gBAAA,eAAe,EAAE,YAAY,CAAC,IAAb,CAAkB,gBAD3B;EAER,gBAAA,YAAY,EAAE,YAAY,CAAC,IAAb,CAAkB,aAFxB;EAGR,gBAAA,WAAW,EAAE,EAHL;EAIR,gBAAA,QAAQ,EAAE,EAJF;EAKR,gBAAA,UAAU,EAAE,KALJ;EAMR,gBAAA,cAAc,EAAE,KANR;EAOR,gBAAA,WAAW,EAAE,KAPL;EAQR,gBAAA,UAAU,EAAE,KARJ;EASR,gBAAA,KAAK,EAAE;EATC;EAFgB,aAA5B;EAcD,WAfD,MAeO;EACL,kBAAK,KAAL,CAAW,aAAX,CAAyB;EACvB,cAAA,MAAM,EAAE,MAAK,KAAL,CAAW,MADI;EAEvB,cAAA,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,IAAb,CAAkB,gBAAnB;EAFS,aAAzB;EAID;;EACD,gBAAK,OAAL,CAAa,YAAb,CAA0B,IAA1B,CAA+B,uBAA/B,EAAwD;EACtD,YAAA,QAAQ,EAAE,YAAY,CAAC,IAAb,CAAkB,aAD0B;EAEtD,YAAA,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,IAAb,CAAkB,gBAAnB,CAF+B;EAGtD,YAAA,MAAM,EAAE,MAAK,KAAL,CAAW,WAAX,CAAuB,UAHuB;EAItD,YAAA,KAAK,EAAE,OAAO,CAAC,EAAR,IAAc,EAJiC;EAKtD,YAAA,OAAO,EAAE,OAAF,aAAE,OAAF,uBAAE,OAAO,CAAE,IALoC;EAMtD,YAAA,OAAO,EAAE,OAAF,aAAE,OAAF,uBAAE,OAAO,CAAE,QANoC;EAOtD,YAAA,aAAa,EAAE,YAAY,CAAC,IAAb,CAAkB;EAPqB,WAAxD;EASD;EACF;EACF,KAjNuC;;EAAA,oEAmNhB,UAAC,IAAD,EAAwB;EAC9C,UAAI,CAAC,IAAL,EAAW,OAAO,IAAP;EACX,UAAI,MAAM,GAAG,MAAb;EACA,UAAI,IAAI,CAAC,UAAL,IAAmB,IAAI,CAAC,cAA5B,EAA4C,MAAM,GAAG,WAAT;EAC5C,UAAI,CAAC,IAAI,CAAC,UAAN,IAAoB,IAAI,CAAC,cAA7B,EAA6C,MAAM,GAAG,OAAT;EAC7C,UAAI,IAAI,CAAC,WAAT,EAAsB,MAAM,GAAG,WAAT;EACtB,aAAO,MAAP;EACD,KA1NuC;;EAAA,+DA4NrB,YAAK;EACtB,UAAQ,MAAR,GAAmB,MAAK,KAAxB,CAAQ,MAAR;EACA,UAAM,IAAI,GAAG,MAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,CAAb;;EACA,UAAI,CAAC,IAAI,CAAC,cAAV,EAA0B;EACxB,4CAA6B,IAAI,CAAC,IAAL,CAAU,QAAV,CAAmB,GAAnB,CAAuB,IAApD;EACD;;EACD,6CAAgC,IAAI,CAAC,IAAL,CAAU,QAAV,CAAmB,GAAnB,CAAuB,IAAvD;EACD,KAnOuC;;EAAA,qEAqOhB,YAAK;EAC3B,wBAAgC,MAAK,KAArC;EAAA,UAAQ,WAAR,eAAQ,WAAR;EAAA,UAAqB,MAArB,eAAqB,MAArB;EACA,UAAM,YAAY,GAAG,WAAW,CAAC,MAAD,CAAX,CAAoB,IAAzC;;EACA,UAAI,YAAJ,EAAkB;EAChB,YAAM,GAAG,GAAG,MAAK,OAAL,CAAa,UAAb,CAAwB,UAAxB,CACV,YAAY,CAAC,kBAAb,CAAgC,EADtB,CAAZ;;EAGA,QAAA,eAAe,CAAC,GAAD,EAAM,aAAN,EAAqB,MAArB,EAA6B,GAA7B,EAAkC,GAAlC,CAAf;EACD;EACF,KA9OuC;;EAEtC,UAAK,KAAL,GAAa;EACX,MAAA,SAAS,EAAE,KADA;EAEX,MAAA,OAAO,EAAE,KAFE;EAGX,MAAA,uBAAuB,EAAE;EAHd,KAAb;EAFsC;EAOvC;;;;aAED,6BAAiB;EACf,UAAI,SAAS,EAAb,EACE,MAAM,CAAC,gBAAP,CAAwB,SAAxB,EAAmC,KAAK,sBAAxC,EAFa;;EAKf,yBAAgC,KAAK,KAArC;EAAA,UAAQ,MAAR,gBAAQ,MAAR;EAAA,UAAgB,WAAhB,gBAAgB,WAAhB;EACA,UAAM,IAAI,GAAG,WAAW,CAAC,MAAD,CAAX,CAAoB,cAAjC;EACA,UAAM,SAAS,GAAG,WAAW,CAAC,MAAD,CAAX,CAAoB,cAApB,CAAmC,SAAnC,CAChB,UAAC,EAAD;EAAA,eAAQ,EAAE,CAAC,eAAH,KAAuB,IAA/B;EAAA,OADgB,CAAlB;EAGA,UAAM,UAAU,GAAG,KAAK,aAAL,CACjB,WAAW,CAAC,MAAD,CAAX,CAAoB,cAApB,CAAmC,SAAnC,CADiB,CAAnB,CAVe;;EAcf,UAAI,WAAW,CAAC,MAAD,CAAX,CAAoB,cAApB,IAAsC,UAAU,KAAK,MAAzD,EAAiE;EAC/D,aAAK,UAAL,CAAgB,SAAhB,EAA2B,IAA3B;EACD;EACF;;;aAED,4BAAmB,SAAnB,EAAmD;EACjD,yBAAgC,KAAK,KAArC;EAAA,UAAQ,MAAR,gBAAQ,MAAR;EAAA,UAAgB,WAAhB,gBAAgB,WAAhB;EACA,UAAM,IAAI,GAAG,WAAW,CAAC,MAAD,CAAxB;EACA,UAAM,MAAM,GAAG,IAAI,CAAC,cAApB;EAEA,UAAM,SAAS,GAAG,WAAW,CAAC,MAAD,CAAX,CAAoB,cAApB,CAAmC,SAAnC,CAChB,UAAC,EAAD;EAAA,eAAQ,EAAE,CAAC,eAAH,KAAuB,MAA/B;EAAA,OADgB,CAAlB;EAIA,UAAM,IAAI,GAAG,WAAW,CAAC,MAAD,CAAX,CAAoB,cAApB,CAAmC,SAAnC,CAAb;EAEA,UAAM,UAAU,GAAG,KAAK,aAAL,CACjB,WAAW,CAAC,MAAD,CAAX,CAAoB,cAApB,CAAmC,SAAnC,CADiB,CAAnB,CAXiD;EAgBjD;EACA;EAEA;EACA;;EACA,UACE,IAAI,CAAC,cAAL,CAAoB,MAApB,KACA,SAAS,CAAC,WAAV,CAAsB,MAAtB,EAA8B,cAA9B,CAA6C,MAA7C,GAAsD,CAFxD,EAGE;EACA;EACA,aAAK,UAAL,CAAgB,IAAI,CAAC,cAAL,CAAoB,MAApB,GAA6B,CAA7C;EACD,OA3BgD;;;EA6BjD,UACE,UAAU,KAAK,MAAf,IACA,CAAC,IAAI,CAAC,WADN,IAEA,CAAC,IAAI,CAAC,UAFN,IAGA,CAAC,KAAK,KAAL,CAAW,SAJd,EAKE;EACA,aAAK,UAAL,CAAgB,SAAhB,EAA2B,IAA3B;EACD;EACF;;;aAED,gCAAoB;EAClB,UAAI,SAAS,EAAb,EACE,MAAM,CAAC,mBAAP,CAA2B,SAA3B,EAAsC,KAAK,sBAA3C;EACH;;;aA0KD,kBAAM;EAAA;;EACJ,yBAAuC,KAAK,KAA5C;EAAA,UAAQ,MAAR,gBAAQ,MAAR;EAAA,+CAAgB,UAAhB;EAAA,UAAgB,UAAhB,sCAA6B,KAA7B;EACA,UAAM,IAAI,GAAG,KAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,CAAb;EACA,UAAQ,cAAR,GAA2B,IAA3B,CAAQ,cAAR;EAEA,aAAOD,GAAP,ojBACgBC,QAAM,CAAC,gBADvB,EAEO,KAFP,wBAImC,IAAI,CAAC,IAAL,CAAU,QAAV,CAAmB,GAAnB,CAAuB,IAJ1D,eAKmB,IALnB,EAOiBA,QAAM,CAAC,IAPxB,EAQQ,cAAc,CAAC,GAAf,CACA,UAAC,EAAD,EAAK,KAAL;EAAA,eAAeD,GAAf,+aAAuB,gBAAvB,EACO,EAAE,CAAC,eADV,EAEU,EAAE,CAAC,YAFb,EAGW,MAAI,CAAC,aAAL,CAAmB,EAAnB,CAHX,EAIc,EAAE,CAAC,eAAH,KAAuB,IAAI,CAAC,cAJ1C,EAKe,EAAE,CAAC,UALlB,EAMe,MAAI,CAAC,KAAL,CAAW,uBAAX,KAAuC,KANtD,EAOU,EAAE,CAAC,KAPb,EAQiB;EAAA,iBAAM,MAAI,CAAC,UAAL,CAAgB,KAAhB,CAAN;EAAA,SARjB,EASmB;EAAA,iBAAM,MAAI,CAAC,UAAL,CAAgB,KAAhB,CAAN;EAAA,SATnB,EAUiB,UAAC,YAAD;EAAA,iBACb,YAAY,GACR,MAAI,CAAC,UAAL,CAAgB,KAAhB,CADQ,GAER,MAAI,CAAC,QAAL,CAAc;EAAE,YAAA,uBAAuB,EAAE;EAA3B,WAAd,CAHS;EAAA,SAVjB,EAcqB;EAAA,iBAAM,MAAI,CAAC,UAAL,CAAgB,KAAhB,CAAN;EAAA,SAdrB;EAAA,OADA,CARR,EA2BiB,UAAU,aAAMC,QAAM,CAAC,KAAb,IAAuB,EA3BlD,EA4BS,MA5BT,EA6BkB;EAAA,eACR,CAAC,MAAI,CAAC,KAAL,CAAW,WAAX,CAAuB,aAAxB,IAAyC,MAAI,CAAC,cAAL,EADjC;EAAA,OA7BlB,gBA+BuB,IAAI,CAAC,IAAL,CAAU,QAAV,CAAmB,GAAnB,CAAuB,IA/B9C,eAgCe,WAAW,CAAC,SAhC3B,EAiCmB,KAAK,KAAL,CAAW,SAAX,IACX,KAAK,KAAL,CAAW,WAAX,CAAuB,aAlC/B,EAmCkB,KAAK,KAAL,CAAW,WAAX,CAAuB,aAAvB,IACV,8CApCR,EAwCM,UAAU,IAAID,GAAJ,4FAAY,YAAZ,EAA4B,KAAK,QAAL,EAA5B,CAxChB;EA2CD;;;;IAtSwBE;;kBAArB,6BAIiB;;AAqSvB,uBAAeC,cAAO,CAMpB,CAAC,aAAD,EAAgB,aAAhB,CANoB,EAOpB,eAPoB,CAAP,CAQb,YARa,CAAf;;;;;;;;;;;;;;;;;;;;EC7bA,IAAM,WAAW,GAAG,SAAd,WAAc,CAAC,KAAD,EAA4B;EAC9C,MAAQ,EAAR,GAA2C,KAA3C,CAAQ,EAAR;EAAA,MAAY,KAAZ,GAA2C,KAA3C,CAAY,KAAZ;EAAA,MAAmB,UAAnB,GAA2C,KAA3C,CAAmB,UAAnB;EAAA,MAA+B,OAA/B,GAA2C,KAA3C,CAA+B,OAA/B;EACA,SAAOH,GAAP,4MAEeC,QAAM,CAAC,WAFtB,cAEqC,UAAU,GAAGA,QAAM,CAAC,QAAV,GAAqB,EAFpE,GAGiB,EAHjB,EAIc,OAJd,EAMM,UAAU,IACZD,GADY,2cANhB,EAuBM,KAvBN;EA0BD,CA5BD;;;;ECkBA,IAAM,OAAO,GAAG,SAAV,OAAU,CAAC,KAAD,EAAwB;EACtC,MACE,KADF,GAaI,KAbJ,CACE,KADF;EAAA,MAEE,WAFF,GAaI,KAbJ,CAEE,WAFF;EAAA,qBAaI,KAbJ,CAGE,KAHF;EAAA,MAGS,WAHT,6BAGuB,EAHvB;EAAA,qBAaI,KAbJ,CAIE,KAJF;EAAA,MAIE,KAJF,6BAIU,IAJV;EAAA,sBAaI,KAbJ,CAKE,MALF;EAAA,MAKE,MALF,8BAKW,KALX;EAAA,yBAaI,KAbJ,CAME,SANF;EAAA,MAME,SANF,iCAMc,KANd;EAAA,MAOE,YAPF,GAaI,KAbJ,CAOE,YAPF;EAAA,0BAaI,KAbJ,CAQE,UARF;EAAA,MAQE,UARF,kCAQe,KARf;EAAA,MASE,WATF,GAaI,KAbJ,CASE,WATF;EAAA,wBAaI,KAbJ,CAUE,QAVF;EAAA,MAUE,QAVF,gCAUa;EAAA,WAAM,IAAN;EAAA,GAVb;EAAA,8BAaI,KAbJ,CAWE,kBAXF;EAAA,MAWE,kBAXF,sCAWuB,KAXvB;EAAA,8BAaI,KAbJ,CAYE,cAZF;EAAA,MAYE,cAZF,sCAYmB,UAAC,KAAD;EAAA,WAA4C,KAA5C;EAAA,GAZnB;;EAeA,kBAA0BlM,CAAQ,CAChC,WADgC,CAAlC;EAAA;EAAA,MAAO,KAAP;EAAA,MAAc,QAAd;;EAGA,mBAA8BA,CAAQ,CACpC,SAAS,IAAI,CAAC,WAAW,CAAC,MAA1B,IAAoC,CAAC,KADD,CAAtC;EAAA;EAAA,MAAO,OAAP;EAAA,MAAgB,UAAhB;;EAIA,mBAA4CA,CAAQ,CAAC,MAAD,CAApD;EAAA;EAAA,MAAO,cAAP;EAAA,MAAuB,iBAAvB;;EAEA,MAAM,WAAW,GAAGiB,CAAM,EAA1B;EAEA,EAAA,iBAAiB,CACf,WADe,EAEf;EAAA,WAAM,cAAc,IAAI,iBAAiB,CAAC,KAAD,CAAzC;EAAA,GAFe,CAAjB;EAKA,EAAAL,CAAS,CAAC,YAAK;EACb;EACA,QAAQ,UAAR,GAA+C,KAA/C,CAAQ,UAAR;EAAA,QAAoB,SAApB,GAA+C,KAA/C,CAAoB,SAApB;EAAA,QAA+B,WAA/B,GAA+C,KAA/C,CAA+B,WAA/B;;EACA,QAAI,SAAS,IAAI,WAAjB,EAA8B;EAC5B,MAAA,UAAU,CAAC,IAAD,CAAV;EACA,UAAI,IAAJ;;EACA,UAAI;EACF,QAAA,IAAI,GAAG,IAAI,CAAC,KAAL,CAAW,YAAX,CAAP;EACD,OAFD,CAEE,OAAO,KAAP,EAAc;EACd,QAAA,IAAI,GAAG,EAAP;EACD;;EACD,MAAA,UAAU,CACP,uBADH,CAMI,IAAI,GAAJ,CAAQ,WAAR,CANJ,EAM0B,IAN1B,EAOG,IAPH,CAOQ,UAAC,GAAD,EAAQ;EACZ,QAAA,UAAU,CAAC,KAAD,CAAV;;EACA,YAAI,GAAJ,EAAS;EACP,UAAA,QAAQ,CAAC,cAAc,CAAC,GAAD,CAAf,CAAR;EACD;EACF,OAZH;EAaD;EACF,GAzBQ,EAyBN,CAAC,YAAD,CAzBM,CAAT;;EA2BA,MAAM,cAAc,GAAG,SAAjB,cAAiB,GAAK;EAC1B,IAAA,iBAAiB,CAAC,UAAC,IAAD;EAAA,aAAU,CAAC,IAAX;EAAA,KAAD,CAAjB;EACD,GAFD;;EAIA,MAAM,cAAc,GAAG,SAAjB,cAAiB,GAAK;EAC1B,IAAA,cAAc;EACf,GAFD;;EAIA,MAAM,eAAe,GAAGO,CAAO,CAAC,YAAK;EACnC,QAAM,KAAK,GAAG,KAAK,CAAC,SAAN,CAAgB,UAAC,EAAD;EAAA,aAAQ,EAAE,CAAC,EAAH,KAAU,KAAlB;EAAA,KAAhB,CAAd;EACA,WAAO,KAAK,GAAG,CAAC,CAAT,GAAa,KAAK,CAAC,KAAD,CAAL,CAAa,KAA1B,GAAkC,kBAAzC;EACD,GAH8B,EAG5B,CAAC,KAAD,EAAQ,KAAR,CAH4B,CAA/B;EAKA,SAAO+K,GAAP,6uBACa,WADb,EACmCC,QAAM,CAAC,mBAD1C,EAGQ,KAAK,IACPD,GADO,wMAEF,KAFE,EAGK,KAHL,EAIW,WAJX,EAKU,UALV,CAHb,EAWmBC,QAAM,CAAC,OAX1B,YAaqBA,QAAM,CAAC,YAb5B,cAcY,cAAc,GAAGA,QAAM,CAAC,IAAV,GAAiB,EAd3C,aAkBuBA,QAAM,CAAC,mBAlB9B,cAmBc,kBAAkB,IAClB,CAAC,KADD,IAEA,UAFA,IAGA,CAAC,cAHD,IAIAA,QAAM,CAAC,KAvBrB,GA0BuB,CA1BvB,EA2BsB,cA3BtB,EA4BsB,UAAC,CAAD,EAAqB;EAC7B,QAAI,CAAC,CAAC,GAAF,KAAU,OAAd,EAAuB;EACrB,MAAA,cAAc;EACf;EACF,GAhCb,EAkC0B,KAAK,IAAIA,QAAM,CAAC,QAlC1C,EAmCgB,OAAO,GACLD,GADK,qFAELA,GAFK,8HAGD,KAAK,CAAC,MAAN,GAAe,CAAf,GACEA,GADF,0IAEM,KAAK,GACHA,GADG,gFACI,eADJ,IAEHA,GAFG,gFAEI,WAAW,IAAI,kBAFnB,CAFX,IAMEA,GANF,qFAHC,CAnCvB,EAgDuB,WAhDvB,EAiDgB,OAAO,GACLA,GADK,wGACG,cADH,IAELA,GAFK,mzBAIUC,QAAM,CAAC,KAJjB,cAKC,cAAc,GAAGA,QAAM,CAAC,KAAV,GAAkB,EALjC,EAjDvB,EA2EuBA,QAAM,CAAC,aA3E9B,EA4Ec,KAAK,CAAC,MAAN,GAAe,CAAf,IACF,CAAC,OADC,IAEFD,GAFE,oHAGE,KAAK,CAAC,GAAN,CACA,UAAC,EAAD;EAAA,WAAQA,GAAR,oUACK,WADL,EAEU,EAAE,CAAC,EAFb,EAGS,EAAE,CAAC,EAHZ,EAIY,EAAE,CAAC,KAJf,EAKiB,KAAK,KAAK,EAAE,CAAC,EAL9B,EAMc,YAAK;EACb,MAAA,QAAQ,CAAC,EAAE,CAAC,EAAJ,CAAR;EACA,MAAA,iBAAiB,CAAC,KAAD,CAAjB;EACD,KATL;EAAA,GADA,CAHF,CA5Ed,EAgGU,kBAAkB,IACpB,CAAC,KADC,IAEF,CAAC,cAFC,IAGF,UAHE,IAIFA,GAJE,mHAIO,YAJP,EAIgD,YAJhD,CAhGV;EAyGD,CAjLD;;;;;;;;;;;ECzBA,IAAM,WAAW,GAAG,SAAd,WAAc;EAAA,SAAMA,GAAN,g4CAERC,QAAM,CAAC,MAFC;EAAA,CAApB;;;;;;;;;;ECeA;;;EAGG;;EACH,IAAM,MAAM,GAAG,SAAT,MAAS,CAAC,KAAD,EAAuB;EACpC,MACE,WADF,GAUI,KAVJ,CACE,WADF;EAAA,MAEE,SAFF,GAUI,KAVJ,CAEE,SAFF;EAAA,MAGE,KAHF,GAUI,KAVJ,CAGE,KAHF;EAAA,uBAUI,KAVJ,CAIE,OAJF;EAAA,MAIE,OAJF,+BAIY,EAJZ;EAAA,8BAUI,KAVJ,CAKE,mBALF;EAAA,MAKE,mBALF,sCAKwB,KALxB;EAAA,8BAUI,KAVJ,CAME,cANF;EAAA,MAME,cANF,sCAMmB,gBANnB;EAAA,0BAUI,KAVJ,CAOE,UAPF;EAAA,MAOE,UAPF,kCAOe,KAPf;EAAA,8BAUI,KAVJ,CAQE,kBARF;EAAA,MAQE,kBARF,sCAQuB,KARvB;EAAA,wBAUI,KAVJ,CASE,QATF;EAAA,MASE,QATF,gCASa;EAAA,WAAM,IAAN;EAAA,GATb;;EAYA,MAAM,iBAAiB,GAAG,SAApB,iBAAoB,CAAC,CAAD,EAAkB;EAC1C,QAAI,CAAC,CAAC,aAAF,YAA2B,iBAA/B,EAAkD;EAChD,UAAe,QAAf,GAA4B,CAAC,CAAC,aAA9B,CAAQ,KAAR;EACA,UAAM,GAAG,GAAG,OAAO,CAAC,SAAR,CAAkB,UAAC,EAAD;EAAA,eAAQ,UAAG,EAAE,CAAC,GAAN,gBAAmB,QAAnB,CAAR;EAAA,OAAlB,CAAZ;EACA,MAAA,QAAQ,CAAC,GAAD,CAAR;EACD;EACF,GAND,CAboC;;;EAsBpC,EAAAvL,CAAS,CAAC,YAAK;EACb,QAAI,OAAO,CAAC,SAAR,CAAkB,UAAC,EAAD;EAAA,aAAQ,EAAE,CAAC,GAAH,KAAW,KAAnB;EAAA,KAAlB,MAAgD,CAAC,CAArD,EAAwD;EACtD,MAAA,QAAQ,CAAC,CAAC,CAAF,CAAR;EACD;EACF,GAJQ,EAIN,EAJM,CAAT;EAMA,SAAOsL,GAAP,mmBACeC,QAAM,CAAC,aADtB,EAGmB,SAHnB,EAIiB,iBAJjB,EAKc,KAAK,IAAIA,QAAM,CAAC,WAL9B,EAOQ,mBAAmB,IACrBD,GADqB,8GACI,cADJ,CAP3B,EASQ,KAAK,KAAK,SAAV,IACFA,GADE,2JAE4C,WAF5C,CATR,EAaQ,OAAO,CAAC,GAAR,CACA,UAAC,EAAD;EAAA,WAAQA,GAAR,kLACkB,EAAE,CAAC,GADrB,EACqC,KAAK,KAAK,EAAE,CAAC,GADlD,EAEM,EAAE,CAAC,KAFT;EAAA,GADA,CAbR,EAoCI,UAAU,IACZ,CAAC,KADC,IAEF,kBAFE,IAGFA,GAHE,oHAGM,YAHN,CApCJ;EAyCD,CArED;;;;;;;;;;;;;;;;;;;;;ECQA,IAAM,SAAS,GAAG,SAAZ,SAAY,CAAC,KAAD,EAA0B;EAAA;;EAC1C,kBAA8BlM,CAAQ,CAAU,IAAV,CAAtC;EAAA;EAAA,MAAO,OAAP;EAAA,MAAgB,UAAhB;;EACA,mBAA8CA,CAAQ,CAAU,KAAV,CAAtD;EAAA;EAAA,MAAO,eAAP;EAAA,MAAwB,kBAAxB;;EACA,mBAAoDA,CAAQ,CAAU,KAAV,CAA5D;EAAA;EAAA,MAAO,kBAAP;EAAA,MAA2B,qBAA3B;;EACA,mBAAkCA,CAAQ,CAAW,EAAX,CAA1C;EAAA;EAAA,MAAO,SAAP;EAAA,MAAkB,YAAlB;;EACA,mBAAwCA,CAAQ,CAAoB,EAApB,CAAhD;EAAA;EAAA,MAAO,YAAP;EAAA,MAAqB,eAArB;;EACA,oBAA0CA,CAAQ,CAAC,EAAD,CAAlD;EAAA;EAAA,MAAO,aAAP;EAAA,MAAsB,gBAAtB,kBAN0C;;;EAS1C,MAAM,OAAO,GAAGwB,CAAU,CAAC,UAAD,CAA1B;EAEA,MAAM,iBAAiB,GAAGP,CAAM,CAAC,EAAD,CAAhC;EAEA,EAAAL,CAAS,CAAC,YAAK;EACb,QAAI,YAAY,CAAC,MAAb,GAAsB,CAA1B,EAA6B;EAC3B;EACA,MAAA,YAAY,CAAC,GAAb,CAAiB,UAAC,EAAD,EAAK,KAAL,EAAc;EAC7B,YAAM,GAAG,GAAG,KAAK,CAAC,eAAN,CAAsB,KAAK,CAAC,MAA5B,EAAoC,EAAE,CAAC,OAAvC,CAAZ;;EACA,YAAI,CAAC,GAAG,CAAC,SAAL,IAAkB,GAAG,CAAC,KAA1B,EAAiC;EAC/B,cAAM,WAAW,GAAG,GAAG,CAAC,KAAJ,CAAU,KAAV,CAAgB,CAAhB,EAAmB,CAAC,CAApB,CAApB;EACA,cAAI,WAAJ,EAAiB,YAAY,CAAC,UAAC,IAAD;EAAA,gDAAc,IAAd,IAAoB,KAApB;EAAA,WAAD,CAAZ;EAClB,SAHD,MAGO,IAAI,GAAG,CAAC,SAAJ,IAAiB,GAAG,CAAC,WAArB,IAAoC,EAAE,CAAC,EAA3C,EAA+C;EACpD,cAAM,YAAY,GAAG,GAAG,CAAC,WAAJ,IAAmB,EAAxC;;EACA,cAAI,YAAY,CAAC,EAAE,CAAC,EAAJ,CAAhB,EAAyB;EACvB,YAAA,YAAY,CAAC,UAAC,IAAD;EAAA,kDAAc,IAAd,IAAoB,KAApB;EAAA,aAAD,CAAZ;EACD;EACF;EACF,OAXD;EAYD;EACF,GAhBQ,EAgBN,CAAC,YAAD,CAhBM,CAAT;EAkBA,EAAAA,CAAS,CAAC,YAAK;EACb,QAAM,WAAW,GAAG,KAAK,CAAC,WAAN,CAAkB,sBAAtC;;EACA,QAAI,WAAJ,EAAiB;EACf,UAAY,aAAZ,GAA8B,WAA9B,CAAQ,EAAR,CADe;;EAGf,UAAM,IAAI,GAAG,8BAA8B,CAAC,aAAD,CAA3C,CAHe;;EAKf,MAAA,eAAe,CAAC,IAAD,CAAf;EACD;EACF,GATQ,EASN,EATM,CAAT;EAWA,EAAAA,CAAS,CAAC,YAAK;EACb;EACA,QAAM,oBAAoB,GAAG,KAAK,CAAC,cAAN,CAAqB,MAArB,CAC3B,UAAC,EAAD;EAAA,aAAQ,EAAE,CAAC,cAAH,IAAqB,EAAE,CAAC,cAAH,CAAkB,IAAlB,KAA2B,SAAxD;EAAA,KAD2B,EAE3B,CAF2B,CAA7B;;EAIA,QAAI,oBAAJ,EAA0B;EACxB;EACA,MAAA,gBAAgB,WAAI,oBAAoB,CAAC,EAAzB,EAAhB;EACD,KATY;;;EAYb,QAAM,kBAAkB,GAAG,KAAK,CAAC,cAAN,CACxB,MADwB,CAEvB,UAAC,EAAD;EAAA,aACE,EAAE,CAAC,cAAH,IACA,EAAE,CAAC,cAAH,CAAkB,IAAlB,KAA2B,WAD3B,IAEA,EAAE,CAAC,UAHL;EAAA,KAFuB,EAOxB,GAPwB,CAOpB,UAAC,EAAD;EAAA,aAAS;EACZ,QAAA,OAAO,EAAE,EAAE,CAAC,EADA;EAEZ,QAAA,EAAE,EAAE,EAAE,CAAC,cAAH,IAAqB,EAAE,CAAC,cAAH,CAAkB,YAF/B;EAGZ,QAAA,KAAK,EAAE,EAAE,CAAC,cAAH,IAAqB,EAAE,CAAC,cAAH,CAAkB,KAHlC;EAIZ,QAAA,IAAI,EAAE,MAJM;EAKZ,QAAA,YAAY,EAAE;EALF,OAAT;EAAA,KAPoB,CAA3B,CAZa;EA4Bb;EACA;EACA;EACA;EACA;EAEA;;EACA,QACE,oBAAoB,IACpB,oBAAoB,CAAC,cADrB,IAEA,oBAAoB,CAAC,EAArB,KAA4B,MAAM,CAAC,aAAD,CAHpC,EAIE;EACA,UAAM,YAAY,GAChB,KAAK,CAAC,kBAAN,CAAyB,KAAK,CAAC,MAA/B,EACE,oBAAoB,CAAC,cAArB,CAAoC,YADtC,CADF;EAKA,UAAI,cAAc,GAAG,EAArB;;EACA,UAAI,YAAJ,EAAkB;EAAA;;EAChB,YAAM,SAAS,4BAAG,YAAY,CAAC,YAAhB,0DAAG,sBAA2B,MAA3B,CAAkC,UAAC,IAAD,EAAO,IAAP,EAAe;EACjE,cAAM,aAAa,GACjB,KAAK,CAAC,kBAAN,CAAyB,KAAK,CAAC,MAA/B,EAAuC,IAAvC,EAA6C,OAD/C;EAEA,qDACK,IADL,2BAEG,aAFH,EAGI,KAAK,CAAC,eAAN,CAAsB,KAAK,CAAC,MAA5B,EAAoC,aAApC,EAAmD,KAHvD;EAKD,SARiB,EAQf,EARe,CAAlB;EASA,QAAA,cAAc,GAAG,IAAI,CAAC,SAAL,CAAe,SAAf,CAAjB;EACD,OAlBD;;;EAqBA,UACE,cAAc,KAAK,iBAAiB,CAAC,OAArC,IACA,oBAAoB,CAAC,EAArB,KAA4B,MAAM,CAAC,aAAD,CAFpC,EAGE;EAAA;;EACA,QAAA,UAAU,CAAC,IAAD,CAAV,CADA;;EAIA,iCAAA,qBAAqB,CAAC,oBAAD,CAArB,gFACI,IADJ,CACS,UAAC,GAAD,EAAQ;EACb,UAAA,UAAU,CAAC,KAAD,CAAV,CADa;;EAGb,UAAA,YAAY,CAAC,EAAD,CAAZ;EACA,UAAA,iBAAiB,CAAC,OAAlB,GAA4B,cAA5B;;EACA,cAAI,KAAK,CAAC,OAAN,CAAc,GAAd,CAAJ,EAAwB;EACtB,YAAA,eAAe,8BACV,kBADU,sBAEV,GAAG,CAAC,GAAJ,CAAQ,UAAC,EAAD;EAAA,yDACN,EADM;EAET,gBAAA,OAAO,EAAE,oBAAoB,CAAC;EAFrB;EAAA,aAAR,CAFU,GAAf;EAOD,WARD,MAQO;EACL,YAAA,eAAe,CAAC,kBAAD,CAAf;EACD;EACF,SAjBH,EAkBG,KAlBH,CAkBS,UAAC,GAAD;EAAA,iBAAS,OAAO,CAAC,KAAR,CAAc,GAAd,CAAT;EAAA,SAlBT;EAmBD;EACF,KApDD,MAoDO,IAAI,CAAC,YAAY,CAAC,MAAlB,EAA0B;EAC/B;EACA;EACA,MAAA,eAAe,oBAAK,kBAAL,EAAf;EACA,MAAA,UAAU,CAAC,KAAD,CAAV;EACD;EACF,GA7FQ,EA6FN,CAAC,KAAK,CAAC,eAAN,CAAsB,KAAK,CAAC,MAA5B,CAAD,CA7FM,CAAT;;EA+FA,MAAM,8BAA8B,GAAG,SAAjC,8BAAiC,CACrC,MADqC,EAInC;EACF,QAAM,MAAM,GAAG,KAAK,CAAC,eAAN,CAAsB,MAAtB,CAAf;EACA,QAAM,wBAAwB,GAAG,MAAM,CAAC,IAAP,CAAY,MAAZ,EAC9B,MAD8B,CACvB,UAAC,EAAD;EAAA,aAAQ,MAAM,CAAC,MAAM,CAAC,EAAD,CAAP,CAAN,CAAmB,KAA3B;EAAA,KADuB,EAE9B,MAF8B,CAEvB,UAAC,IAAD,EAAO,IAAP,EAAe;EACrB,UAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAD,CAAP,CAA1B;EACA,iDACK,IADL,2BAEG,WAAW,CAAC,WAFf,EAE6B,WAAW,CAAC,KAFzC;EAID,KAR8B,EAQ5B,EAR4B,CAAjC;EAUA,WAAO,wBAAP;EACD,GAjBD;;EAmBA,MAAM,eAAe;EAAA,wEAAG,iBACtB,cADsB;EAAA;EAAA;EAAA;EAAA;EAAA;EAGhB,cAAA,WAHgB,GAGF,KAAK,CAAC,WAAN,CAAkB,sBAHhB;;EAItB,kBAAI,WAAJ,EAAiB;EACH,gBAAA,aADG,GACe,WADf,CACP,EADO;;EAGf,oBAAI,WAAW,CAAC,QAAZ,CAAqB,mBAAzB,EAA8C;EAC5C,kBAAA,kBAAkB,CAAC,IAAD,CAAlB;EACA,kBAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,UAAT,CACG,uBADH,CAMI,IAAI,GAAJ,CAAQ,WAAW,CAAC,QAAZ,CAAqB,mBAA7B,CANJ;EAOI,oBAAA,gBAAgB,YAAK,KAAK,CAAC,WAAN,CAAkB,aAAlB,EAAiC,cAAtC;EAPpB,qBAQO,cARP,GAUG,IAVH,CAUQ,UAAC,GAAD,EAAQ;EACZ,oBAAA,kBAAkB,CAAC,KAAD,CAAlB;EACA,wBAAI,GAAJ,EACE,KAAK,CAAC,qBAAN,CAA4B;EAC1B,sBAAA,kBAAkB,EAAE;EADM,qBAA5B;EAGH,mBAhBH;EAiBD,iBAnBD,MAmBO;EACL,kBAAA,kBAAkB,CAAC,KAAD,CAAlB;EACD;;EACD,oBAAI,WAAW,CAAC,QAAZ,CAAqB,2BAAzB,EAAsD;EACpD,kBAAA,qBAAqB,CAAC,IAAD,CAArB;EACA,kBAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,UAAT,CACG,uBADH,CAGK,IAAI,GAAJ,CAAQ,WAAW,CAAC,QAAZ,CAAqB,2BAA7B,CAHL;EAII,oBAAA,gBAAgB,YAAK,KAAK,CAAC,WAAN,CAAkB,aAAlB,EAAiC,cAAtC;EAJpB,qBAKO,cALP,GAOG,IAPH,CAOQ,UAAC,GAAD,EAAQ;EACZ,oBAAA,qBAAqB,CAAC,KAAD,CAArB;EACA,wBAAI,GAAJ,EACE,KAAK,CAAC,mBAAN,CAA0B;EACxB,sBAAA,gBAAgB,EAAE;EADM,qBAA1B;EAGH,mBAbH;EAcD,iBAhBD,MAgBO;EACL,kBAAA,qBAAqB,CAAC,KAAD,CAArB;EACD;EACF;;EAhDqB;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,KAAH;;EAAA,oBAAf,eAAe;EAAA;EAAA;EAAA,KAArB;;EAmDA,MAAM,qBAAqB,GAAG,SAAxB,qBAAwB,CAAC,aAAD,EAAiC;EAAA;;EAC7D,QAAM,eAAe,sCAAM,aAAa,CAAC,cAApB,0DAAM,sBAA8B,iBAApC,CAArB;EACA,WAAO,OAAP,aAAO,OAAP,uBAAO,OAAO,CAAE,UAAT,CAAoB,uBAApB,CACL,IAAI,GAAJ,CAAQ,eAAR,CADK;EAGH,MAAA,gBAAgB,YAAK,KAAK,CAAC,YAAN,CAAmB,MAAxB;EAHb,OAIA,KAAK,CAAC,YAAN,CAAmB,UAJnB,EAAP;EAOD,GATD;;EAWA,MAAM,sBAAsB,GAAG,SAAzB,sBAAyB,CAC7B,KAD6B,EAE7B,IAF6B,EAG7B,UAH6B,EAI7B,QAJ6B,EAK3B;EAAA;;EACF,QAAM,oBAAoB,4BAAG,KAAK,CAAC,kBAAT,0DAAG,sBAA2B,KAA3B,CAA7B;EACA,QAAM,UAAU,GAAG,SAAS,CAAC,SAAV,CAAoB,UAAC,EAAD;EAAA,aAAQ,EAAE,KAAK,QAAf;EAAA,KAApB,CAAnB;;EACA,QAAI,KAAK,GAAG,CAAZ,EAAe;EACb,MAAA,YAAY,CAAC,UAAC,IAAD;EAAA,eAAU,IAAI,CAAC,MAAL,CAAY,UAAC,EAAD;EAAA,iBAAQ,EAAE,KAAK,QAAf;EAAA,SAAZ,CAAV;EAAA,OAAD,CAAZ;;EACA,UAAI,IAAI,CAAC,YAAT,EAAuB;EACrB,QAAA,KAAK,CAAC,gBAAN,CAAuB;EACrB,UAAA,MAAM,YAAK,KAAK,CAAC,MAAX,CADe;EAErB,UAAA,OAAO,YAAK,IAAI,CAAC,OAAV,CAFc;EAGrB,UAAA,KAAK,EAAE,EAHc;EAIrB,UAAA,UAAU,EAAV;EAJqB,SAAvB;EAMD,OAPD,MAOO,IAAI,aAAJ,EAAmB;EACxB,QAAA,KAAK,CAAC,kBAAN,CAAyB;EACvB,UAAA,MAAM,EAAE,KAAK,CAAC,MADS;EAEvB,UAAA,OAAO,EAAE,MAAM,CAAC,aAAD,CAFQ;EAGvB,UAAA,EAAE,YAAK,IAAI,CAAC,EAAV,CAHqB;EAIvB,UAAA,KAAK,EAAE;EAJgB,SAAzB;EAMD;EACF,KAjBD,MAiBO,IAAI,oBAAJ,EAA0B;EAC/B,UAAI,UAAU,GAAG,CAAjB,EAAoB;EAClB,QAAA,YAAY,CAAC,UAAC,IAAD;EAAA,8CAAc,IAAd,IAAoB,QAApB;EAAA,SAAD,CAAZ;EACD;;EACD,UAAI,IAAI,CAAC,YAAT,EAAuB;EACrB,QAAA,KAAK,CAAC,gBAAN,CAAuB;EACrB,UAAA,MAAM,YAAK,KAAK,CAAC,MAAX,CADe;EAErB,UAAA,OAAO,YAAK,IAAI,CAAC,OAAV,CAFc;EAGrB,UAAA,KAAK,aAAM,oBAAoB,CAAC,KAA3B,MAHgB;EAIrB,UAAA,UAAU,EAAV;EAJqB,SAAvB;EAMD,OAPD,MAOO,IAAI,aAAJ,EAAmB;EACxB,QAAA,KAAK,CAAC,kBAAN,CAAyB;EACvB,UAAA,MAAM,EAAE,KAAK,CAAC,MADS;EAEvB,UAAA,OAAO,EAAE,MAAM,CAAC,aAAD,CAFQ;EAGvB,UAAA,EAAE,YAAK,IAAI,CAAC,EAAV,CAHqB;EAIvB,UAAA,KAAK,aAAM,oBAAoB,CAAC,KAA3B;EAJkB,SAAzB;EAMD;EACF;;EACD,IAAA,KAAK,CAAC,kBAAN,CAAyB,KAAK,CAAC,MAA/B;EACD,GA9CD;;EAgDA,MAAM,UAAU,mBAAG,MAAM,CAAC,IAAP,CAAY,KAAK,CAAC,WAAlB,CAAH,qEAAG,aACf,GADe,CACX,UAAC,MAAD;EAAA,WAAY,KAAK,CAAC,WAAN,CAAkB,MAAlB,CAAZ;EAAA,GADW,CAAH,qDAAG,iBAEf,MAFe,CAER,UAAC,EAAD;EAAA,WAAQ,EAAE,CAAC,IAAH,CAAQ,QAAR,CAAiB,IAAjB,KAA0B,SAAlC;EAAA,GAFQ,EAEqC,CAFrC,CAAnB;EAIA,SAAOsL,GAAP,2QAEO,KAFP,EAOQ,OAAO,IAAI,eAAX,IAA8B,kBAA9B,GACEA,GADF,0GACoBC,QAAM,CAAC,MAD3B,EACsC,WADtC,IAEED,GAFF,ksCAGiBC,QAAM,CAAC,WAHxB,EAImBA,QAAM,CAAC,UAJ1B,EAKqBA,QAAM,CAAC,iBAL5B,EAOkB,KAAK,CAAC,WAAN,CAAkB,KAAK,CAAC,MAAxB,EAAgC,IAAhC,CAAqC,QAArC,CAA8C,GAA9C,CACH,QARf,YAYc,KAAK,CAAC,WAAN,CAAkB,KAAK,CAAC,MAAxB,EAAgC,IAAhC,CAAqC,QAArC,CAA8C,GAA9C,CAAkD,IAZhE,aAgBqBA,QAAM,CAAC,UAhB5B,EAiBqBA,QAAM,CAAC,iBAjB5B,EAmBkB,UAAU,GACZ,UAAU,CAAC,IAAX,CAAgB,QAAhB,CAAyB,GAAzB,CAA6B,QADjB,4BAEZ,KAAK,CAAC,WAAN,CAAkB,WAFN,0DAEZ,sBAA+B,QArB/C,EAwBc,UAAU,aACL,UAAU,CAAC,IAAX,CAAgB,QAAhB,CAAyB,GAAzB,CAA6B,IADxB,kDAEL,KAAK,CAAC,WAAN,CAAkB,WAFb,2DAEL,uBAA+B,IAF1B,WAxBxB,EA8BQ,YAAY,CAAC,GAAb,CAAiB,UAAC,EAAD,EAAK,SAAL,EAAkB;EAAA;;EACnC,QAAM,IAAI,GAAG,EAAE,CAAC,EAAH,IAAS,EAAtB;EACA,QAAM,GAAG,GAAG,KAAK,CAAC,eAAN,CAAsB,KAAK,CAAC,MAA5B,EAAoC,EAAE,CAAC,OAAvC,CAAZ;EACA,QAAI,SAAJ;EACA,QAAI,SAAJ;;EACA,QAAI,GAAJ,EAAS;EACP,UAAI,GAAG,CAAC,SAAR,EAAmB;EACjB,QAAA,SAAS,GAAG,GAAG,CAAC,WAAhB;EAID,OALD,MAKO;EAAA;;EACL,QAAA,SAAS,iBAAG,GAAG,CAAC,KAAP,+CAAG,WAAW,KAAX,CAAiB,CAAjB,EAAoB,CAAC,CAArB,CAAZ;EACD;;EACD,UAAI,CAAC,GAAG,CAAC,SAAL,IAAkB,SAAtB,EAAiC;EAC/B,QAAA,SAAS,GAAG,SAAZ;EACD,OAFD,MAEO,IACL,EAAE,CAAC,EAAH,IACA,GAAG,CAAC,SADJ,IAEA,GAAG,CAAC,WAFJ,IAGC,SAA6C,CAAC,IAAD,CAJzC,EAKL;EACA,QAAA,SAAS,GAAG,UACT,SAA6C,CAAC,IAAD,CADpC,EAET,KAFS,CAEH,CAFG,EAEA,CAAC,CAFD,CAAZ;EAGD;EACF;;EACD,WAAOD,GAAP,i6BACeC,QAAM,CAAC,UADtB,EAEiBA,QAAM,CAAC,KAFxB,EAGQ,EAAE,CAAC,KAHX,EAGmB,CAAA,GAAG,SAAH,IAAA,GAAG,WAAH,YAAA,GAAG,CAAE,UAAL,KAAmBD,GAAnB,yFAHnB,EAKiBC,QAAM,CAAC,UALxB,EAMQ,KAAK,CAAC,gBAAN,IACF,SADE,8BAEF,KAAK,CAAC,gBAAN,YACM,SADN,OAFE,0DAEF,sBAEG,GAFH,CAEO,UAAC,MAAD;EAAA,aACL,MAAM,GAAGD,GAAH,2FAAe,MAAf,IAAgCA,GAAhC,2EADD;EAAA,KAFP,CAFE,CANR,EAciBC,QAAM,CAAC,SAdxB,EAeS,MAfT,4BAkBkB,KAAK,CAAC,kBAlBxB,2DAkBkB,uBAA0B,GAA1B,CAA8B,UAAC,IAAD;EAAA,aAAW;EACjD,QAAA,GAAG,EAAE,IAAI,CAAC,KADuC;EAEjD,QAAA,KAAK,EAAE,IAAI,CAAC;EAFqC,OAAX;EAAA,KAA9B,CAlBlB,EAsBgB,SAtBhB,EAuBqB,GAvBrB,aAuBqB,GAvBrB,uBAuBqB,GAAG,CAAE,UAvB1B,EAwB6B,KAAK,CAAC,kBAxBnC,EAyB8B,IAzB9B,EA2BmB,UAAC,KAAD;EAAA;;EAAA,aACT,sBAAsB,CACpB,KADoB,EAEpB,EAFoB,qBAGpB,GAHoB,aAGpB,GAHoB,uBAGpB,GAAG,CAAE,UAHe,6DAGD,KAHC,EAIpB,SAJoB,CADb;EAAA,KA3BnB;EAsCD,GAjEC,CA9BR,EAgGmBA,QAAM,CAAC,WAhG1B,EAoGe,SAAS,CAAC,MApGzB,EAoGkC,GApGlC,EAqGmB,SAAS,CAAC,MAAV,KAAqB,CAArB,GAAyB,GAAzB,GAA+B,EArGlD,EA2Ge,YAAY,CAAC,MAAb,GAAsB,SAAS,CAAC,MA3G/C,EA2GwD,GA3GxD,EA4GmB,YAAY,CAAC,MAAb,GAAsB,SAAS,CAAC,MAAhC,KAA2C,CAA3C,GACH,GADG,GAEH,EA9GhB,CAPR;EA8HD,CA5YD;;AA8YA,oBAAeE,cAAO,CACpB,CACE,WADF,EAEE,aAFF,EAGE,aAHF,EAIE,oBAJF,EAKE,kBALF,EAME,iBANF,EAOE,oBAPF,CADoB,EAUpB,eAVoB,CAAP,CAWb,SAXa,CAAf;;;;;;;;;;;;;;;EChaA;;;EAGG;;EACI,IAAM,QAAQ,GAAG,SAAX,QAAW,CAAC,KAAD,EAAyB;EAC/C,MACE,OADF,GAOI,KAPJ,CACE,OADF;EAAA,MAEE,EAFF,GAOI,KAPJ,CAEE,EAFF;EAAA,2BAOI,KAPJ,CAGE,WAHF;EAAA,MAGE,WAHF,mCAGgB,IAHhB;EAAA,MAIE,KAJF,GAOI,KAPJ,CAIE,KAJF;EAAA,yBAOI,KAPJ,CAKE,SALF;EAAA,MAKE,SALF,iCAKc,KALd;EAAA,4BAOI,KAPJ,CAME,YANF;EAAA,MAME,YANF,oCAMiB;EAAA,WAAM,IAAN;EAAA,GANjB;;EASA,MAAM,oBAAoB,GAAG,SAAvB,oBAAuB,CAAC,CAAD,EAAkB;EAC7C,QAAI,CAAC,CAAC,MAAF,YAAoB,gBAAxB,EAA0C;EACxC,sBAA0B,CAAC,CAAC,MAA5B;EAAA,UAAQ,IAAR,aAAQ,IAAR;EAAA,UAAc,OAAd,aAAc,OAAd;EACA,MAAA,YAAY,CAAC,IAAD,EAAO,OAAP,CAAZ;EACD;EACF,GALD;;EAOA,SAAOH,GAAP,shBACeC,QAAM,CAAC,YADtB,EAEiBA,QAAM,CAAC,QAFxB,EAGmB,OAAO,GAAG,EAH7B,EAKe,OAAO,GAAG,EALzB,EAOiB,EAPjB,EAQkB,KARlB,EASoB,SATpB,EAUoB,oBAVpB,EAYqBA,QAAM,CAAC,MAZ5B,EAaY,SAAS,GACPD,GADO,u2BAmBPA,GAnBO,gnBAbrB,EAgDuBC,QAAM,CAAC,IAhD9B,EAgDsC,KAhDtC,EAiDY,WAAW,IACbD,GADa,sGACKC,QAAM,CAAC,WADZ,EAC2B,WAD3B,CAjDvB;EAwDD,CAzEM;;;ECeP;;;EAGG;;EACI,IAAM,aAAa,GAAG,SAAhB,aAAgB,CAAC,KAAD,EAA8B;EACzD,MACE,OADF,GAcI,KAdJ,CACE,OADF;EAAA,MAEE,KAFF,GAcI,KAdJ,CAEE,KAFF;EAAA,MAGE,WAHF,GAcI,KAdJ,CAGE,WAHF;EAAA,MAIE,KAJF,GAcI,KAdJ,CAIE,KAJF;EAAA,MAKE,SALF,GAcI,KAdJ,CAKE,SALF;EAAA,6BAcI,KAdJ,CAME,aANF;EAAA,MAME,aANF,qCAMkB,EANlB;EAAA,MAOE,SAPF,GAcI,KAdJ,CAOE,SAPF;EAAA,MAQE,YARF,GAcI,KAdJ,CAQE,YARF;EAAA,8BAcI,KAdJ,CASE,cATF;EAAA,MASE,cATF,sCASmB,EATnB;EAAA,MAUE,eAVF,GAcI,KAdJ,CAUE,eAVF;EAAA,0BAcI,KAdJ,CAWE,UAXF;EAAA,MAWE,UAXF,kCAWe,KAXf;EAAA,8BAcI,KAdJ,CAYE,kBAZF;EAAA,MAYE,kBAZF,sCAYuB,KAZvB;EAAA,wBAcI,KAdJ,CAaE,QAbF;EAAA,MAaE,QAbF,gCAaa;EAAA,WAAM,IAAN;EAAA,GAbb;EAgBA,MAAM,UAAU,GAAGlL,CAAM,CAAC,aAAD,CAAzB;;EAEA,kBAA8BjB,CAAQ,CAAC,SAAD,CAAtC;EAAA;EAAA,MAAO,OAAP;EAAA,MAAgB,UAAhB;;EACA,mBAA8CA,CAAQ,CACpD,aADoD,CAAtD;EAAA;EAAA,MAAO,eAAP;EAAA,MAAwB,kBAAxB;;EAIA,mBAA0BA,CAAQ,CAAgB,IAAhB,CAAlC;EAAA;EAAA,MAAO,KAAP;EAAA,MAAc,QAAd;;EAEA,mBAA0CA,CAAQ,CAChD,KAAK,CAAC,OAAN,CAAc,cAAd,IAAgC,cAAhC,GAAiD,EADD,CAAlD;EAAA;EAAA,MAAO,aAAP;EAAA,MAAsB,gBAAtB;;EAIA,MAAM,OAAO,GAAGwB,CAAU,CAAC,UAAD,CAA1B;EAEA,EAAAZ,CAAS,CAAC,YAAK;EACb,QAAI,KAAJ,EAAW;EACT,UAAI,KAAK,KAAK,GAAV,IAAiB,aAAa,CAAC,MAAd,KAAyB,CAA9C,EAAiD;;EACjD,UAAI,KAAK,KAAK,GAAV,IAAiB,aAAa,CAAC,MAAd,KAAyB,CAA9C,EAAiD;EAC/C,QAAA,kBAAkB,CAAC,CAAC,aAAa,CAAC,CAAD,CAAb,CAAiB,EAAlB,CAAD,CAAlB;EACD,OAFD,MAEO;EACL,QAAA,kBAAkB,CAAC,KAAK,CAAC,KAAN,CAAY,GAAZ,EAAiB,GAAjB,CAAqB,UAAC,EAAD;EAAA,iBAAQ,EAAE,CAAC,IAAH,EAAR;EAAA,SAArB,CAAD,CAAlB;EACD;EACF;EACF,GATQ,EASN,EATM,CAAT;EAWA,EAAAA,CAAS,CAAC,YAAK;EACb,QAAI,UAAU,CAAC,OAAX,KAAuB,eAA3B,EAA4C;EAC1C,UAAI,aAAa,CAAC,MAAd,GAAuB,CAA3B,EAA8B;EAC5B,QAAA,QAAQ,CAAC,eAAe,CAAC,MAAhB,KAA2B,CAA3B,GAA+B,GAA/B,GAAqC,GAAtC,CAAR;EACD,OAFD,MAEO;EACL,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAhB,CAAqB,GAArB,CAAD,CAAR;EACD;EACF;EACF,GARQ,EAQN,CAAC,eAAD,EAAkB,aAAlB,CARM,CAAT;EAUA,EAAAA,CAAS,CAAC,YAAK;EACb,QAAI,SAAJ,EAAe;EACb,UAAI,eAAJ,EAAqB;EACnB,YAAI,IAAJ;;EACA,YAAI;EACF,UAAA,IAAI,GAAG,IAAI,CAAC,KAAL,CAAW,YAAX,CAAP;EACD,SAFD,CAEE,OAAO,QAAP,EAAiB;EACjB,UAAA,IAAI,GAAG,EAAP;EACD,SANkB;;;EAQnB,QAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,UAAT,CACG,uBADH,CAEI,IAAI,GAAJ,CAAQ,eAAR,CAFJ,EAGI,IAHJ,EAKG,IALH,CAKQ,UAAC,GAAD,EAAQ;EACZ,cAAI,GAAJ,EAAS,gBAAgB,CAAC,GAAD,CAAhB,CAAT,KACK,QAAQ,+BAAR;EACN,SARH,EASG,KATH,CASS,UAAC,GAAD,EAAQ;EACb,UAAA,OAAO,CAAC,KAAR,CAAc,GAAd;EACA,UAAA,QAAQ,CAAC,6BAAD,CAAR;EACD,SAZH,EAaG,OAbH,CAaW;EAAA,iBAAM,UAAU,CAAC,KAAD,CAAhB;EAAA,SAbX;EAcD,OAtBD,MAsBO;EACL,QAAA,gBAAgB,CAAC,cAAD,CAAhB;EACA,QAAA,UAAU,CAAC,KAAD,CAAV;EACD;EACF,KA3BD,MA2BO;EACL,MAAA,gBAAgB,CAAC,cAAD,CAAhB;EACD;EACF,GA/BQ,EA+BN,EA/BM,CAAT;;EAiCA,MAAM,YAAY,GAAG,SAAf,YAAe,CAAC,MAAD,EAAmB;EACtC,QAAI,eAAe,CAAC,OAAhB,CAAwB,MAAxB,IAAkC,CAAC,CAAvC,EAA0C;EACxC,MAAA,kBAAkB,CAAC,UAAC,IAAD;EAAA,eAAU,IAAI,CAAC,MAAL,CAAY,UAAC,EAAD;EAAA,iBAAQ,EAAE,KAAK,MAAf;EAAA,SAAZ,CAAV;EAAA,OAAD,CAAlB;EACD,KAFD,MAEO;EACL,MAAA,kBAAkB,8BAAK,eAAL,IAAsB,MAAtB,GAAlB;EACD;EACF,GAND;;EAQA,SAAOsL,GAAP,6VACgBC,QAAM,CAAC,aADvB,EAGS,KAHT,EAGwB,KAHxB,EAG6C,WAH7C,EAKgBA,QAAM,CAAC,iBALvB,EAO0B,SAP1B,EASU,OAAO,GACLD,GADK,0KAEA,cAFA,IAILA,GAJK,kHAKD,KAAK,GACHA,GADG,6KAEE,YAFF,EAEkB,KAFlB,IAIHA,GAJG,8HAKC,aALD,aAKC,aALD,uBAKC,aAAa,CAAE,GAAf,CACA,UAAC,EAAD;EAAA,WAAQA,GAAR,0XACK,QADL,EAEc,OAFd,EAGS,EAAE,CAAC,EAHZ,EAIY,EAAE,CAAC,KAJf,EAKgB,eAAe,CAAC,OAAhB,CAAwB,EAAE,CAAC,EAA3B,IAAiC,CAAC,CALlD,EAMmB,YANnB;EAAA,GADA,CALD,CALJ,CATjB,EAkCM,kBAAkB,IACpB,eAAe,CAAC,MAAhB,GAAyB,CADvB,IAEF,UAFE,IAGFA,GAHE,iHAGO,YAHP,EAGgD,YAHhD,CAlCN;EAwCD,CAtIM;;;;;;;;;ECxBP;;;EAGG;;EACH,IAAM,SAAS,GAAG,SAAZ,SAAY,CAAC,KAAD,EAA0B;EAC1C,MACE,WADF,GAOI,KAPJ,CACE,WADF;EAAA,MAEE,KAFF,GAOI,KAPJ,CAEE,KAFF;EAAA,oBAOI,KAPJ,CAGE,IAHF;EAAA,MAGE,IAHF,4BAGS,MAHT;EAAA,MAIE,OAJF,GAOI,KAPJ,CAIE,OAJF;EAAA,4BAOI,KAPJ,CAKE,YALF;EAAA,MAKE,YALF,oCAKiB;EAAA,WAAM,IAAN;EAAA,GALjB;EAAA,0BAOI,KAPJ,CAME,UANF;EAAA,MAME,UANF,kCAMe;EAAA,WAAM,IAAN;EAAA,GANf;;EASA,MAAM,iBAAiB,GAAG,SAApB,iBAAoB,CAAC,CAAD,EAAkB;EAC1C,QAAI,CAAC,CAAC,aAAF,YAA2B,gBAA/B,EAAiD;EAC/C,UAAe,QAAf,GAA4B,CAAC,CAAC,aAA9B,CAAQ,KAAR;EACA,MAAA,YAAY,CAAC,QAAD,CAAZ;EACD;EACF,GALD;;EAOA,MAAM,gBAAgB,GAAG,SAAnB,gBAAmB,CAAC,CAAD,EAAkB;EACzC,QACE,CAAC,CAAC,aAAF,YAA2B,gBAA3B,IACA,CAAC,CAAC,aAAF,CAAgB,IAAhB,KAAyB,MAF3B,EAGE;EACA,UAAe,QAAf,GAA4B,CAAC,CAAC,aAA9B,CAAQ,KAAR;EACA,MAAA,YAAY,CAAC,QAAD,CAAZ;EACD;EACF,GARD;;EAUA,SAAOA,GAAP,uRACeC,QAAM,CAAC,YADtB,EAGa,IAHb,EAIoB,WAJpB,EAKc,KALd,EAMgB,iBANhB,EAOiB,gBAPjB,EAQe,UARf,EAUM,OAAO,IAAID,GAAJ,qFAAY,OAAZ,CAVb;EAaD,CAxCD;;;;;;;;;ECIA;;;EAGG;;EACH,IAAM,KAAK,GAAG,SAAR,KAAQ,CAAC,KAAD,EAAsB;EAClC,MACE,KADF,GAUI,KAVJ,CACE,KADF;EAAA,MAEE,WAFF,GAUI,KAVJ,CAEE,WAFF;EAAA,MAGE,WAHF,GAUI,KAVJ,CAGE,WAHF;EAAA,MAIE,KAJF,GAUI,KAVJ,CAIE,KAJF;EAAA,MAKE,KALF,GAUI,KAVJ,CAKE,KALF;EAAA,MAME,iBANF,GAUI,KAVJ,CAME,iBANF;EAAA,8BAUI,KAVJ,CAOE,kBAPF;EAAA,MAOE,kBAPF,sCAOuB,KAPvB;EAAA,0BAUI,KAVJ,CAQE,UARF;EAAA,MAQE,UARF,kCAQe,KARf;EAAA,wBAUI,KAVJ,CASE,QATF;EAAA,MASE,QATF,gCASa;EAAA,WAAM,IAAN;EAAA,GATb;;EAWA,kBAAuBlM,CAAQ,CAAC,KAAD,CAA/B;EAAA;EAAA,MAAO,YAAP;;EACA,mBAAwCA,CAAQ,CAAC,KAAD,CAAhD;EAAA;EAAA,MAAO,YAAP;EAAA,MAAqB,eAArB;;EACA,mBAAwDA,CAAQ,CAAC,KAAD,CAAhE;EAAA;EAAA,MAAO,oBAAP;EAAA,MAA6B,uBAA7B,iBAdkC;;;EAiBlC,EAAAY,CAAS,CAAC,YAAK;EACb,QAAI,KAAJ,EAAW;EACT,UAAM,OAAO,GAAG,CAAC,IAAI,MAAJ,CAAW,KAAX,EAAkB,IAAlB,WAA0B,YAA1B,EAAjB;EACA,MAAA,eAAe,CAAC,OAAD,CAAf;EACD;EACF,GALQ,EAKN,CAAC,KAAD,CALM,CAAT;;EAOA,MAAM,YAAY,GAAG,SAAf,YAAe,CAAC,UAAD,EAAuB;EAC1C,QAAI,KAAJ,EAAW;EACT,UAAI,CAAC,IAAI,MAAJ,CAAW,KAAX,EAAkB,IAAlB,CAAuB,UAAvB,CAAL,EAAyC;EACvC,QAAA,QAAQ,CAAC,UAAD,EAAa,KAAb,CAAR;EACA,QAAA,eAAe,CAAC,IAAD,CAAf;EACD,OAHD,MAGO;EACL,QAAA,QAAQ,CAAC,UAAD,EAAa,IAAb,CAAR;EACA,QAAA,eAAe,CAAC,KAAD,CAAf;EACD;EACF,KARD,MAQO;EACL,MAAA,QAAQ,CAAC,UAAD,CAAR;EACD;EACF,GAZD;;EAcA,MAAM,QAAQ,GAAG,SAAX,QAAW,GAAK;EACpB,IAAA,uBAAuB,CAAC,IAAD,CAAvB;EACD,GAFD;;EAIA,SAAOsL,GAAP,mbACgBC,QAAM,CAAC,iBADvB,EAGS,KAHT,EAGwB,KAHxB,EAG6C,WAH7C,EAImB,UAJnB,EAKS,SALT,EAOsB,WAPtB,EAQuB,YARvB,EASqB,QATrB,EAUgB,KAVhB,EAaM,kBAAkB,IACpB,UADE,IAEF,CAAC,KAFC,IAGFD,GAHE,0GAGM,YAHN,CAbN,EAiBM,CAAC,kBAAkB,IAAI,oBAAtB,IAA8C,YAA/C,KACF,YADE,IAEF,KAFE,IAGFA,GAHE,0FAGM,YAHN,EAGsB,iBAAiB,IAAI,eAH3C,CAjBN;EAuBD,CAjED;;;;;;;;;;ECPA;;;EAGG;;EACH,IAAM,SAAS,GAAG,SAAZ,SAAY,CAAC,KAAD,EAA0B;EAC1C,MACE,KADF,GAQI,KARJ,CACE,KADF;EAAA,MAEE,WAFF,GAQI,KARJ,CAEE,WAFF;EAAA,MAGE,WAHF,GAQI,KARJ,CAGE,WAHF;EAAA,MAIE,KAJF,GAQI,KARJ,CAIE,KAJF;EAAA,8BAQI,KARJ,CAKE,kBALF;EAAA,MAKE,kBALF,sCAKuB,KALvB;EAAA,0BAQI,KARJ,CAME,UANF;EAAA,MAME,UANF,kCAMe,KANf;EAAA,wBAQI,KARJ,CAOE,QAPF;EAAA,MAOE,QAPF,gCAOa;EAAA,WAAM,IAAN;EAAA,GAPb;EAUA,SAAOA,GAAP,kXACgBC,QAAM,CAAC,gBADvB,EAGS,KAHT,EAGwB,KAHxB,EAG6C,WAH7C,EAIS,SAJT,EAMsB,WANtB,EAOuB,QAPvB,EAQgB,KARhB,EASkB;EAAA,WAAMD,GAAN,iNAEAC,QAAM,CAAC,gBAFP,EAGE,YAAK;EACb,UAAI,KAAJ,EAAW,QAAQ,CAAC,EAAD,CAAR;EACZ,KALO,EAON,CAAC,KAAD,GACED,GADF,woCAiBEA,GAjBF,s9BAPM;EAAA,GATlB,EAoDM,kBAAkB,IACpB,UADE,IAEF,CAAC,KAFC,IAGFA,GAHE,yGAGM,YAHN,CApDN;EA0DD,CArED;;;;;;;;;;;ECCA;;;EAGG;;EACH,IAAM,aAAa,GAAG,SAAhB,aAAgB,CAAC,KAAD,EAA8B;EAClD,MACE,KADF,GAUI,KAVJ,CACE,KADF;EAAA,MAEE,WAFF,GAUI,KAVJ,CAEE,WAFF;EAAA,MAGE,WAHF,GAUI,KAVJ,CAGE,WAHF;EAAA,MAIE,KAJF,GAUI,KAVJ,CAIE,KAJF;EAAA,MAKE,KALF,GAUI,KAVJ,CAKE,KALF;EAAA,MAME,iBANF,GAUI,KAVJ,CAME,iBANF;EAAA,8BAUI,KAVJ,CAOE,kBAPF;EAAA,MAOE,kBAPF,sCAOuB,KAPvB;EAAA,0BAUI,KAVJ,CAQE,UARF;EAAA,MAQE,UARF,kCAQe,KARf;EAAA,wBAUI,KAVJ,CASE,QATF;EAAA,MASE,QATF,gCASa;EAAA,WAAM,IAAN;EAAA,GATb;;EAYA,kBAAuBlM,CAAQ,CAAC,KAAD,CAA/B;EAAA;EAAA,MAAO,YAAP;;EACA,mBAA0CA,CAAQ,CAAC,KAAD,CAAlD;EAAA;EAAA,MAAO,aAAP;EAAA,MAAsB,gBAAtB;;EACA,mBAAwCA,CAAQ,CAAC,KAAD,CAAhD;EAAA;EAAA,MAAO,YAAP;EAAA,MAAqB,eAArB;;EACA,mBAAwDA,CAAQ,CAAC,KAAD,CAAhE;EAAA;EAAA,MAAO,oBAAP;EAAA,MAA6B,uBAA7B,iBAhBkD;;;EAmBlD,EAAAY,CAAS,CAAC,YAAK;EACb,QAAI,KAAJ,EAAW;EACT,UAAM,OAAO,GAAG,CAAC,IAAI,MAAJ,CAAW,KAAX,EAAkB,IAAlB,WAA0B,YAA1B,EAAjB;EACA,MAAA,eAAe,CAAC,OAAD,CAAf;EACD;EACF,GALQ,EAKN,CAAC,KAAD,CALM,CAAT;;EAOA,MAAM,YAAY,GAAG,SAAf,YAAe,CAAC,UAAD,EAAuB;EAC1C,QAAI,KAAJ,EAAW;EACT,UAAI,CAAC,IAAI,MAAJ,CAAW,KAAX,EAAkB,IAAlB,CAAuB,UAAvB,CAAL,EAAyC;EACvC,QAAA,QAAQ,CAAC,UAAD,EAAa,KAAb,CAAR;EACA,QAAA,eAAe,CAAC,IAAD,CAAf;EACD,OAHD,MAGO;EACL,QAAA,QAAQ,CAAC,UAAD,EAAa,IAAb,CAAR;EACA,QAAA,eAAe,CAAC,KAAD,CAAf;EACD;EACF,KARD,MAQO;EACL,MAAA,QAAQ,CAAC,UAAD,CAAR;EACD;EACF,GAZD;;EAcA,MAAM,QAAQ,GAAG,SAAX,QAAW,GAAK;EACpB,IAAA,uBAAuB,CAAC,IAAD,CAAvB;EACD,GAFD;;EAIA,MAAM,uBAAuB,GAAG,SAA1B,uBAA0B,GAAK;EACnC,IAAA,gBAAgB,CAAC,UAAC,OAAD;EAAA,aAAa,CAAC,OAAd;EAAA,KAAD,CAAhB;EACD,GAFD;;EAIA,SAAOsL,GAAP,yZACgBC,QAAM,CAAC,oBADvB,EAGS,KAHT,EAGwB,KAHxB,EAG6C,WAH7C,EAIS,SAJT,EAKe,aAAa,GAAG,MAAH,GAAY,UALxC,EAMsB,WANtB,EAOuB,YAPvB,EAQqB,QARrB,EASgB,KAThB,EAUkB;EAAA,WAAMD,GAAN,uNAEEC,QAAM,CAAC,gBAFT,EAGI,uBAHJ,EAKJ,CAAC,aAAD,GACED,GADF,g7DAqBEA,GArBF,66DALI;EAAA,GAVlB,EA2DQ,kBAAkB,IACpB,UADE,IAEF,CAAC,KAFC,IAGFA,GAHE,0GAGM,YAHN,CA3DR,EA+DQ,CAAC,kBAAkB,IAAI,oBAAtB,IAA8C,YAA/C,KACF,YADE,IAEF,KAFE,IAGFA,GAHE,0FAGM,YAHN,EAGsB,iBAAiB,IAAI,eAH3C,CA/DR;EAsED,CAtHD;;EC1BO,IAAM,qBAAqB,GAAG,SAAxB,qBAAwB,CAAC,GAAD,EAAgB;EACnD,MAAI,CAAC,SAAS,CAAC,SAAf,EAA0B;EACxB;EACA,QAAM,EAAE,GAAG,QAAQ,CAAC,aAAT,CAAuB,UAAvB,CAAX,CAFwB;;EAIxB,IAAA,EAAE,CAAC,KAAH,GAAW,GAAX,CAJwB;;EAMxB,IAAA,EAAE,CAAC,YAAH,CAAgB,UAAhB,EAA4B,EAA5B;EAEA,IAAA,EAAE,CAAC,KAAH,CAAS,QAAT,GAAoB,UAApB;EACA,IAAA,EAAE,CAAC,KAAH,CAAS,IAAT,GAAgB,SAAhB;EACA,IAAA,QAAQ,CAAC,IAAT,CAAc,WAAd,CAA0B,EAA1B,EAVwB;;EAYxB,IAAA,EAAE,CAAC,MAAH,GAZwB;;EAcxB,IAAA,QAAQ,CAAC,WAAT,CAAqB,MAArB,EAdwB;;EAgBxB,IAAA,QAAQ,CAAC,IAAT,CAAc,WAAd,CAA0B,EAA1B;EACD,GAjBD,MAiBO;EACL,IAAA,SAAS,CAAC,SAAV,CAAoB,SAApB,CAA8B,GAA9B,EAAmC,KAAnC,CAAyC,YAAK;EAC5C,MAAA,OAAO,CAAC,KAAR,CAAc,6BAAd,EAD4C;EAE7C,KAFD;EAGD;EACF,CAvBM;;;;;;;;;;ECqBP;;;EAGG;;EACH,IAAM,QAAQ,GAAG,SAAX,QAAW,CAAC,KAAD,EAAyB;EACxC,MACE,KADF,GAWI,KAXJ,CACE,KADF;EAAA,MAEE,WAFF,GAWI,KAXJ,CAEE,WAFF;EAAA,MAGE,KAHF,GAWI,KAXJ,CAGE,KAHF;EAAA,MAIE,WAJF,GAWI,KAXJ,CAIE,WAJF;EAAA,wBAWI,KAXJ,CAKE,QALF;EAAA,MAKE,QALF,gCAKa;EAAA,WAAM,IAAN;EAAA,GALb;EAAA,8BAWI,KAXJ,CAME,kBANF;EAAA,MAME,kBANF,sCAMuB,KANvB;EAAA,MAOE,KAPF,GAWI,KAXJ,CAOE,KAPF;EAAA,MAQE,iBARF,GAWI,KAXJ,CAQE,iBARF;EAAA,8BAWI,KAXJ,CASE,cATF;EAAA,MASE,cATF,sCASmB,KATnB;EAAA,0BAWI,KAXJ,CAUE,UAVF;EAAA,MAUE,UAVF,kCAUe,KAVf;;EAaA,kBAAuBlM,CAAQ,CAAC,KAAD,CAA/B;EAAA;EAAA,MAAO,YAAP;;EACA,mBAAwCA,CAAQ,CAAC,KAAD,CAAhD;EAAA;EAAA,MAAO,YAAP;EAAA,MAAqB,eAArB;;EACA,mBAAwDA,CAAQ,CAAC,KAAD,CAAhE;EAAA;EAAA,MAAO,oBAAP;EAAA,MAA6B,uBAA7B,iBAhBwC;;;EAmBxC,EAAAY,CAAS,CAAC,YAAK;EACb,QAAI,KAAJ,EAAW;EACT,UAAM,OAAO,GAAG,CAAC,IAAI,MAAJ,CAAW,KAAX,EAAkB,IAAlB,WAA0B,YAA1B,EAAjB;EACA,MAAA,eAAe,CAAC,OAAD,CAAf;EACD;EACF,GALQ,EAKN,CAAC,KAAD,CALM,CAAT;;EAOA,MAAM,iBAAiB,GAAG,SAApB,iBAAoB,CAAC,CAAD,EAAkB;EAC1C,QAAI,CAAC,CAAC,aAAF,YAA2B,mBAA/B,EAAoD;EAClD,UAAe,QAAf,GAA4B,CAAC,CAAC,aAA9B,CAAQ,KAAR;;EACA,UAAI,KAAJ,EAAW;EACT,YAAI,CAAC,IAAI,MAAJ,CAAW,KAAX,EAAkB,IAAlB,CAAuB,QAAvB,CAAL,EAAuC;EACrC,UAAA,QAAQ,CAAC,QAAD,EAAW,KAAX,CAAR;EACA,UAAA,eAAe,CAAC,IAAD,CAAf;EACD,SAHD,MAGO;EACL,UAAA,QAAQ,CAAC,QAAD,EAAW,IAAX,CAAR;EACA,UAAA,eAAe,CAAC,KAAD,CAAf;EACD;EACF,OARD,MAQO;EACL,QAAA,QAAQ,CAAC,QAAD,CAAR;EACD;EACF;EACF,GAfD;;EAiBA,MAAM,QAAQ,GAAG,SAAX,QAAW,GAAK;EACpB,IAAA,uBAAuB,CAAC,IAAD,CAAvB;EACD,GAFD;;EAIA,MAAM,MAAM,GAAG,SAAT,MAAS,GAAK;EAClB,IAAA,qBAAqB,CAAC,KAAK,IAAI,EAAV,CAArB;EACD,GAFD;;EAIA,SAAOsL,GAAP,8WACgBC,QAAM,CAAC,oBADvB,EAGS,KAHT,EAGwB,KAHxB,EAG6C,WAH7C,EAKsB,WALtB,EAMgB,KANhB,EAOkB,iBAPlB,EAQiB,QARjB,EAUQ,cAAc,IAChBD,GADgB,65BAEC,MAFD,EAEiBC,QAAM,CAAC,UAFxB,CAVtB,EA2CM,kBAAkB,IACpB,UADE,IAEF,CAAC,KAFC,IAGFD,GAHE,0GAGM,YAHN,CA3CN,EA+CM,CAAC,kBAAkB,IAAI,oBAAtB,IAA8C,YAA/C,KACF,YADE,IAEF,KAFE,IAGFA,GAHE,0FAGM,YAHN,EAGsB,iBAAiB,IAAI,eAH3C,CA/CN;EAqDD,CAxGD;;;;ECJA,IAAM,aAAa,GAAG,SAAhB,aAAgB,CAAC,KAAD,EAA8B;EAClD,MAAQ,MAAR,GAA+C,KAA/C,CAAQ,MAAR;EAAA,MAAgB,YAAhB,GAA+C,KAA/C,CAAgB,YAAhB;EAAA,MAA8B,YAA9B,GAA+C,KAA/C,CAA8B,YAA9B;;EACA,kBAAwClM,CAAQ,CAAoB,EAApB,CAAhD;EAAA;EAAA,MAAO,YAAP;EAAA,MAAqB,eAArB;;EACA,mBAA8BA,CAAQ,CAAU,IAAV,CAAtC;EAAA;EAAA,MAAO,OAAP;EAAA,MAAgB,UAAhB;;EAEA,MAAM,OAAO,GAAGwB,CAAU,CAAC,UAAD,CAA1B;EAEA,EAAAZ,CAAS,CAAC,YAAK;EACb,QAAQ,cAAR,GAA2B,YAA3B,CAAQ,cAAR,CADa;;EAGb,QAAI,cAAc,IAAI,cAAc,CAAC,iBAArC,EAAwD;EACtD,UAAI,IAAJ;;EACA,UAAI;EACF,QAAA,IAAI,GAAG,IAAI,CAAC,KAAL,CAAW,YAAX,CAAP;EACD,OAFD,CAEE,OAAO,KAAP,EAAc;EACd,QAAA,IAAI,GAAG,EAAP;EACD;;EACD,MAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,UAAT,CACG,uBADH,CAEI,IAAI,GAAJ,CAAQ,cAAc,CAAC,iBAAvB,CAFJ,EAGI,IAHJ,EAKG,IALH,CAKQ,UAAC,GAAD,EAAQ;EACZ,YAAI,GAAJ,EAAS;EACP,UAAA,OAAO,CAAC,IAAR,CAAa;EAAE,YAAA,GAAG,EAAH;EAAF,WAAb;EACA,UAAA,eAAe,CAAC,GAAD,CAAf;EACD,SAHD,MAGO;EACL,gBAAM,IAAI,KAAJ,CAAU,6CAAV,CAAN;EACD;EACF,OAZH,EAaG,KAbH,CAaS,UAAC,GAAD;EAAA,eAAS,OAAO,CAAC,KAAR,CAAc,GAAd,CAAT;EAAA,OAbT,EAcG,OAdH,CAcW;EAAA,eAAM,UAAU,CAAC,KAAD,CAAhB;EAAA,OAdX;EAeD;EACF,GA1BQ,EA0BN,CAAC,YAAD,CA1BM,CAAT;;EA4BA,MAAM,QAAQ,GAAG,SAAX,QAAW,CAAC,WAAD,EAAsB,GAAtB,EAAqC;EACpD,IAAA,KAAK,CAAC,kBAAN,CAAyB;EACvB,MAAA,MAAM,EAAN,MADuB;EAEvB,MAAA,OAAO,EAAE,YAAY,CAAC,EAFC;EAGvB,MAAA,EAAE,EAAE,WAHmB;EAIvB,MAAA,KAAK,EAAE;EAJgB,KAAzB;EAMD,GAPD;;EASA,SAAOsL,GAAP,iHAEM,OAAO,GACLA,GADK,oFACG,WADH,IAELA,GAFK,iFAEG,YAAY,CAAC,GAAb,CAAiB,UAAC,EAAD,EAAO;EAC9B,QAAM,GAAG,GAAG,KAAK,CAAC,eAAN,CAAsB,MAAtB,EAA8B,YAAY,CAAC,EAA3C,CAAZ;EACA,QAAI,QAAQ,GAAG,EAAf;EACA,QAAM,SAAS,GAAG,GAAG,CAAC,WAAtB;;EAIA,QAAI,SAAS,IAAI,SAAS,CAAC,EAAE,CAAC,EAAJ,CAA1B,EAAmC;EACjC,MAAA,QAAQ,aAAM,SAAS,CAAC,EAAE,CAAC,EAAJ,CAAf,CAAR;EACD;;EACD,WAAOA,GAAP,8QACK,KADL,EAEY,EAAE,CAAC,KAFf,EAIY,QAJZ,EAKe,UAAC,GAAD,EAAgB;EACzB,MAAA,QAAQ,CAAC,EAAE,CAAC,EAAJ,EAAQ,GAAR,CAAR;EACD,KAPL;EAUD,GApBO,CAFH,CAFb;EA2BD,CAvED;;AAyEA,qBAAeG,cAAO,CACpB,CACE,WADF,EAEE,aAFF,EAGE,aAHF,EAIE,oBAJF,EAKE,kBALF,EAME,iBANF,EAOE,oBAPF,CADoB,EAUpB,eAVoB,CAAP,CAWb,aAXa,CAAf;;;EChEA;;;EAGG;;EACI,IAAM,UAAU,GAAG,SAAb,UAAa,CAAC,KAAD,EAA2B;EACnD,MACE,KADF,GAYI,KAZJ,CACE,KADF;EAAA,MAEE,WAFF,GAYI,KAZJ,CAEE,WAFF;EAAA,MAGE,SAHF,GAYI,KAZJ,CAGE,SAHF;EAAA,8BAYI,KAZJ,CAIE,cAJF;EAAA,MAIE,cAJF,sCAImB,EAJnB;EAAA,qBAYI,KAZJ,CAKE,KALF;EAAA,MAKE,KALF,6BAKU,IALV;EAAA,MAME,SANF,GAYI,KAZJ,CAME,SANF;EAAA,MAOE,eAPF,GAYI,KAZJ,CAOE,eAPF;EAAA,MAQE,YARF,GAYI,KAZJ,CAQE,YARF;EAAA,0BAYI,KAZJ,CASE,UATF;EAAA,MASE,UATF,kCASe,KATf;EAAA,8BAYI,KAZJ,CAUE,kBAVF;EAAA,MAUE,kBAVF,sCAUuB,KAVvB;EAAA,wBAYI,KAZJ,CAWE,QAXF;EAAA,MAWE,QAXF,gCAWa;EAAA,WAAM,IAAN;EAAA,GAXb;;EAcA,kBAA8BrM,CAAQ,CAAC,SAAD,CAAtC;EAAA;EAAA,MAAO,OAAP;EAAA,MAAgB,UAAhB;;EAEA,MAAM,eAAe,GAAGiB,CAAM,CAAC,KAAD,CAA9B;;EAEA,mBAAwCjB,CAAQ,CAAC,KAAD,CAAhD;EAAA;EAAA,MAAO,YAAP;EAAA,MAAqB,eAArB;;EACA,mBAA0BA,CAAQ,CAAgB,IAAhB,CAAlC;EAAA;EAAA,MAAO,KAAP;EAAA,MAAc,QAAd;;EAEA,MAAM,YAAY,GAAG,SAAf,YAAe,CAAC,UAAD,EAAuB;EAC1C,IAAA,eAAe,CAAC,UAAD,CAAf;EACD,GAFD;;EAIA,mBAA0CA,CAAQ,CAEhD,EAFgD,CAAlD;EAAA;EAAA,MAAO,aAAP;EAAA,MAAsB,gBAAtB;;EAIA,MAAM,OAAO,GAAGwB,CAAU,CAAC,UAAD,CAA1B;EAEA,EAAAZ,CAAS,CAAC,YAAK;EACb,QAAI,SAAJ,EAAe;EACb,UAAI,eAAJ,EAAqB;EACnB,YAAI,IAAJ;;EACA,YAAI;EACF,UAAA,IAAI,GAAG,IAAI,CAAC,KAAL,CAAW,YAAX,CAAP;EACD,SAFD,CAEE,OAAO,QAAP,EAAiB;EACjB,UAAA,IAAI,GAAG,EAAP;EACD,SANkB;;;EAQnB,QAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,UAAT,CACG,uBADH,CAEI,IAAI,GAAJ,CAAQ,eAAR,CAFJ,EAGI,IAHJ,EAKG,IALH,CAKQ,UAAC,GAAD,EAAQ;EACZ,cAAI,GAAJ,EAAS,gBAAgB,CAAC,GAAD,CAAhB,CAAT,KACK,QAAQ,+BAAR;EACN,SARH,EASG,KATH,CASS,UAAC,GAAD,EAAQ;EACb,UAAA,OAAO,CAAC,KAAR,CAAc,GAAd;EACA,UAAA,QAAQ,CAAC,6BAAD,CAAR;EACD,SAZH,EAaG,OAbH,CAaW;EAAA,iBAAM,UAAU,CAAC,KAAD,CAAhB;EAAA,SAbX;EAcD,OAtBD,MAsBO;EACL,QAAA,gBAAgB,CAAC,cAAD,CAAhB;EACA,QAAA,UAAU,CAAC,KAAD,CAAV;EACD;EACF,KA3BD,MA4BE,MAAM,IAAI,KAAJ,CACJ,6DADI,CAAN;EAGH,GAhCQ,EAgCN,EAhCM,CAAT;EAkCA,EAAAA,CAAS,CAAC,YAAK;EACb,QAAI,eAAe,CAAC,OAAhB,KAA4B,YAA5B,IAA4C,YAAhD,EACE,QAAQ,CAAC,YAAD,CAAR;EACH,GAHQ,EAGN,CAAC,YAAD,CAHM,CAAT;EAKA,SAAOsL,GAAP,iWACgBC,QAAM,CAAC,UADvB,EAGS,KAHT,EAGwB,KAHxB,EAG6C,WAH7C,EAMiBA,QAAM,CAAC,cANxB,EAO0B,SAP1B,EASU,OAAO,GACLD,GADK,0KAEA,cAFA,IAILA,GAJK,kHAKD,KAAK,GACHA,GADG,8KAEE,YAFF,EAEkB,KAFlB,IAIHA,GAJG,8HAKC,aAAa,CAAC,GAAd,CACA,UAAC,EAAD;EAAA,WACEA,GADF,0VAEO,KAFP,EAGW,EAAE,CAAC,EAHd,EAIc,EAAE,CAAC,KAJjB,EAKkB,YAAY,KAAK,EAAE,CAAC,EALtC,EAMiB,YANjB;EAAA,GADA,CALD,CALJ,CATjB,EAkCM,kBAAkB,IACpB,CAAC,YADC,IAEF,UAFE,IAGFA,GAHE,iHAGO,YAHP,EAGgD,YAHhD,CAlCN;EAwCD,CA/GM;;;;;;;;;;ECfP;;;EAGG;;EACH,IAAM,SAAS,GAAG,SAAZ,SAAY,CAAC,KAAD,EAA0B;EAC1C,MACE,KADF,GAOI,KAPJ,CACE,KADF;EAAA,MAEE,WAFF,GAOI,KAPJ,CAEE,WAFF;EAAA,qBAOI,KAPJ,CAGE,KAHF;EAAA,MAGE,KAHF,6BAGU,IAHV;EAAA,wBAOI,KAPJ,CAIE,QAJF;EAAA,MAIE,QAJF,gCAIa;EAAA,WAAM,IAAN;EAAA,GAJb;EAAA,8BAOI,KAPJ,CAKE,kBALF;EAAA,MAKE,kBALF,sCAKuB,KALvB;EAAA,0BAOI,KAPJ,CAME,UANF;EAAA,MAME,UANF,kCAMe,KANf;;EASA,kBAAwBlM,CAAQ,CAAC,EAAD,CAAhC;EAAA;EAAA,MAAO,IAAP;EAAA,MAAa,OAAb;;EACA,mBAA0BA,CAAQ,CAAC,EAAD,CAAlC;EAAA;EAAA,MAAO,KAAP;EAAA,MAAc,QAAd;;EACA,mBAA4BA,CAAQ,CAAc,IAAd,CAApC;EAAA;EAAA,MAAO,MAAP;EAAA,MAAe,SAAf;;EAEA,MAAM,UAAU,GAAGiB,CAAM,CAAC,IAAD,CAAzB;EAEA,EAAAL,CAAS,CAAC,YAAK;EACb,QAAM,SAAS,GAAG,KAAH,aAAG,KAAH,uBAAG,KAAK,CAAE,KAAP,CAAa,GAAb,CAAlB;;EACA,QAAI,SAAS,IAAI,SAAS,CAAC,MAAV,GAAmB,CAApC,EAAuC;EACrC,UAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAD,CAAV,CAA1B;EACA,UAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAD,CAAV,CAAzB;;EACA,UAAI,WAAW,GAAG,EAAlB,EAAsB;EACpB,QAAA,SAAS,CAAC,IAAD,CAAT;EACA,QAAA,QAAQ,WAAI,WAAW,GAAG,EAAlB,EAAR;EACD,OAHD,MAGO;EACL,QAAA,QAAQ,WAAI,WAAJ,EAAR;EACD;;EACD,MAAA,OAAO,WAAI,UAAJ,EAAP;EACD;EACF,GAbQ,EAaN,EAbM,CAAT;EAeA,EAAAA,CAAS,CAAC,YAAK;EACb,QAAI,CAAC,UAAU,CAAC,OAAhB,EAAyB;EACvB,MAAA,QAAQ,WACH,MAAM,KAAK,IAAX,aAAqB,MAAM,CAAC,KAAD,CAAN,GAAgB,EAArC,cAA+C,KAA/C,CADG,cACuD,IADvD,EAAR;EAGD;;EACD,IAAA,UAAU,CAAC,OAAX,GAAqB,KAArB;EACD,GAPQ,EAON,CAAC,MAAD,EAAS,IAAT,EAAe,KAAf,CAPM,CAAT;EASA,MAAM,cAAc,GAAGO,CAAO,CAC5B;EAAA,WAAM,4BAA4B,CAAC,EAAD,CAA5B,CAAiC,KAAjC,CAAuC,CAAvC,EAA0C,EAA1C,CAAN;EAAA,GAD4B,EAE5B,EAF4B,CAA9B;EAIA,MAAM,gBAAgB,GAAGA,CAAO,CAAC;EAAA,WAAM,4BAA4B,CAAC,EAAD,CAAlC;EAAA,GAAD,EAAyC,EAAzC,CAAhC;EAEA,SAAO+K,GAAP,wyBACgBC,QAAM,CAAC,gBADvB,EAGS,KAHT,EAGwB,KAHxB,EAG6C,WAH7C,EAImBA,QAAM,CAAC,UAJ1B,EAKW,MALX,EAQoB,cAAc,CAAC,GAAf,CAAmB,UAAC,EAAD;EAAA,WAAS;EACpC,MAAA,GAAG,EAAE,MAAM,CAAC,EAAD,CADyB;EAEpC,MAAA,KAAK,EAAE;EAF6B,KAAT;EAAA,GAAnB,CARpB,EAYkB,MAAM,CAAC,KAAD,CAZxB,EAaqB,UAAC,GAAD;EAAA,WAAiB,QAAQ,CAAC,cAAc,CAAC,GAAD,CAAf,CAAzB;EAAA,GAbrB,EAeW,MAfX,EAkBoB,gBAAgB,CAAC,GAAjB,CAAqB,UAAC,EAAD;EAAA,WAAS;EACtC,MAAA,GAAG,EAAE,MAAM,CAAC,EAAD,CAD2B;EAEtC,MAAA,KAAK,EAAE;EAF+B,KAAT;EAAA,GAArB,CAlBpB,EAsBkB,MAAM,CAAC,IAAD,CAtBxB,EAuBqB,UAAC,GAAD;EAAA,WAAiB,OAAO,CAAC,gBAAgB,CAAC,GAAD,CAAjB,CAAxB;EAAA,GAvBrB,EAyBW,MAzBX,EA4BoB,CACR;EACE,IAAA,KAAK,EAAE,IADT;EAEE,IAAA,GAAG,EAAE;EAFP,GADQ,EAKR;EACE,IAAA,KAAK,EAAE,IADT;EAEE,IAAA,GAAG,EAAE;EAFP,GALQ,CA5BpB,EAsCkB,MAtClB,EAuCqB,UAAC,KAAD;EAAA,WAAmB,SAAS,CAAC,KAAK,KAAK,CAAV,GAAc,IAAd,GAAqB,IAAtB,CAA5B;EAAA,GAvCrB,EA2CM,kBAAkB,IACpB,UADE,IAEF,EAAE,KAAK,IAAI,CAAC,IAAV,IAAkB,CAAC,MAArB,CAFE,IAGFD,GAHE,0GAGM,YAHN,CA3CN;EAiDD,CA/FD;;;;;;;;;;;;;;;;;;;;;ECUA,IAAM,YAAY,GAAG,SAAf,YAAe,CAAC,KAAD,EAA0B;EAAA;;EAC7C,kBAA8BlM,CAAQ,CAAU,IAAV,CAAtC;EAAA;EAAA,MAAO,OAAP;EAAA,MAAgB,UAAhB;;EACA,mBAA0CA,CAAQ,CAAU,IAAV,CAAlD;EAAA;EAAA,MAAO,aAAP;EAAA,MAAsB,gBAAtB;;EAEA,mBAAkCA,CAAQ,CAAW,EAAX,CAA1C;EAAA;EAAA,MAAO,SAAP;EAAA,MAAkB,YAAlB;;EACA,mBAAwCA,CAAQ,CAAoB,EAApB,CAAhD;EAAA;EAAA,MAAO,YAAP;EAAA,MAAqB,eAArB;;EACA,mBAA0CA,CAAQ,CAAC,EAAD,CAAlD;EAAA;EAAA,MAAO,aAAP;EAAA,MAAsB,gBAAtB;;EACA,oBAGIA,CAAQ,CAAuB,IAAvB,CAHZ;EAAA;EAAA,MACE,iBADF;EAAA,MAEE,oBAFF;;EAKA,oBAA0BA,CAAQ,CAAC,EAAD,CAAlC;EAAA;EAAA,MAAO,KAAP;EAAA,MAAc,QAAd;;EACA,oBAA4CA,CAAQ,CASlD,EATkD,CAApD;EAAA;EAAA,MAAO,cAAP;EAAA,MAAuB,iBAAvB;;EAWA,oBAGIA,CAAQ,CAA2B,EAA3B,CAHZ;EAAA;EAAA,MACE,gBADF;EAAA,MAEE,mBAFF;;EAKA,oBAA0CA,CAAQ,CAAwB,EAAxB,CAAlD;EAAA;EAAA,MAAO,aAAP;EAAA,MAAsB,gBAAtB;;EAEA,MAAM,OAAO,GAAGwB,CAAU,CAAC,UAAD,CAA1B;EAEA,MAAM,iBAAiB,GAAGP,CAAM,CAAC,EAAD,CAAhC,CAjC6C;;EAoC7C,EAAAL,CAAS,CAAC,YAAK;EACb,QAAI,YAAY,CAAC,MAAb,GAAsB,CAA1B,EAA6B;EAC3B;EACA,MAAA,YAAY,CAAC,GAAb,CAAiB,UAAC,EAAD,EAAK,KAAL,EAAc;EAC7B,YAAM,GAAG,GAAG,KAAK,CAAC,eAAN,CAAsB,KAAK,CAAC,MAA5B,EAAoC,EAAE,CAAC,OAAvC,CAAZ;;EACA,YAAI,CAAC,GAAG,CAAC,SAAL,IAAkB,GAAG,CAAC,KAA1B,EAAiC;EAC/B,cAAM,WAAW,GAAG,GAAG,CAAC,KAAxB;EACA,cAAI,WAAJ,EAAiB,YAAY,CAAC,UAAC,IAAD;EAAA,gDAAc,IAAd,IAAoB,KAApB;EAAA,WAAD,CAAZ;EAClB,SAHD,MAGO,IAAI,GAAG,CAAC,SAAJ,IAAiB,GAAG,CAAC,WAArB,IAAoC,EAAE,CAAC,EAA3C,EAA+C;EACpD,cAAM,YAAY,GAAG,GAAG,CAAC,WAAJ,IAAmB,EAAxC;;EACA,cAAI,YAAY,CAAC,EAAE,CAAC,EAAJ,CAAhB,EAAyB;EACvB,YAAA,YAAY,CAAC,UAAC,IAAD;EAAA,kDAAc,IAAd,IAAoB,KAApB;EAAA,aAAD,CAAZ;EACD;EACF;EACF,OAXD;EAYD;EACF,GAhBQ,EAgBN,CAAC,YAAD,CAhBM,CAAT;EAkBA,EAAAA,CAAS,CAAC,YAAK;EACb,QAAI,aAAa,CAAC,MAAlB,EAA0B;EACxB,MAAA,gBAAgB,CAAC,KAAD,CAAhB;EACD;EACF,GAJQ,EAIN,CAAC,aAAD,CAJM,CAAT;EAMA,EAAAA,CAAS,CAAC,YAAK;EACb,QAAM,YAAY,GAAG,KAAK,CAAC,cAAN,CAAqB,MAArB,CACnB,UAAC,EAAD;EAAA,aAAQ,EAAE,CAAC,cAAH,IAAqB,EAAE,CAAC,cAAH,CAAkB,IAAlB,KAA2B,eAAxD;EAAA,KADmB,EAEnB,CAFmB,CAArB;;EAIA,QAAI,YAAJ,EAAkB;EAChB,MAAA,oBAAoB,CAAC,YAAD,CAApB;EACD;;EAED;EAEE,IAAA,gBAAgB,KAAK,IAArB,IACA,gBAAgB,KAAK,SADrB,IAEA,MAAM,CAAC,IAAP,CAAY,gBAAZ,EAA8B,MAA9B,GAAuC,CAJzC,EAKE;EACA;EACA,MAAA,UAAU,CAAC,KAAD,CAAV;EACA,UAAM,uBAAuB,GAAG,MAAM,CAAC,IAAP,CAAY,gBAAZ,EAA8B,CAA9B,CAAhC;EACA,MAAA,KAAK,CAAC,aAAN,CAAoB;EAClB,QAAA,WAAW,sCACN,KAAK,CAAC,WADA;EAET,UAAA,YAAY,EAAE,IAFL;EAGT,UAAA,eAAe,EAAE;EAHR;EADO,OAApB;;EAQA,UACE,uBAAuB,IACvB,KAAK,CAAC,OAAN,CAAc,gBAAgB,CAAC,uBAAD,CAA9B,CAFF,EAGE;EACA,QAAA,eAAe,8BACV,cADU,sBAEV,gBAAgB,CAAC,uBAAD,CAAhB,CAA0C,GAA1C,CAA8C,UAAC,EAAD;EAAA,qDAC5C,EAD4C;EAE/C,YAAA,SAAS,EAAE,IAFoC;EAG/C,YAAA,SAAS,EAAE,YAAY,CAAC,UAHuB;EAI/C,YAAA,OAAO,EAAE,YAAY,CAAC;EAJyB;EAAA,SAA9C,CAFU,GAAf;EASD,OAbD,MAaO;EACL,QAAA,QAAQ,oCACsB,uBADtB,6EAAR;EAGD;EACF;EACF,GA7CQ,EA6CN,CAAC,gBAAD,CA7CM,CAAT;EA+CA,EAAAA,CAAS,CAAC,YAAK;EACb;EACA,QAAM,YAAY,GAAG,KAAK,CAAC,cAAN,CAAqB,MAArB,CACnB,UAAC,EAAD;EAAA,aAAQ,EAAE,CAAC,cAAH,IAAqB,EAAE,CAAC,cAAH,CAAkB,IAAlB,KAA2B,eAAxD;EAAA,KADmB,EAEnB,CAFmB,CAArB;;EAIA,QAAI,YAAJ,EAAkB;EAChB;EACA,MAAA,gBAAgB,WAAI,YAAY,CAAC,EAAjB,EAAhB;EACD,KAHD,MAGO;EACL;EACD,KAXY;;;EAcb,QAAM,sBAAsB,GAAG,KAAK,CAAC,cAAN,CAC5B,MAD4B,CAE3B,UAAC,EAAD;EAAA,aACE,EAAE,CAAC,cAAH,IACA,EAAE,CAAC,cAAH,CAAkB,IAAlB,KAA2B,WAD3B,IAEA,EAAE,CAAC,UAFH;EAGA,MAAA,EAAE,CAAC,gBAJL;EAAA,KAF2B,EAQ5B,GAR4B,CAQxB,UAAC,EAAD;EAAA,aAAS;EACZ,QAAA,OAAO,EAAE,EAAE,CAAC,EADA;EAEZ,QAAA,EAAE,EAAE,EAAE,CAAC,cAAH,IAAqB,EAAE,CAAC,cAAH,CAAkB,YAF/B;EAGZ,QAAA,KAAK,EAAE,EAAE,CAAC,cAAH,IAAqB,EAAE,CAAC,cAAH,CAAkB,KAHlC;EAIZ,QAAA,IAAI,EAAE,MAJM;EAKZ,QAAA,SAAS,EAAE,KALC;EAMZ,QAAA,SAAS,EAAE,EAAE,CAAC;EANF,OAAT;EAAA,KARwB,CAA/B;EAiBA,IAAA,iBAAiB,CAAC,sBAAD,CAAjB,CA/Ba;;EAkCb,QAAI,CAAC,aAAa,CAAC,MAAnB,EAA2B;EACzB,UACE,YAAY,CAAC,oBAAb,IACA,KAAK,CAAC,gBAAN,CAAuB,YAAY,CAAC,oBAApC,CAFF,EAGE;EACA,QAAA,UAAU,CAAC,IAAD,CAAV,CADA;;EAGA,QAAA,mBAAmB,CAAC,YAAD,CAAnB;EACD,OAPD,MAOO;EACL,QAAA,OAAO,CAAC,KAAR,qDAC+C,YAAY,CAAC,oBAD5D;EAGD;EACF,KA/CY;;;EAkDb,QAAI,YAAY,IAAI,YAAY,CAAC,cAAjC,EAAiD;EAC/C,UAAM,oBAAoB,GACxB,KAAK,CAAC,kBAAN,CAAyB,KAAK,CAAC,MAA/B,EACE,YAAY,CAAC,cAAb,CAA4B,YAD9B,CADF;EAKA,UAAI,cAAc,GAAG,EAArB;;EACA,UAAI,oBAAJ,EAA0B;EAAA;;EACxB,YAAM,SAAS,4BAAG,oBAAoB,CAAC,YAAxB,0DAAG,sBAAmC,MAAnC,CAChB,UAAC,IAAD,EAAO,IAAP,EAAe;EACb,cAAM,aAAa,GACjB,KAAK,CAAC,kBAAN,CAAyB,KAAK,CAAC,MAA/B,EAAuC,IAAvC,EAA6C,OAD/C;EAEA,qDACK,IADL,2BAEG,aAFH,EAGI,KAAK,CAAC,eAAN,CAAsB,KAAK,CAAC,MAA5B,EAAoC,aAApC,EAAmD,KAHvD;EAKD,SATe,EAUhB,EAVgB,CAAlB;EAYA,QAAA,cAAc,GAAG,IAAI,CAAC,SAAL,CAAe,SAAf,CAAjB;EACD,OArB8C;;;EAwB/C,UAAI,cAAc,KAAK,iBAAiB,CAAC,OAAzC,EAAkD;EAAA;;EAChD,QAAA,UAAU,CAAC,IAAD,CAAV,CADgD;;EAIhD,iCAAA,4BAA4B,CAAC,YAAD,CAA5B,gFACI,IADJ,CACS,YAAK;EACV,UAAA,YAAY,CAAC,EAAD,CAAZ;EACA,UAAA,UAAU,CAAC,KAAD,CAAV;EACA,UAAA,iBAAiB,CAAC,OAAlB,GAA4B,cAA5B;EACD,SALH,EAMG,KANH,CAMS,UAAC,GAAD;EAAA,iBAAS,OAAO,CAAC,KAAR,CAAc,GAAd,CAAT;EAAA,SANT;EAOD;EACF;EACF,GAvFQ,EAuFN,CAAC,KAAK,CAAC,eAAN,CAAsB,KAAK,CAAC,MAA5B,CAAD,CAvFM,CAAT;;EAyFA,MAAM,wBAAwB,GAAG,SAA3B,wBAA2B,CAC/B,MAD+B,EAI7B;EACF,QAAM,MAAM,GAAG,KAAK,CAAC,eAAN,CAAsB,MAAtB,CAAf;EACA,QAAM,wBAAwB,GAAG,MAAM,CAAC,IAAP,CAAY,MAAZ,EAC9B,MAD8B,CACvB,UAAC,EAAD;EAAA,aAAQ,MAAM,CAAC,MAAM,CAAC,EAAD,CAAP,CAAN,CAAmB,KAA3B;EAAA,KADuB,EAE9B,MAF8B,CAEvB,UAAC,IAAD,EAAO,IAAP,EAAe;EACrB,UAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAD,CAAP,CAA1B;EACA,iDACK,IADL,2BAEG,WAAW,CAAC,WAFf,EAE6B,WAAW,CAAC,KAFzC;EAID,KAR8B,EAQ5B,EAR4B,CAAjC;EASA,WAAO,wBAAP;EACD,GAhBD;;EAkBA,MAAM,mBAAmB,GAAG,SAAtB,mBAAsB,CAAC,KAAD,EAAyB;EACnD,QAAQ,WAAR,GAA0C,KAA1C,CAAQ,WAAR;EAAA,QAAqB,gBAArB,GAA0C,KAA1C,CAAqB,gBAArB;EAEA,QAAM,sBAAsB,GAC1B,gBAAgB,CAAC,KAAK,CAAC,oBAAN,IAA8B,EAA/B,CADlB;EAGA,QAAM,oBAAoB,GACxB,WAAW,IAAI,WAAW,CAAC,sBAAsB,CAAC,MAAxB,CAD5B;;EAGA,QAAI,sBAAJ,EAA4B;EAAA;;EAC1B,UAAM,OAAO,GAAG;EACd,QAAA,eAAe,EAAE,MAAM,CAAC,oBAAoB,CAAC,cAAtB,CADT;EAEd,QAAA,eAAe,EAAE,MAAM,0BAAC,sBAAsB,CAAC,cAAxB,0DAAC,sBAAuC,EAAxC,CAFT;EAGd,QAAA,YAAY,EACV,wBAAwB,CAAC,sBAAsB,CAAC,MAAxB,CAAxB,IAA2D;EAJ/C,OAAhB;EAMA,aAAO,OAAP,aAAO,OAAP,uBAAO,OAAO,CAAE,UAAT,CACJ,eADI,CACY,OADZ,EAEJ,IAFI,CAEC,UAAC,IAAD,EAAS;EACb,YAAI,IAAJ,EACE,gBAAgB,CACd,IAAI,CAAC,GAAL,CAAS,UAAC,EAAD;EAAA,qCACJ,EADI;EAAA,SAAT,CADc,CAAhB;EAMH,OAVI,EAWJ,KAXI,CAWE,UAAC,GAAD,EAAQ;EACb,QAAA,OAAO,CAAC,KAAR,CAAc,GAAd;EACA,QAAA,gBAAgB,CAAC,KAAD,CAAhB;EACD,OAdI,CAAP;EAeD;;EACD,WAAO,IAAP;EACD,GAjCD;;EAmCA,MAAM,4BAA4B,GAAG,SAA/B,4BAA+B,CAAC,aAAD,EAAiC;EAAA;;EACpE,QAAQ,MAAR,GAAgC,KAAhC,CAAQ,MAAR;EAAA,QAAgB,WAAhB,GAAgC,KAAhC,CAAgB,WAAhB;EACA,QAAM,eAAe,sCAAM,aAAa,CAAC,cAApB,0DAAM,sBAA8B,iBAApC,CAArB;EACA,WAAO,OAAP,aAAO,OAAP,uBAAO,OAAO,CAAE,UAAT,CACJ,uBADI,CAEH,IAAI,GAAJ,CAAQ,eAAR,CAFG;EAID,MAAA,gBAAgB,YAAK,WAAW,CAAC,MAAD,CAAX,CAAoB,cAAzB;EAJf,OAKE,wBAAwB,CAAC,MAAD,CAL1B,GAQJ,IARI,CAQC,UAAC,IAAD,EAAS;EACb,UAAI,IAAJ,EAAU,mBAAmB,CAAC,IAAD,CAAnB;EACV,aAAO,IAAP;EACD,KAXI,CAAP;EAYD,GAfD;;EAiBA,MAAM,sBAAsB,GAAG,SAAzB,sBAAyB,CAC7B,KAD6B,EAE7B,IAF6B,EAG7B,UAH6B,EAI7B,QAJ6B,EAK3B;EACF,QAAM,eAAe,GAAG,aAAa,CAAC,KAAD,CAArC;EACA,QAAM,UAAU,GAAG,SAAS,CAAC,SAAV,CAAoB,UAAC,EAAD;EAAA,aAAQ,EAAE,KAAK,QAAf;EAAA,KAApB,CAAnB;;EACA,QAAI,KAAK,GAAG,CAAZ,EAAe;EACb;EACA,MAAA,YAAY,CAAC,UAAC,IAAD;EAAA,eAAU,IAAI,CAAC,MAAL,CAAY,UAAC,EAAD;EAAA,iBAAQ,EAAE,KAAK,QAAf;EAAA,SAAZ,CAAV;EAAA,OAAD,CAAZ;;EACA,UAAI,CAAC,IAAI,CAAC,SAAV,EAAqB;EACnB,QAAA,KAAK,CAAC,gBAAN,CAAuB;EACrB,UAAA,MAAM,YAAK,KAAK,CAAC,MAAX,CADe;EAErB,UAAA,OAAO,YAAK,IAAI,CAAC,OAAV,CAFc;EAGrB,UAAA,KAAK,EAAE,EAHc;EAIrB,UAAA,UAAU,EAAV;EAJqB,SAAvB;EAMD,OAPD,MAOO,IAAI,aAAJ,EAAmB;EACxB,QAAA,KAAK,CAAC,kBAAN,CAAyB;EACvB,UAAA,MAAM,EAAE,KAAK,CAAC,MADS;EAEvB,UAAA,OAAO,EAAE,MAAM,CAAC,aAAD,CAFQ;EAGvB,UAAA,EAAE,YAAK,IAAI,CAAC,EAAV,CAHqB;EAIvB,UAAA,KAAK,EAAE;EAJgB,SAAzB;EAMD;EACF,KAlBD,MAkBO,IAAI,eAAJ,EAAqB;EAC1B;EACA,UAAI,UAAU,GAAG,CAAjB,EAAoB;EAClB;EACA,QAAA,YAAY,CAAC,UAAC,IAAD;EAAA,8CAAc,IAAd,IAAoB,QAApB;EAAA,SAAD,CAAZ;EACD;;EACD,UAAI,CAAC,IAAI,CAAC,SAAV,EAAqB;EACnB,QAAA,KAAK,CAAC,gBAAN,CAAuB;EACrB,UAAA,MAAM,YAAK,KAAK,CAAC,MAAX,CADe;EAErB,UAAA,OAAO,YAAK,IAAI,CAAC,OAAV,CAFc;EAGrB,UAAA,KAAK,EAAE,eAAe,CAAC,GAHF;EAIrB,UAAA,UAAU,EAAV;EAJqB,SAAvB;EAMD,OAPD,MAOO,IAAI,aAAJ,EAAmB;EACxB,QAAA,KAAK,CAAC,kBAAN,CAAyB;EACvB,UAAA,MAAM,EAAE,KAAK,CAAC,MADS;EAEvB,UAAA,OAAO,EAAE,MAAM,CAAC,aAAD,CAFQ;EAGvB,UAAA,EAAE,YAAK,IAAI,CAAC,EAAV,CAHqB;EAIvB,UAAA,KAAK,EAAE,eAAe,CAAC;EAJA,SAAzB;EAMD;EACF;;EACD,IAAA,KAAK,CAAC,kBAAN,CAAyB,KAAK,CAAC,MAA/B;EACD,GAjDD;;EAmDA,SAAOsL,GAAP,mNAEO,KAFP,EAGc,CAAA,iBAAiB,SAAjB,IAAA,iBAAiB,WAAjB,YAAA,iBAAiB,CAAE,KAAnB,MACR,iBADQ,aACR,iBADQ,gDACR,iBAAiB,CAAE,cADX,0DACR,sBAAmC,KAD3B,CAHd,EAKoB,CAAA,iBAAiB,SAAjB,IAAA,iBAAiB,WAAjB,YAAA,iBAAiB,CAAE,WAAnB,MACd,iBADc,aACd,iBADc,iDACd,iBAAiB,CAAE,cADL,2DACd,uBAAmC,WADrB,CALpB,EASQ,OAAO,GACLA,GADK,0GACaC,QAAM,CAAC,MADpB,EAC+B,WAD/B,IAEL,KAAK,GACLD,GADK,6FACQ,KADR,IAELA,GAFK,8mCAGUC,QAAM,CAAC,WAHjB,EAIYA,QAAM,CAAC,UAJnB,EAKcA,QAAM,CAAC,iBALrB,EAOW,KAAK,CAAC,WAAN,CAAkB,KAAK,CAAC,MAAxB,EAAgC,IAAhC,CAAqC,QAArC,CAA8C,GAA9C,CACH,QARR,YAYO,KAAK,CAAC,WAAN,CAAkB,KAAK,CAAC,MAAxB,EAAgC,IAAhC,CAAqC,QAArC,CAA8C,GAA9C,CAAkD,IAZzD,aAgBcA,QAAM,CAAC,UAhBrB,EAiBcA,QAAM,CAAC,iBAjBrB,2BAkBc,KAAK,CAAC,WAAN,CAAkB,WAlBhC,0DAkBc,sBAA+B,QAlB7C,4BAmBU,KAAK,CAAC,WAAN,CAAkB,WAnB5B,2DAmBU,uBAA+B,IAnBzC,EAsBC,YAAY,CAAC,GAAb,CAAiB,UAAC,EAAD,EAAK,SAAL,EAAkB;EAAA;;EACnC;EACA;EAEA,QAAI,CAAC,EAAE,CAAC,SAAR,EAAmB,OAAOD,GAAP;EAEnB,QAAM,IAAI,GAAG,EAAE,CAAC,EAAH,IAAS,EAAtB;EACA,QAAM,GAAG,GAAG,KAAK,CAAC,eAAN,CAAsB,KAAK,CAAC,MAA5B,EAAoC,EAAE,CAAC,OAAvC,CAAZ,CAPmC;;EASnC,QAAI,SAAS,GAAG,EAAhB;EACA,QAAI,SAAJ;;EACA,QAAI,EAAE,CAAC,SAAP,EAAkB;EAChB,MAAA,SAAS,GAAG,GAAG,CAAC,WAAhB;EAID,KALD,MAKO;EACL,MAAA,SAAS,aAAM,GAAG,CAAC,KAAV,CAAT;EACD,KAlBkC;;;EAqBnC,QACE,EAAE,CAAC,EAAH,IACA,EAAE,CAAC,SADH,IAEA,GAAG,CAAC,WAFJ,IAGC,SAA6C,CAAC,IAAD,CAJhD,EAKE;EACA,MAAA,SAAS,aACN,SAA6C,CAAC,IAAD,CADvC,CAAT;EAGD,KATD,MASO,IAAI,CAAC,EAAE,CAAC,SAAR,EAAmB;EACxB,MAAA,SAAS,GAAG,SAAZ;EACD;;EAED,QAAI,UAAU,GAAG,EAAjB;EACA,QAAM,OAAO,sDACX,aAAa,CAAC,MAAd,CAAqB,UAAC,KAAD;EAAA,aAAW,KAAK,CAAC,GAAN,KAAc,SAAzB;EAAA,KAArB,EAAyD,CAAzD,CADW,2DACX,uBACI,WAFO,yEAEQ,EAFrB;;EAGA,QAAI;EACF,MAAA,UAAU,GAAG,IAAI,CAAC,KAAL,CAAW,OAAX,CAAb;EACD,KAFD,CAEE,OAAO,GAAP,EAAY;EACZ,MAAA,UAAU,GAAG,OAAb;EACD;;EAED,WAAOA,GAAP,y8BACeC,QAAM,CAAC,UADtB,EAEiBA,QAAM,CAAC,KAFxB,EAGQ,EAAE,CAAC,KAHX,EAGmB,CAAA,GAAG,SAAH,IAAA,GAAG,WAAH,YAAA,GAAG,CAAE,UAAL,KAAmBD,GAAnB,yFAHnB,EAKiBC,QAAM,CAAC,UALxB,EAMQ,UAAU,GACR,KAAK,CAAC,OAAN,CAAc,UAAd,IACE,UAAU,CAAC,GAAX,CACE,UAAC,MAAD;EAAA,aACE,MAAM,GAAGD,GAAH,2FAAe,MAAf,IAAgCA,GAAhC,2EADR;EAAA,KADF,CADF,GAKEA,GALF,6FAKc,UALd,CADQ,GAORA,GAPQ,6EANlB,EAeiBC,QAAM,CAAC,SAfxB,EAgBS,MAhBT,EAmBkB,aAAa,CAAC,GAAd,CAAkB,UAAC,IAAD;EAAA,aAAW;EACrC,QAAA,GAAG,EAAE,IAAI,CAAC,GAD2B;EAErC,QAAA,KAAK,EAAE,IAAI,CAAC;EAFyB,OAAX;EAAA,KAAlB,CAnBlB,EAuBgB,SAvBhB,EAwBqB,GAxBrB,aAwBqB,GAxBrB,uBAwBqB,GAAG,CAAE,UAxB1B,EAyB6B,KAAK,CAAC,kBAzBnC,EA0B8B,IA1B9B,EA4BkB,aA5BlB,EA6BmB,UAAC,KAAD;EAAA;;EAAA,aACT,sBAAsB,CACpB,KADoB,EAEpB,EAFoB,qBAGpB,GAHoB,aAGpB,GAHoB,uBAGpB,GAAG,CAAE,UAHe,6DAGD,KAHC,EAIpB,SAJoB,CADb;EAAA,KA7BnB;EAwCD,GApFC,CAtBD,EA2GYA,QAAM,CAAC,WA3GnB,EA+GQ,SAAS,CAAC,MA/GlB,EA+G2B,GA/G3B,EAgHY,SAAS,CAAC,MAAV,KAAqB,CAArB,GAAyB,GAAzB,GAA+B,EAhH3C,EAsHQ,YAAY,CAAC,MAAb,GAAsB,SAAS,CAAC,MAtHxC,EAsHiD,GAtHjD,EAuHY,YAAY,CAAC,MAAb,GAAsB,SAAS,CAAC,MAAhC,KAA2C,CAA3C,GACH,GADG,GAEH,EAzHT,CAXf;EA6ID,CA1cD;;AA4cA,uBAAeE,cAAO,CACpB,CACE,WADF,EAEE,aAFF,EAGE,aAHF,EAIE,kBAJF,EAKE,iBALF,EAME,oBANF,CADoB,EASpB,eAToB,CAAP,CAUb,YAVa,CAAf;;;;;;;;;;;;;;;;;;;;MCzcM;;;;;EACJ,gBAAY,KAAZ,EAAgC;EAAA;;EAAA;;EAC9B,8BAAM,KAAN;;EAD8B,+EAmBG,UACjC,MADiC,EAI/B;EACF,UAAM,MAAM,GAAG,MAAK,KAAL,CAAW,eAAX,CAA2B,MAA3B,CAAf;EACA,UAAM,wBAAwB,GAAG,MAAM,CAAC,IAAP,CAAY,MAAZ,EAC9B,MAD8B,CACvB,UAAC,EAAD;EAAA,eAAQ,MAAM,CAAC,MAAM,CAAC,EAAD,CAAP,CAAN,CAAmB,KAA3B;EAAA,OADuB,EAE9B,MAF8B,CAEvB,UAAC,IAAD,EAAO,IAAP,EAAe;EACrB,YAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAD,CAAP,CAA1B;EACA,mDACK,IADL,2BAEG,WAAW,CAAC,WAFf,EAE6B,WAAW,CAAC,KAFzC;EAID,OAR8B,EAQ5B,EAR4B,CAAjC;EASA,aAAO,wBAAP;EACD,KAnC+B;;EAAA,4EAqCA,UAAC,MAAD,EAAiB,YAAjB,EAA2C;EACzE,UAAI,KAAK,GAAG,IAAZ,CADyE;;EAGzE,WAAK,IAAI,KAAK,GAAG,CAAjB,EAAoB,KAAK,GAAG,YAAY,CAAC,MAAzC,EAAiD,KAAK,IAAI,CAA1D,EAA6D;EAC3D,YAAM,GAAG,GAAG,YAAY,CAAC,KAAD,CAAxB;EACA,YAAQ,OAAR,GAAoB,MAAK,KAAL,CAAW,kBAAX,CAA8B,MAA9B,EAAsC,GAAtC,CAApB,CAAQ,OAAR;EACA,YAAM,WAAW,GACf,MAAK,KAAL,CAAW,eAAX,CAA2B,MAA3B,KACA,MAAK,KAAL,CAAW,eAAX,CAA2B,MAA3B,EAAmC,OAAnC,CAFF;;EAGA,YAAI,EAAE,WAAW,IAAI,WAAW,CAAC,KAA7B,CAAJ,EAAyC;EACvC,UAAA,KAAK,GAAG,KAAR;EACA;EACD;EACF;;EACD,aAAO,KAAP;EACD,KApD+B;;EAAA,2EAsDD,UAC7B,MAD6B,EAE7B,eAF6B,EAO3B;EACF,UAAI,KAAK,GAAG,KAAZ,CADE;;EAGF,WAAK,IAAI,KAAK,GAAG,CAAjB,EAAoB,KAAK,GAAG,eAAe,CAAC,MAA5C,EAAoD,KAAK,IAAI,CAA7D,EAAgE;EAC9D,oCAAiC,eAAe,CAAC,KAAD,CAAhD;EAAA,YAAQ,aAAR,yBAAQ,aAAR;EAAA,YAAuB,KAAvB,yBAAuB,KAAvB;EACA,YAAM,WAAW,GACf,MAAK,KAAL,CAAW,eAAX,CAA2B,MAA3B,KACA,MAAK,KAAL,CAAW,eAAX,CAA2B,MAA3B,EAAmC,aAAnC,CAFF;;EAGA,YAAI,WAAW,IAAI,WAAW,CAAC,KAAZ,KAAsB,KAAzC,EAAgD;EAC9C,UAAA,KAAK,GAAG,IAAR;EACA;EACD;EACF;;EACD,aAAO,KAAP;EACD,KA3E+B;;EAAA,+EA6EG,UAAC,MAAD,EAAiB,WAAjB,EAAwC;EACzE,UAAI,KAAK,GAAG,IAAZ;EACA,UAAM,SAAS,GAAG,MAAK,KAAL,CAAW,kBAAX,CAA8B,MAA9B,EAAsC,WAAtC,CAAlB;EAEA,UAAI,SAAS,IAAI,SAAS,CAAC,YAA3B;EAEE,aAAK,IAAI,KAAK,GAAG,CAAjB,EAAoB,KAAK,GAAG,SAAS,CAAC,YAAV,CAAuB,MAAnD,EAA2D,KAAK,IAAI,CAApE,EAAuE;EACrE,cAAM,WAAW,GAAG,MAAK,KAAL,CAAW,kBAAX,CAA8B,MAA9B,EAClB,SAAS,CAAC,YAAV,CAAuB,KAAvB,CADkB,CAApB;EAGA,cAAM,eAAe,GACnB,MAAK,KAAL,CAAW,eAAX,CAA2B,MAA3B,KACA,MAAK,KAAL,CAAW,eAAX,CAA2B,MAA3B,EAAmC,WAAW,CAAC,OAA/C,CAFF;;EAGA,cAAI,EAAE,eAAe,IAAI,eAAe,CAAC,KAArC,CAAJ,EAAiD;EAC/C,YAAA,KAAK,GAAG,KAAR;EACA;EACD;EACF;EACH,aAAO,KAAP;EACD,KAhG+B;;EAAA,qEAkGP,UAAC,KAAD,EAAyB;EAChD,UAAM,MAAM,GAAG,MAAK,KAAL,CAAW,IAAX,CAAgB,EAA/B;EACA,UAAM,UAAU,GAAG,MAAK,KAAL,CAAW,WAAX,IAA0B,MAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,CAA7C;EAEA,UAAI,KAAK,CAAC,IAAN,KAAe,QAAf,IAA2B,KAAK,CAAC,IAAN,KAAe,MAA9C,EAAsD,OAAO,IAAP;;EAEtD,UAAI,UAAU,IAAI,KAAK,CAAC,cAAxB,EAAwC;EACtC,YAAM,aAAa,GAAG,CAAC,KAAK,CAAC,SAA7B,CADsC;;EAGtC,YAAM,cAAc,GAAG,IAAvB;EAEA,YAAQ,YAAR,GAAyB,MAAK,KAAL,CAAW,kBAAX,CAA8B,MAA9B,EACvB,KAAK,CAAC,cAAN,CAAqB,YADE,CAAzB,CAAQ,YAAR;EAIA,YAAM,eAAe,GAAG,MAAK,KAAL,CAAW,uBAAX,CAAmC,MAAnC,EACtB,KAAK,CAAC,cAAN,CAAqB,YADC,CAAxB;EAGA,YAAI,OAAO,GAAG,IAAd;;EACA,YAAI,YAAJ,EAAkB;EAChB,UAAA,OAAO,GAAG,MAAK,qBAAL,CAA2B,MAA3B,EAAmC,YAAnC,CAAV;EACD;;EAED,YAAI,eAAJ,EAAqB;EACnB,UAAA,OAAO,GAAG,oBAAoB,CAC5B,MAD4B,EAE5B,eAF4B,EAG5B,MAAK,KAAL,CAAW,eAHiB,CAA9B;EAKD;;EAED,eAAO,aAAa,IAAI,cAAjB,IAAmC,OAA1C;EACD;;EACD,aAAO,KAAP;EACD,KApI+B;;EAAA,mEAsIT,UAAC,MAAD,EAAqB;EAC1C,UAAM,MAAM,GAAG,MAAK,KAAL,CAAW,IAAX,CAAgB,EAA/B;EACA,UAAM,UAAU,GAAG,MAAK,KAAL,CAAW,WAAX,IAA0B,MAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,CAA7C;EACA,aAAO,MAAM,CAAC,OAAP,CAAe,UAAU,CAAC,IAAX,CAAgB,QAAhB,CAAyB,IAAxC,IAAgD,CAAC,CAAxD;EACD,KA1I+B;;EAAA,+EA4IG,YAAK;EACtC,UAAM,MAAM,GAAG,MAAK,KAAL,CAAW,IAAX,CAAgB,EAA/B;EACA,UAAM,UAAU,GAAG,MAAK,KAAL,CAAW,WAAX,IAA0B,MAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,CAA7C;EAEA,UAAM,gBAAgB,GAAG,UAAU,CAAC,IAAX,CAAgB,eAAhB,CAAgC,MAAhC,CACvB,UAAC,EAAD;EAAA,eAAQ,EAAE,CAAC,UAAX;EAAA,OADuB,CAAzB;EAIA,UAAM,cAAc,GAAG,UAAU,CAAC,cAAlC;EAEA,UAAM,YAAY,GAAG,gBAAgB,CAAC,MAAjB,CACnB,UAAC,EAAD;EAAA,eAAQ,EAAE,CAAC,cAAH,IAAqB,EAAE,CAAC,cAAH,CAAkB,IAAlB,KAA2B,SAAxD;EAAA,OADmB,EAEnB,CAFmB,CAArB;;EAIA,UAAI,CAAC,YAAL,EAAmB;EACjB,eAAO,IAAP;EACD;;EAED,UACE,gBAAgB,CAAC,MAAjB,GAA0B,CAA1B,IACA,YADA,IAEA,YAAY,CAAC,cAFb,IAGA,cAHA,IAIA,MAAK,wBAAL,CACE,MADF,EAEE,YAAY,CAAC,cAAb,CAA4B,YAF9B,CALF,EASE;EACA,eAAO,IAAP;EACD;;EACD,aAAO,KAAP;EACD,KA3K+B;;EAAA,2EA6KD,YAAK;EAClC,UAAM,MAAM,GAAG,MAAK,KAAL,CAAW,IAAX,CAAgB,EAA/B;EACA,UAAM,UAAU,GAAG,MAAK,KAAL,CAAW,WAAX,IAA0B,MAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,CAA7C;;EACA,UAAI,MAAK,YAAL,CAAkB,CAAC,SAAD,EAAY,QAAZ,CAAlB,CAAJ,EAA8C;EAC5C,YAAM,gBAAgB,GAAG,UAAU,CAAC,IAAX,CAAgB,eAAhB,CAAgC,MAAhC,CACvB,UAAC,EAAD;EAAA,iBAAQ,EAAE,CAAC,UAAX;EAAA,SADuB,CAAzB;EAIA,YAAM,oBAAoB,GAAG,UAAU,CAAC,IAAX,CAAgB,eAAhB,CAAgC,MAAhC,CAC3B,UAAC,EAAD;EAAA;;EAAA,iBAAQ,EAAE,CAAC,UAAH,IAAiB,uBAAA,EAAE,CAAC,cAAH,0EAAmB,IAAnB,MAA4B,WAArD;EAAA,SAD2B,CAA7B;EAIA,YAAM,cAAc,GAAG,UAAU,CAAC,cAAlC;EAEA,YAAM,YAAY,GAAG,gBAAgB,CAAC,MAAjB,CACnB,UAAC,EAAD;EAAA,iBAAQ,EAAE,CAAC,cAAH,IAAqB,EAAE,CAAC,cAAH,CAAkB,IAAlB,KAA2B,SAAxD;EAAA,SADmB,EAEnB,CAFmB,CAArB,CAX4C;;EAgB5C,YACE,oBAAoB,CAAC,MAArB,GAA8B,CAA9B,IACA,cADA,IAEA,CAAC,YAFD,IAGA,CAAC,MAAK,oBAAL,EAJH,EAME,OAAO,IAAP,CAtB0C;;EAyB5C,YAAI,CAAC,YAAL,EAAmB;EACjB,iBAAO,KAAP;EACD;;EAED,YACE,gBAAgB,CAAC,MAAjB,GAA0B,CAA1B,IACA,cADA,IAEA,YAFA,IAGA,YAAY,CAAC,cAHb,IAIA,MAAK,wBAAL,CACE,MADF,EAEE,YAAY,CAAC,cAAb,CAA4B,YAF9B,CALF,EASE;EACA,iBAAO,IAAP;EACD;;EACD,eAAO,KAAP;EACD;;EACD,aAAO,KAAP;EACD,KA5N+B;;EAAA,2EA8ND,YAAK;EAClC,wBAA8B,MAAK,KAAnC;EAAA,UAAQ,IAAR,eAAQ,IAAR;EAAA,UAAc,WAAd,eAAc,WAAd;EACA,UAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,EAAN,CAA9B;;EAEA,UAAI,MAAK,YAAL,CAAkB,CAAC,SAAD,EAAY,QAAZ,CAAlB,CAAJ,EAA8C;EAC5C,YAAM,gBAAgB,GAAG,UAAU,CAAC,IAAX,CAAgB,eAAhB,CAAgC,MAAhC,CACvB,UAAC,EAAD;EAAA,iBAAQ,EAAE,CAAC,UAAX;EAAA,SADuB,CAAzB;;EAIA,YAAI,gBAAJ,EAAsB;EACpB,cAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAjB,CACxB,UAAC,EAAD;EAAA,mBACE,EAAE,CAAC,cAAH,IAAqB,EAAE,CAAC,cAAH,CAAkB,IAAlB,KAA2B,eADlD;EAAA,WADwB,EAGxB,CAHwB,CAA1B;;EAIA,cAAI,iBAAJ,EAAuB;EACrB,mBAAO,IAAP;EACD;EACF;EACF;;EACD,aAAO,KAAP;EACD,KAlP+B;;EAAA,0EAoPF,YAAK;EACjC,UAAM,MAAM,GAAG,MAAK,KAAL,CAAW,IAAX,CAAgB,EAA/B;EACA,UAAM,UAAU,GAAG,MAAK,KAAL,CAAW,WAAX,IAA0B,MAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,CAA7C;EACA,UAAM,OAAO,GAAG;EACd,QAAA,MAAM,EAAE,UAAU,CAAC,cADL;EAEd,QAAA,UAAU,EAAE,MAAK,wBAAL,CAA8B,MAA9B;EAFE,OAAhB;EAIA,aAAO,OAAP;EACD,KA5P+B;;EAAA,uEA8PL,UAAC,KAAD,EAAyB;EAClD,UAAM,MAAM,GAAG,MAAK,KAAL,CAAW,IAAX,CAAgB,EAA/B;EACA,UAAM,UAAU,GAAG,MAAK,KAAL,CAAW,WAAX,IAA0B,MAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,CAA7C;;EACA,UAAI,UAAU,IAAI,KAAK,CAAC,cAAxB,EAAwC;EACtC,YAAQ,YAAR,GAAyB,MAAK,KAAL,CAAW,kBAAX,CAA8B,MAA9B,EACvB,KAAK,CAAC,cAAN,CAAqB,YADE,CAAzB,CAAQ,YAAR;;EAGA,YAAI,YAAJ,EAAkB;EAChB,cAAM,YAAY,GAAG,YAAY,CAAC,MAAb,CAAoB,UAAC,IAAD,EAAO,IAAP,EAAe;EACtD,gBAAQ,OAAR,GAAoB,MAAK,KAAL,CAAW,kBAAX,CAA8B,MAA9B,EAAsC,IAAtC,CAApB,CAAQ,OAAR;EACA,gBAAI,OAAJ,EACE,2CACK,IADL,2BAEG,IAFH,EAEU,MAAK,KAAL,CAAW,eAAX,CAA2B,MAA3B,EAAmC,OAAnC,EAA4C,KAFtD;EAIF,mBAAO,IAAP;EACD,WARoB,EAQlB,EARkB,CAArB;EASA,iBAAO,YAAP;EACD;EACF;;EACD,aAAO,IAAP;EACD,KAnR+B;;EAE9B,UAAK,KAAL,GAAa;EACX,MAAA,OAAO,EAAE;EADE,KAAb;EAF8B;EAK/B;;;;aAED,6BAAiB;EACf,yBAAqC,KAAK,KAA1C;EAAA,UAAQ,IAAR,gBAAQ,IAAR;EAAA,UAAc,kBAAd,gBAAc,kBAAd;EACA,MAAA,kBAAkB,CAAC,IAAI,CAAC,EAAN,CAAlB;EACD;;;aAED,4BAAmB,SAAnB,EAA2C;EACzC,yBAAqC,KAAK,KAA1C;EAAA,UAAQ,IAAR,gBAAQ,IAAR;EAAA,UAAc,kBAAd,gBAAc,kBAAd;;EACA,UAAI,SAAS,CAAC,IAAV,CAAe,EAAf,KAAsB,IAAI,CAAC,EAA/B,EAAmC;EACjC,QAAA,kBAAkB,CAAC,IAAI,CAAC,EAAN,CAAlB;EACD;EACF;;;aAoQD,kBAAM;EAAA;;EACJ,yBAMI,KAAK,KANT;EAAA,UACE,IADF,gBACE,IADF;EAAA,UAEE,WAFF,gBAEE,WAFF;EAAA,UAGE,eAHF,gBAGE,eAHF;EAAA,UAIE,gBAJF,gBAIE,gBAJF;EAAA,UAKE,kBALF,gBAKE,kBALF;EAOA,UAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,EAAN,CAAX,IAAwB,WAAW,CAAC,IAAI,CAAC,EAAN,CAAX,CAAqB,IAAlE;EACA,UAAM,gBAAgB,GAAG,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC,EAAN,CAA3D;EAEA,aAAOH,GAAP,4FACI,KAAK,KAAL,CAAW,OAAX,GACEA,GADF,qFACU,MADV,IAEEA,GAFF,0GAGM,YAAY,GACVA,GADU,gNAEKC,QAAM,CAAC,SAFZ,EAGJ,YAAY,CAAC,eAAb,CAA6B,GAA7B,CAAiC,UAAC,EAAD,EAAO;EAAA;;EACxC,YAAI,MAAI,CAAC,cAAL,CAAoB,EAApB,KAA2B,EAAE,CAAC,cAAlC,EAAkD;EAChD,kBAAQ,EAAE,CAAC,cAAH,CAAkB,IAA1B;EACE,iBAAK,QAAL;EAAe;EAAA;;EACb,uBAAOD,GAAP,o3BACa,EAAE,CAAC,EADhB,EAC4BC,QAAM,CAAC,QADnC,EAEO,OAFP,EAGY,EAAE,CAAC,cAAH,CAAkB,EAH9B,EAImB,MAAI,CAAC,KAAL,CAAW,UAJ9B,EAKc,EAAE,CAAC,KAAH,IAAY,EAAE,CAAC,cAAH,CAAkB,KAL5C,EAMoB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WAPxB,EAQ2B,kBAR3B,EASoB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WAVxB,EAWmB,EAAE,CAAC,WAXtB,EAYe,gBAAgB,IACvB,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CADT,IAEP,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAFlB,IAGR,EAfN,EAgBiB,UAAC,GAAD,EAAgB;EACzB,kBAAA,gBAAgB,CAAC;EACf,oBAAA,MAAM,YAAK,IAAI,CAAC,EAAV,CADS;EAEf,oBAAA,OAAO,YAAK,EAAE,CAAC,EAAR,CAFQ;EAGf,oBAAA,KAAK,EAAE,GAHQ;EAIf,oBAAA,UAAU,EAAE,EAAE,CAAC;EAJA,mBAAD,CAAhB;;EAMA,kBAAA,MAAI,CAAC,KAAL,CAAW,kBAAX,CAA8B,IAAI,CAAC,EAAnC;EACD,iBAxBP,EAyBoB,EAAE,CAAC,cAAH,CAAkB,QAzBtC,EA0BkB,EAAE,CAAC,cAAH,CAAkB,UA1BpC,EA2BqB,IAAI,CAAC,SAAL;EACb,kBAAA,gBAAgB,EACd,MAAI,CAAC,KAAL,CAAW,WAAX,8BACA,MAAI,CAAC,KAAL,CAAW,WAAX,CAAuB,MAAI,CAAC,KAAL,CAAW,IAAX,CAAgB,EAAvC,CADA,0DACA,sBACI,cAFJ;EAFW,mBAKV,MAAI,CAAC,gBAAL,CAAsB,EAAtB,CALU,EA3BrB;EAqCD;;EACD,iBAAK,MAAL;EACE,qBAAOD,GAAP,koBACQ,EAAE,CAAC,EADX,EAEUC,QAAM,CAAC,QAFjB,EAIK,SAJL,EAKY,EAAE,CAAC,KAAH,IAAY,EAAE,CAAC,cAAH,CAAkB,KAL1C,EAMkB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WAPtB,EAQa,gBAAgB,IACvB,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CADT,IAEP,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAFlB,IAGR,EAXJ,EAYkB,EAAE,CAAC,WAAH,IACd,sBAbJ,EAcyB,kBAdzB,EAeiB,EAAE,CAAC,WAfpB,EAgBe,UAAC,GAAD,EAAgB;EACzB,gBAAA,gBAAgB,CAAC;EACf,kBAAA,MAAM,YAAK,IAAI,CAAC,EAAV,CADS;EAEf,kBAAA,OAAO,YAAK,EAAE,CAAC,EAAR,CAFQ;EAGf,kBAAA,KAAK,EAAE,GAHQ;EAIf,kBAAA,UAAU,EAAE,EAAE,CAAC;EAJA,iBAAD,CAAhB;;EAMA,gBAAA,MAAI,CAAC,KAAL,CAAW,kBAAX,CAA8B,IAAI,CAAC,EAAnC;EACD,eAxBL;;EA2BF,iBAAK,WAAL;EACE,qBACE,CAAC,MAAI,CAAC,oBAAL,EAAD,IACA,MAAI,CAAC,wBAAL,EADA,IAEA,CAAC,EAAE,CAAC,gBAFJ,IAGAD,GAHA,kyBAIeC,QAAM,CAAC,QAJtB,EAKO,KALP,EAMW,EAAE,CAAC,cAAH,CAAkB,EAN7B,EAOc,EAAE,CAAC,KAAH,IAAY,EAAE,CAAC,cAAH,CAAkB,KAP5C,EAQoB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WATxB,EAUe,gBAAgB,IACvB,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CADT,IAEP,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAFlB,IAGR,EAbN,EAcoB,EAAE,CAAC,WAAH,IACd,sBAfN,EAgB2B,kBAhB3B,EAiBc,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAjBtC,EAkB0B,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CACjB,iBAnBT,EAoBmB,EAAE,CAAC,WApBtB,EAqBiB,UACT,GADS,EAET,eAFS,EAGP;EACF,gBAAA,gBAAgB,CAAC;EACf,kBAAA,MAAM,YAAK,IAAI,CAAC,EAAV,CADS;EAEf,kBAAA,OAAO,YAAK,EAAE,CAAC,EAAR,CAFQ;EAGf,kBAAA,KAAK,EAAE,GAHQ;EAIf,kBAAA,UAAU,EAAE,EAAE,CAAC,WAJA;EAKf,kBAAA,eAAe,EAAf;EALe,iBAAD,CAAhB;;EAOA,gBAAA,MAAI,CAAC,KAAL,CAAW,kBAAX,CAA8B,IAAI,CAAC,EAAnC;EACD,eAjCP,CADF;;EAuCF,iBAAK,MAAL;EACE,qBAAOD,GAAP,owBACeC,QAAM,CAAC,QADtB,EAEO,KAFP,EAGW,EAAE,CAAC,cAAH,CAAkB,EAH7B,EAIc,EAAE,CAAC,KAAH,IAAY,EAAE,CAAC,cAAH,CAAkB,KAJ5C,EAKoB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WANxB,EAOe,gBAAgB,IACvB,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CADT,IAEP,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAFlB,IAGR,EAVN,EAWoB,EAAE,CAAC,WAAH,IACd,oBAZN,EAa2B,kBAb3B,EAcc,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAdtC,EAe0B,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CACjB,iBAhBT,EAiBmB,EAAE,CAAC,WAjBtB,EAkBiB,UACT,GADS,EAET,eAFS,EAGP;EACF,gBAAA,gBAAgB,CAAC;EACf,kBAAA,MAAM,YAAK,IAAI,CAAC,EAAV,CADS;EAEf,kBAAA,OAAO,YAAK,EAAE,CAAC,EAAR,CAFQ;EAGf,kBAAA,KAAK,EAAE,GAHQ;EAIf,kBAAA,UAAU,EAAE,EAAE,CAAC,WAJA;EAKf,kBAAA,eAAe,EAAf;EALe,iBAAD,CAAhB;;EAOA,gBAAA,MAAI,CAAC,KAAL,CAAW,kBAAX,CAA8B,IAAI,CAAC,EAAnC;EACD,eA9BP;;EAkCF,iBAAK,UAAL;EAAiB;EAAA;;EACf,oBAAI,OAAO,GAGA,IAHX;;EAIA,oBACE,yBAAC,EAAE,CAAC,cAAJ,gDAAC,oBAAmB,QAApB,KACA,wBAAA,EAAE,CAAC,cAAH,4EAAmB,QAAnB,MAAgC,EAFlC,EAGE;EACA;EACA,kBAAA,OAAO,GAAG,CACR;EACE,oBAAA,EAAE,EAAE,EAAE,CAAC,cAAH,CAAkB,YADxB;EAEE,oBAAA,KAAK,EAAE,EAAE,CAAC,cAAH,CAAkB;EAF3B,mBADQ,CAAV;EAMD,iBAXD,MAWO,IAAI,CAAC,EAAE,CAAC,cAAH,CAAkB,iBAAvB,EAA0C;EAC/C,sBAAI;EAAA;;EACF,oBAAA,OAAO,GAAG,IAAI,CAAC,KAAL,iDACR,EAAE,CAAC,cADK,wDACR,oBAAmB,QADX,yEACuB,IADvB,CAAV;EAGD,mBAJD,CAIE,OAAO,KAAP,EAAc;EAAA;;EACd,oBAAA,OAAO,GAAG,EAAV;EACA,oBAAA,OAAO,CAAC,KAAR,CACE,uBADF,yBAEE,EAAE,CAAC,cAFL,wDAEE,oBAAmB,QAFrB;EAID;EACF;;EACD,uBAAOD,GAAP,k6BACa,EAAE,CAAC,EADhB,EAC4BC,QAAM,CAAC,QADnC,EAEO,aAFP,EAGgB,EAAE,CAAC,EAHnB,EAIc,EAAE,CAAC,KAAH,IAAY,EAAE,CAAC,cAAH,CAAkB,KAJ5C,EAKoB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WANxB,EAO2B,kBAP3B,EAQoB,EAAE,CAAC,WARvB,EASc,gBAAgB,IACxB,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CADR,IAER,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAX9B,EAYmB,EAAE,CAAC,WAZtB,EAawB,EAAE,CAAC,cAAH,CAAkB,QAb1C,EAckB,EAAE,CAAC,cAAH,CAAkB,UAdpC,EAeuB,OAfvB,EAgBqB,IAAI,CAAC,SAAL;EACb,kBAAA,gBAAgB,EACd,MAAI,CAAC,KAAL,CAAW,WAAX,+BACA,MAAI,CAAC,KAAL,CAAW,WAAX,CAAuB,MAAI,CAAC,KAAL,CAAW,IAAX,CAAgB,EAAvC,CADA,2DACA,uBACI,cAFJ;EAFW,mBAKV,MAAI,CAAC,gBAAL,CAAsB,EAAtB,CALU,EAhBrB,EAuBiB,UAAC,GAAD,EAAgB;EACzB,kBAAA,gBAAgB,CAAC;EACf,oBAAA,MAAM,YAAK,IAAI,CAAC,EAAV,CADS;EAEf,oBAAA,OAAO,YAAK,EAAE,CAAC,EAAR,CAFQ;EAGf,oBAAA,KAAK,EAAE,GAHQ;EAIf,oBAAA,UAAU,EAAE,EAAE,CAAC;EAJA,mBAAD,CAAhB;EAMD,iBA9BP;EAmCD;;EACD,iBAAK,SAAL;EACE,qBAAO,CAAC,MAAI,CAAC,oBAAL,EAAD,GACHD,GADG,+cAEU,EAAE,CAAC,EAFb,EAEyBC,QAAM,CAAC,QAFhC,EAGI,YAHJ,EAIY,YAAY,CAAC,EAJzB,EAKkB,EALlB,EAMkB,IAAI,CAAC,SAAL;EACb,gBAAA,gBAAgB,EACd,MAAI,CAAC,KAAL,CAAW,WAAX,+BACA,MAAI,CAAC,KAAL,CAAW,WAAX,CACE,MAAI,CAAC,KAAL,CAAW,IAAX,CAAgB,EADlB,CADA,2DACA,uBAEG,cAHH;EAFW,iBAMV,MAAI,CAAC,gBAAL,CAAsB,EAAtB,CANU,EANlB,IAiBHD,GAjBG,6EAAP;;EAkBF,iBAAK,UAAL;EACE,qBAAOA,GAAP,iuBACa,EAAE,CAAC,EADhB,EAC4BC,QAAM,CAAC,QADnC,EAEO,aAFP,EAGc,EAAE,CAAC,KAAH,IAAY,EAAE,CAAC,cAAH,CAAkB,KAH5C,EAIoB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WALxB,EAMe,gBAAgB,IACvB,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CADT,IAEP,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAFlB,IAGR,EATN,EAUoB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WADJ,IAEd,sBAZN,EAac,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAbtC,EAc0B,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CACjB,iBAfT,EAgB2B,kBAhB3B,EAiBmB,EAAE,CAAC,WAjBtB,EAkBiB,UAAC,GAAD,EAAgB;EACzB,gBAAA,gBAAgB,CAAC;EACf,kBAAA,MAAM,YAAK,IAAI,CAAC,EAAV,CADS;EAEf,kBAAA,OAAO,YAAK,EAAE,CAAC,EAAR,CAFQ;EAGf,kBAAA,KAAK,EAAE,GAHQ;EAIf,kBAAA,UAAU,EAAE,EAAE,CAAC;EAJA,iBAAD,CAAhB;;EAMA,gBAAA,MAAI,CAAC,KAAL,CAAW,kBAAX,CAA8B,IAAI,CAAC,EAAnC;EACD,eA1BP;;EA8BF,iBAAK,UAAL;EACE,qBAAOD,GAAP,iuBACa,EAAE,CAAC,EADhB,EAC4BC,QAAM,CAAC,QADnC,EAEO,QAFP,EAGc,EAAE,CAAC,KAAH,IAAY,EAAE,CAAC,cAAH,CAAkB,KAH5C,EAIoB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WALxB,EAMe,gBAAgB,IACvB,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CADT,IAEP,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAFlB,IAGR,EATN,EAUoB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WADJ,IAEd,sBAZN,EAac,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAbtC,EAc0B,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CACjB,iBAfT,EAgB2B,kBAhB3B,EAiBmB,EAAE,CAAC,WAjBtB,EAkBiB,UACT,GADS,EAET,eAFS,EAGP;EACF,gBAAA,gBAAgB,CAAC;EACf,kBAAA,MAAM,YAAK,IAAI,CAAC,EAAV,CADS;EAEf,kBAAA,OAAO,YAAK,EAAE,CAAC,EAAR,CAFQ;EAGf,kBAAA,KAAK,EAAE,GAHQ;EAIf,kBAAA,UAAU,EAAE,EAAE,CAAC,WAJA;EAKf,kBAAA,eAAe,EAAf;EALe,iBAAD,CAAhB;;EAOA,gBAAA,MAAI,CAAC,KAAL,CAAW,kBAAX,CAA8B,IAAI,CAAC,EAAnC;EACD,eA9BP;;EAkCF,iBAAK,MAAL;EACE,qBAAOD,GAAP,ynBACa,EAAE,CAAC,EADhB,EAC4BC,QAAM,CAAC,QADnC,EAEO,SAFP,EAGc,EAAE,CAAC,KAAH,IAAY,EAAE,CAAC,cAAH,CAAkB,KAH5C,EAIoB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WALxB,EAMe,gBAAgB,IACvB,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CADT,IAEP,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAFlB,IAGR,EATN,EAUoB,EAAE,CAAC,WAAH,IACd,sBAXN,EAY2B,kBAZ3B,EAamB,EAAE,CAAC,WAbtB,EAciB,UAAC,GAAD,EAAgB;EACzB,gBAAA,gBAAgB,CAAC;EACf,kBAAA,MAAM,YAAK,IAAI,CAAC,EAAV,CADS;EAEf,kBAAA,OAAO,YAAK,EAAE,CAAC,EAAR,CAFQ;EAGf,kBAAA,KAAK,EAAE,GAHQ;EAIf,kBAAA,UAAU,EAAE,EAAE,CAAC;EAJA,iBAAD,CAAhB;;EAMA,gBAAA,MAAI,CAAC,KAAL,CAAW,kBAAX,CAA8B,IAAI,CAAC,EAAnC;EACD,eAtBP;;EA0BF,iBAAK,OAAL;EACE,qBAAOD,GAAP,ouBACa,EAAE,CAAC,EADhB,EAC4BC,QAAM,CAAC,QADnC,EAEO,UAFP,EAGc,EAAE,CAAC,KAAH,IAAY,EAAE,CAAC,cAAH,CAAkB,KAH5C,EAIoB,EAAE,CAAC,WAAH,IACd,EAAE,CAAC,cAAH,CAAkB,WALxB,EAMkB,EAAE,CAAC,cAAH,CAAkB,UANpC,EAOmB,EAAE,CAAC,WAPtB,EAQ2B,kBAR3B,EASwB,EAAE,CAAC,cAAH,CAAkB,UAAlB,GACd,EAAE,CAAC,cAAH,CAAkB,QADJ,GAEd,IAXV,EAYe,gBAAgB,IACvB,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CADT,IAEP,gBAAgB,CAAC,EAAE,CAAC,EAAJ,CAAhB,CAAwB,KAFlB,IAGR,EAfN,EAgBqB,IAAI,CAAC,SAAL;EACb,gBAAA,gBAAgB,EACd,MAAI,CAAC,KAAL,CAAW,WAAX,+BACA,MAAI,CAAC,KAAL,CAAW,WAAX,CAAuB,MAAI,CAAC,KAAL,CAAW,IAAX,CAAgB,EAAvC,CADA,2DACA,uBACI,cAFJ;EAFW,iBAKV,MAAI,CAAC,gBAAL,CAAsB,EAAtB,CALU,EAhBrB,EAuBiB,UAAC,QAAD,EAAqB;EAC9B,gBAAA,gBAAgB,CAAC;EACf,kBAAA,MAAM,YAAK,IAAI,CAAC,EAAV,CADS;EAEf,kBAAA,OAAO,YAAK,EAAE,CAAC,EAAR,CAFQ;EAGf,kBAAA,KAAK,EAAE,QAHQ;EAIf,kBAAA,UAAU,EAAE,EAAE,CAAC;EAJA,iBAAD,CAAhB;;EAMA,gBAAA,MAAI,CAAC,KAAL,CAAW,kBAAX,CAA8B,IAAI,CAAC,EAAnC;EACD,eA/BP;;EAmCF,iBAAK,YAAL;EACE,qBAAOD,GAAP;;EACF,iBAAK,eAAL;EACE,qBAAOA,GAAP,ibACeC,QAAM,CAAC,QADtB,EAEOmB,cAFP,EAGe,YAAY,CAAC,EAH5B,EAIuB,YAAY,CAAC,eAJpC,EAK2B,kBAL3B;;EASF;EACE,qBAAOpB,GAAP,+SACaC,QAAM,CAAC,QADpB,cACgCA,QAAM,CAAC,WADvC,GAGW,EAAE,CAAC,cAAH,CAAkB,IAH7B;EAjXJ;EAwXD,SAzXD,MAyXO;EACL,kBAAQ,EAAE,CAAC,IAAX;EACE,iBAAK,MAAL;EACE,qBAAOD,GAAP,gTAG8B;EACxB,gBAAA,MAAM,EAAE,EAAE,CAAC;EADa,eAH9B;;EAQF,iBAAK,QAAL;EACE,qBAAOA,GAAP,2QAEO,MAFP,EAEuB,EAAE,CAAC,KAF1B;EAXJ;EAmBD;;EACD,eAAOA,GAAP;EACD,OAhZC,CAHI,EAoZJ,KAAK,oBAAL,MACF,CAAC,KAAK,oBAAL,EADC,IAEFA,GAFE,8ZAGaC,QAAM,CAAC,QAHpB,EAIKoB,WAJL,EAKa,YAAY,CAAC,EAL1B,EAMqB,YAAY,CAAC,eANlC,EAOyB,kBAPzB,EAQmB,KAAK,mBAAL,EARnB,CApZI,IAkaVrB,GAlaU,0GAHlB,CADJ;EAyaD;;;;IA1sBgBE;;AA6sBnB,eAAeC,cAAO,CACpB,CACE,WADF,EAEE,aAFF,EAGE,iBAHF,EAIE,oBAJF,EAKE,kBALF,EAME,yBANF,CADoB,EASpB,eAToB,CAAP,CAUb,IAVa,CAAf;;;;;;;;;;EC5uBA,IAAM,OAAO,GAER,SAFC,OAED;EAAA,MAAG,KAAH,QAAG,KAAH;EAAA,MAAU,QAAV,QAAU,QAAV;EAAA,SAAyBH,GAAzB,4sFACUC,QAAM,CAAC,QADjB,EACmC,KADnC,EAoCM,QApCN;EAAA,CAFL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MC0BM;;;;;EAMJ,iBAAY,KAAZ,EAAiC;EAAA;;EAAA;;EAC/B,8BAAM,KAAN;;EAD+B,wEAsBL,UAAC,MAAD,EAAiB,IAAjB,EAA0C;EAAA;;EACpE,UAAQ,eAAR,GAA4B,MAAK,KAAjC,CAAQ,eAAR,CADoE;;EAGpE,UAAI,cAAc,GAAG,IAArB;;EAEA,mCAAI,MAAK,KAAL,CAAW,WAAf,kDAAI,sBAAwB,YAA5B,EAA0C;EACxC;EACA,YAAM,4BAA4B,GAAG,IAAI,CAAC,MAAL,CACnC,UAAC,EAAD;EAAA;;EAAA,iBACE,CAAC,EAAE,CAAC,gBAAJ,IAAwB,uBAAA,EAAE,CAAC,cAAH,0EAAmB,IAAnB,MAA4B,eADtD;EAAA,SADmC,CAArC;EAIA,YAAM,2BAA2B,GAAG,IAAI,CAAC,MAAL,CAClC,UAAC,EAAD;EAAA;;EAAA,iBACE,EAAE,CAAC,gBAAH,IAAuB,wBAAA,EAAE,CAAC,cAAH,4EAAmB,IAAnB,MAA4B,eADrD;EAAA,SADkC,CAApC;EAIA,YAAM,YAAY,GAAG,IAAI,CAAC,MAAL,CACnB,UAAC,EAAD;EAAA;;EAAA,iBAAQ,wBAAA,EAAE,CAAC,cAAH,4EAAmB,IAAnB,MAA4B,eAApC;EAAA,SADmB,EAEnB,CAFmB,CAArB;EAIA,YAAM,sBAAsB,GAAG,4BAA4B,CAAC,GAA7B,CAC7B,UAAC,KAAD;EAAA,iBAAY;EACV,YAAA,EAAE,EAAE,eAAe,CAAC,MAAD,CAAf,CAAwB,KAAK,CAAC,EAA9B,EAAkC,kBAAlC,IAAwD,KAAK,CAAC,EADxD;EAEV,YAAA,KAAK,EAAE,eAAe,CAAC,MAAD,CAAf,CAAwB,KAAK,CAAC,EAA9B,EAAkC,KAF/B;EAGV,YAAA,cAAc,EAAE,KAAK,CAAC;EAHZ,WAAZ;EAAA,SAD6B,CAA/B;;EAQA,YAAI,YAAJ,EAAkB;EAChB,cAAM,4BAA4B,GAAG,2BAA2B,CAAC,MAA5B,CACnC,UAAC,IAAD,EAAO,IAAP;EAAA;;EAAA,uDACK,IADL,4EAEG,IAAI,CAAC,cAFR,yDAEG,qBAAqB,YAFxB,yEAEwC,EAFxC,EAE6C,eAAe,CAAC,MAAD,CAAf,CACzC,IAAI,CAAC,EADoC,EAEzC,KAJJ;EAAA,WADmC,EAOnC,EAPmC,CAArC;EASA,cAAM,WAAW,GACf,eAAe,CAAC,MAAD,CAAf,CAAwB,YAAY,CAAC,EAArC,EAAyC,WAD3C;EAGA,UAAA,cAAc,GAAG;EACf,YAAA,EAAE,EAAE,MAAM,CACR,eAAe,CAAC,MAAD,CAAf,CAAwB,YAAY,CAAC,EAArC,EAAyC,kBADjC,CADK;EAIf,YAAA,cAAc,EAAE,YAAY,CAAC,EAJd;EAKf,YAAA,KAAK,EAAE,IAAI,CAAC,SAAL,qCACF,4BADE,uBAGF,MAAK,KAAL,CAAW,WAAX,CAAuB,eAAvB,IAA0C,EAHxC,EAG6C,WAH7C;EALQ,WAAjB;EAYD;;EAED,YAAM,YAAY,sBAAO,sBAAP,CAAlB;;EAEA,YAAI,cAAJ,EAAoB;EAClB,UAAA,YAAY,CAAC,IAAb,CAAkB,cAAlB;EACD,SArDuC;EAwDxC;EACA;EACA;EACA;EACA;;;EAEA,eAAO,YAAP;EACD;;EACD,aAAO,IAAI,CAAC,GAAL,CAAS,UAAC,KAAD;EAAA,eAAY;EAC1B,UAAA,EAAE,EAAE,eAAe,CAAC,MAAD,CAAf,CAAwB,KAAK,CAAC,EAA9B,EAAkC,kBAAlC,IAAwD,KAAK,CAAC,EADxC;EAE1B,UAAA,KAAK,EACH,CAAC,eAAe,CAAC,MAAD,CAAf,CAAwB,KAAK,CAAC,EAA9B,EAAkC,KAAlC,IACC,eAAe,CAAC,MAAD,CAAf,CAAwB,KAAK,CAAC,EAA9B,EAAkC,KAAlC,KAA4C,EAD9C,KAEA,CAAC,eAAe,CAAC,MAAD,CAAf,CAAwB,KAAK,CAAC,EAA9B,EAAkC,WAFnC,aAGO,eAAe,CAAC,MAAD,CAAf,CAAwB,KAAK,CAAC,EAA9B,EAAkC,KAHzC,IAII,IAAI,CAAC,SAAL,CAAe,eAAe,CAAC,MAAD,CAAf,CAAwB,KAAK,CAAC,EAA9B,EAAkC,WAAjD,CAPoB;EAQ1B,UAAA,cAAc,EAAE,KAAK,CAAC;EARI,SAAZ;EAAA,OAAT,CAAP;EAUD,KArGgC;;EAAA,iEAuGZ,YAAK;EAAA;;EACxB,UAAQ,WAAR,GAAwB,MAAK,KAA7B,CAAQ,WAAR;;EACA,UAAI,MAAK,OAAL,CAAa,aAAjB,EAAgC;EAC9B,eAAO,IAAP;EACD;;EACD,YAAK,QAAL,CAAc;EAAE,QAAA,OAAO,EAAE;EAAX,OAAd;;EACA,UAAM,OAAO,GAAQ;EACnB,QAAA,IAAI,2BAAE,MAAK,KAAL,CAAW,WAAX,CAAuB,IAAzB,yEAAiC,aADlB;EAEnB,QAAA,kBAAkB,EAAE,EAFD;EAGnB,QAAA,QAAQ,EAAE,MAAM,CAAC,MAAK,KAAL,CAAW,WAAX,CAAuB,UAAxB,CAHG;EAInB,QAAA,SAAS,EAAE,MAAM,CAAC,MAAK,KAAL,CAAW,WAAX,CAAuB,YAAxB,CAJE;EAKnB,QAAA,KAAK,EAAE,MAAM,CAAC,IAAP,CAAY,WAAZ,EAAyB,GAAzB,CAA6B,UAAC,EAAD;EAAA,iBAAS;EAC3C,YAAA,EAAE,EAAE,WAAW,CAAC,EAAD,CAAX,CAAgB,iBAAhB,IAAqC,WAAW,CAAC,EAAD,CAAX,CAAgB,IAAhB,CAAqB,EADnB;EAE3C,YAAA,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,EAAD,CAAX,CAAgB,cAAjB,CAAN,IAA0C,IAFd;EAG3C,YAAA,aAAa,EAAE,WAAW,CAAC,EAAD,CAAX,CAAgB,IAAhB,CAAqB,EAHO;EAI3C,YAAA,aAAa,EAAE,MAAK,iBAAL,CACb,WAAW,CAAC,EAAD,CAAX,CAAgB,IAAhB,CAAqB,EADR,EAEb,WAAW,CAAC,EAAD,CAAX,CAAgB,IAAhB,CAAqB,eAFR;EAJ4B,WAAT;EAAA,SAA7B;EALY,OAArB;;EAeA,UAAI,MAAK,KAAL,CAAW,mBAAf,EAAoC;EAClC,QAAA,OAAO,CAAC,kBAAR,GAA6B,OAA7B;EACD;;EACD,aAAO,OAAP;EACD,KAhIgC;;EAAA,wEAkIL,YAAK;EAC/B,UAAM,OAAO,GAAG,MAAK,UAAL,EAAhB;;EACA,UAAI,OAAJ,EACE,MAAK,OAAL,CAAa,UAAb,CACG,eADH,CACmB,OADnB,EAEG,IAFH,CAEQ,UAAC,WAAD,EAAyC;EAC7C,cAAK,gBAAL,CAAsB,WAAtB;EACD,OAJH,EAKG,KALH,CAKS,UAAC,GAAD;EAAA,eAAkB,OAAO,CAAC,KAAR,CAAc,GAAd,CAAlB;EAAA,OALT;EAMH,KA3IgC;;EAAA,uEA6IN,UAAC,WAAD,EAAyC;EAClE,UAAM,YAAY,GAAG,WAAW,CAAC,KAAZ,CAAkB,MAAlB,CACnB,UAAC,EAAD;EAAA,eAAQ,CAAC,CAAC,EAAE,CAAC,aAAb;EAAA,OADmB,EAEnB,CAFmB,CAArB;;EAGA,UAAI,YAAY,IAAI,YAAY,CAAC,aAAjC,EAAgD;EAC9C,YAAI;EACF,cAAM,UAAU,GAAG,IAAI,CAAC,KAAL,CAAW,YAAY,CAAC,aAAxB,CAAnB;;EACA,cAAI,UAAU,CAAC,cAAX,IAA6B,UAAU,CAAC,QAA5C,EAAsD;EAAA;;EACpD,yCAAI,MAAK,KAAL,CAAW,UAAf,kDAAI,sBAAuB,oBAA3B,EAAiD;EAC/C,oBAAK,QAAL,CACE;EACE,gBAAA,YAAY,EAAE,UADhB;EAEE,gBAAA,eAAe,EAAE;EAFnB,eADF,EAKE,YAAK;EACH,sBAAK,OAAL;EACD,eAPH;EASD,aAVD,MAUO;EACL,oBAAK,QAAL,CAAc;EACZ,gBAAA,QAAQ,EAAE,IADE;EAEZ,gBAAA,YAAY,EAAE,UAFF;EAGZ,gBAAA,eAAe,EAAE;EAHL,eAAd;EAKD;EACF;EACF,SArBD,CAqBE,OAAO,KAAP,EAAc;EACd,UAAA,OAAO,CAAC,KAAR,CAAc,KAAd;EACD;EACF,OAzBD,MAyBO;EACL,cAAK,QAAL,CACE;EACE,UAAA,eAAe,EAAE;EADnB,SADF,EAIE,YAAK;EACH,gBAAK,OAAL;EACD,SANH;EAQD;;EACD,YAAK,QAAL,CAAc;EAAE,QAAA,OAAO,EAAE;EAAX,OAAd;EACD,KArLgC;;EAAA,wEAuLL,YAAK;EAC/B,UAAM,OAAO,GAAG,MAAK,UAAL,EAAhB;;EACA,UAAI,OAAJ,EAAa;EACX,cAAK,OAAL,CAAa,UAAb,CACG,iBADH,CACqB,MAAK,KAAL,CAAW,mBADhC,sCAEO,OAFP;EAGI,UAAA,EAAE,YAAK,MAAK,KAAL,CAAW,mBAAhB;EAHN,YAKG,IALH,CAKQ,UAAC,WAAD,EAAyC;EAC7C,gBAAK,gBAAL,CAAsB,WAAtB;EACD,SAPH,EAQG,KARH,CAQS,UAAC,GAAD;EAAA,iBAAkB,OAAO,CAAC,KAAR,CAAc,GAAd,CAAlB;EAAA,SART;EASD;EACF,KApMgC;;EAAA,4EAsMD,YAI1B;EACJ,UAAQ,WAAR,GAAwB,MAAK,KAA7B,CAAQ,WAAR;EACA,UAAM,KAAK,GAAG,MAAM,CAAC,IAAP,CAAY,WAAZ,EACX,GADW,CACP,UAAC,MAAD,EAAW;EACd,YAAM,IAAI,GAAG,WAAW,CAAC,MAAD,CAAxB;EACA,YAAM,IAAI,GAAG,IAAI,CAAC,cAAL,CAAoB,MAApB,CACX,UAAC,EAAD;EAAA,iBAAQ,EAAE,CAAC,eAAH,KAAuB,IAAI,CAAC,cAApC;EAAA,SADW,EAEX,CAFW,CAAb;;EAGA,YAAI,IAAJ,EAAU;EAAA;;EACR,iBAAO;EACL,YAAA,eAAe,EAAE,WAAW,CAAC,MAAD,CAAX,CAAoB,cADhC;EAEL,YAAA,YAAY,EAAE,IAAI,CAAC,YAFd;EAGL,YAAA,iBAAiB,EACf,IAAI,CAAC,IAAL,CAAU,QAAV,CAAmB,GAAnB,CAAuB,EAAvB,gCACA,MAAK,KAAL,CAAW,WAAX,CAAuB,WADvB,2DACA,uBAAoC,EADpC;EAJG,WAAP;EAOD;;EACD,eAAO,IAAP;EACD,OAhBW,EAiBX,MAjBW,CAiBJ,QAjBI,CAAd;EAkBA,aAAO,KAAP;EACD,KA/NgC;;EAAA,8DAiOf,YAAK;EACrB,iCAAkC,MAAK,KAAvC,CAAQ,QAAR;EAAA,UAAQ,QAAR,qCAAmB;EAAA,eAAM,IAAN;EAAA,OAAnB;EACA,UAAQ,eAAR,GAA4B,MAAK,KAAjC,CAAQ,eAAR;;EACA,UAAI,eAAJ,EAAqB;EAAA;;EACnB,QAAA,QAAQ;;EACR,cAAK,KAAL,CAAW,aAAX,CAAyB;EACvB,UAAA,cAAc,EAAE,KADO;EAEvB,UAAA,eAAe,EAAE,KAFM;EAGvB,UAAA,oBAAoB,EAAE;EAHC,SAAzB;;EAKA,cAAK,OAAL,CAAa,YAAb,CAA0B,IAA1B,CAA+B,sBAA/B,EAAuD;EACrD,UAAA,aAAa,EAAE,eAAe,CAAC,EADsB;EAErD,UAAA,IAAI,EAAE,eAAe,CAAC,IAF+B;EAGrD,UAAA,UAAU,EAAE,eAAe,CAAC,QAHyB;EAIrD,UAAA,MAAM,EAAE,eAAe,CAAC,MAJ6B;EAKrD,UAAA,WAAW,qDAAE,MAAK,KAAL,CAAW,YAAb,2DAAE,uBAAyB,QAA3B,yEAAuC,IALG;EAMrD,UAAA,cAAc,EAAE,MAAK,qBAAL;EANqC,SAAvD;EAQD;EACF,KApPgC;;EAAA,yEAsPJ,UAC3B,MAD2B,EAE3B,MAF2B,EAG3B,UAH2B,EAI3B,QAJ2B,EAKzB;EACF,UAAM,cAAc,GAAG,MAAK,KAAL,CAAW,WAAX,CAAuB,MAAvB,EAA+B,IAA/B,CAAoC,eAApC,CACpB,MADoB,CACb,UAAC,EAAD;EAAA,eAAQ,EAAE,CAAC,cAAH,IAAqB,EAAE,CAAC,cAAH,CAAkB,UAA/C;EAAA,OADa,EAEpB,GAFoB,CAEhB,UAAC,EAAD;EAAA,eAAQ,EAAE,CAAC,EAAX;EAAA,OAFgB,CAAvB,CADE;;;EAKF,YAAK,KAAL,CAAW,oBAAX,CACE,MADF,EAEE,MAFF,EAGE,UAHF,EAIE,cAJF,EAKE,QALF;EAOD,KAvQgC;;EAE/B,UAAK,KAAL,GAAa;EACX,MAAA,OAAO,EAAE,KADE;EAEX,MAAA,gBAAgB,EAAE,IAFP;EAGX,MAAA,QAAQ,EAAE,KAHC;EAIX,MAAA,YAAY,EAAE,IAJH;EAKX,MAAA,eAAe,EAAE;EALN,KAAb;EAF+B;EAShC;;;;aAED,4BAAmB,SAAnB,EAA4C;EAAA;;EAC1C,UAAmB,aAAnB,GAAqC,SAArC,CAAQ,SAAR;EACA,UAAmB,YAAnB,GAAoC,KAAK,KAAzC,CAAQ,SAAR;EACA,UAAI,aAAa,CAAC,SAAd,KAA4B,YAAY,CAAC,SAA7C,EACE,KAAK,OAAL,CAAa,YAAb,CAA0B,IAA1B,CAA+B,iBAA/B,EAAkD;EAChD,QAAA,MAAM,qDAAE,YAAY,CAAC,KAAb,CAAmB,YAAY,CAAC,SAAhC,CAAF,2DAAE,uBAA4C,MAA9C,yEAAwD,IADd;EAEhD,QAAA,QAAQ,sDACN,YAAY,CAAC,KAAb,CAAmB,YAAY,CAAC,SAAhC,CADM,2DACN,uBAA4C,IADtC,2EAC8C;EAHN,OAAlD;EAKH;;;aAqPD,kBAAM;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;EACJ,UAAI,YAAY,GAGL,IAHX;EAIA,wBAAmC,KAAK,KAAxC;EAAA,UAAQ,SAAR,eAAQ,SAAR;EAAA,UAAmB,WAAnB,eAAmB,WAAnB;EACA,wBAAmC,KAAK,KAAxC;EAAA,UAAQ,QAAR,eAAQ,QAAR;EAAA,UAAkB,YAAlB,eAAkB,YAAlB;EACA,UAAQ,WAAR,GAA0C,SAA1C,CAAQ,WAAR;EAAA,UAAqB,SAArB,GAA0C,SAA1C,CAAqB,SAArB;EAAA,UAAgC,KAAhC,GAA0C,SAA1C,CAAgC,KAAhC;EAEA,UAAI,kBAAkB,GAAG,KAAzB;EACA,UAAI,oBAAoB,GAAG,KAA3B;EACA,UAAI,WAAW,GAAG,KAAlB;EACA,UAAI,kBAAkB,GAAG,KAAzB;;EACA,UAAI,SAAS,GAAG,CAAC,CAAb,IAAkB,CAAA,WAAW,SAAX,IAAA,WAAW,WAAX,YAAA,WAAW,CAAE,IAAb,MAAsB,cAA5C,EAA4D;EAAA;;EAC1D,QAAA,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,WAAD,aAAC,WAAD,uBAAC,WAAW,CAAE,MAAd,CAAP,CAA1B;EAEA,QAAA,kBAAkB,GAAG,KAArB;EACA,QAAA,oBAAoB,GAAG,SAAS,CAAC,SAAV,GAAsB,CAA7C;EACA,QAAA,WAAW,2BAAG,WAAH,aAAG,WAAH,uBAAG,WAAW,CAAE,OAAhB,uEAA2B,KAAtC;EACA,QAAA,kBAAkB,GAAG,SAAS,CAAC,cAA/B;EACD,OAPD,MAOO,IACL,CAAA,WAAW,SAAX,IAAA,WAAW,WAAX,YAAA,WAAW,CAAE,IAAb,MAAsB,cAAtB,IACA,SAAS,KAAK,KAAK,CAAC,MAFf,EAGL;EACA,QAAA,oBAAoB,GAAG,IAAvB;EACA,QAAA,kBAAkB,GAAG,IAArB;EACD;;EAED,aAAOD,GAAP,kVACgBC,QAAM,CAAC,SADvB,EACoC,yBADpC,EAEiBA,QAAM,CAAC,aAFxB,EAGQ,KAAK,KAAL,CAAW,WAAX,CAAuB,aAAvB,IACF,+BAAK,KAAL,CAAW,SAAX,CAAqB,WAArB,gFAAkC,IAAlC,MAA2C,MADzC,IAEFD,GAFE,8kBAGG,OAHH,EAGoB;EAAE,QAAA,YAAY,EAAE;EAAhB,OAHpB,EAMI,GANJ,EAWI,OAXJ,CAHR,EAgBoBC,QAAM,CAAC,QAhB3B,EAgBuC,2BAhBvC,EAiBU,WAAW,IACbD,GADa,8GAET,kBAAkB,GAChBA,GADgB,o2CAEDC,QAAM,CAAC,MAFN,EAGCA,QAAM,CAAC,IAHR,EA2BN,YAAY,IACd,QADE,IAEF,4BAAC,KAAK,KAAL,CAAW,UAAZ,mDAAC,uBAAuB,oBAAxB,CAFE,kBAII,sBAAK,OAAL,wDAAc,aAAd,GACI,SADJ,GAEI,SANR,qBAQE,sBAnCI,EAsCCA,QAAM,CAAC,KAtCR,iBAwCR,qDAAC,KAAK,KAAL,CAAW,SAAZ,2DAAC,uBAAsB,SAAvB,2EAAoC,CAApC,IAAyC,CAxCjC,gBAyCJ,qDAAC,KAAK,KAAL,CAAW,SAAZ,2DAAC,uBAAsB,KAAtB,CAA4B,MAA7B,2EAAuC,CAAvC,IAA4C,CAzCxC,KA6ChBD,GA7CgB,qdA8CDC,QAAM,CAAC,MA9CN,EA+CCA,QAAM,CAAC,IA/CR,mBAgDC,YAhDD,kDAgDC,cAAc,IAAd,CAAmB,QAAnB,CAA4B,GAA5B,CAAgC,QAhDjC,EAkDN,CAAA,WAAW,SAAX,IAAA,WAAW,WAAX,YAAA,WAAW,CAAE,IAAb,MAAsB,cAAtB,KACF,WADE,aACF,WADE,uBACF,WAAW,CAAE,KADX,CAlDM,EAsDCA,QAAM,CAAC,KAtDR,iBAwDR,qDAAC,KAAK,KAAL,CAAW,SAAZ,2DAAC,uBAAsB,SAAvB,2EAAoC,CAApC,IAAyC,CAxDjC,gBAyDJ,qDAAC,KAAK,KAAL,CAAW,SAAZ,2DAAC,uBAAsB,KAAtB,CAA4B,MAA7B,2EAAuC,CAAvC,IAA4C,CAzDxC,EAFT,CAjBrB,EAkFmBA,QAAM,CAAC,GAlF1B,EAmFU,WAAW,GACTD,GADS,sHAEL,kBAAkB,GAChBA,GADgB,kIAEZ,QAAQ,IACV,4BAAC,KAAK,KAAL,CAAW,UAAZ,mDAAC,uBAAuB,oBAAxB,CADE,GAEEA,GAFF,8gBAGiBC,QAAM,CAAC,QAHxB,EAIS,QAJT,EAOgB,YAPhB,aAOgB,YAPhB,uBAOgB,YAAY,CAAE,QAP9B,EAQyB,IARzB,IAYED,GAZF,sOAaiBC,QAAM,CAAC,IAbxB,EAcQ,KAAK,KAAL,CAAW,WAAX,CAAuB,WAAvB,GACED,GADF,gZAMEA,GANF,mFAMU,KAAK,KAAL,CAAW,mBAAX,GACJ,sEADI,GAEJ,oEARN,CAdR,CAFY,IA4BhBA,GA5BgB,oIA6BZ,YAAY,IACdA,GADc,wIAEV,CAAA,WAAW,SAAX,IAAA,WAAW,WAAX,YAAA,WAAW,CAAE,IAAb,MAAsB,MAAtB,GACEA,GADF,khBAEiBC,QAAM,CAAC,QAFxB,EAGSqB,cAHT,EAIiB,YAAY,CAAC,IAAb,CAAkB,EAJnC,EAKqB,KAAK,OAAL,CAAa,UALlC,EAMqB,kBANrB,EAOyB,UACf,MADe,EAEf,UAFe,EAGf,QAHe;EAAA;;EAAA,eAKf,MAAI,CAAC,kBAAL,CACE,MADF,EAEE,MAAM,mBAAC,YAAD,mDAAC,eAAc,IAAd,CAAmB,EAApB,CAFR,EAGE,UAHF,EAIE,QAJF,CALe;EAAA,OAPzB,IAsBEtB,GAtBF,sbAuBOuB,MAvBP,oBAwBa,YAxBb,mDAwBa,eAAc,IAxB3B,EAyBiB,WAzBjB,aAyBiB,WAzBjB,uBAyBiB,WAAW,CAAE,IAzB9B,EA0B2B,kBA1B3B,EA2BmB,KAAK,OAAL,CAAa,UA3BhC,EA4BqB,KAAK,OAAL,CAAa,YA5BlC,CAFU,CA7BA,CAFb,IAmETvB,GAnES,0GAnFrB,EAwJQ,WAAW,IACbA,GADa,0OAEEC,QAAM,CAAC,MAFT,EAGIA,QAAM,CAAC,OAHX,EAIL,oBAAoB,IACtB,CAAC,QADC,IAEF,CAAC,YAFC,IAGFD,GAHE,mPAIG,MAJH,EAMY;EAAA,eAAM,MAAI,CAAC,KAAL,CAAW,gBAAX,EAAN;EAAA,OANZ,EAOS,WAAW,CAAC,SAPrB,CAJK,EAcL,kBAAkB,GAChBA,GADgB,4HAEZ,CAAC,QAAD,IAAa,CAAC,YAAd,GACEA,GADF,wIAEM,KAAK,KAAL,CAAW,mBAAX,GACEA,GADF,6YAEO,MAFP,EAIiB,KAAK,OAAL,CAAa,aAAb,IACX,KAAK,KAAL,CAAW,OALjB,EAMkB,KAAK,KAAL,CAAW,OAN7B,EAOgB;EAAA,eAAM,MAAI,CAAC,iBAAL,EAAN;EAAA,OAPhB,IAUEA,GAVF,6bAWO,MAXP,EAaiB,KAAK,OAAL,CAAa,aAAb,IACX,KAAK,KAAL,CAAW,WAAX,CAAuB,WADZ,IAEX,KAAK,KAAL,CAAW,OAfjB,EAgBgB,KAAK,OAAL,CAAa,aAAb,GACN,sFADM,GAEN,IAlBV,EAmBkB,KAAK,KAAL,CAAW,OAnB7B,EAoBgB;EAAA,eAAM,MAAI,CAAC,iBAAL,EAAN;EAAA,OApBhB,CAFN,IA0BEA,GA1BF,0QA2BO,MA3BP,EA6BgB;EAAA,eAAM,MAAI,CAAC,OAAL,EAAN;EAAA,OA7BhB,CAFY,IAmChBA,GAnCgB,+QAoCX,MApCW,EAsCD,CAAC,WAtCA,EAuCF;EAAA,eACR,WAAW,GACP,MAAI,CAAC,KAAL,CAAW,YAAX,EADO,GAEP,MAAI,CAAC,KAAL,CAAW,uBAAX,EAHI;EAAA,OAvCE,CAdb,CAxJnB;EAyND;;;;IApgBiBE;;kBAAd,sBAIiB;;AAmgBvB,gBAAeC,cAAO,CACpB,CACE,WADF,EAEE,YAFF,EAGE,aAHF,EAIE,aAJF,EAKE,aALF,EAME,iBANF,EAOE,qBAPF,CADoB,EAUpB,eAVoB,CAAP,CAWb,KAXa,CAAf;;ECniBA,SAAS,gBAAT,CACE,SADF,EAEE,OAFF,EAGE,OAHF,EAGwB;EAEtB;EACA,MAAM,YAAY,GAAsCpL,CAAM,EAA9D;EAIA,EAAAL,CAAS,CAAC,YAAK;EACb;EACA,QAAM,aAAa,GAAe,CAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,OAAT,KAAoB,MAAtD;;EACA,QAAI,EAAE,aAAa,IAAI,aAAa,CAAC,gBAAjC,CAAJ,EAAwD;EACtD;EACD,KALY;;;EAQb,QAAI,YAAY,CAAC,OAAb,KAAyB,OAA7B,EAAsC;EACpC,MAAA,YAAY,CAAC,OAAb,GAAuB,OAAvB;EACD,KAVY;;;EAab,QAAM,aAAa,GAAG,SAAhB,aAAgB,CAAC,KAAD,EAAiB;EACrC;EACA,UAAI,CAAC,EAAC,YAAD,aAAC,YAAD,eAAC,YAAY,CAAE,OAAf,CAAL,EAA6B;EAC3B,QAAA,YAAY,CAAC,OAAb,CAAqB,KAArB;EACD;EACF,KALD;;EAOA,IAAA,aAAa,CAAC,gBAAd,CAA+B,SAA/B,EAA0C,aAA1C,EApBa;EAuBb;;EACA,WAAO,YAAK;EACV,MAAA,aAAa,CAAC,mBAAd,CAAkC,SAAlC,EAA6C,aAA7C;EACD,KAFD;EAGD,GA3BQ,EA2BN,CAAC,SAAD,EAAY,OAAZ,EAAqB,OAArB,CA3BM,CAAT;EA4BD;;EC/BD,SAAS,cAAT,CACE,UADF,EAC0B;EAExB,kBAAwBZ,CAAQ,CAAO;EACrC,IAAA,KAAK,EAAE,CAD8B;EAErC,IAAA,MAAM,EAAE;EAF6B,GAAP,CAAhC;EAAA;EAAA,MAAO,IAAP;EAAA,MAAa,OAAb,iBAFwB;;;EAQxB,MAAM,UAAU,GAAGuB,CAAW,CAAC,YAAK;EAClC,QAAM,IAAI,GAAG,UAAH,aAAG,UAAH,uBAAG,UAAU,CAAE,OAAzB;;EACA,QAAI,IAAJ,EAAU;EACR,MAAA,OAAO,CAAC;EACN,QAAA,KAAK,EAAE,IAAI,CAAC,WAAL,IAAoB,CADrB;EAEN,QAAA,MAAM,EAAE,IAAI,CAAC,YAAL,IAAqB;EAFvB,OAAD,CAAP;EAID;EACF,GAR6B,EAQ3B,CAAC,UAAD,CAR2B,CAA9B,CARwB;;EAmBxB,EAAAX,CAAS,CAAC,YAAK;EACb,IAAA,UAAU;EACX,GAFQ,EAEN,EAFM,CAAT;EAIA,EAAA,gBAAgB,CAAC,QAAD,EAAW,UAAX,CAAhB;EAEA,SAAO,IAAP;EACD;;ECnCD,SAAS,WAAT,CAAwB,KAAxB,EAAkC,KAAlC,EAAgD;EAC9C,kBAA4CZ,CAAQ,CAAI,KAAJ,CAApD;EAAA;EAAA,MAAO,cAAP;EAAA,MAAuB,iBAAvB;;EAEA,EAAAY,CAAS,CAAC,YAAK;EACb,QAAM,KAAK,GAAG,UAAU,CAAC;EAAA,aAAM,iBAAiB,CAAC,KAAD,CAAvB;EAAA,KAAD,EAAiC,KAAK,IAAI,GAA1C,CAAxB;EAEA,WAAO,YAAK;EACV,MAAA,YAAY,CAAC,KAAD,CAAZ;EACD,KAFD;EAGD,GANQ,EAMN,CAAC,KAAD,EAAQ,KAAR,CANM,CAAT;EAQA,SAAO,cAAP;EACD;;;;;;;;;;;;;;;;;;;;;;;;ECCD,IAAM,QAAQ,GAAGsL,GAAH,wbAAd;EAgBA,IAAM,aAAa,GAAGA,GAAH,ihBAAnB;;MAyBM;;;;;;;;;;;;;aACJ,kBAAM;EACJ,wBAQI,KAAK,KART;EAAA,UACE,OADF,eACE,OADF;EAAA,6CAEE,QAFF;EAAA,UAEE,QAFF,qCAEa,KAFb;EAAA,8CAGE,WAHF;EAAA,UAGE,WAHF,sCAGgB,KAHhB;EAAA,8CAIE,UAJF;EAAA,UAIE,UAJF,sCAIe,KAJf;EAAA,8CAKE,UALF;EAAA,UAKE,UALF,sCAKe,KALf;EAAA,4CAME,OANF;EAAA,UAME,OANF,oCAMY;EAAA,eAAM,IAAN;EAAA,OANZ;EAAA,8CAOE,SAPF;EAAA,UAOE,SAPF,sCAOc,IAPd;EASA,aAAOA,GAAP,8XAEeC,QAAM,CAAC,OAFtB,cAEiC,UAAU,GAAGA,QAAM,CAAC,QAAV,GAAqB,EAFhE,cAGM,QAAQ,GAAGA,QAAM,CAAC,MAAV,GAAmB,EAHjC,GAKc,OALd,EASiBA,QAAM,CAAC,cATxB,EAUmBA,QAAM,CAAC,YAV1B,EAWU,EAAE,WAAW,IAAI,CAAC,QAAlB,IACED,GADF,4FACkB,OADlB,IAEE,QAbZ,EAcU,UAAU,IAAI,aAdxB,EAgBW,KAAK,KAAL,CAAW,KAhBtB,EAiBQ,CAAC,UAAD,IACF,SADE,IAEFA,GAFE,qkBAGaC,QAAM,CAAC,KAHpB,CAjBR;EAuCD;;;;IAlDmBC;;;;ECxCtB,IAAM,cAAc,GAAG,SAAjB,cAAiB,CAAC,KAAD,EAA+B;EACpD,MAAQ,KAAR,GAA+D,KAA/D,CAAQ,KAAR;EAAA,MAAe,gBAAf,GAA+D,KAA/D,CAAe,gBAAf;EAAA,MAAiC,aAAjC,GAA+D,KAA/D,CAAiC,aAAjC;EAAA,MAAgD,UAAhD,GAA+D,KAA/D,CAAgD,UAAhD;EAEA,MAAM,WAAW,GAAGnL,CAAM,EAA1B;EACA,MAAM,OAAO,GAAGA,CAAM,EAAtB;;EAEA,kBAA0CjB,CAAQ,CAAC,KAAD,CAAlD;EAAA;EAAA,MAAO,aAAP;EAAA,MAAsB,gBAAtB;;EAEA,EAAA,iBAAiB,CAAC,WAAD,EAAc;EAAA,WAC7B,aAAa,GAAG,gBAAgB,CAAC,KAAD,CAAnB,GAA6B,IADb;EAAA,GAAd,CAAjB,CARoD;EAapD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;;EAEA,SAAOkM,GAAP,87DACeC,QAAM,CAAC,QADtB,EAGcA,QAAM,CAAC,IAHrB,EAIY,OAJZ,EAKgB;EAAA,WAAM,gBAAgB,CAAC,IAAD,CAAtB;EAAA,GALhB,EAmCY,WAnCZ,EAoCeA,QAAM,CAAC,KApCtB,EAoC+B,aAAa,GAAGA,QAAM,CAAC,IAAV,GAAiB,EApC7D,EAsCQ,KAAK,CAAC,GAAN,CACA,UAAC,EAAD;EAAA,WAAQD,GAAR,4XAA0BC,QAAM,CAAC,QAAjC,EACK,OADL,EAEY,EAAE,CAAC,IAAH,KAAY,cAAZ,GAA6B,EAAE,CAAC,KAAhC,GAAwC,cAFpD,EAGc,EAAE,CAAC,IAAH,KAAY,cAAZ,IAA8B,EAAE,CAAC,OAH/C,EAIkB,CAAC,aAAD,IAAkB,EAAE,CAAC,WAJvC,EAKe,EAAE,CAAC,IAAH,KAAY,cAAZ,IACX,gBAAgB,KAAK,EAAE,CAAC,SAN5B,EAOkB,aAAa,IACzB,MAAM,CAAC,gBAAD,CAAN,KAA6B,EAAE,CAAC,SADrB,IAEb,MAAM,CAAC,gBAAD,CAAN,GAA2B,EAAE,CAAC,SATlC,EAUiB,KAVjB,EAWgB,KAXhB,EAYc,YAAK;EACb,MAAA,gBAAgB,CAAC,KAAD,CAAhB;EACA,MAAA,UAAU,CAAC,EAAE,CAAC,SAAJ,CAAV;EACD,KAfL;EAAA,GADA,CAtCR,EA2DiBA,QAAM,CAAC,KA3DxB;EA4ED,CAxGD;;;;;;;;ECOA,IAAM,cAAc,GAAG,SAAjB,cAAiB,CAAC,KAAD,EAA+B;EACpD,MAAM,cAAc,GAAG,GAAvB;EAEA,MAAM,OAAO,GAAGlL,CAAM,EAAtB;EAEA,MACE,QADF,GAQI,KARJ,CACE,QADF;EAAA,yBAQI,KARJ,CAEE,SAFF;EAAA,MAGe,gBAHf,oBAGI,SAHJ;EAAA,MAII,KAJJ,oBAII,KAJJ;EAAA,MAKiB,IALjB,oBAKI,WALJ;EAAA,MAMI,iBANJ,oBAMI,iBANJ;EASA,MAAM,OAAO,GAAGO,CAAU,CAAC,UAAD,CAA1B;;EAEA,0BAAkBkM,cAAgB,CAAC,OAAD,CAAlC;EAAA,MAAQ,KAAR,qBAAQ,KAAR;;EAEA,MAAM,cAAc,GAAG,WAAW,CAAC,KAAD,EAAQ,GAAR,CAAlC;;EAEA,kBAAsC1N,CAAQ,CAAe,EAAf,CAA9C;EAAA;EAAA,MAAO,WAAP;EAAA,MAAoB,cAApB;;EAEA,EAAAY,CAAS,CAAC,YAAK;EACb,QAAI,UAAU,GAAG,CAAjB,CADa;;EAGb,QAAI,cAAc,KAAK,CAAvB,EAA0B,UAAU,GAAG,KAAb,CAA1B,KACK,UAAU,GAAG,cAAb;EAEL,QAAI,aAAa,GAAiB,EAAlC;;EAEA,QAAI,OAAO,CAAC,OAAZ,EAAqB;EACnB;EACA;EACA;EAEA,UAAM,WAAW,GAAG,UAAU,GAAG,cAAjC,CALmB;;EAQnB,UAAI,SAAS,GAAG,CAAC,CAAjB;;EAEA,UAAI,WAAW,IAAI,KAAK,CAAC,MAAzB,EAAiC;EAC/B;EACA;EACA;EACA;EACA;EACA,YAAI,KAAK,CAAC,MAAN,IAAgB,CAApB,EAAuB;EACrB;EACA;EACA;EACA;EACA;EACA,UAAA,aAAa,CAAC,IAAd,CAAmB;EACjB,YAAA,IAAI,EAAE,SADW;EAEjB,YAAA,KAAK,EAAE,KAAK,CAAC,GAAN,CAAU,UAAC,EAAD,EAAO;EACtB,cAAA,SAAS,IAAI,CAAb;EACA,yDACK,EADL;EAEE,gBAAA,SAAS,EAAT;EAFF;EAID,aANM;EAFU,WAAnB;EAUD,SAhBD,MAgBO,IAAI,KAAK,CAAC,MAAN,GAAe,CAAnB,EAAsB;EAC3B,UAAA,SAAS,IAAI,CAAb,CAD2B;EAI3B;EACA;EACA;EACA;EACA;;EACA,UAAA,aAAa,CAAC,IAAd,CAAmB;EACjB,YAAA,IAAI,EAAE,SADW;EAEjB,YAAA,KAAK,EAAE,qCAAM,KAAK,CAAC,CAAD,CAAX;EAAgB,cAAA,SAAS,EAAT;EAAhB;EAFU,WAAnB;;EAKA,cAAI,gBAAgB,KAAK,CAArB,IAA0B,gBAAgB,KAAK,KAAK,CAAC,MAAzD,EAAiE;EAC/D;EACA,gBAAI,gBAAgB,GAAG,CAAvB,EAA0B;EACxB;EACA,cAAA,aAAa,CAAC,IAAd,CAAmB;EACjB,gBAAA,IAAI,EAAE,WADW;EAEjB,gBAAA,KAAK,EAAE,KAAK,CAAC,KAAN,CAAY,CAAZ,EAAe,gBAAf,EAAiC,GAAjC,CAAqC,UAAC,EAAD,EAAO;EACjD,kBAAA,SAAS,IAAI,CAAb;EACA,6DAAY,EAAZ;EAAgB,oBAAA,SAAS,EAAT;EAAhB;EACD,iBAHM;EAFU,eAAnB;EAOD,aAX8D;;;EAc/D,YAAA,aAAa,CAAC,IAAd,CAAmB;EACjB,cAAA,IAAI,EAAE,SADW;EAEjB,cAAA,KAAK,EAAE,qCACA,KAAK,CAAC,gBAAD,CADL;EACyB,gBAAA,SAAS,EAAE;EADpC;EAFU,aAAnB;EAMA,YAAA,SAAS,IAAI,CAAb;;EAEA,gBAAI,KAAK,CAAC,MAAN,GAAe,gBAAf,GAAkC,CAAtC,EAAyC;EACvC;EACA,cAAA,aAAa,CAAC,IAAd,CAAmB;EACjB,gBAAA,IAAI,EAAE,WADW;EAEjB,gBAAA,KAAK,EAAE,KAAK,CACT,KADI,CACE,gBAAgB,GAAG,CADrB,EACwB,KAAK,CAAC,MAD9B,EAEJ,GAFI,CAEA,UAAC,EAAD,EAAO;EACV,kBAAA,SAAS,IAAI,CAAb;EACA,6DACK,EADL;EAEE,oBAAA,SAAS,EAAT;EAFF;EAID,iBARI;EAFU,eAAnB;EAYD;EACF,WArCD,MAqCO;EACL;EACA,YAAA,aAAa,CAAC,IAAd,CAAmB;EACjB,cAAA,IAAI,EAAE,WADW;EAEjB,cAAA,KAAK,EAAE,KAAK,CAAC,KAAN,CAAY,CAAZ,EAAe,KAAK,CAAC,MAArB,EAA6B,GAA7B,CAAiC,UAAC,EAAD,EAAO;EAC7C,gBAAA,SAAS,IAAI,CAAb;EACA,2DAAY,EAAZ;EAAgB,kBAAA,SAAS,EAAT;EAAhB;EACD,eAHM;EAFU,aAAnB;EAOD;EACF;EACF,OApFD,MAoFO;EACL;EACA,QAAA,aAAa,GAAG,CACd;EACE,UAAA,IAAI,EAAE,SADR;EAEE,UAAA,KAAK,EAAE,KAAK,CAAC,GAAN,CAAU,UAAC,EAAD,EAAK,GAAL;EAAA,uDACZ,EADY;EAEf,cAAA,SAAS,EAAE;EAFI;EAAA,WAAV;EAFT,SADc,CAAhB;EASD;EACF,KAlHY;EAoHb;EACA;;;EACA,IAAA,cAAc,CAAC,aAAD,CAAd;EACD,GAvHQ,EAuHN,CAAC,KAAD,EAAQ,KAAR,EAAe,cAAf,EAA+B,gBAA/B,CAvHM,CAAT;;EAyHA,MAAM,UAAU,GAAG,SAAb,UAAa,CAAC,SAAD,EAAsB;EACvC,IAAA,QAAQ,CAAC,SAAD,CAAR;EACD,GAFD;;EAIA,SAAOsL,GAAP,0JACgBC,QAAM,CAAC,UADvB,EACqC,0BADrC,EACwE,OADxE,EAEM,WAAW,CAAC,GAAZ,CAAgB,UAAC,MAAD,EAAW;EAC3B,QAAI,MAAM,CAAC,IAAP,KAAgB,SAApB,EAA+B;EAC7B,aAAO,MAAM,CAAC,KAAP,CAAa,GAAb,CACL,UAAC,EAAD;EAAA,eAAQD,GAAR,ieAEYC,QAAM,CAAC,QAFnB,EAGY;EACN,UAAA,QAAQ,EAAE;EADJ,SAHZ,EAOO,OAPP,EAQc,EAAE,CAAC,IAAH,KAAY,cAAZ,GACJ,EAAE,CAAC,KADC,GAEJ,cAVV,EAWgB,EAAE,CAAC,IAAH,KAAY,cAAZ,IAA8B,EAAE,CAAC,OAXjD,EAYoB,EAAC,OAAD,aAAC,OAAD,eAAC,OAAO,CAAE,aAAV,KAA2B,EAAE,CAAC,WAZlD,EAaiB,CAAA,IAAI,SAAJ,IAAA,IAAI,WAAJ,YAAA,IAAI,CAAE,IAAN,MAAe,cAAf,IACX,EAAE,CAAC,IAAH,KAAY,cADD,IAEX,gBAAgB,KAAK,EAAE,CAAC,SAf9B,EAgBmB,CAAC,iBAAD,KACX,CAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,aAAT,KACA,MAAM,CAAC,gBAAD,CAAN,KAA6B,EAAE,CAAC,SADjC,IAEC,MAAM,CAAC,gBAAD,CAAN,GAA2B,EAAE,CAAC,SAHnB,CAhBnB,EAoBmB,EAAE,CAAC,SAAH,KAAiB,KAAK,CAAC,MApB1C,EAqBgB;EAAA,iBAAM,UAAU,CAAC,EAAE,CAAC,SAAJ,CAAhB;EAAA,SArBhB;EAAA,OADK,CAAP;EA2BD;;EACD,QAAI,MAAM,CAAC,IAAP,KAAgB,WAApB,EAAiC;EAC/B,aAAOD,GAAP,2PACK,cADL,EAEoB,OAFpB,aAEoB,OAFpB,uBAEoB,OAAO,CAAE,aAF7B,EAGuB,gBAHvB,EAIiB,UAJjB,EAKY,MAAM,CAAC,KALnB;EAQD;;EACD,WAAOA,GAAP;EACD,GAzCC,CAFN,EA4CM,WAAW,CAAC,MAAZ,GAAqB,CAArB,IACFA,GADE,4SAEG,OAFH,EAKgB,IALhB,EAMa,IAAI,KAAK,SAAT,IAAsB,gBAAgB,KAAK,KAAK,CAAC,MAN9D,EAOe,CAAC,iBAAD,IACb,IAAI,KAAK,SADI,IAEb,gBAAgB,KAAK,KAAK,CAAC,MAT7B,EAUe,IAVf,EAWY;EAAA;;EAAA,WAAM,UAAU,kBAAC,KAAK,CAAC,MAAP,yDAAiB,CAAjB,CAAhB;EAAA,GAXZ,CA5CN;EA4DD,CA/MD;;AAiNA,yBAAeG,cAAO,CACpB,WADoB,EAEpB,eAFoB,CAAP,CAGb,cAHa,CAAf;;;;;;;;;;;;;;;;EClMA;;;EAGG;;EACH,IAAM,kBAAkB,GAAG,SAArB,kBAAqB,CAAC,KAAD,EAAmC;EAAA;;EAC5D,kBAA8BrM,CAAQ,CAAU,KAAV,CAAtC;EAAA;EAAA,MAAO,OAAP;EAAA,MAAgB,UAAhB;;EACA,mBAAwCA,CAAQ,CAC9C,IAD8C,CAAhD;EAAA;EAAA,MAAO,YAAP;EAAA,MAAqB,eAArB;;EAGA,MACE,MADF,GAQI,KARJ,CACE,MADF;EAAA,MAEE,YAFF,GAQI,KARJ,CAEE,YAFF;EAAA,MAGE,aAHF,GAQI,KARJ,CAGE,aAHF;EAAA,MAIE,aAJF,GAQI,KARJ,CAIE,aAJF;EAAA,MAKE,mBALF,GAQI,KARJ,CAKE,mBALF;EAAA,MAME,eANF,GAQI,KARJ,CAME,eANF;EAAA,MAOE,mBAPF,GAQI,KARJ,CAOE,mBAPF;;EAUA,mBAA0CA,CAAQ,CAAqB,IAArB,CAAlD;EAAA;EAAA,MAAO,aAAP;EAAA,MAAsB,gBAAtB;;EAEA,0BAAkC6B,CAAgB,CAAC,YAAK;EAEvD,GAFiD,CAAlD;EAAA;EAAA,MAAO,QAAP;EAAA,MAAiB,aAAjB;;EAIA,MAAM,OAAO,GAAGL,CAAU,CAAC,UAAD,CAA1B;EAEA,EAAAZ,CAAS,CAAC,YAAK;EACb,QAAI,QAAJ,EAAc,OAAO,CAAC,KAAR,CAAc,QAAd;EACf,GAFQ,EAEN,CAAC,QAAD,CAFM,CAAT;EAIA,EAAAA,CAAS,CAAC,YAAK;EACb,QAAI,CAAC,mBAAD,IAAwB,aAA5B,EACE,KAAK,CAAC,aAAN,CAAoB;EAClB,MAAA,mBAAmB,EAAE;EADH,KAApB;EAGH,GALQ,EAKN,CAAC,mBAAD,EAAsB,aAAtB,CALM,CAAT;EAOA,EAAAA,CAAS,CAAC,YAAK;EACb,IAAA,UAAU,CAAC,IAAD,CAAV;EACA,QAAI,mBAAmB,GAAG,aAA1B;;EACA,QAAI,mBAAJ,EAAyB;EACvB,MAAA,mBAAmB,GAAG,mBAAtB;EACD;;EACD,QAAI,OAAO,SAAP,IAAA,OAAO,WAAP,IAAA,OAAO,CAAE,aAAT,IAA0B,eAA9B,EAA+C;EAC7C;EACA,UAAI,CAAC,mBAAL,EACE,MAAM,IAAI,KAAJ,CAAU,+BAAV,CAAN;;EACF,UAAI;EACF,QAAA+M,OAAM,CAAC,mBAAD,EAAsB,uBAAtB,CAAN;EACD,OAFD,CAEE,OAAO,KAAP,EAAc;EACd,QAAA,OAAO,CAAC,KAAR,CAAc,KAAd;EACA,QAAA,UAAU,CAAC,KAAD,CAAV;EACA,QAAA,gBAAgB,CAAC,KAAD,CAAhB;EACA;EACD;;EACD,UAAQ,KAAR,GAA+B,mBAA/B,CAAQ,KAAR;EAAA,UAAkB,QAAlB,4BAA+B,mBAA/B;;EACA,MAAA,eAAe,CAAC,mBAAD,CAAf;EACA,MAAA,KAAK,CAAC,cAAN,CAAqB;EACnB,QAAA,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAV,CADC;EAEnB,QAAA,YAAY,EAAE,MAAM,CAAC,YAAD,CAFD;EAGnB,QAAA,aAAa,EAAE,OAAO,CAAC;EAHJ,OAArB;EAKA,MAAA,KAAK,CAAC,QAAN,CAAe,KAAK,CAAC,MAAN,CAAa,QAAb,CAAf;EACA,MAAA,KAAK,CAAC,cAAN,CAAqB,KAAK,CAAC,MAAN,CAAa,QAAb,CAArB;EACA,MAAA,KAAK,CAAC,qBAAN,CAA4B,KAAK,CAAC,MAAN,CAAa,QAAb,CAA5B;EACA,MAAA,KAAK,CAAC,0BAAN,CAAiC,KAAK,CAAC,MAAN,CAAa,QAAb,CAAjC;EACA,MAAA,KAAK,CAAC,iBAAN,CAAwB,eAAxB;EACA,MAAA,OAAO,CAAC,YAAR,CAAqB,IAArB,CAA0B,kBAA1B,EAA8C;EAC5C,QAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAV,CAD8B;EAE5C,QAAA,SAAS,EAAE,QAAQ,CAAC,IAFwB;EAG5C,QAAA,eAAe,EAAE,QAAQ,CAAC;EAHkB,OAA9C;EAKA,MAAA,UAAU,CAAC,KAAD,CAAV;EACA;EACD;;EACD,QAAI,MAAJ,EAAY;EACV,MAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,UAAT,CAAoB,WAApB,CAAgC,MAAM,CAAC,MAAD,CAAtC,EAAgD,IAAhD,CAAqD,UAAC,IAAD,EAAS;EAC5D,QAAA,eAAe,CAAC,IAAD,CAAf;;EACA,YAAI,IAAJ,EAAU;EACR,UAAA,KAAK,CAAC,aAAN,CAAoB;EAClB,YAAA,WAAW,sCACN,KAAK,CAAC,WADA;EAET,cAAA,WAAW,EAAE,IAAI,CAAC;EAFT;EADO,WAApB;EAMA,UAAA,OAAO,CAAC,GAAR,CACE,IAAI,CAAC,KAAL,CAAW,GAAX,CAAe,UAAC,EAAD;EAAA,mBACb,OAAO,CAAC,UAAR,CAAmB,eAAnB,CACE,MAAM,CAAC,EAAE,CAAC,EAAJ,CADR,EAEE,MAAM,CAAC,mBAAD,CAFR,CADa;EAAA,WAAf,CADF,EAQG,IARH;EAAA,gFAQQ,iBAAO,GAAP;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,2BACA,GADA;EAAA;EAAA;EAAA;;EAEF,sBAAA,KAAK,CAAC,cAAN,CAAqB;EACnB,wBAAA,UAAU,EAAE,MAAM,CAAC,MAAD,CADC;EAEnB,wBAAA,YAAY,EAAE,MAAM,CAAC,YAAD,CAFD;EAGnB,wBAAA,IAAI,EAAE,IAAI,CAAC;EAHQ,uBAArB;EAKA,sBAAA,KAAK,CAAC,QAAN,CAAe,GAAG,CAAC,MAAJ,CAAW,QAAX,CAAf;EACA,sBAAA,KAAK,CAAC,cAAN,CAAqB,GAAG,CAAC,MAAJ,CAAW,QAAX,CAArB,EAA2C,mBAA3C;EACA,sBAAA,KAAK,CAAC,qBAAN,CAA4B,GAAG,CAAC,MAAJ,CAAW,QAAX,CAA5B;EACA,sBAAA,KAAK,CAAC,0BAAN,CAAiC,GAAG,CAAC,MAAJ,CAAW,QAAX,CAAjC;;EAVE,2BAWE,mBAXF;EAAA;EAAA;EAAA;;EAYA,sBAAA,OAAO,CAAC,YAAR,CAAqB,IAArB,CAA0B,sBAA1B,EAAkD;EAChD,wBAAA,MAAM,EAAE,MAAM,CAAC,MAAD,CADkC;EAEhD,wBAAA,aAAa,EAAE;EAFiC,uBAAlD;EAZA;EAAA,6BAgB8B,OAAO,CAAC,UAAR,CAAmB,kBAAnB,CAC5B,mBAD4B,CAhB9B;;EAAA;EAgBM,sBAAA,eAhBN;;EAAA,2BAmBI,eAnBJ;EAAA;EAAA;EAAA;;EAoBE,sBAAA,KAAK,CAAC,cAAN,CAAqB;EACnB,wBAAA,IAAI,EAAE,eAAe,CAAC;EADH,uBAArB;EApBF;EAAA;;EAAA;EAAA,4BAwBQ,IAAI,KAAJ,kDACsC,KAAK,CAAC,mBAD5C,EAxBR;;EAAA;EAAA;EAAA;;EAAA;EA4BA,sBAAA,OAAO,CAAC,YAAR,CAAqB,IAArB,CAA0B,eAA1B,EAA2C;EACzC,wBAAA,UAAU,EAAE,MAAM,CAAC,MAAD,CADuB;EAEzC,wBAAA,aAAa,EAAE,IAAI,CAAC,IAFqB;EAGzC,wBAAA,mBAAmB,EAAE,IAAI,CAAC,WAHe;EAIzC,wBAAA,MAAM,EAAE,MAAM,CAAC,MAAD,CAJ2B;EAKzC,wBAAA,SAAS,EAAE,IAAI,CAAC,IALyB;EAMzC,wBAAA,eAAe,EAAE,IAAI,CAAC;EANmB,uBAA3C;;EA5BA;EAqCF,sBAAA,UAAU,CAAC,KAAD,CAAV;;EArCE;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,aARR;;EAAA;EAAA;EAAA;EAAA,eAgDG,KAhDH,CAgDS,UAAC,GAAD;EAAA,mBAAS,OAAO,CAAC,KAAR,CAAc,GAAd,CAAT;EAAA,WAhDT;EAiDD;EACF,OA3DD;EA4DD,KA7DD,MA6DO,MAAM,IAAI,KAAJ,CAAU,uBAAV,CAAN;EACR,GApGQ,EAoGN,CAAC,MAAD,CApGM,CAAT;;EAsGA,MAAM,mBAAmB,GAAG,SAAtB,mBAAsB,GAAK;EAC/B,QAAI,KAAK,CAAC,WAAN,CAAkB,YAAtB,EACE,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,UAAT,CACG,kBADH,CACsB,KAAK,CAAC,WAAN,CAAkB,YADxC,EAEG,IAFH,CAEQ,UAAC,GAAD,EAAQ;EACZ,MAAA,KAAK,CAAC,aAAN,CAAoB;EAClB,QAAA,YAAY,EAAE,GAAF,aAAE,GAAF,uBAAE,GAAG,CAAE,YADD;EAElB,QAAA,oBAAoB,EAAE;EAFJ,OAApB;EAID,KAPH;EAQH,GAVD;;EAYA,MAAI,aAAJ,EAAmB;EACjB,WAAOzB,GAAP,8EAAc,aAAd;EACD;;EAED,SAAOA,GAAP,uIACgBC,QAAM,CAAC,IADvB,EAC+B,mBAD/B,EAEM,QAAQ,IAAI,aAAZ,GACED,GADF,oPAEO,SAFP,EAGc,aAAa,GACjB,kBADiB,GAEjB,8BALV,EAMoB,aAAa,GACvB,oDADuB,GAEvB,yCARV,EASqB,aAAa,IAAI,QATtC,EAUkB,aAAa,GAAG,IAAH,GAAU,aAVzC,IAaEA,GAbF,6OAeQ,CAAC,OAAD,IACF,YADE,IAEFA,GAFE,wKAGG0B,gBAHH,yBAIU,YAAY,CAAC,KAJvB,wDAIU,oBAAoB,GAApB,CAAwB,UAAC,EAAD;EAAA,WAAS;EACvC,MAAA,KAAK,EAAE,EAAE,CAAC,KAD6B;EAEvC,MAAA,OAAO,EAAE,EAAE,CAAC,QAAH,CAAY,GAAZ,CAAgB;EAFc,KAAT;EAAA,GAAxB,CAJV,CAfR,EA0BiBzB,QAAM,CAAC,IA1BxB,EA2BQ,OAAO,IACTD,GADS,mLAEJ,MAFI,CA3Bf,EA+BQ,CAAC,OAAD,IACF,YADE,IAEFA,GAFE,yMAGG2B,OAHH,EAIU,YAAY,CAAC,KAJvB,EAKa,mBALb,CA/BR,CAFN;EA6CD,CArMD;;AAuMA,6BAAexB,cAAO,CACpB,CAAC,qBAAD,EAAwB,aAAxB,CADoB,EAEpB,eAFoB,CAAP,CAGb,kBAHa,CAAf;;;;;;;;EC5NA,IAAM,YAAY,GAAG,SAAf,YAAe,CAAC,KAAD,EAA0B;EAAA;;EAC7C,MAAM,OAAO,GAAG7K,CAAU,CAAC,UAAD,CAA1B;EAEA,MAAM,qBAAqB,GAAGP,CAAM,CAClC6M,eADkC,CAApC;;EAIA,MAAM,eAAe,GAAG,SAAlB,eAAkB,CAAC,UAAD,EAAuB;EAC7C,QAAQ,UAAR,GAAuB,KAAvB,CAAQ,UAAR;;EACA,YAAQ,UAAR;EACE,WAAK,uBAAuB,CAAC,KAA7B;EAAoC;EAClC,UAAA,KAAK,CAAC,aAAN,CAAoB;EAClB,YAAA,cAAc,EAAE,IADE;EAElB,YAAA,WAAW,sCACN,KAAK,CAAC,WADA;EAET,cAAA,WAAW,EAAE,IAFJ;EAGT,cAAA,UAAU,EAAV;EAHS;EAFO,WAApB;EAQA;EACD;;EACD,WAAK,uBAAuB,CAAC,MAA7B;EAAqC;EACnC,UAAA,KAAK,CAAC,aAAN,CAAoB;EAClB,YAAA,eAAe,EAAE,IADC;EAElB,YAAA,WAAW,sCACN,KAAK,CAAC,WADA;EAET,cAAA,WAAW,EAAE,IAFJ;EAGT,cAAA,UAAU,EAAV;EAHS;EAFO,WAApB;EAQA;EACD;;EACD,WAAK,uBAAuB,CAAC,QAA7B;EAAuC;EACrC,UAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,YAAT,CAAsB,IAAtB,CAA2B,kBAA3B,EAA+C;EAC7C,YAAA,UAAU,EAAV,UAD6C;EAE7C,YAAA,MAAM,EAAE;EAFqC,WAA/C;EAIA;EACD;EA7BH;EAiCD,GAnCD;;EAqCA,MACE,UADF,GAMI,KANJ,CACE,UADF;EAAA,MAEE,MAFF,GAMI,KANJ,CAEE,MAFF;EAAA,MAGE,YAHF,GAMI,KANJ,CAGE,YAHF;EAAA,MAIE,eAJF,GAMI,KANJ,CAIE,eAJF;EAAA,MAKE,mBALF,GAMI,KANJ,CAKE,mBALF;EAQA,SAAO5B,GAAP,2JACgBC,QAAM,CAAC,mBAAD,CADtB,EAC+C,mBAD/C,EAEM,CAAC,eAAD,IACFD,GADE,8UAEO,qBAAqB,CAAC,OAF7B,EAGe,MAHf,EAImB,UAJnB,EAKqB,YALrB,EAMmB,OANnB,aAMmB,OANnB,uBAMmB,OAAO,CAAE,UAN5B,EAOqB,OAPrB,aAOqB,OAPrB,uBAOqB,OAAO,CAAE,YAP9B,EAQwB,eARxB,EAUQ,qBAAqB,CAAC,OAV9B,CAFN,EAcM,UAAU,KAAK,uBAAuB,CAAC,MAAvC,IACF,eADE,IAEFA,GAFE,09BAIWC,QAAM,CAAC,WAJlB,EAIiC,uCAJjC,EAMK4B,oBANL,EAOmB,KAAK,CAAC,WAAN,CAAkB,YAPrC,EAQa,KAAK,CAAC,WAAN,CAAkB,UAR/B,EAWY5B,QAAM,CAAC,KAXnB,EAYc,YAAK;EACb,IAAA,mBAAmB;EACpB,GAdL,CAdN,EAsDI,UAAU,KAAK,uBAAuB,CAAC,KAAvC,IACFD,GADE,mYAEG,KAFH,EAGW,KAAK,CAAC,cAHjB,EAIY,YAAK;EACb,IAAA,KAAK,CAAC,mBAAN;EACD,GANH,EASeC,QAAM,CAAC,QATtB,2BAWM,KAAK,CAAC,SAAN,CAAgB,MAAhB,CACE,UAAC,EAAD;EAAA,WAAQ,EAAE,CAAC,EAAH,KAAU,KAAK,CAAC,WAAN,CAAkB,UAApC;EAAA,GADF,EAEE,CAFF,CAXN,0DAWM,sBAEM,IAbZ,EAgBO4B,oBAhBP,EAiBqB,KAAK,CAAC,WAAN,CAAkB,YAjBvC,EAkBe,KAAK,CAAC,WAAN,CAAkB,UAlBjC,CAtDJ;EA8ED,CAlID;;AAoIA,uBAAe1B,cAAO,CACpB,CACE,YADF,EAEE,cAFF,EAGE,WAHF,EAIE,gBAJF,EAKE,aALF,EAME,iBANF,CADoB,EASpB,eAToB,CAAP,CAUb,YAVa,CAAf;;;;;;;;;;;;;;;;;;;;;MC/IM;;;;;;;;;;;;;aACJ,kBAAM;EACJ,wBAAuC,KAAK,KAA5C;EAAA,UAAQ,MAAR,eAAQ,MAAR;EAAA,UAAgB,kBAAhB,eAAgB,kBAAhB;EACA,aAAOH,GAAP,+iBAEeC,QAAM,CAAC,KAFtB,cAE+B,MAAM,aAAMA,QAAM,CAAC,IAAb,IAAsB,EAF3D,GAOiBA,QAAM,CAAC,cAPxB,EAQmBA,QAAM,CAAC,KAR1B,EAUoBA,QAAM,CAAC,IAV3B,YAamBA,QAAM,CAAC,WAb1B,cAayC,MAAM,aAAMA,QAAM,CAAC,IAAb,IAAsB,EAbrE,GAeqBA,QAAM,CAAC,OAf5B,EAgBY,kBAAkB,GAChBD,GADgB,uJACK,KAAK,KAAL,CAAW,OADhB,EAEX,kBAFW,IAIhBA,GAJgB,6/BAKC,KAAK,KAAL,CAAW,OALZ,EAK6BC,QAAM,CAAC,KALpC,CAhB9B,EA4CY,KAAK,KAAL,CAAW,MAAX,IAAqBD,GAArB,kFAA6B,KAAK,KAAL,CAAW,QAAxC,CA5CZ;EAkDD;;;;IArDoBE;;ECVhB,IAAM,QAAQ,GAAG,SAAX,QAAW,CAAC,KAAD,EAAgB,MAAhB;EAAA,SACtB,KAAK,CAAC,MAAN,IAAgB,MAAM,IAAI,EAA1B,cACO,KAAK,CAAC,SAAN,CAAgB,CAAhB,EAAmB,MAAM,IAAI,EAA7B,CADP,WAEI,KAHkB;EAAA,CAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECSA,IAAM,YAAY,GAAG,SAAf,YAAe,CAAC,KAAD,EAGvB;EACH,MAAQ,IAAR,GAAkC,KAAlC,CAAQ,IAAR;EAAA,MAAc,eAAd,GAAkC,KAAlC,CAAc,eAAd;;EAEA,kBAAwCpM,CAAQ,CAC9C,IAD8C,CAAhD;EAAA;EAAA,MAAO,YAAP;EAAA,MAAqB,eAArB;;EAIA,mBAA0BA,CAAQ,CAAC,EAAD,CAAlC;EAAA;EAAA,MAAO,KAAP;EAAA,MAAc,QAAd;;EAEA,EAAAY,CAAS,CAAC,YAAK;EACb,IAAA,eAAe,CAAC,IAAD,CAAf;EACD,GAFQ,EAEN,CAAC,IAAD,CAFM,CAAT;EAIA,EAAAA,CAAS,CAAC,YAAK;EACb,QAAI,KAAJ,EAAW;EACT,UAAM,QAAQ,GAAG,SAAS,CACvB,EADc,CACX,KADW,EACJ,IADI,EACE;EACf,QAAA,IAAI,EAAE,CAAC,MAAD,CADS;EAEf,QAAA,OAAO,EAAE,iBAAC,UAAD,EAAe;EACtB,cAAM,UAAU,GAAG,UAAU,CAAC,CAAD,CAA7B;EACA,cAAM,UAAU,GAAG,UAAU,CAAC,CAAD,CAA7B,CAFsB;;EAItB,cAAM,KAAK,GAAG,IAAI,CAAC,GAAL,CACZ,UAAU,GAAG,UAAU,CAAC,KAAX,GAAmB,GAAtB,GAA4B,CAAC,QAD3B,EAEZ,UAAU,GAAG,UAAU,CAAC,KAAd,GAAsB,CAAC,QAFrB,CAAd;EAIA,iBAAO,KAAP;EACD;EAXc,OADF,EAcd,GAdc,CAcV,UAAC,EAAD;EAAA,eAAQ,EAAE,CAAC,GAAX;EAAA,OAdU,CAAjB;EAeA,MAAA,eAAe,CAAC,QAAD,CAAf;EACD,KAjBD,MAiBO;EACL,MAAA,eAAe,CAAC,IAAD,CAAf;EACD;EACF,GArBQ,EAqBN,CAAC,KAAD,CArBM,CAAT;EAuBA,SAAOsL,GAAP,wQACe,MAAM,CAAC,YADtB,EAEO,MAFP,EAIiB,UAAC,GAAD;EAAA,WAAiB,QAAQ,CAAC,GAAD,CAAzB;EAAA,GAJjB,EAOiB,MAAM,CAAC,aAPxB,EAQQ,YAAY,CAAC,GAAb,CACA,UAAC,EAAD;EAAA,WAAQA,GAAR,sQACY;EAAA,aAAM,eAAe,CAAC,EAAE,CAAC,EAAJ,CAArB;EAAA,KADZ,EAEU,MAAM,CAAC,OAFjB,EAKe,EAAE,CAAC,QALlB,EAOS,EAAE,CAAC,IAPZ;EAAA,GADA,CARR;EAsBD,CA7DM;;;ECJA,IAAM,MAAM,GAAG,SAAT,MAAS,CAAC,KAAD,EAIjB;EACH,MAAQ,SAAR,GAAmE,KAAnE,CAAQ,SAAR;EAAA,8BAAmE,KAAnE,CAAmB,cAAnB;EAAA,MAAmB,cAAnB,sCAAoC,KAApC;EAAA,2BAAmE,KAAnE,CAA2C,WAA3C;EAAA,MAA2C,WAA3C,mCAAyD,KAAzD;EAEA,SAAOA,GAAP,6QACe,MAAM,CAAC,MADtB,EAEiB,MAAM,CAAC,OAFxB,EAGQ,CAAC,cAAD,IACFA,GADE,qMAEG,MAFH,EAIY;EAAA,WAAM,SAAS,CAAC,MAAD,CAAf;EAAA,GAJZ,EAKS,WAAW,CAAC,SALrB,CAHR,EAWS,MAXT,EAakB;EAAA,WAAM,SAAS,CAAC,MAAD,CAAf;EAAA,GAblB,EAcmB,WAdnB;EAmBD,CA1BM;;;ECIP,IAAM,UAAU,GAEZ;EACF,cAAY,kBADV;EAEF,EAAA,MAAM,EAAE,kBAFN;EAGF,EAAA,MAAM,EAAE,oBAHN;EAIF,EAAA,KAAK,EAAE,6BAJL;EAKF,EAAA,eAAe,EAAE,6BALf;EAMF,EAAA,cAAc,EAAE,6BANd;EAOF,EAAA,aAAa,EAAE,oBAPb;EAQF,EAAA,YAAY,EAAE,oBARZ;EASF,EAAA,kBAAkB,EAAE,oBATlB;EAUF,EAAA,SAAS,EAAE;EAVT,CAFJ;EAeO,IAAM,iBAAiB,GAAG,SAApB,iBAAoB,CAAC,KAAD,EAM5B;EACH,MACE,WADF,GAMI,KANJ,CACE,WADF;EAAA,MAEE,kBAFF,GAMI,KANJ,CAEE,kBAFF;EAAA,MAGE,sBAHF,GAMI,KANJ,CAGE,sBAHF;EAAA,MAIE,SAJF,GAMI,KANJ,CAIE,SAJF;EAAA,8BAMI,KANJ,CAKE,cALF;EAAA,MAKE,cALF,sCAKmB,KALnB;;EAQA,MAAM,YAAY,GAAG,SAAf,YAAe,CAAC,EAAD,EAAe;EAClC,IAAA,sBAAsB,CAAC,EAAD,CAAtB;EACD,GAFD;;EAIA,SAAOA,GAAP,4YACe,MAAM,CAAC,mBADtB,EAEiB,MAAM,CAAC,gBAFxB,EAGmB,MAAM,CAAC,IAH1B,EAMmB,MAAM,CAAC,QAN1B,EAOU,WAAW,CAAC,kBAAZ,CAA+B,GAA/B,CACA,UAAC,EAAD;EAAA,WAAQA,GAAR,qPACK,KADL,EAES,EAAE,CAAC,EAFZ,EAGY,UAAU,CAAC,EAAE,CAAC,IAAJ,CAAV,IAAuB,EAAE,CAAC,IAHtC,EAIgB,kBAAkB,KAAK,EAAE,CAAC,EAJ1C,EAKe,YALf;EAAA,GADA,CAPV,EAkBS,MAlBT,EAkBkC,cAlBlC,EAkB8D,SAlB9D,EAmBoB,CAAC,kBAnBrB;EAuBD,CA1CM;;;ECnBA,IAAM,MAAM,GAAG,SAAT,MAAS,CAAC,KAAD,EAGjB;EACH,MAAQ,QAAR,GAAuC,KAAvC,CAAQ,QAAR;EAAA,MAAkB,gBAAlB,GAAuC,KAAvC,CAAkB,gBAAlB;EAEA,SAAOA,GAAP,2vBACe,MAAM,CAAC,MADtB,EAEiB,MAAM,CAAC,IAFxB,EAEgC,QAFhC,EAGiB,MAAM,CAAC,KAHxB,EAGyC,gBAHzC;EA2BD,CAjCM;;;ECCA,IAAM,iBAAiB,GAAG,SAApB,iBAAoB,CAAC,KAAD,EAK5B;EACH,MAAQ,KAAR,GAAuD,KAAvD,CAAQ,KAAR;EAAA,MAAe,OAAf,GAAuD,KAAvD,CAAe,OAAf;EAAA,MAAwB,gBAAxB,GAAuD,KAAvD,CAAwB,gBAAxB;EAAA,MAA0C,QAA1C,GAAuD,KAAvD,CAA0C,QAA1C;EAEA,SAAOA,GAAP,uXACe,MAAM,CAAC,YADtB,EAEO,MAFP,EAEkC,gBAFlC,EAGiB,MAAM,CAAC,QAHxB,EAImB,MAAM,CAAC,GAJ1B,EAIqC,OAJrC,EAKmB,MAAM,CAAC,KAL1B,EAKmC,KALnC,EAMmB,MAAM,CAAC,IAN1B,EAMkC,QANlC,EAOS,MAPT,EAOsC,gBAPtC,EAOgE,EAPhE,EAQe,EARf;EAYD,CApBM;;;ECyBP,IAAK,gBAAL;;EAAA,CAAA,UAAK,gBAAL,EAAqB;EACnB,EAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,eAAA;EACA,EAAA,gBAAA,CAAA,qBAAA,CAAA,GAAA,qBAAA;EACA,EAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,eAAA;EACD,CAJD,EAAK,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAArB;;EAMA,IAAM,kBAAkB,GAAG,SAArB,kBAAqB,CAAC,KAAD,EAA0B;EACnD,MACE,YADF,GAOI,KAPJ,CACE,YADF;EAAA,MAEE,WAFF,GAOI,KAPJ,CAEE,WAFF;EAAA,MAGE,KAHF,GAOI,KAPJ,CAGE,KAHF;EAAA,MAIE,UAJF,GAOI,KAPJ,CAIE,UAJF;EAAA,MAKE,sBALF,GAOI,KAPJ,CAKE,sBALF;EAAA,MAME,aANF,GAOI,KAPJ,CAME,aANF;EAQA,MAAM,OAAO,GAAG1K,CAAU,CAAC,UAAD,CAA1B;;EAEA,kBAAsCxB,CAAQ,CAAC,IAAD,CAA9C;EAAA;EAAA,MAAO,WAAP;EAAA,MAAoB,cAApB;;EACA,mBAA0CA,CAAQ,CAAC,KAAD,CAAlD;EAAA;EAAA,MAAO,aAAP;EAAA,MAAsB,gBAAtB;;EACA,mBAAkDA,CAAQ,CAAC,EAAD,CAA1D;EAAA;EAAA,MAAO,iBAAP;EAAA,MAA0B,oBAA1B;;EACA,mBAAwBA,CAAQ,CAA0B,EAA1B,CAAhC;EAAA;EAAA,MAAO,IAAP;EAAA,MAAa,OAAb;;EACA,mBAAgCA,CAAQ,CAAkB,IAAlB,CAAxC;EAAA;EAAA,MAAO,QAAP;EAAA,MAAiB,WAAjB;;EACA,oBAAoDA,CAAQ,CAC1D,IAD0D,CAA5D;EAAA;EAAA,MAAO,kBAAP;EAAA,MAA2B,qBAA3B;;EAGA,oBAAsCA,CAAQ,CAC5C,IAD4C,CAA9C;EAAA;EAAA,MAAO,WAAP;EAAA,MAAoB,cAApB;;EAIA,oBAAwBA,CAAQ,CAC9B,KAAK,CAAC,KAAN,GACI,gBAAgB,CAAC,mBADrB,GAEI,gBAAgB,CAAC,aAHS,CAAhC;EAAA;EAAA,MAAO,IAAP;EAAA,MAAa,OAAb;;EAMA,MAAM,YAAY,GAAG,SAAf,YAAe,GAAK;EACxB,IAAA,KAAK,CAAC,OAAN;EACD,GAFD;;EAIA,EAAAY,CAAS,CAAC,YAAK;EACb,QAAM,EAAE,GAAG,SAAL,EAAK,CAAC,YAAD,EAAyC;EAClD,UACE,aAAa,CAAC,YAAD,CAAb,IACA,YAAY,CAAC,IAAb,CAAkB,aADlB,KAEC,KAAK,CAAC,UAAN,IAAoB,WAFrB,CADF,EAIE;EACA,YAAM,YAAY,GAAG;EACnB,UAAA,QAAQ,EAAE,YAAY,CAAC,IAAb,CAAkB,aADT;EAEnB,UAAA,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,IAAb,CAAkB,gBAAnB,CAFJ;EAGnB,UAAA,MAAM,EAAE,IAHW;EAInB,UAAA,KAAK,EAAE,MAAM,CAAC,WAAD,aAAC,WAAD,uBAAC,WAAW,CAAE,EAAd,CAJM;EAKnB,UAAA,OAAO,EAAE,CAAA,WAAW,SAAX,IAAA,WAAW,WAAX,YAAA,WAAW,CAAE,IAAb,KAAqB,EALX;EAMnB,UAAA,OAAO,EAAE,CAAA,WAAW,SAAX,IAAA,WAAW,WAAX,YAAA,WAAW,CAAE,QAAb,KAAyB,EANf;EAOnB,UAAA,aAAa,EAAE,YAAY,CAAC,IAAb,CAAkB;EAPd,SAArB;EASA,QAAA,MAAM,CAAC,mBAAP,CAA2B,SAA3B,EAAsC,EAAtC;EACA,QAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,YAAT,CAAsB,IAAtB,CAA2B,uBAA3B,EAAoD,YAApD;EACD;EACF,KAlBD;;EAmBA,QAAI,KAAJ,EAAW;EACT;EACA,MAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,UAAT,CAAoB,UAApB,CAA+B,KAA/B,EAAsC,IAAtC,CAA2C,UAAC,GAAD,EAAQ;EACjD,YAAI,GAAJ,EAAS;EACP;EACA,cAAI,GAAG,CAAC,kBAAJ,CAAuB,MAAvB,GAAgC,CAApC,EAAuC;EACrC,YAAA,cAAc,CAAC,KAAD,CAAd;EACA,YAAA,cAAc,CAAC,GAAD,CAAd;EACA,YAAA,OAAO,CAAC,gBAAgB,CAAC,mBAAlB,CAAP;EACD,WAJD,MAIO;EACL,kBAAM,IAAI,KAAJ,CACJ,qGADI,CAAN;EAGD;EACF;EACF,OAbD;EAcD,KAhBD,MAgBO,IAAI,UAAJ,EAAgB;EACrB;EACA,MAAA,cAAc,CAAC,MAAM,CAAC,UAAD,CAAP,CAAd;EACA,MAAA,MAAM,CAAC,gBAAP,CAAwB,SAAxB,EAAmC,EAAnC;EACD,KAJM,MAIA;EACL,MAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,UAAT,CACG,wBADH,CAC4B;EACxB,QAAA,YAAY,EAAE,YAAY,aAAM,YAAN,IAAuB,EADzB;EAExB,QAAA,IAAI,EAAE;EAFkB,OAD5B,EAKG,IALH,CAKQ,UAAC,IAAD,EAAS;EAAA;;EACb,QAAA,cAAc,CAAC,KAAD,CAAd;EACA,QAAA,OAAO,eAAC,IAAD,aAAC,IAAD,uBAAC,IAAI,CAAE,IAAP,mDAAe,EAAf,CAAP;EACD,OARH;EASD;;EACD,WAAO,YAAK;EACV,MAAA,MAAM,CAAC,mBAAP,CAA2B,SAA3B,EAAsC,EAAtC;EACD,KAFD;EAGD,GAtDQ,EAsDN,CAAC,KAAD,EAAQ,UAAR,EAAoB,aAApB,CAtDM,CAAT;EAwDA,EAAAA,CAAS,CAAC,YAAK;EACb,QAAM,sBAAsB,GAAG,SAAzB,sBAAyB,CAAC,YAAD,EAAyC;EACtE,UACE,aAAa,CAAC,YAAD,CAAb,IACA,YAAY,CAAC,IAAb,CAAkB,aADlB,KAEC,KAAK,CAAC,UAAN,IAAoB,WAFrB,CADF,EAIE;EACA,YAAM,YAAY,GAAG;EACnB,UAAA,QAAQ,EAAE,YAAY,CAAC,IAAb,CAAkB,aADT;EAEnB,UAAA,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,IAAb,CAAkB,gBAAnB,CAFJ;EAGnB,UAAA,MAAM,EAAE,IAHW;EAInB,UAAA,KAAK,EAAE,MAAM,CAAC,WAAD,aAAC,WAAD,uBAAC,WAAW,CAAE,EAAd,CAJM;EAKnB,UAAA,OAAO,EAAE,CAAA,WAAW,SAAX,IAAA,WAAW,WAAX,YAAA,WAAW,CAAE,IAAb,KAAqB,EALX;EAMnB,UAAA,OAAO,EAAE,CAAA,WAAW,SAAX,IAAA,WAAW,WAAX,YAAA,WAAW,CAAE,QAAb,KAAyB,EANf;EAOnB,UAAA,aAAa,EAAE,YAAY,CAAC,IAAb,CAAkB;EAPd,SAArB;EASA,QAAA,WAAW,CAAC,YAAY,CAAC,IAAd,CAAX;EAEA,YAAM,cAAc,GAAG,YAAY,CAAC,IAAb,CAAkB,gBAAzC;EAEA,QAAA,OAAO,CAAC,gBAAgB,CAAC,aAAlB,CAAP;;EAEA,YAAI,cAAJ,EAAoB;EAClB,cAAI,CAAC,WAAL,EAAkB;EAChB,YAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,UAAT,CACG,WADH,CACe,cADf,EAEG,IAFH,CAEQ,UAAC,iBAAD,EAAsB;EAC1B,kBAAI,iBAAJ,EAAuB;EACrB,gBAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,YAAT,CAAsB,IAAtB,CACE,uBADF,EAEE,YAFF;EAID,eALD,MAKO;EACL,gBAAA,oBAAoB,gBACV,WADU,aACV,WADU,uBACV,WAAW,CAAE,IADH,uGAApB;EAIA,gBAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,YAAT,CAAsB,IAAtB,CACE,qCADF,EAEE,YAFF;EAIA,gBAAA,OAAO,CAAC,UAAR,CAAmB,UAAnB,CAA8B,cAA9B;EACD;;EACD,kBAAI,sBAAJ,EAA4B;EAC1B,gBAAA,YAAY;EACb,eAFD,MAEO;EACL,gBAAA,gBAAgB,CAAC,KAAD,CAAhB;EACD;EACF,aAxBH;EAyBD,WA1BD,MA0BO;EACL,YAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,YAAT,CAAsB,IAAtB,CAA2B,uBAA3B,EAAoD,YAApD;EACA,YAAA,YAAY;EACb;EACF,SA/BD,MA+BO;EACL,UAAA,OAAO,SAAP,IAAA,OAAO,WAAP,YAAA,OAAO,CAAE,YAAT,CAAsB,IAAtB,CACE,qCADF,EAEE,YAFF;EAIA,UAAA,OAAO,CAAC,KAAR,CAAc,qCAAd;EACA,UAAA,oBAAoB,CAAC,0BAAD,CAApB;EACD;EACF;EACF,KA7DD;;EA8DA,QAAI,SAAS,MAAM,CAAC,UAApB,EAAgC;EAC9B,MAAA,MAAM,CAAC,gBAAP,CAAwB,SAAxB,EAAmC,sBAAnC;EACD;;EAED,WAAO,YAAK;EACV,MAAA,MAAM,CAAC,mBAAP,CAA2B,SAA3B,EAAsC,sBAAtC;EACD,KAFD;EAGD,GAtEQ,EAsEN,CAAC,WAAD,EAAc,UAAd,CAtEM,CAAT;;EAwEA,MAAM,cAAc,GAAG,SAAjB,cAAiB,CAAC,MAAD,EAAmB;EACxC,QAAM,GAAG,GAAG,OAAH,aAAG,OAAH,uBAAG,OAAO,CAAE,UAAT,CAAoB,UAApB,CAA+B,MAA/B,CAAZ;;EACA,QAAI,GAAJ,EAAS;EACP,MAAA,eAAe,CAAC,GAAD,EAAM,aAAN,EAAqB,MAArB,EAA6B,GAA7B,EAAkC,GAAlC,CAAf;EACD;EACF,GALD;;EAOA,MAAM,MAAM,GAAG,SAAT,MAAS,CAAC,GAAD,EAA+B;EAC5C,IAAA,cAAc,CAAC,GAAD,CAAd;;EACA,QAAI,GAAG,CAAC,kBAAJ,CAAuB,MAAvB,GAAgC,CAApC,EAAuC;EACrC;EACA,MAAA,OAAO,CAAC,gBAAgB,CAAC,mBAAlB,CAAP;EACD,KAHD,MAGO;EACL,MAAA,gBAAgB,CAAC,IAAD,CAAhB;EACA,MAAA,cAAc,CAAC,GAAG,CAAC,kBAAJ,CAAuB,CAAvB,EAA0B,EAA3B,CAAd;EACD;EACF,GATD;;EAWA,MAAM,WAAW,GAAG,SAAd,WAAc,CAAC,aAAD,EAA0B;EAC5C,QAAM,GAAG,GAAG,IAAI,CAAC,MAAL,CAAY,UAAC,EAAD;EAAA,aAAQ,EAAE,CAAC,EAAH,KAAU,aAAlB;EAAA,KAAZ,EAA6C,CAA7C,CAAZ;EACA,IAAA,MAAM,CAAC,GAAD,CAAN;EACD,GAHD;;EAKA,MAAM,SAAS,GAAG,SAAZ,SAAY,CAAC,SAAD,EAA+B;EAC/C,YAAQ,SAAR;EACE,WAAK,MAAL;EACE,QAAA,cAAc,CAAC,IAAD,CAAd;EACA,QAAA,qBAAqB,CAAC,IAAD,CAArB;EACA,QAAA,OAAO,CAAC,gBAAgB,CAAC,aAAlB,CAAP;EACA;;EACF,WAAK,MAAL;EACE,YAAI,kBAAJ,EAAwB,cAAc,CAAC,kBAAD,CAAd;EACxB;EARJ;EAYD,GAbD;;EAcA,SAAOsL,GAAP,2PACK,QADL,EAEa,KAAK,CAAC,gBAFnB,EAGc,YAHd,EAIyB;EAAA,WAAMA,GAAN;EAAA,GAJzB,EAMkB,MAAM,CAAC,IANzB,EAMiC,yCANjC,EAOQ,IAAI,KAAK,gBAAgB,CAAC,aAA1B,IACFA,GADE,sJAEa,MAAM,CAAC,KAFpB,EAGI,WAAW,GACTA,GADS,oMAEC,KAAK,CAAC,KAAN,GAAc,MAAM,CAAC,aAArB,GAAqC,MAAM,CAAC,MAF7C,EAIJ,cAJI,IAMTA,GANS,0IAOL,IAAI,KAAK,gBAAgB,CAAC,aAA1B,IACFA,GADE,qNAED,MAFC,EAE0B,YAF1B,EAE0D,MAF1D,EAGD,YAHC,EAGoB,IAHpB,EAG4C,WAH5C,CAPK,EAYL,IAAI,KAAK,gBAAgB,CAAC,mBAA1B,IACFA,GADE,mTAED,MAFC,EAE0B,YAF1B,EAE+E,MAF/E,EAGD,iBAHC,EAGgC,WAHhC,EAGyD,SAHzD,EAGyF,kBAHzF,EAGsI,UACtI,EADsI;EAAA,WAGtI,qBAAqB,CACnB,EADmB,CAHiH;EAAA,GAHtI,EAQoB,CAAC,CAAC,KAAK,CAAC,KAR5B,CAZK,CAHf,CAPR,EAmCQ,IAAI,KAAK,gBAAgB,CAAC,aAA1B,IACF,WADE,IAEF,QAFE,IAGFA,GAHE,kGAIE,aAAa,GACXA,GADW,wJACQ,MAAM,CAAC,YADf,EAEN,cAFM,IAIXA,GAJW,yRAKN,iBALM,EAMG,WAAW,CAAC,QANf,EAOC,iBAAiB,GACrB,sBADqB,GAErB,mBATG,EAUY,YAVZ,EAYL,iBAAiB,GACfA,GADe,8EACR,iBADQ,IAEfA,GAFe,qSAGC,GAHD,EAIX,QAAQ,CAAC,QAAQ,CAAC,aAAV,CAJG,EAIwB,GAJxB,EAIgC,GAJhC,EAKX,WAAW,CAAC,IALD,CAZZ,CAJf,CAnCR;EAiED,CAvQD;;EAyQA,IAAM,sBAAsB,GAAG,SAAzB,sBAAyB,CAAC,KAAD,EAA0B;EAAA;;EACvD,MAAQ,YAAR,GAAqD,KAArD,CAAQ,YAAR;EAAA,MAAsB,UAAtB,GAAqD,KAArD,CAAsB,UAAtB;EAAA,MAAkC,KAAlC,GAAqD,KAArD,CAAkC,KAAlC;EAAA,MAAyC,OAAzC,GAAqD,KAArD,CAAyC,OAAzC;;EAEA,oBAA4BlM,CAAQ,CAAC,IAAD,CAApC;EAAA;EAAA,MAAO,MAAP;EAAA,MAAe,SAAf;;EAEA,MAAM,WAAW,GAAG,SAAd,WAAc,GAAK;EACvB,IAAA,SAAS,CAAC,KAAD,CAAT;EACA,IAAA,OAAO;EACR,GAHD;;EAKA,SAAO,MAAM,GACTkM,GADS,kWAEJ,kBAFI,EAGU,YAHV,EAIG,KAJH,EAKQ,UALR,EAMK,WANL,EAOS,KAAK,CAAC,WAAN,CAAkB,WAP3B,EAQc,KAAK,CAAC,WAAN,CAAkB,gBARhC,EASW,KAAK,CAAC,aATjB,uBAUoB,KAAK,CAAC,UAV1B,sDAUoB,kBAAkB,sBAVtC,IAcTA,GAdS,yEAAb;EAeD,CAzBD;;AA2BA,6BAAeG,cAAO,CACpB,CAAC,YAAD,EAAe,aAAf,CADoB,EAEpB,eAFoB,CAAP,CAGb,sBAHa,CAAf;;;;;;;ECrSA;;EAEG;;MACU,SAAb;EAsBE,mBAAY,MAAZ,EAA0D;EAAA;;EAAA;;EAAA;;EAAA;;EAAA,wCAf3C,IAAI,YAAJ,EAe2C;;EAAA,uCAJpC,EAIoC;;EAAA,yCAFlC,KAEkC;;EAAA,2CAgFhC,UAAC,MAAD,EAA2B;EACnD,QAAM,MAAM,GAAG,EAAf;EACA,QAAM,UAAU,GAAG,sDAAnB;EACA,QAAM,gBAAgB,GAAG,UAAU,CAAC,MAApC;;EACA,SAAK,IAAI,CAAC,GAAG,CAAb,EAAgB,CAAC,GAAG,MAApB,EAA4B,CAAC,IAAI,CAAjC,EAAoC;EAClC,MAAA,MAAM,CAAC,IAAP,CACE,UAAU,CAAC,MAAX,CAAkB,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,MAAL,KAAgB,gBAA3B,CAAlB,CADF;EAGD;;EACD,qCAA0B,MAAM,CAAC,IAAP,CAAY,EAAZ,CAA1B;EACD,GA1FyD;;EAAA,gDA4F3B,YAAuB;EACpD,QAAM,SAAS,GACb,SAAS,MAAM,IAAI,eAAJ,CAAoB,MAAM,CAAC,QAAP,CAAgB,MAApC,CADjB;;EAEA,QAAI,SAAJ,EAAe;EACb,UAAM,MAAM,GAAG,SAAS,CAAC,GAAV,CAAc,SAAd,CAAf;EACA,UAAM,MAAM,GAAG,SAAS,CAAC,GAAV,CAAc,SAAd,CAAf;EACA,UAAM,IAAI,GAAG,SAAS,CAAC,GAAV,CAAc,MAAd,CAAb;EACA,UAAM,YAAY,GAAG,SAAS,CAAC,GAAV,CAAc,eAAd,CAArB;;EACA,UAAI,CAAC,MAAD,IAAW,CAAC,MAAZ,IAAsB,CAAC,IAAvB,IAA+B,CAAC,YAApC,EAAkD;EAChD,cAAM,IAAI,KAAJ,uDAEF,CAAC,MAAD,GAAU,QAAV,GAAqB,EAFnB,cAGA,CAAC,MAAD,GAAU,QAAV,GAAqB,EAHrB,cAG2B,CAAC,IAAD,GAAQ,MAAR,GAAiB,EAH5C,cAIF,CAAC,YAAD,GAAgB,cAAhB,GAAiC,EAJ/B,EAAN;EAOD;;EACD,aAAO;EACL,QAAA,MAAM,EAAN,MADK;EAEL,QAAA,MAAM,EAAN,MAFK;EAGL,QAAA,IAAI,EAAJ,IAHK;EAIL,QAAA,YAAY,EAAZ;EAJK,OAAP;EAMD;;EACD,WAAO;EACL,MAAA,MAAM,EAAE,EADH;EAEL,MAAA,MAAM,EAAE,EAFH;EAGL,MAAA,IAAI,EAAE,EAHD;EAIL,MAAA,YAAY,EAAE;EAJT,KAAP;EAMD,GA1HyD;;EAAA,wCA+HpC,YAAW;EAC/B,IAAA,OAAO,CAAC,IAAR,wBAA6B,SAAS,CAAC,WAAvC;EACD,GAjIyD;;EAAA,oDAyIvB,UACjC,UADiC,EAEjC,mBAFiC,EAGX;EACtB,QAAI,EAAE,GAAuB,IAA7B;;EAEA,QAAI,mBAAJ,EAAyB;EACvB,UACE,UAAU,KAAK,uBAAuB,CAAC,KAAvC,IACA,UAAU,KAAK,uBAAuB,CAAC,MAFzC,EAGE;EACA,cAAM,IAAI,KAAJ,CACJ,kGADI,CAAN;EAGD;;EACD,MAAA,EAAE,GAAG,QAAQ,CAAC,cAAT,CAAwB,mBAAxB,CAAL;;EACA,UAAI,CAAC,EAAL,EAAS;EACP,QAAA,OAAO,CAAC,IAAR,mDAC6C,mBAD7C,qBADO;EAKR;EACF;;EAED,YAAQ,UAAR;EACE,WAAK,uBAAuB,CAAC,KAA7B;EACE,QAAA,EAAE,GAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAL;EACA,QAAA,EAAE,CAAC,EAAH,GAAQ,KAAI,CAAC,eAAL,CAAqB,CAArB,CAAR;EACA,QAAA,QAAQ,CAAC,IAAT,CAAc,WAAd,CAA0B,EAA1B;EACA,eAAO,EAAP;;EACF,WAAK,uBAAuB,CAAC,MAA7B;EACE,eAAO,IAAP;;EACF,WAAK,uBAAuB,CAAC,QAA7B;EACE,eAAO,EAAP;;EACF,WAAK,uBAAuB,CAAC,MAA7B;EACE,eAAO,EAAP;;EACF;EACE,cAAM,IAAI,KAAJ,kCACsB,UADtB,mDACyE,IAAI,CAAC,SAAL,CAC3E,MAAM,CAAC,IAAP,CAAY,uBAAZ,CAD2E,CADzE,EAAN;EAbJ;EAmBD,GApLyD;;EAAA,+CA0L7B,UAAC,IAAD,EAIlB;EAAA;;EACT,QAAQ,MAAR,GAAoC,IAApC,CAAQ,MAAR;EAAA,QAAgB,eAAhB,GAAoC,IAApC,CAAgB,eAAhB;EACA,QAAM,QAAQ,GAAG,QAAQ,CAAC,cAAT,CAAwB,eAAxB,CAAjB;;EACA,QAAI,CAAC,QAAL,EAAe;EACb,MAAA,OAAO,CAAC,IAAR,uDACiD,eADjD;EAGA;EACD;;EACD,QAAI,YAAY,GAAG,MAAM,CAAC,MAAD,CAAzB;EACA,QAAI,mBAAmB,GAAG,KAAI,CAAC,MAAL,CAAY,aAAZ,IAA6B,IAAI,CAAC,aAA5D;;EAEA,QAAI,CAAC,mBAAL,EAA0B;EACxB,MAAA,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC,eAAD,CAAZ,CAA5B;EACD;;EAED,QAAI,CAAC,YAAL,EAAmB;EACjB,MAAA,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,QAAD,CAAZ,CAArB;EACD;;EAED,QAAM,KAAK,GAAG,cAAc,EAA5B;EAEA,IAAA,KAAK,CAAC,QAAN,CAAe;EACb,MAAA,mBAAmB,EAAE,mBADR;EAEb,MAAA,UAAU,EAAE,KAAI,CAAC,MAAL,CAAY,UAFX;EAGb,MAAA,WAAW,kCACN,YAAY,CAAC,WADP;EAET,QAAA,mBAAmB,EAAE,CAAC,2BAAC,KAAI,CAAC,MAAL,CAAY,cAAb,4EAAC,sBAA4B,OAA7B,mDAAC,uBAAqC,MAAtC,CAFb;EAGT,QAAA,YAAY,EAAE,MAAM,CAAC,KAAI,CAAC,MAAL,CAAY,YAAb,CAHX;EAIT,QAAA,WAAW,EAAE,CAAC,4BAAC,KAAI,CAAC,MAAL,CAAY,cAAb,mDAAC,uBAA4B,WAA7B;EAJL;EAHE,KAAf;EAWA,IAAA2B,GAAM,CACJ9B,GADI,2UAEC,UAAU,CAAC,QAFZ,EAGQ;EACN,MAAA,UAAU,EAAE,KAAI,CAAC,UADX;EAEN,MAAA,YAAY,EAAE,KAAI,CAAC,YAFb;EAGN,MAAA,aAAa,EAAE;EAHT,KAHR,EASG+B,eATH,EASqB,KATrB,EAUKF,oBAVL,EAWmB,KAAI,CAAC,MAAL,CAAY,YAX/B,EAYoB,mBAZpB,EAaa,YAbb,GAmBJ,QAnBI,CAAN;EAqBD,GApPyD;;EAAA,wDA0PpB,UAAC,IAAD,EAI3B;EAAA;;EACT,QAAM,KAAK,GAAG,cAAc,EAA5B;;EACA,QAAI,IAAJ,EAAU;EACR,UAAQ,KAAR,GAA8B,IAA9B,CAAQ,KAAR;EAAA,UAAe,UAAf,GAA8B,IAA9B,CAAe,UAAf;;EACA,UAAI,KAAK,IAAI,UAAb,EAAyB;EACvB,cAAM,IAAI,KAAJ,+GAAN;EAGD;EACF;;EAED,QAAI,QAAQ,GAAG,QAAQ,CAAC,cAAT,CAAwB,KAAI,CAAC,WAA7B,CAAf;;EACA,QAAI,CAAC,QAAL,EAAe;EACb,MAAA,QAAQ,GAAG,QAAQ,CAAC,aAAT,CAAuB,KAAvB,CAAX;EACA,MAAA,QAAQ,CAAC,EAAT,GAAc,KAAI,CAAC,WAAnB;EACA,MAAA,QAAQ,CAAC,IAAT,CAAc,WAAd,CAA0B,QAA1B;EACD,KAJD,MAIO;EACL,MAAA,KAAK,CAAC,QAAN,CAAe;EACb,QAAA,WAAW,kCACN,YAAY,CAAC,WADP;EAET,UAAA,gBAAgB,EAAE;EAFT;EADE,OAAf;EAMD;;EACD,QAAI,IAAI,IAAI,IAAI,CAAC,UAAjB,EAA6B;EAC3B,MAAA,KAAI,CAAC,aAAL,GAAqB,CAAC,KAAI,CAAC,aAA3B;EACD;;EAED,IAAA,KAAK,CAAC,QAAN,CAAe;EACb,MAAA,UAAU,EAAE,KAAI,CAAC,MAAL,CAAY,UADX;EAEb,MAAA,WAAW,kCACN,YAAY,CAAC,WADP;EAET,QAAA,YAAY,EACV,IAAI,IAAI,IAAI,CAAC,YAAb,GAA4B,MAAM,CAAC,IAAI,CAAC,YAAN,CAAlC,GAAwD,IAHjD;EAIT,QAAA,cAAc,EAAE;EACd,UAAA,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,KAAb,GAAqB,MAAM,CAAC,IAAI,CAAC,KAAN,CAA3B,GAA0C,IADnC;EAEd,UAAA,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC,UAAb,GAA0B,MAAM,CAAC,IAAI,CAAC,UAAN,CAAhC,GAAoD;EAFlD,SAJP;EAQT,QAAA,WAAW,EAAE,KAAI,CAAC,WART;EAST,QAAA,gBAAgB,EAAE,EAAC,IAAD,aAAC,IAAD,eAAC,IAAI,CAAE,UAAP,CATT;EAUT,QAAA,WAAW,EAAE,CAAC,4BAAC,KAAI,CAAC,MAAL,CAAY,cAAb,mDAAC,uBAA4B,WAA7B;EAVL;EAFE,KAAf;EAgBA,IAAAC,GAAM,CACJ9B,GADI,uYAEC,UAAU,CAAC,QAFZ,EAGQ;EACN,MAAA,UAAU,EAAE,KAAI,CAAC,UADX;EAEN,MAAA,YAAY,EAAE,KAAI,CAAC,YAFb;EAGN,MAAA,aAAa,EAAE;EAHT,KAHR,EASG+B,eATH,EASqB,KATrB,EAUKC,oBAVL,EAWmB,IAXnB,aAWmB,IAXnB,uBAWmB,IAAI,CAAE,YAXzB,EAYY,IAZZ,aAYY,IAZZ,uBAYY,IAAI,CAAE,KAZlB,EAaiB,IAbjB,aAaiB,IAbjB,uBAaiB,IAAI,CAAE,UAbvB,EAcoB,KAAI,CAAC,aAdzB,EAec,YAAK;EACb,UAAM,aAAa,GAAG,QAAQ,CAAC,cAAT,CAAwB,KAAI,CAAC,WAA7B,CAAtB;;EACA,UAAI,aAAJ,EAAmB;EACjB,QAAA,aAAa,CAAC,MAAd;EACD;EACF,KApBL,GA0BJ,QA1BI,CAAN;EA4BD,GAtUyD;;EAAA,yCA4UnC,UAAC,MAAD,EAAiC;EAAA;;EACtD,QAAQ,YAAR,GAAuD,MAAvD,CAAQ,YAAR;EAAA,QAAsB,QAAtB,GAAuD,MAAvD,CAAsB,QAAtB;EAAA,QAAgC,kBAAhC,GAAuD,MAAvD,CAAgC,kBAAhC;EACA,QAAM,QAAQ,GAAG,QAAQ,CAAC,cAAT,CAAwB,kBAAxB,CAAjB;;EACA,QAAI,CAAC,QAAL,EAAe;EACb,MAAA,OAAO,CAAC,IAAR,uDACiD,kBADjD;EAGA;EACD;;EACD,QAAM,KAAK,GAAG,cAAc,EAA5B;EAEA,IAAA,KAAK,CAAC,QAAN,CAAe;EACb,MAAA,WAAW,kCACN,YAAY,CAAC,WADP;EAET,QAAA,mBAAmB,EAAE,CAAC,4BAAC,KAAI,CAAC,MAAL,CAAY,cAAb,6EAAC,uBAA4B,OAA7B,mDAAC,uBAAqC,MAAtC;EAFb;EADE,KAAf;EAOA,IAAAF,GAAM,CACJ9B,GADI,8XAEC,UAAU,CAAC,QAFZ,EAGQ;EACN,MAAA,UAAU,EAAE,KAAI,CAAC,UADX;EAEN,MAAA,YAAY,EAAE,KAAI,CAAC,YAFb;EAGN,MAAA,aAAa,EAAE;EAHT,KAHR,EASG+B,eATH,EASqB,KATrB,EAUKF,oBAVL,EAWmB,KAAI,CAAC,MAAL,CAAY,YAX/B,EAYoB,IAZpB,EAa0B,YAb1B,EAcsB,QAdtB,GAoBJ,QApBI,CAAN;EAsBD,GApXyD;;EAAA,gCA0X5C,UAAC,UAAD,EAA2B;EACvC,QAAQ,WAAR,GAAyD,UAAzD,CAAQ,WAAR;EAAA,QAAqB,mBAArB,GAAyD,UAAzD,CAAqB,mBAArB;EAAA,QAA0C,UAA1C,GAAyD,UAAzD,CAA0C,UAA1C;EAEA,QAAM,MAAM,GAAG,QAAQ,CAAC,cAAT,CAAwB,WAAxB,CAAf;;EAEA,QAAI,CAAC,UAAL,EAAiB;EACf,YAAM,IAAI,KAAJ,CAAU,+CAAV,CAAN;EACD;;EAED,IAAA,KAAI,CAAC,wBAAL,CAA8B,UAA9B,EAA0C,mBAA1C;;EAEA,QAAI,MAAJ,EAAY;EAAA;;EACV,UAAM,MAAM,GACT,MAAM,CAAC,YAAP,CACC,kBADD,KAEmC,0BAA0B,CAAC,IAHjE,CADU;;EAOV,UAAM,KAAK,GAAG,cAAc,EAA5B;EACA,MAAA,KAAK,CAAC,QAAN,CAAe;EACb,QAAA,UAAU,EAAE,KAAI,CAAC,MAAL,CAAY,UADX;EAEb,QAAA,WAAW,kCACN,YAAY,CAAC,WADP;EAET,UAAA,mBAAmB,EAAE,CAAC,4BAAC,KAAI,CAAC,MAAL,CAAY,cAAb,6EAAC,uBAA4B,OAA7B,mDAAC,uBAAqC,MAAtC,CAFb;EAGT,UAAA,YAAY,EAAE,MAAM,CAAC,KAAI,CAAC,MAAL,CAAY,YAAb,CAHX;EAIT,UAAA,WAAW,EAAE,CAAC,4BAAC,KAAI,CAAC,MAAL,CAAY,cAAb,mDAAC,uBAA4B,WAA7B;EAJL,UAFE;EAQb,QAAA,gBAAgB,2BAAE,KAAI,CAAC,MAAL,CAAY,UAAd,0DAAE,sBAAwB;EAR7B,OAAf;EAWA,MAAAC,GAAM,CACJ9B,GADI,qYAEC,UAAU,CAAC,QAFZ,EAGQ;EACN,QAAA,UAAU,EAAE,KAAI,CAAC,UADX;EAEN,QAAA,YAAY,EAAE,KAAI,CAAC,YAFb;EAGN,QAAA,aAAa,EAAE;EAHT,OAHR,EASG+B,eATH,EASqB,KATrB,EAUKE,cAVL,EAWmB,KAAI,CAAC,MAAL,CAAY,YAX/B,EAYiB,KAAI,CAAC,MAAL,CAAY,UAZ7B,EAaa,MAbb,EAciB,UAdjB,GAoBJ,MApBI,CAAN;EAsBD,KAzCD,MAyCO;EACL,MAAA,OAAO,CAAC,IAAR,6CACuC,WADvC,qBADK;EAKN;EACF,GApbyD;;EAAA,4CAsbhC;EAAA,WACxB,KAAI,CAAC,UAAL,CAAgB,gBAAhB,CAAiC;EAC/B,MAAA,YAAY,EAAE,KAAI,CAAC,MAAL,CAAY;EADK,KAAjC,CADwB;EAAA,GAtbgC;;EAAA,mCA8bzC,YAAK;EACpB,QAAI;EACF,MAAA,KAAI,CAAC,YAAL,CAAkB,MAAlB;;EACA,UAAM,aAAa,GAAG,QAAQ,CAAC,cAAT,CAAwB,KAAI,CAAC,WAA7B,CAAtB;;EACA,UAAI,aAAJ,EAAmB;EACjB,QAAA,aAAa,CAAC,MAAd;EACD;EACF,KAND,CAME,OAAO,KAAP,EAAc;EACd,MAAA,OAAO,CAAC,KAAR,CAAc,kDAAd;EACD;EACF,GAxcyD;;EACxD,MAAI,gBAAJ;EAEA,MAAI,SAAJ;;EAEA,MAAI,MAAM,CAAC,GAAP,KAAe,SAAnB,EAA8B;EAAA;;EAC5B,IAAA,SAAS,GAAG;EACV,MAAA,eAAe,EAAE,aADP;EAEV,MAAA,YAAY,EAAE,iCAFJ;EAGV,MAAA,OAAO,EAAE,yBAHC;EAIV,MAAA,SAAS,EAAE,4BAJD;EAKV,MAAA,MAAM,2BAAE,MAAM,CAAC,cAAT,oFAAE,sBAAuB,OAAzB,2DAAE,uBAAgC,MAL9B;EAMV,MAAA,MAAM,4BAAE,MAAM,CAAC,cAAT,qFAAE,uBAAuB,OAAzB,2DAAE,uBAAgC,MAN9B;EAOV,MAAA,MAAM,4BAAE,MAAM,CAAC,cAAT,qFAAE,uBAAuB,OAAzB,2DAAE,uBAAgC;EAP9B,KAAZ;EASD,GAVD,MAUO;EAAA;;EACL,IAAA,SAAS,GAAG;EACV,MAAA,eAAe,EAAE,aADP;EAEV,MAAA,YAAY,EAAE,iCAFJ;EAGV,MAAA,OAAO,EAAE,wBAHC;EAIV,MAAA,SAAS,EAAE,2BAJD;EAKV,MAAA,MAAM,4BAAE,MAAM,CAAC,cAAT,qFAAE,uBAAuB,OAAzB,2DAAE,uBAAgC,MAL9B;EAMV,MAAA,MAAM,4BAAE,MAAM,CAAC,cAAT,sFAAE,uBAAuB,OAAzB,4DAAE,wBAAgC,MAN9B;EAOV,MAAA,MAAM,6BAAE,MAAM,CAAC,cAAT,uFAAE,wBAAuB,OAAzB,4DAAE,wBAAgC;EAP9B,KAAZ;EASD;;EAED,MAAI,YAAY,MAAhB,EAAwB;EACtB,QAAI,CAAC,MAAM,CAAC,MAAR,IAAkB,CAAC,MAAM,CAAC,IAA1B,IAAkC,CAAC,MAAM,CAAC,MAA9C,EAAsD;EACpD,YAAM,IAAI,KAAJ,CACJ,iHADI,CAAN;EAGD;;EAED,IAAA,gBAAgB,iDACX,MADW,GAEX,SAFW;EAGd,MAAA,MAAM,EAAE,MAAM,CAAC,MAHD;EAId,MAAA,IAAI,EAAE,MAAM,CAAC,IAJC;EAKd,MAAA,MAAM,EAAE,MAAM,CAAC;EALD,MAAhB;EAOA,SAAK,MAAL,iDACK,MADL,GAEK,SAFL;EAGE,MAAA,MAAM,EAAE,MAAM,CAAC,MAHjB;EAIE,MAAA,IAAI,EAAE,MAAM,CAAC,IAJf;EAKE,MAAA,MAAM,EAAE,MAAM,CAAC,MALjB;EAME,MAAA,YAAY,EAAE,MAAM,CAAC,YANvB;EAOE,MAAA,UAAU,EAAE,MAAM,CAAC;EAPrB;EASD,GAvBD,MAuBO;EACL,QAAM,SAAS,GAAG,KAAK,oBAAL,MAA+B,EAAjD;EACA,IAAA,gBAAgB,mCACX,SADW,GAEX,SAFW,CAAhB;EAIA,SAAK,MAAL,iDACK,SADL,GAEK,SAFL;EAGE,MAAA,UAAU,EAAE,MAAM,CAAC;EAHrB;EAKD;;EACD,OAAK,WAAL,GAAmB,KAAK,eAAL,CAAqB,CAArB,CAAnB;EACA,OAAK,UAAL,GAAkB,IAAI,UAAJ,CAAe,gBAAf,CAAlB;EACA,OAAK,gBAAL,GACG,IADH,CACQ,UAAC,QAAD,EAAa;EACjB,QAAI,EAAC,QAAD,aAAC,QAAD,eAAC,QAAQ,CAAE,eAAX,CAAJ,EAAgC;EAC9B,MAAA,OAAO,CAAC,KAAR,CACE,gFADF;EAGD;EACF,GAPH,EAQG,KARH,CAQS,UAAC,GAAD;EAAA,WAAS,OAAO,CAAC,KAAR,CAAc,GAAd,CAAT;EAAA,GART;EASD;EAED;;;;EAIG;;;kBArGQ,0BACU;;kBADV,mBAUGjC;;kBAVH,0BAY0C;;kBAZ1C;;EC9Bb,SAAS,CAAC,OAAV,GAAoB;EAAE,EAAA,WAAW,EAAE;EAAf,CAApB;EACA,SAAS,CAAC,IAAV,GAAiBA,GAAjB;;;;;;;;"}