@bigbinary/neeto-media-recorder 2.7.55 → 2.7.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core.js +102 -52
- package/core.js.map +1 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/v2/index.js +3 -0
- package/v2/index.js.map +1 -1
package/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sources":["node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/@babel/runtime/helpers/esm/typeof.js","node_modules/@babel/runtime/helpers/esm/toPrimitive.js","node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","node_modules/@babel/runtime/helpers/esm/createClass.js","node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","node_modules/@babel/runtime/helpers/typeof.js","node_modules/@babel/runtime/helpers/regeneratorRuntime.js","node_modules/@babel/runtime/regenerator/index.js","src/apis/fast_title.js","src/utils/createPrefixedLogger.js","src/core/fastTitle/constants.js","src/core/fastTitle/index.js","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/uuid/dist/esm-browser/stringify.js","node_modules/uuid/dist/esm-browser/rng.js","node_modules/uuid/dist/esm-browser/native.js","node_modules/uuid/dist/esm-browser/v4.js","src/constants.js","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/inherits.js","node_modules/@babel/runtime/helpers/esm/assertThisInitialized.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/utils/index.js","src/utils/buildRetryableApi.js","src/apis/abort_upload.js","src/apis/complete_upload.js","src/apis/part_presigned_url.js","src/core/screenRecorder/utils.js","src/apis/s3.js","src/core/multipartS3Uploader/utils.js","src/core/multipartS3Uploader/index.js","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/core/screenRecorder/constants.js","src/core/screenRecorder/stores/index.js","src/core/screenRecorder/index.js","src/components/MediaRecorder/hooks/useMultipartS3UploadStatus.js"],"sourcesContent":["function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _classApplyDescriptorSet(e, t, l) {\n if (t.set) t.set.call(e, l);else {\n if (!t.writable) throw new TypeError(\"attempted to set read only private field\");\n t.value = l;\n }\n}\nexport { _classApplyDescriptorSet as default };","function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}\nexport { _assertClassBrand as default };","import assertClassBrand from \"./assertClassBrand.js\";\nfunction _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}\nexport { _classPrivateFieldGet2 as default };","import classApplyDescriptorSet from \"./classApplyDescriptorSet.js\";\nimport classPrivateFieldGet2 from \"./classPrivateFieldGet2.js\";\nfunction _classPrivateFieldSet(e, t, r) {\n var s = classPrivateFieldGet2(t, e);\n return classApplyDescriptorSet(e, s, r), r;\n}\nexport { _classPrivateFieldSet as default };","function _classApplyDescriptorGet(e, t) {\n return t.get ? t.get.call(e) : t.value;\n}\nexport { _classApplyDescriptorGet as default };","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classPrivateFieldGet2 from \"./classPrivateFieldGet2.js\";\nfunction _classPrivateFieldGet(e, t) {\n var r = classPrivateFieldGet2(t, e);\n return classApplyDescriptorGet(e, r);\n}\nexport { _classPrivateFieldGet as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import axios from \"axios\";\n\n// Where a recording's opening audio is PUT. Uploading it is the whole handoff —\n// the bucket triggers a lambda which titles the recording and reports it to the\n// server, so there is no second call to make.\n//\n// A nil upload_url means the recording already has a title, which is the\n// caller's signal to stop.\nconst show = ({ recordingId }) =>\n axios.get(\n `/api/v1/recordings/${encodeURIComponent(\n recordingId\n )}/fast_title_upload_url`\n );\n\nconst fastTitleApi = { show };\n\nexport default fastTitleApi;\n","const createPrefixedLogger = prefix => ({\n info: (...args) => logger.info(prefix, ...args),\n error: (...args) => logger.error(prefix, ...args),\n warn: (...args) => logger.warn(prefix, ...args),\n debug: (...args) => logger.debug(prefix, ...args),\n});\n\nexport default createPrefixedLogger;\n","// How much of the opening to transcribe. Long enough that a recording has\n// usually said something, short enough that the title is saved well before the\n// user stops — which is the whole point, since a link pasted right after\n// recording is what the unfurl cache captures.\n//\n// There is only ever one window. The title is built from whatever these seconds\n// contain rather than waiting for a clearly stated topic, so a second attempt\n// would rarely say anything new.\nexport const FAST_TITLE_WINDOW_MS = 20_000;\n\n// Ordered by preference. Opus at a low bitrate is all the transcription API\n// consumes, and keeps the window small enough that the upload never dominates.\n//\n// Independent of the video format: this records audio only, so a recording made\n// in MP4 still captures its opening as Opus. The MP4 entries are the fallback\n// for a browser whose MediaRecorder cannot do audio/webm at all — Safari.\nexport const FAST_TITLE_MIME_TYPES = [\n \"audio/webm;codecs=opus\",\n \"audio/ogg;codecs=opus\",\n \"audio/webm\",\n \"audio/mp4;codecs=mp4a.40.2\",\n \"audio/mp4\",\n];\n\nexport const FAST_TITLE_AUDIO_BITS_PER_SECOND = 24_000;\n","import { isEmpty } from \"ramda\";\n\nimport fastTitleApi from \"src/apis/fast_title\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport {\n FAST_TITLE_WINDOW_MS,\n FAST_TITLE_MIME_TYPES,\n FAST_TITLE_AUDIO_BITS_PER_SECOND,\n} from \"./constants\";\n\nconst supportedMimeType = () =>\n FAST_TITLE_MIME_TYPES.find(type => MediaRecorder.isTypeSupported(type));\n\n/**\n * Titles a recording while it is still being made.\n *\n * Link unfurlers (Slack, X, Teams) fetch a page's metadata the first time\n * somebody pastes the URL and cache it per URL, with no purge API worth relying\n * on — so whatever title exists at that moment is the one that sticks. Titling\n * after the upload finishes can lose that race. Titling during the recording\n * does not: for anything longer than about half a minute the title is saved\n * before the user presses stop.\n *\n * Runs a second, audio-only MediaRecorder over cloned audio tracks. When its\n * first window closes it PUTs that audio to S3 and stops. The upload is the\n * whole handoff: the bucket triggers a lambda which titles the recording and\n * reports it to the server, so there is no result to wait for here.\n *\n * It shares no object with the real recorder, and every failure path is a no-op\n * — the transcode lambda still titles the recording from its full transcript\n * afterwards.\n */\nclass FastTitleRunner {\n #logger = createPrefixedLogger(\"[FastTitle]\");\n #recorder;\n #tracks = [];\n #recordingId = null;\n #mimeType;\n #finished = false;\n\n get isRunning() {\n return Boolean(this.#recorder) && !this.#finished;\n }\n\n // Set once the recording exists. It is created asynchronously and usually\n // lands well before the first window closes.\n setRecordingId = recordingId => {\n this.#recordingId = recordingId;\n };\n\n /**\n * @param {MediaStream} mediaStream the stream being recorded; its audio tracks\n * are cloned so nothing here can disturb the real recorder\n */\n start = mediaStream => {\n if (this.isRunning) return;\n\n const audioTracks = mediaStream?.getAudioTracks?.() ?? [];\n if (isEmpty(audioTracks)) {\n this.#logger.info(\"start -> no audio track, skipping\");\n\n return;\n }\n\n this.#mimeType = supportedMimeType();\n if (!this.#mimeType) {\n this.#logger.info(\"start -> no supported audio mime type, skipping\");\n\n return;\n }\n\n this.#reset();\n\n try {\n // Cloned rather than shared: a clone is an independent track, so a second\n // MediaRecorder reading it cannot affect the one producing the actual\n // recording. Clones must be stopped explicitly or they outlive the take.\n this.#tracks = audioTracks.map(track => track.clone());\n\n this.#recorder = new MediaRecorder(new MediaStream(this.#tracks), {\n mimeType: this.#mimeType,\n audioBitsPerSecond: FAST_TITLE_AUDIO_BITS_PER_SECOND,\n });\n this.#recorder.ondataavailable = this.#onWindowClosed;\n this.#recorder.onerror = event => {\n this.#logger.error(\"recorder error\", event?.error?.name);\n this.stop();\n };\n this.#recorder.start(FAST_TITLE_WINDOW_MS);\n\n this.#logger.info(\"start -> recording opening audio\", {\n mimeType: this.#mimeType,\n trackCount: this.#tracks.length,\n });\n } catch (error) {\n this.#logger.error(\"start -> failed\", error?.message);\n this.stop();\n }\n };\n\n pause = () => {\n if (this.#recorder?.state === \"recording\") this.#recorder.pause();\n };\n\n resume = () => {\n if (this.#recorder?.state === \"paused\") this.#recorder.resume();\n };\n\n stop = () => {\n this.#finished = true;\n\n try {\n if (this.#recorder && this.#recorder.state !== \"inactive\") {\n // No final flush: audio sent now would arrive while the recording is\n // already uploading, which is what the transcode lambda is for.\n this.#recorder.ondataavailable = null;\n this.#recorder.stop();\n }\n } catch (error) {\n this.#logger.error(\"stop -> error stopping recorder\", error?.message);\n }\n\n this.#tracks.forEach(track => track.stop());\n this.#reset();\n };\n\n #reset = () => {\n this.#recorder = null;\n this.#tracks = [];\n this.#finished = false;\n };\n\n // Fires once, when the first window closes. Whatever it holds is the title's\n // only source, so this uploads it and stops.\n #onWindowClosed = async event => {\n if (this.#finished) return;\n\n if (!event.data?.size || !this.#recordingId) {\n this.#logger.info(\"nothing to send, stopping\", {\n size: event.data?.size ?? 0,\n hasRecordingId: Boolean(this.#recordingId),\n });\n this.stop();\n\n return;\n }\n\n // Stopped up front: this runs once either way, and stopping first means a\n // slow upload cannot overlap a second window.\n const audio = event.data;\n const recordingId = this.#recordingId;\n this.stop();\n\n try {\n await this.#upload(recordingId, audio);\n } catch (error) {\n // Not fatal: the transcode lambda still titles the recording from its\n // full transcript afterwards.\n this.#logger.error(\"upload failed\", error?.message);\n }\n };\n\n #upload = async (recordingId, audio) => {\n const startedAt = performance.now();\n\n // Already the response body: the host app's axios interceptors unwrap it,\n // the same way generatePreSignedUrl's caller destructures its result.\n const { uploadUrl } = await fastTitleApi.show({ recordingId });\n\n if (!uploadUrl) {\n this.#logger.info(\"not wanted for this recording\");\n\n return;\n }\n\n // Straight to S3, deliberately not through the app's axios: a presigned PUT\n // carries its own auth in the query string, and the shared interceptors\n // would strip credentials cross-origin and serialize the Blob away.\n const response = await fetch(uploadUrl, {\n method: \"PUT\",\n headers: { \"Content-Type\": this.#mimeType },\n body: audio,\n });\n\n if (!response.ok) throw new Error(`audio upload ${response.status}`);\n\n // The last thing this client will say about the recording. Uploading is the\n // whole handoff — the bucket triggers a lambda which transcribes, titles and\n // reports the title to the server — so nothing further appears here whether\n // it succeeds or finds nothing to title.\n this.#logger.info(\"upload succeeded -> handed off for titling\", {\n recordingId,\n bytes: audio.size,\n mimeType: this.#mimeType,\n ms: Math.round(performance.now() - startedAt),\n // Path only. The query string of a presigned URL carries its signature.\n key: new URL(uploadUrl).pathname.replace(/^\\//, \"\"),\n });\n };\n}\n\nlet runner = null;\n\nexport const getFastTitleRunner = () => {\n if (!runner) runner = new FastTitleRunner();\n\n return runner;\n};\n\nexport default FastTitleRunner;\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFNckMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0FBRS9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3QixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFNekQsT0FBTyxDQUNMLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixHQUFHO1FBQ0gsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRztRQUNILFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDNUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQU8xQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUMifQ==","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm5nLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm5nLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsSUFBSSxlQUEwRCxDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLFVBQVUsR0FBRztJQUV6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwwR0FBMEcsQ0FDM0csQ0FBQztRQUNKLENBQUM7UUFFRCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMifQ==","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLEdBQ2QsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdkYsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDIn0=","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random || (options.rng || rng)();\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJakQsU0FBUyxFQUFFLENBQUMsT0FBeUIsRUFBRSxHQUFnQixFQUFFLE1BQWU7SUFDdEUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBRXhCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFHdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBR2xDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxlQUFlLEVBQUUsQ0FBQyJ9","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\nimport { HELP_DOCS_BASE_URL } from \"./helpUrls\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRYABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\nexport const TWO_HUNDRED_MILLISECONDS = 200;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;\nexport const ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;\n\nexport const ONE_SECOND = 1;\n\nexport const COUNTDOWN_TIME = 3;\n\nexport const UPLOAD_EVENT = {\n onComplete: \"onComplete\",\n onError: \"onError\",\n onProgress: \"onProgress\",\n};\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n insufficient_data: \"insufficient_data\",\n error: \"error\",\n};\n\nexport const SCREEN_RECORDER_STATUS = {\n media_aborted: \"media_aborted\",\n permission_denied: \"permission_denied\",\n no_specified_media_found: \"no_specified_media_found\",\n media_in_use: \"media_in_use\",\n invalid_media_constraints: \"invalid_media_constraints\",\n no_chrome_flags_set: \"no_chrome_flags_set\",\n recorder_error: \"recorder_error\",\n idle: \"idle\",\n acquiring_media: \"acquiring_media\",\n media_acquired: \"media_acquired\",\n restarting: \"restarting\",\n recording: \"recording\",\n stopping: \"stopping\",\n stopped: \"stopped\",\n paused: \"paused\",\n};\n\nexport const SCREEN_RECORDER_ERROR = {\n MicPermissionDenied: \"mic_permission_denied\",\n AbortError: \"media_aborted\",\n NotAllowedError: \"permission_denied\",\n NotFoundError: \"no_specified_media_found\",\n NotReadableError: \"media_in_use\",\n OverconstrainedError: \"invalid_media_constraints\",\n TypeError: \"no_chrome_flags_set\",\n None: \"\",\n NoRecorder: \"recorder_error\",\n UnSupportedBrowser: \"unsupported_browser\",\n FailedToStart: \"failed_to_start\",\n CreateRecordingError: \"create_recording_error\",\n InsufficientData: \"insufficient_data\",\n};\n\nexport const SCREEN_RECORDER_EVENT = {\n onStart: \"onStart\",\n onStop: \"onStop\",\n onDiscard: \"onDiscard\",\n onDataAvailable: \"onDataAvailable\",\n onDiscardDuringCountdown: \"onDiscardDuringCountdown\",\n onRestart: \"onRestart\",\n onReUpload: \"onReUpload\",\n onReUploadFromDisk: \"onReUploadFromDisk\",\n onPause: \"onPause\",\n onResume: \"onResume\",\n onCountdownStart: \"onCountdownStart\",\n onCountdown: \"onCountDown\",\n onCountdownEnd: \"onCountdownEnd\",\n onCountdownSkip: \"onCountdownSkip\",\n onShareSelected: \"onShareSelected\",\n // Fired when the capture ends without the app calling stop() — i.e. the\n // browser's \"Stop sharing\" pill or an OS-level termination (resource\n // pressure, source closed, permission revoked). The two are\n // indistinguishable in the Web/extension APIs, so consumers should surface\n // both possibilities. If no consumer subscribes, the recorder falls back to\n // finalizing the recording (stopRecording).\n onUnexpectedEnd: \"onUnexpectedEnd\",\n};\n\nexport const TOTAL_RETRIES = 15;\nexport const ABORT_UPLOAD_RETRIES = 2;\nexport const INITIAL_RETRY_DELAY = 4000;\nexport const MAX_RETRY_DELAY = 16000;\n\nexport const DEFAULT_RETRY_CONFIG = {\n retries: TOTAL_RETRIES,\n retryDelay: INITIAL_RETRY_DELAY,\n retryableStatuses: [],\n};\n\n// No need to localize this since it will only be used in the code\n// eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\nexport const NETWORK_ERROR = \"Network Error\";\nexport const TIMEOUT_ERROR = \"ECONNABORTED\";\n\nexport const HAS_CHROME_NAMESPACE = typeof chrome === \"object\";\n\nexport const IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);\n\nexport const IS_SAFARI = platform.name === \"Safari\";\n\nexport const IS_SAFARI_EXTENSION = IS_SAFARI && IS_EXTENSION;\n\nexport const PERMISSIONS_HELP_DOC = `${HELP_DOCS_BASE_URL}/p/a-10efcfd7`;\n\n// Firefox refuses to start a MediaRecorder on a stream that has both audio and\n// video tracks unless the MIME string declares the audio codec too. Chromium\n// and Safari accept the video-only form and silently pick Opus/AAC. We keep\n// both variants and always prefer the codec-complete ones in\n// getSupportedMimeType so a single code path works across browsers.\nexport const MIME_TYPE = {\n mp4: \"video/mp4\",\n webmH264Opus: \"video/webm;codecs=h264,opus\",\n webmH264: \"video/webm;codecs=h264\",\n webmVp9Opus: \"video/webm;codecs=vp9,opus\",\n webmVp9: \"video/webm;codecs=vp9\",\n webmVp8Opus: \"video/webm;codecs=vp8,opus\",\n webmVp8: \"video/webm;codecs=vp8\",\n webm: \"video/webm\",\n};\n\nexport const START_RECORDING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3\";\n\nexport const COUNTDOWN_TICK_SOUND =\n \"https://neeto-record-static-assets.s3.us-east-1.amazonaws.com/recording-tick-sound.mp3\";\n\nexport const STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3\";\n\nexport const RECORDING_LIMIT_REACHED_WARNING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3\";\n\nexport const RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes\nexport const RECORDING_TIME_LIMIT_PRO_PLAN = 2 * ONE_HOUR_IN_MILLISECONDS; // 2 hours\n\nexport const MIC_NOT_WORKING_ALERT_TIME = 30;\nexport const MIC_NOT_WORKING_SILENCE_TIMEOUT =\n MIC_NOT_WORKING_ALERT_TIME * 1000;\n","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","export const sleep = delay =>\n new Promise(resolve => setTimeout(resolve, delay));\n\nexport const generatePublicUrl = (\n recordingId,\n baseURL = window.location.origin\n) => `${baseURL}/watch/${recordingId}`;\n","// Axios is required here to detect CancelledError so retries can be skipped\n// when an AbortController fires after the request was queued. The filename\n// rule fires because of this axios import — this file is a retry helper, not\n// an API connector, so the snake_case requirement doesn't apply.\n/* eslint-disable\n @bigbinary/neeto/no-axios-import-outside-apis,\n @bigbinary/neeto/use-snake-case-for-api-connector-filename */\nimport axios from \"axios\";\nimport { min } from \"ramda\";\n\nimport {\n DEFAULT_RETRY_CONFIG,\n INITIAL_RETRY_DELAY,\n MAX_RETRY_DELAY,\n TOTAL_RETRIES,\n} from \"src/constants\";\nimport { sleep } from \"utils\";\n\nclass RetryError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\nconst buildRetryableApi =\n (\n apiConnector,\n {\n retries = TOTAL_RETRIES,\n retryDelay = INITIAL_RETRY_DELAY,\n } = DEFAULT_RETRY_CONFIG\n ) =>\n async apiConnectorArgs => {\n const { config = null } = apiConnectorArgs;\n\n // If the signal is already aborted before we start, addEventListener(\"abort\")\n // will never fire — so we'd otherwise run the full retry/backoff schedule\n // against an aborted request. Throw an axios CanceledError so callers'\n // `axios.isCancel` checks treat this as cancellation instead of a real\n // failure (e.g. completeUpload won't flip status to \"error\" while a\n // parallel abortUpload is finishing).\n if (config?.signal?.aborted) {\n throw new axios.CanceledError(\"Request cancelled\");\n }\n\n let remainingAttempts = retries + 1;\n let shouldCancelRetries = false;\n\n config?.signal?.addEventListener(\"abort\", () => {\n shouldCancelRetries = true;\n });\n\n while (remainingAttempts-- && !shouldCancelRetries) {\n try {\n return await apiConnector(apiConnectorArgs);\n } catch (error) {\n // Cancelled requests should bail immediately rather than spend the\n // full retry budget (4s + 8s + 16s × N) waiting on a dead signal.\n if (axios.isCancel(error)) throw error;\n\n logger.error(\n \"buildRetryableApi -> Failed to connect, remainingAttempts:\",\n error?.config?.url,\n error.response?.status,\n remainingAttempts\n );\n\n if (error.response?.status !== 401 && remainingAttempts > 0) {\n logger.info(\n \"buildRetryableApi -> Failed to connect -> retry in:\",\n retryDelay\n );\n await sleep(retryDelay);\n retryDelay = min(retryDelay * 2, MAX_RETRY_DELAY);\n if (shouldCancelRetries) throw error;\n } else {\n throw error;\n }\n }\n }\n\n throw new RetryError(\"Request cancelled or request retries exhausted\");\n };\n\nexport default buildRetryableApi;\n","import axios from \"axios\";\n\nimport { ABORT_UPLOAD_RETRIES } from \"src/constants\";\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload }) =>\n axios.post(`/api/v1/recordings/${recordingId}/abort_upload`, {\n abortUpload: payload,\n });\n\nconst retryableCreate = buildRetryableApi(create, {\n retries: ABORT_UPLOAD_RETRIES,\n});\n\nconst abortUploadApi = { create: retryableCreate };\n\nexport default abortUploadApi;\n","import axios from \"axios\";\n\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload, config }) =>\n axios.post(\n `/api/v1/recordings/${recordingId}/complete_upload`,\n { completeUpload: payload },\n config\n );\n\nconst retryableCreate = buildRetryableApi(create);\n\nconst completeUploadApi = { create: retryableCreate };\n\nexport default completeUploadApi;\n","import axios from \"axios\";\n\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload, config }) =>\n axios.post(\n `/api/v1/recordings/${recordingId}/part_presigned_url`,\n { partPresignedUrl: payload },\n config\n );\n\nconst retryableCreate = buildRetryableApi(create);\n\nconst partPresignedUrlApi = { create: retryableCreate };\n\nexport default partPresignedUrlApi;\n","import { existsBy, isNotEmpty } from \"neetocist\";\nimport { isNil } from \"ramda\";\n\nimport { IS_SAFARI, MIME_TYPE } from \"src/constants\";\n\nconst getUnSupportedConstraints = mediaType => {\n const supportedMediaConstraints =\n navigator.mediaDevices.getSupportedConstraints();\n\n return Object.keys(mediaType).filter(\n constraint => !supportedMediaConstraints[constraint]\n );\n};\n\nexport const checkConstraints = (...mediaTypes) => {\n if (isNil(navigator.mediaDevices)) {\n return;\n }\n\n const unSupportedConstraints = mediaTypes\n .filter(mediaType => typeof mediaType === \"object\")\n .map(getUnSupportedConstraints)\n .flat();\n\n if (isNotEmpty(unSupportedConstraints)) {\n logger.error(\n `The constraints ${unSupportedConstraints.join(\n \",\"\n )} doesn't support on this browser.`\n );\n }\n};\n\nexport const isStreamEnded = mediaStream =>\n existsBy({ readyState: \"ended\" }, mediaStream.getTracks());\n\n// Picks the best MediaRecorder MIME type the current browser supports.\n// Chromium produces H.264-in-WebM, Safari only produces MP4, and Firefox\n// produces VP9/VP8-in-WebM. Returns null if none of the candidates are\n// supported so callers can surface an \"unsupported browser\" state.\nexport const getSupportedMimeType = () => {\n if (typeof MediaRecorder === \"undefined\") return null;\n\n // Safari only exposes a working MediaRecorder for MP4.\n if (IS_SAFARI && MediaRecorder.isTypeSupported(MIME_TYPE.mp4)) {\n return MIME_TYPE.mp4;\n }\n\n // Prefer types that declare the audio codec explicitly. Firefox requires\n // this when the MediaStream has both audio and video tracks; Chromium and\n // Safari are happy with either form.\n const candidates = [\n MIME_TYPE.webmH264Opus,\n MIME_TYPE.webmVp9Opus,\n MIME_TYPE.webmVp8Opus,\n MIME_TYPE.webmH264,\n MIME_TYPE.webmVp9,\n MIME_TYPE.webmVp8,\n MIME_TYPE.webm,\n MIME_TYPE.mp4,\n ];\n\n return candidates.find(type => MediaRecorder.isTypeSupported(type)) ?? null;\n};\n\nexport const getMediaRecorderOptions = () => {\n const mimeType = getSupportedMimeType();\n\n if (!mimeType) return {};\n\n return { mimeType };\n};\n\nexport const isMp4Supported = (mimeType = getSupportedMimeType()) =>\n mimeType.includes(MIME_TYPE.mp4);\n\nexport const addGainNode = (audioStream, gain = 1.5) => {\n const audioContext = new AudioContext();\n const audioStreamSource = audioContext.createMediaStreamSource(audioStream);\n\n const destinationStream = audioContext.createMediaStreamDestination();\n\n const gainNode = audioContext.createGain();\n gainNode.gain.value = gain;\n\n audioStreamSource.connect(gainNode);\n gainNode.connect(destinationStream);\n\n return destinationStream.stream;\n};\n","import axios from \"axios\";\nimport { identity } from \"ramda\";\n\nimport { getSupportedMimeType } from \"src/core/screenRecorder/utils\";\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst s3AxiosInstance = axios.create({\n headers: { \"Content-Type\": getSupportedMimeType() },\n});\n\ns3AxiosInstance.interceptors.response.use(\n identity,\n error => !axios.isCancel(error) && Promise.reject(error)\n);\n\nconst presignedUpload = ({ presignedUrl, blob, config }) =>\n s3AxiosInstance.put(presignedUrl, blob, config);\n\nconst retryablePresignedUpload = buildRetryableApi(presignedUpload);\n\nconst s3Api = { presignedUpload: retryablePresignedUpload };\n\nexport default s3Api;\n","/**\n * Due to the custom axios interceptor for s3Api,\n * it'll return false for cancelled requests instead of a cancelled error object.\n */\nexport const isNotCancelledRequest = resolvedResponse =>\n typeof resolvedResponse !== \"boolean\";\n\nexport const calculateUploadProgress = uploadProgress => {\n const total = Object.values(uploadProgress).reduce(\n (sum, part) => sum + part.total,\n 0\n );\n\n const uploaded = Object.values(uploadProgress).reduce(\n (sum, part) => sum + part.uploaded,\n 0\n );\n\n return Math.round((uploaded * 100) / total);\n};\n","// Axios is required here to waive off the CancelledError which occurs when\n// using AbortController on an axios request.\n\nimport axios from \"axios\";\nimport { isNot, isNotEmpty } from \"neetocist\";\nimport { UPLOAD_EVENT, UPLOAD_STATUS } from \"neetomediarecorder/constants\";\nimport { useMultipartS3UploadStatus } from \"neetomediarecorder/core\";\nimport { isEmpty } from \"ramda\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport abortUploadApi from \"src/apis/abort_upload\";\nimport completeUploadApi from \"src/apis/complete_upload\";\nimport partPresignedUrlApi from \"src/apis/part_presigned_url\";\nimport s3Api from \"src/apis/s3\";\nimport { MIME_TYPE } from \"src/constants\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport { isNotCancelledRequest, calculateUploadProgress } from \"./utils\";\n\nimport { getSupportedMimeType, isMp4Supported } from \"../screenRecorder/utils\";\n\nclass MultipartS3Uploader {\n MIN_UPLOAD_CHUNK_SIZE = 5 * 1024 * 1024;\n\n #recordingId = \"\";\n #uploadId = \"\";\n #unUploadedChunks = [];\n #partNumber = 1;\n #s3PartUploadPromises = [];\n #callbacks = {};\n #abortController;\n #pendingS3ChunkUploads = [];\n #completeUploadPromise;\n #failedUpload = [];\n #uploadProgress = {};\n #lastLoggedOverallPercent = -1;\n\n #_status = \"\";\n #id = uuidv4();\n #logger = createPrefixedLogger(`[${this.#id}]`);\n #mimeType = getSupportedMimeType();\n\n constructor() {\n this.#logger.info(\"Uploader initialized\", {\n mimeType: this.#mimeType,\n minUploadChunkSize: this.MIN_UPLOAD_CHUNK_SIZE,\n });\n }\n\n get status() {\n return this.#_status;\n }\n\n get mimeType() {\n return this.#mimeType;\n }\n\n set #status(status) {\n this.#_status = status;\n useMultipartS3UploadStatus.triggerStatusChange();\n }\n\n get hasSufficientData() {\n return (\n isNotEmpty(this.#unUploadedChunks) ||\n isNotEmpty(this.#pendingS3ChunkUploads) ||\n isNotEmpty(this.#s3PartUploadPromises)\n );\n }\n\n setMimeType = mimeType => (this.#mimeType = mimeType);\n\n setRecording = (recordingId, uploadId) => {\n const isNewUpload =\n this.#recordingId !== recordingId || this.#uploadId !== uploadId;\n\n this.#logger.info(\"setRecording\", { recordingId, uploadId, isNewUpload });\n\n if (isNewUpload) {\n // Part numbers and part-upload responses are only meaningful for the\n // uploadId they were created under. Carrying them across makes\n // completeUpload claim parts S3 never received for the new upload, which\n // S3 rejects with InvalidPart.\n //\n // #unUploadedChunks is intentionally NOT cleared: the re-upload flow\n // push()es the blob before the replacement recording exists, so the\n // buffer legitimately belongs to the upload being set up here.\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#pendingS3ChunkUploads = [];\n this.#failedUpload = [];\n this.#uploadProgress = {};\n this.#lastLoggedOverallPercent = -1;\n }\n\n this.#recordingId = recordingId;\n this.#uploadId = uploadId;\n this.#abortController = new AbortController();\n };\n\n push = data => {\n // Once an uploader has been aborted, any further chunks belong to a\n // recording that no longer exists server-side. Drop them so we don't\n // spawn new part uploads against an aborted multipart upload (which\n // would otherwise loop on retries until the network gives up).\n if (this.#isTerminalStatus) {\n this.#logger.warn(\n \"push -> uploader is no longer active, dropping chunk\",\n {\n chunkBytes: data?.size,\n status: this.#_status,\n recordingId: this.#recordingId,\n }\n );\n this.#unUploadedChunks = [];\n\n return;\n }\n\n if (data.size > 0) {\n this.#unUploadedChunks.push(data);\n }\n\n const unUploadedBytes = this.#getCurrentUnUploadedBlob().size;\n this.#logger.info(\"push -> chunk buffered\", {\n chunkBytes: data?.size,\n chunkType: data?.type,\n bufferedChunks: this.#unUploadedChunks.length,\n bufferedBytes: unUploadedBytes,\n bufferedMB: Number((unUploadedBytes / 1024 / 1024).toFixed(2)),\n threshold: this.MIN_UPLOAD_CHUNK_SIZE,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n if (this.#isRecordingNotSet) {\n this.#logger.warn(\n \"push -> recording not yet set, holding chunk in buffer\"\n );\n\n return;\n }\n\n if (unUploadedBytes > this.MIN_UPLOAD_CHUNK_SIZE) {\n const uploadChunkToS3Promise = this.#uploadChunkToS3(\n this.#unUploadedChunks\n );\n\n this.#pendingS3ChunkUploads.push(uploadChunkToS3Promise);\n this.#unUploadedChunks = [];\n }\n };\n\n completeUploadNotifyServer = (parts, sessionLogs) =>\n completeUploadApi.create({\n recordingId: this.#recordingId,\n payload: {\n parts,\n uploadId: this.#uploadId,\n isMp4: isMp4Supported(this.#mimeType),\n logs: sessionLogs,\n },\n config: { signal: this.#abortController?.signal },\n });\n\n completeUpload = async sessionLogs => {\n const completeStartedAt = Date.now();\n this.#logger.info(\"completeUpload -> begin\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n pendingChunks: this.#pendingS3ChunkUploads.length,\n bufferedBytes: this.#getCurrentUnUploadedBlob().size,\n totalPartsStarted: this.#partNumber - 1,\n });\n try {\n this.#status = UPLOAD_STATUS.uploading;\n\n if (this.#isRecordingNotSet) {\n this.#logger.error(\"completeUpload -> not initialized\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n return;\n }\n\n // Upload last chunk; only if last chunk has data\n const lastChunkBytes = this.#getCurrentUnUploadedBlob().size;\n if (lastChunkBytes > 0) {\n this.#logger.info(\"completeUpload -> uploading final buffered chunk\", {\n bytes: lastChunkBytes,\n });\n\n const uploadChunkToS3Promise = this.#uploadChunkToS3(\n this.#unUploadedChunks\n );\n\n this.#pendingS3ChunkUploads.push(uploadChunkToS3Promise);\n // #uploadChunkToS3 snapshots the chunks into a Blob synchronously\n // before its first await, so the buffer is safe to release here. Not\n // releasing it re-uploads the same bytes as an extra part on any\n // subsequent completion attempt (same pattern as push()).\n this.#unUploadedChunks = [];\n }\n\n /**\n * Wait for all the pending uploadToS3Promises.\n * Else we encounter a race condition where a new request is made for presignedUrl\n * but at the same time we reach the resolvedS3PartUploadPromises line and await\n * the s3PartUploadPromises. And the s3PartUploadPromises is resolved before\n * adding the new presignedUrl part upload to s3PartUploadPromises.\n * This results in incorrect partNumbers.\n */\n this.#logger.info(\"completeUpload -> awaiting pending chunks\", {\n pendingS3ChunkUploads: this.#pendingS3ChunkUploads.length,\n });\n await Promise.all(this.#pendingS3ChunkUploads);\n\n this.#logger.info(\"completeUpload -> awaiting part uploads\", {\n s3PartUploadPromises: this.#s3PartUploadPromises.length,\n });\n\n const resolvedS3PartUploadPromises = await Promise.all(\n this.#s3PartUploadPromises\n );\n\n if (isNotEmpty(this.#failedUpload)) {\n this.#logger.error(\n \"completeUpload -> failed parts present, aborting completion\",\n { failedPartNumbers: this.#failedUpload }\n );\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n\n return;\n }\n\n if (resolvedS3PartUploadPromises.length === 0) {\n this.#logger.warn(\"completeUpload -> no parts uploaded\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n this.#status = UPLOAD_STATUS.insufficient_data;\n\n return;\n }\n\n const parts = resolvedS3PartUploadPromises\n .filter(isNotCancelledRequest)\n .map(resolvedResponse => ({\n etag: resolvedResponse.headers.etag,\n partNumber: new URL(\n resolvedResponse.request.responseURL\n ).searchParams.get(\"partNumber\"),\n }))\n .toSorted((a, b) => Number(a.partNumber) - Number(b.partNumber));\n\n this.#logger.info(\"completeUpload -> notifying server\", {\n partCount: parts.length,\n parts,\n });\n const notifyStartedAt = Date.now();\n this.#completeUploadPromise = this.completeUploadNotifyServer(\n parts,\n sessionLogs\n );\n\n await this.#completeUploadPromise;\n this.#logger.info(\"completeUpload -> server notified, upload finalized\", {\n notifyDurationMs: Date.now() - notifyStartedAt,\n totalDurationMs: Date.now() - completeStartedAt,\n });\n\n if (this.status === UPLOAD_STATUS.aborting) {\n this.#logger.warn(\n \"completeUpload -> finished but state was set to aborting\"\n );\n\n return;\n }\n\n this.#status = UPLOAD_STATUS.completed;\n\n this.#fireCallbacks(UPLOAD_EVENT.onComplete);\n } catch (error) {\n // ignore if aborted\n if (!axios.isCancel(error)) {\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n this.#logger.error(\"completeUpload -> error\", {\n ...this.#serializeUploadError(error),\n totalDurationMs: Date.now() - completeStartedAt,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n } else {\n this.#logger.info(\"completeUpload -> request cancelled (expected)\");\n }\n } finally {\n this.#completeUploadPromise = null;\n }\n };\n\n // eslint-disable-next-line default-param-last\n abortUpload = async (forceAbort = false, sessionLogs) => {\n const abortStartedAt = Date.now();\n let phase = \"init\";\n try {\n if (this.status === UPLOAD_STATUS.aborting && !forceAbort) {\n this.#logger.info(\"abortUpload -> already aborting\", {\n forceAbort,\n });\n\n return;\n }\n this.#status = UPLOAD_STATUS.aborting;\n\n if (this.#isRecordingNotSet) {\n this.#logger.info(\"abortUpload -> not initialized\");\n\n return;\n }\n const recordingId = this.#recordingId;\n const uploadId = this.#uploadId;\n\n this.#logger.info(\"abortUpload -> begin\", {\n recordingId,\n uploadId,\n forceAbort,\n partsStarted: this.#partNumber - 1,\n pendingS3ChunkUploads: this.#pendingS3ChunkUploads.length,\n hasAbortController: Boolean(this.#abortController),\n });\n\n // Don't let a rejected completeUpload stop us from issuing the abort API\n // call below — we still need to release the upload server-side.\n phase = \"awaitCompleteUploadPromise\";\n\n await Promise.resolve(this.#completeUploadPromise).catch(() => {});\n\n // Guard against a missing AbortController. If abortUpload is somehow\n // invoked twice, the second call would hit a null #abortController and\n // throw a TypeError into the outer catch — masking the real failure.\n phase = \"abortInflight\";\n this.#abortController?.abort();\n\n phase = \"abortUploadApi\";\n try {\n await abortUploadApi.create({\n recordingId,\n payload: {\n uploadId,\n isMp4: isMp4Supported(this.#mimeType),\n logs: sessionLogs,\n },\n });\n\n this.#logger.info(\"abortUpload -> success\", {\n durationMs: Date.now() - abortStartedAt,\n });\n } catch (error) {\n // After retries are exhausted, proceed with local cleanup so the\n // caller can navigate away / close tab. The server-side upload\n // will be cleaned up by S3 lifecycle rules.\n this.#logger.error(\"abortUpload -> mark as discarded failed\", {\n ...this.#serializeUploadError(error),\n durationMs: Date.now() - abortStartedAt,\n });\n }\n\n phase = \"fireOnAbort\";\n this.#fireCallbacks(UPLOAD_EVENT.onAbort);\n\n phase = \"cleanup\";\n this.#unUploadedChunks = [];\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#status = \"\";\n this.#abortController = null;\n } catch (error) {\n this.#logger.error(\"abortUpload -> failed\", {\n phase,\n ...this.#serializeUploadError(error),\n durationMs: Date.now() - abortStartedAt,\n });\n }\n };\n\n resetState = () => {\n this.#recordingId = \"\";\n this.#uploadId = \"\";\n this.#unUploadedChunks = [];\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#pendingS3ChunkUploads = [];\n this.#callbacks = {};\n this.#failedUpload = [];\n this.#uploadProgress = {};\n this.#lastLoggedOverallPercent = -1;\n this.#status = \"\";\n };\n\n addCallback = (event, callback) => {\n const existingCallbacks = this.#callbacks[event] ?? [];\n this.#callbacks = {\n ...this.#callbacks,\n [event]: [...existingCallbacks, callback],\n };\n };\n\n removeCallback = (event, callback) => {\n const registeredCallbacks = this.#callbacks[event] ?? [];\n const updatedCallbacks = registeredCallbacks.filter(isNot(callback));\n this.#callbacks = { ...this.#callbacks, [event]: updatedCallbacks };\n };\n\n #fireCallbacks = (event, args = []) => {\n this.#callbacks[event]?.forEach(callback => {\n callback(...args);\n });\n };\n\n #handleChunkUploadError = (error, partNumber, context = {}) => {\n // ignore if aborted\n if (axios.isCancel(error)) {\n this.#logger.info(\"upload chunk -> request cancelled (expected)\", {\n partNumber,\n });\n\n return;\n }\n\n this.#logger.error(\"upload chunk -> failed\", {\n partNumber,\n ...this.#serializeUploadError(error),\n ...context,\n uploadStatus: this.status,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n if (this.status === UPLOAD_STATUS.uploading) {\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n } else {\n this.#failedUpload.push(partNumber); // if user is still recording\n }\n };\n\n #serializeUploadError = error => {\n if (!error) return { error: null };\n\n return {\n name: error.name,\n message: error.message,\n code: error.code,\n stack: error.stack,\n responseStatus: error.response?.status,\n responseStatusText: error.response?.statusText,\n responseData:\n typeof error.response?.data === \"string\"\n ? error.response.data.slice(0, 500)\n : error.response?.data,\n };\n };\n\n generatePreSignedUrl = partNumber =>\n partPresignedUrlApi.create({\n recordingId: this.#recordingId,\n payload: {\n partNumber,\n uploadId: this.#uploadId,\n isMp4: this.#mimeType.includes(MIME_TYPE.mp4),\n },\n config: { signal: this.#abortController?.signal },\n });\n\n #uploadChunkToS3 = async chunks => {\n const partNumber = this.#partNumber;\n this.#partNumber++;\n const partBlob = new Blob(chunks, { type: this.#mimeType });\n const partBytes = partBlob.size;\n this.#uploadProgress[partNumber] = { uploaded: 0, total: partBytes };\n this.#logger.info(\"upload chunk -> begin\", {\n partNumber,\n partBytes,\n partMB: Number((partBytes / 1024 / 1024).toFixed(2)),\n mimeType: this.#mimeType,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n const presignStartedAt = Date.now();\n let presignedUrl;\n try {\n ({ presignedUrl } = await this.generatePreSignedUrl(partNumber));\n this.#logger.info(\"upload chunk -> presigned url ready\", {\n partNumber,\n presignDurationMs: Date.now() - presignStartedAt,\n });\n } catch (error) {\n this.#handleChunkUploadError(error, partNumber, {\n phase: \"presign\",\n presignDurationMs: Date.now() - presignStartedAt,\n });\n\n return;\n }\n\n const uploadStartedAt = Date.now();\n\n const s3PartUploadPromise = s3Api\n .presignedUpload({\n presignedUrl,\n blob: partBlob,\n config: {\n headers: { \"Content-Type\": this.#mimeType },\n includeMetadataInResponse: true,\n signal: this.#abortController?.signal,\n onUploadProgress: e => {\n this.#uploadProgress[partNumber] = {\n uploaded: e.loaded,\n total: e.total,\n };\n if (this.status === UPLOAD_STATUS.uploading) {\n const percentCompleted = calculateUploadProgress(\n this.#uploadProgress\n );\n\n // Only log every 10% to keep noise down while still being useful.\n // Tracker is on the instance so concurrent chunk uploads don't\n // each log when the *overall* percent crosses a threshold.\n if (\n percentCompleted - this.#lastLoggedOverallPercent >= 10 ||\n percentCompleted === 100\n ) {\n this.#logger.info(\"upload progress\", {\n overallPercent: percentCompleted,\n partNumber,\n partLoaded: e.loaded,\n partTotal: e.total,\n });\n this.#lastLoggedOverallPercent = percentCompleted;\n }\n\n this.#fireCallbacks(UPLOAD_EVENT.onProgress, [percentCompleted]);\n }\n },\n },\n })\n // eslint-disable-next-line promise/prefer-await-to-then\n .then(response => {\n const durationMs = Date.now() - uploadStartedAt;\n this.#logger.info(\"upload chunk -> success\", {\n partNumber,\n partBytes,\n durationMs,\n throughputMbps: durationMs\n ? Number(((partBytes * 8) / 1000 / durationMs).toFixed(2))\n : null,\n httpStatus: response?.status,\n etag: response?.headers?.etag,\n });\n\n return response;\n })\n // eslint-disable-next-line promise/prefer-await-to-then\n .catch(error => {\n this.#handleChunkUploadError(error, partNumber, {\n phase: \"upload\",\n uploadDurationMs: Date.now() - uploadStartedAt,\n partBytes,\n });\n });\n this.#s3PartUploadPromises.push(s3PartUploadPromise);\n };\n\n #getCurrentUnUploadedBlob = () =>\n new Blob(this.#unUploadedChunks, { type: this.#mimeType });\n\n get #isRecordingNotSet() {\n return isEmpty(this.#uploadId + this.#recordingId);\n }\n\n get #isTerminalStatus() {\n return (\n this.#_status === UPLOAD_STATUS.aborting ||\n this.#_status === UPLOAD_STATUS.completed ||\n this.#_status === UPLOAD_STATUS.error\n );\n }\n}\n\nlet multipartS3Uploader = new MultipartS3Uploader();\n\nexport const getMultipartS3Uploader = ({ initialize = false } = {}) => {\n if (!multipartS3Uploader || initialize) {\n multipartS3Uploader = new MultipartS3Uploader();\n useMultipartS3UploadStatus.triggerStatusChange();\n }\n\n return multipartS3Uploader;\n};\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as 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}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","// https://www.w3.org/TR/screen-capture/#displaycapturesurfacetype\nexport const DISPLAY_SURFACE = {\n monitor: \"monitor\",\n window: \"window\",\n browser: \"browser\",\n};\n\nexport const RECORDING_TIME_LIMIT = 900_000; // 15 minutes\nexport const RECORDING_TIME_LIMIT_WARNING_TIME = 840_000; // 14 minutes\n\nexport const MAX_RESOLUTION = 2160; // max 4k\n","import withImmutableActions from \"neetocommons/react-utils/withImmutableActions\";\nimport {\n SCREEN_RECORDER_STATUS,\n COUNTDOWN_TIME,\n} from \"neetomediarecorder/constants\";\nimport { create } from \"zustand\";\n\nconst initialState = {\n status: SCREEN_RECORDER_STATUS.idle,\n error: \"\",\n elapsedTime: 0,\n countdownTimeLeft: COUNTDOWN_TIME,\n showTimeLimitWarning: false,\n};\n\nconst prepareStore = () =>\n create(\n withImmutableActions(set => ({\n ...initialState,\n resetState: () => set(initialState),\n }))\n );\n\nexport { initialState };\nexport default prepareStore;\n","import { isNotEmpty, isNot, noop } from \"neetocist\";\nimport { not, pick } from \"ramda\";\n\nimport {\n COUNTDOWN_TICK_SOUND,\n HALF_A_SECOND_IN_MILLISECONDS,\n ONE_SECOND,\n ONE_SECOND_IN_MILLISECONDS,\n RECORDING_LIMIT_REACHED_WARNING_SOUND,\n SCREEN_RECORDER_STATUS,\n SCREEN_RECORDER_EVENT,\n SCREEN_RECORDER_ERROR,\n START_RECORDING_SOUND,\n STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND,\n TWO_HUNDRED_MILLISECONDS,\n ONE_MINUTE_IN_MILLISECONDS,\n RECORDING_TIME_LIMIT_FREE_PLAN,\n IS_EXTENSION,\n} from \"src/constants\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport { DISPLAY_SURFACE } from \"./constants\";\nimport prepareStore, { initialState as initialStoreState } from \"./stores\";\nimport {\n checkConstraints,\n getMediaRecorderOptions,\n getSupportedMimeType,\n isStreamEnded,\n addGainNode,\n} from \"./utils\";\n\nimport { getFastTitleRunner } from \"../fastTitle\";\n\nclass ScreenRecorder {\n #audio;\n #video;\n #videoStream;\n #mediaRecorder;\n #mediaStream;\n #store;\n #logger = createPrefixedLogger(\"[ScreenRecorder]\");\n #mediaChunks = [];\n #callbacks = {};\n #lastTimerUpdatedAt = 0;\n #timerId;\n #countdownTimerId;\n #startRecordingAudio = new Audio(START_RECORDING_SOUND);\n #countdownTickAudio = new Audio(COUNTDOWN_TICK_SOUND);\n #recordingLimitWarningAudio = new Audio(\n RECORDING_LIMIT_REACHED_WARNING_SOUND\n );\n #stopRecordingDueToLimitReachedAudio = new Audio(\n STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND\n );\n #stream;\n #audioStream;\n #micAudioStream;\n #timeLimit = RECORDING_TIME_LIMIT_FREE_PLAN;\n #startRecordingTimeoutID;\n #enableNoiseCancellation = false;\n #showCountdown = true;\n // Lets a host (e.g. the chrome extension) take over the countdown beeps and\n // recording-start chime so it can schedule them via Web Audio. Defaults to\n // true to preserve behavior for callers that don't manage audio themselves.\n #playCountdownAudio = true;\n #mimeType = getSupportedMimeType();\n #dataReceiving = false;\n #recordSystemAudio = false;\n\n constructor(audio, video) {\n this.#audio = audio;\n this.#video = video;\n\n this.#store = prepareStore();\n\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.idle });\n this.#checkCompatibility();\n }\n\n /** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\n get useRecorderStore() {\n return this.#store;\n }\n\n get timeLimit() {\n return this.#timeLimit;\n }\n\n get displaySurface() {\n const [videoTrack] = this.#mediaStream?.getVideoTracks() ?? [];\n\n return videoTrack?.getSettings().displaySurface;\n }\n\n get audioConfiguration() {\n return this.#audio;\n }\n\n set videoStream(value) {\n this.#videoStream = value;\n }\n\n setDisplaySurface = displaySurface => {\n this.#video.displaySurface = displaySurface;\n };\n setRecordSystemAudio = value => (this.#recordSystemAudio = value);\n\n setResolution = height => {\n if (height === \"auto\") return;\n const getVideoConfig = (width, height) => ({\n width: { max: width },\n height: { max: height },\n displaySurface: this.#video.displaySurface,\n });\n\n const getResolution = height => {\n if (height === 1080) return getVideoConfig(1920, 1080);\n\n if (height === 720) return getVideoConfig(1280, 720);\n\n return getVideoConfig(3840, 2160);\n };\n this.#video = getResolution(height);\n };\n\n getAudioStream = () => this.#audioStream;\n hasData = () => this.#dataReceiving;\n\n setEnableNoiseCancellation = value => (this.#enableNoiseCancellation = value);\n\n setMimeType = mimeType => (this.#mimeType = mimeType);\n\n setAudioConfiguration = audio => (this.#audio = audio);\n\n setShowCountdown = showCountdown => (this.#showCountdown = showCountdown);\n\n setPlayCountdownAudio = value => (this.#playCountdownAudio = value);\n\n setTimeLimit = (timeLimit = RECORDING_TIME_LIMIT_FREE_PLAN) =>\n (this.#timeLimit = timeLimit);\n\n getWebmMediaBlob = () =>\n new Blob(this.#mediaChunks, { type: this.#mimeType });\n\n addCallback = (event, callback) => {\n const existingCallbacks = this.#callbacks[event] ?? [];\n this.#callbacks = {\n ...this.#callbacks,\n [event]: [...existingCallbacks, callback],\n };\n };\n\n removeCallback = (event, callback) => {\n const registeredCallbacks = this.#callbacks[event] ?? [];\n const updatedCallbacks = registeredCallbacks.filter(isNot(callback));\n this.#callbacks = { ...this.#callbacks, [event]: updatedCallbacks };\n };\n\n removeAllCallbacksByEvent = event => {\n delete this.#callbacks[event];\n };\n\n setError = error => {\n this.#store.setState({ error });\n };\n\n startRecording = async () => {\n this.#logger.info(\n \"startRecording -> begin\",\n this.#summarizeRecorderState({\n showCountdown: this.#showCountdown,\n timeLimit: this.#timeLimit,\n mimeType: this.#mimeType,\n recordSystemAudio: this.#recordSystemAudio,\n enableNoiseCancellation: this.#enableNoiseCancellation,\n hasInjectedVideoStream: Boolean(this.#videoStream),\n })\n );\n\n this.#store.setState(pick([\"error\"], initialStoreState));\n\n if (!this.#mediaStream) {\n this.#logger.info(\"startRecording -> acquiring media stream\");\n await this.#acquireMediaStream();\n }\n\n if (this.#mediaStream && isStreamEnded(this.#mediaStream)) {\n this.#logger.info(\n \"startRecording -> media stream ended, re-acquiring\",\n this.#summarizeStream(this.#mediaStream)\n );\n await this.#acquireMediaStream();\n }\n\n if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#logger.warn(\n \"startRecording -> aborting, media stream unavailable\",\n {\n hasMediaStream: Boolean(this.#mediaStream),\n isEnded: this.#mediaStream ? isStreamEnded(this.#mediaStream) : true,\n }\n );\n\n return;\n }\n\n const options = getMediaRecorderOptions();\n\n this.#logger.info(\"startRecording -> creating MediaRecorder\", {\n options,\n mimeType: this.#mimeType,\n stream: this.#summarizeStream(this.#mediaStream),\n });\n\n this.#mediaChunks = [];\n try {\n this.#mediaRecorder = new MediaRecorder(this.#mediaStream, options);\n } catch (error) {\n this.#logger.error(\n \"startRecording -> failed to construct MediaRecorder\",\n this.#serializeError(error),\n { options, mimeType: this.#mimeType }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.NoRecorder,\n });\n\n return;\n }\n\n this.#logger.info(\"startRecording -> MediaRecorder created\", {\n state: this.#mediaRecorder.state,\n mimeType: this.#mediaRecorder.mimeType,\n videoBitsPerSecond: this.#mediaRecorder.videoBitsPerSecond,\n audioBitsPerSecond: this.#mediaRecorder.audioBitsPerSecond,\n });\n\n this.#mediaRecorder.ondataavailable = this.#onRecordingActive;\n this.#mediaRecorder.onstart = this.#onRecordingStart;\n this.#mediaRecorder.onstop = this.#onRecordingStop;\n this.#mediaRecorder.onerror = event => {\n this.#logger.error(\n \"MediaRecorder.onerror fired\",\n this.#serializeError(event?.error),\n {\n state: this.#mediaRecorder?.state,\n chunkCount: this.#mediaChunks.length,\n stream: this.#summarizeStream(this.#mediaStream),\n }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.NoRecorder,\n });\n };\n if (this.#showCountdown) {\n this.#startCountdown();\n } else {\n // No countdown: emit the canonical \"count-in finished\" hook and flip to\n // recording so consumers (toolbar, options-page countdown) update, just\n // like the countdown and skipCountdown paths do.\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n this.#store.setState({\n countdownTimeLeft: 0,\n status: SCREEN_RECORDER_STATUS.recording,\n });\n this.#startMediaRecorder();\n }\n };\n\n stopRecording = () => {\n if (this.#mediaRecorder === undefined) {\n this.#logger.info(\n \"stopRecording -> mediaRecorder undefined, stopping streams only\",\n this.#summarizeRecorderState()\n );\n /**\n * If the permission is denied and \"Stop sharing\" overlay is clicked\n */\n this.#stopAllStreams();\n\n return;\n }\n\n if (this.#mediaRecorder?.state === \"inactive\") {\n this.#logger.info(\n \"stopRecording -> mediaRecorder inactive, treating as discard during countdown\",\n this.#summarizeRecorderState()\n );\n // When recording is stopped from the 'Stop Sharing' overlay\n // before it even starts, i.e during the countdown.\n // Or if the recording is stopped before startRecordingTimeoutID timeout executes\n this.removeCallback(SCREEN_RECORDER_EVENT.onStop);\n\n clearTimeout(this.#startRecordingTimeoutID);\n clearInterval(this.#countdownTimerId);\n\n this.#stopAllStreams();\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDiscardDuringCountdown);\n\n return;\n }\n\n this.#logger.info(\n \"stopRecording -> stopping\",\n this.#summarizeRecorderState()\n );\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.#mediaRecorder.stop();\n this.#stopAllStreams();\n\n this.#stopTimer();\n };\n\n // Skip the in-flight countdown and start the actual recording immediately.\n // The chime is suppressed (vs. natural completion which plays it) since the\n // user explicitly opted out of the count-in. Listeners hook onCountdownSkip\n // to clean up countdown-only side effects like scheduled beeps.\n skipCountdown = () => {\n if (!this.#countdownTimerId) {\n this.#logger.warn(\n \"skipCountdown -> ignored, no countdown running\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"skipCountdown\", this.#summarizeRecorderState());\n\n clearInterval(this.#countdownTimerId);\n this.#countdownTimerId = null;\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [0]);\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownSkip);\n // onCountdownEnd is the canonical \"countdown phase finished\" hook —\n // listeners that just want to know the count-in is over shouldn't have\n // to subscribe to onCountdownSkip too.\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n\n this.#store.setState({\n countdownTimeLeft: 0,\n status: SCREEN_RECORDER_STATUS.recording,\n });\n\n this.#startMediaRecorder();\n };\n\n pauseRecording = () => {\n if (this.#mediaRecorder?.state === \"recording\") {\n this.#logger.info(\"pauseRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.paused });\n this.#mediaRecorder.pause();\n getFastTitleRunner().pause();\n } else {\n this.#logger.warn(\n \"pauseRecording -> ignored, recorder not in recording state\",\n this.#summarizeRecorderState()\n );\n }\n\n this.#stopTimer();\n };\n\n resumeRecording = () => {\n if (this.#mediaRecorder?.state === \"paused\") {\n this.#logger.info(\"resumeRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.recording });\n this.#mediaRecorder.resume();\n getFastTitleRunner().resume();\n } else {\n this.#logger.warn(\n \"resumeRecording -> ignored, recorder not paused\",\n this.#summarizeRecorderState()\n );\n }\n\n this.#startTimer();\n };\n\n discardRecording = () => {\n if (this.#mediaRecorder?.state === \"inactive\") {\n this.#logger.info(\n \"discardRecording -> ignored, recorder already inactive\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"discardRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.removeAllCallbacksByEvent(SCREEN_RECORDER_EVENT.onStop);\n this.#mediaRecorder.stop();\n this.#stopAllStreams();\n\n clearInterval(this.#timerId);\n this.#store.setState(pick([\"elapsedTime\"], initialStoreState));\n this.#mediaChunks = [];\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDiscard);\n };\n\n restartRecording = () => {\n this.#logger.info(\"restartRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.removeAllCallbacksByEvent(SCREEN_RECORDER_EVENT.onStop);\n this.#mediaRecorder.stop();\n\n clearInterval(this.#timerId);\n this.#store.setState(\n pick([\"elapsedTime\", \"countdownTimeLeft\"], initialStoreState)\n );\n this.#mediaChunks = [];\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onRestart);\n\n this.startRecording();\n };\n\n resetState = () => {\n this.#logger.info(\"resetState\", this.#summarizeRecorderState());\n this.#mediaChunks = [];\n this.#callbacks = {};\n this.#dataReceiving = false;\n clearInterval(this.#timerId);\n clearInterval(this.#countdownTimerId);\n this.#store.getState().resetState();\n this.#checkCompatibility();\n };\n\n revokePermissions = () => {\n this.#logger.info(\"revokePermissions\", this.#summarizeRecorderState());\n if (!this.#mediaRecorder) return;\n\n this.#mediaRecorder.onstop = null;\n this.#stopAllStreams();\n };\n\n // Whether this recording could contain speech worth titling from.\n //\n // A muted mic is the case that matters: with the mic off the fast-title path\n // would upload audio, spend a transcription and a completion, and get nothing\n // back. Checked against the raw mic rather than #audioStream, which is the mic\n // mixed with system audio and stays loud through a dead mic.\n //\n // System audio counts on its own — a recording narrated by the thing on screen\n // is exactly as titleable as one narrated by the user.\n #hasSpeechSourceForTitle = () => {\n const [micTrack] = this.#micAudioStream?.getAudioTracks?.() ?? [];\n const micLive =\n Boolean(micTrack) &&\n micTrack.readyState !== \"ended\" &&\n !micTrack.muted &&\n micTrack.enabled;\n\n const hasSystemAudio = isNotEmpty(this.#stream?.getAudioTracks() ?? []);\n\n if (!micLive && !hasSystemAudio) {\n this.#logger.info(\"fast title skipped -> mic is off and no system audio\");\n\n return false;\n }\n\n return true;\n };\n\n #stopAllStreams = () => {\n getFastTitleRunner().stop();\n\n this.#logger.info(\"stopAllStreams\", {\n mediaStream: this.#summarizeStream(this.#mediaStream),\n stream: this.#summarizeStream(this.#stream),\n audioStream: this.#summarizeStream(this.#audioStream),\n micAudioStream: this.#summarizeStream(this.#micAudioStream),\n });\n\n this.#mediaStream &&\n this.#mediaStream?.getTracks().forEach(track => track.stop());\n this.#stream?.getTracks().forEach(track => track.stop());\n this.#audioStream?.getAudioTracks()?.forEach(track => track.stop());\n this.#micAudioStream?.getAudioTracks()?.forEach(track => track.stop());\n };\n\n #playCountdownBeep = () => {\n this.#countdownTickAudio.currentTime = 0;\n this.#countdownTickAudio.play();\n };\n\n #checkCompatibility = () => {\n // The browser is considered supported if it can capture the display AND\n // if `getSupportedMimeType()` can negotiate a codec the MediaRecorder API\n // accepts. This covers Chromium (WebM/H.264), Safari (MP4) and Firefox\n // (WebM/VP9 or VP8).\n const hasDisplayCapture = Boolean(navigator.mediaDevices?.getDisplayMedia);\n const supportedMimeType = getSupportedMimeType();\n\n if (!hasDisplayCapture || !supportedMimeType) {\n this.#logger.error(\n \"screenRecorder -> unsupported browser. hasDisplayCapture:\",\n hasDisplayCapture,\n \"supportedMimeType:\",\n supportedMimeType,\n \"hasMediaDevices:\",\n Boolean(navigator.mediaDevices),\n \"hasMediaRecorder:\",\n typeof MediaRecorder !== \"undefined\"\n );\n this.#store.setState({ error: SCREEN_RECORDER_ERROR.UnSupportedBrowser });\n }\n\n checkConstraints(this.#audio, this.#video);\n };\n\n #acquireMediaStream = async () => {\n const acquireStartedAt = Date.now();\n this.#logger.info(\"acquireMediaStream -> begin\", {\n hasInjectedVideoStream: Boolean(this.#videoStream),\n audio: Boolean(this.#audio),\n recordSystemAudio: this.#recordSystemAudio,\n enableNoiseCancellation: this.#enableNoiseCancellation,\n });\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.acquiring_media });\n\n if (this.#audio && !this.#videoStream) {\n const micState = await this.#queryMicPermissionState();\n if (micState === \"denied\") {\n this.#logger.warn(\n \"acquireMediaStream -> mic permission denied, skipping screen prompt\",\n { micState }\n );\n\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n\n return;\n }\n }\n\n let stream;\n\n try {\n if (this.#videoStream) {\n this.#logger.info(\n \"acquireMediaStream -> using injected videoStream\",\n this.#summarizeStream(this.#videoStream)\n );\n stream = this.#videoStream;\n } else {\n const constraints = {\n video: this.#video,\n audio: this.#recordSystemAudio,\n };\n\n this.#logger.info(\n \"acquireMediaStream -> getDisplayMedia constraints\",\n constraints\n );\n\n const displayMediaStartedAt = Date.now();\n stream = await window.navigator.mediaDevices.getDisplayMedia(\n constraints\n );\n\n this.#logger.info(\"acquireMediaStream -> getDisplayMedia resolved\", {\n durationMs: Date.now() - displayMediaStartedAt,\n stream: this.#summarizeStream(stream),\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onShareSelected);\n }\n\n if (this.#audio) {\n try {\n const audioConfig = {\n audio: {\n echoCancellation: false,\n ...this.#audio,\n ...(this.#audio.deviceId && {\n deviceId: { exact: this.#audio.deviceId },\n }),\n },\n };\n\n this.#logger.info(\n \"acquireMediaStream -> getUserMedia audioConfig\",\n audioConfig\n );\n const micStartedAt = Date.now();\n this.#micAudioStream =\n await window.navigator.mediaDevices.getUserMedia(audioConfig);\n\n this.#logger.info(\"acquireMediaStream -> mic acquired\", {\n durationMs: Date.now() - micStartedAt,\n stream: this.#summarizeStream(this.#micAudioStream),\n });\n\n const audioStream = addGainNode(this.#micAudioStream, 1.75); // Increase volume by 50%\n this.#audioStream = audioStream;\n\n if (this.#enableNoiseCancellation) {\n try {\n const workletUrl = IS_EXTENSION\n ? chrome.runtime.getURL(\"public/NoiseSuppressorWorklet.js\")\n : \"NoiseSuppressorWorklet.js\";\n\n this.#logger.info(\n \"acquireMediaStream -> loading noise suppressor worklet\",\n { workletUrl }\n );\n\n const workletStartedAt = Date.now();\n const audioContext = new AudioContext();\n await audioContext.audioWorklet.addModule(workletUrl);\n\n const audioStreamSource =\n audioContext.createMediaStreamSource(audioStream);\n\n const destinationStream =\n audioContext.createMediaStreamDestination();\n\n const noiseSuppressorNode = new AudioWorkletNode(\n audioContext,\n \"nn-suppressor-processor\"\n );\n\n audioStreamSource.connect(noiseSuppressorNode);\n noiseSuppressorNode.connect(destinationStream);\n\n this.#audioStream = destinationStream.stream;\n this.#logger.info(\n \"acquireMediaStream -> noise suppressor wired up\",\n { durationMs: Date.now() - workletStartedAt }\n );\n } catch (error) {\n this.#logger.error(\n \"acquireMediaStream -> failed to load audio worklet\",\n this.#serializeError(error)\n );\n }\n }\n } catch (audioError) {\n // Mic access can fail independently of screen capture (OS-level\n // block, no device, deviceId mismatch). Stop the screen stream and\n // surface a mic-only error so the user sees the proper callout\n // (\"doesn't have access to your microphone\" with Grant / I don't\n // need audio actions) instead of being misrouted to the screen\n // permission denied flow.\n this.#logger.warn(\n \"acquireMediaStream -> mic unavailable\",\n this.#serializeError(audioError),\n { audioConfigRequested: this.#audio }\n );\n if (!this.#videoStream) {\n stream.getTracks().forEach(track => track.stop());\n }\n\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n\n return;\n }\n }\n\n // Fired when capture ends without the app calling stop() — the browser's\n // \"Stop sharing\" pill or an OS-level termination. When a consumer is\n // listening for onUnexpectedEnd, hand the decision (finish/discard, show\n // diagnostics) over to it; otherwise preserve the legacy behavior of\n // finalizing the recording immediately.\n stream.getVideoTracks()[0].addEventListener(\"ended\", () => {\n const hasUnexpectedEndHandler = isNotEmpty(\n this.#callbacks[SCREEN_RECORDER_EVENT.onUnexpectedEnd] ?? []\n );\n\n this.#logger.info(\"display video track ended event received\", {\n recorderState: this.#mediaRecorder?.state,\n status: this.#store.getState().status,\n hasUnexpectedEndHandler,\n stream: this.#summarizeStream(stream),\n });\n\n if (hasUnexpectedEndHandler) {\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onUnexpectedEnd);\n\n return;\n }\n\n this.stopRecording();\n });\n\n const finalStream = new MediaStream();\n\n if (this.#audio && this.#audioStream) {\n if (isNotEmpty(stream.getAudioTracks())) {\n this.#logger.info(\"acquireMediaStream -> mixing system audio + mic\");\n const audioContext = new AudioContext();\n\n const desktopAudio = audioContext.createMediaStreamSource(stream);\n const microphoneAudio = audioContext.createMediaStreamSource(\n this.#audioStream\n );\n\n const combinedAudio = audioContext.createMediaStreamDestination();\n\n desktopAudio.connect(combinedAudio);\n microphoneAudio.connect(combinedAudio);\n\n combinedAudio.stream\n .getAudioTracks()\n .forEach(track => finalStream.addTrack(track));\n } else {\n this.#logger.info(\n \"acquireMediaStream -> using mic audio only (no system audio in display stream)\"\n );\n\n this.#audioStream\n .getAudioTracks()\n .forEach(track => finalStream.addTrack(track));\n }\n } else if (this.#recordSystemAudio) {\n this.#logger.info(\"acquireMediaStream -> using system audio only\");\n stream.getAudioTracks().forEach(track => finalStream.addTrack(track));\n } else {\n this.#logger.info(\"acquireMediaStream -> recording without audio\");\n }\n stream.getVideoTracks().forEach(track => finalStream.addTrack(track));\n\n this.#mediaStream = finalStream;\n this.#stream = stream;\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.media_acquired });\n this.#logger.info(\"acquireMediaStream -> success\", {\n totalDurationMs: Date.now() - acquireStartedAt,\n finalStream: this.#summarizeStream(this.#mediaStream),\n });\n } catch (error) {\n this.#logger.error(\n \"acquireMediaStream -> error\",\n this.#serializeError(error),\n {\n totalDurationMs: Date.now() - acquireStartedAt,\n hasAudio: Boolean(this.#audio),\n hasAudioStream: Boolean(this.#audioStream),\n hasMediaStream: Boolean(this.#mediaStream),\n }\n );\n\n if (SCREEN_RECORDER_ERROR[error?.name]) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR[error.name],\n status: SCREEN_RECORDER_STATUS.idle,\n });\n } else if (this.#audio && !this.#audioStream) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n } else if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR[error?.name],\n status: SCREEN_RECORDER_STATUS.idle,\n });\n }\n }\n };\n\n #fireCallbacks = (event, args = []) => {\n this.#callbacks[event]?.forEach(callback => {\n callback(...args);\n });\n };\n\n #onRecordingStart = () => {\n this.#logger.info(\n \"MediaRecorder.onstart fired\",\n this.#summarizeRecorderState()\n );\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onStart);\n };\n\n #onRecordingActive = ({ data }) => {\n if (data.size <= 0) {\n this.#logger.warn(\"ondataavailable -> empty chunk, ignoring\", {\n chunkCount: this.#mediaChunks.length,\n });\n\n return;\n }\n this.#dataReceiving = true;\n\n this.#mediaChunks.push(data);\n const totalBytes = this.#mediaChunks.reduce(\n (sum, chunk) => sum + (chunk?.size ?? 0),\n 0\n );\n\n this.#logger.info(\"ondataavailable -> chunk received\", {\n chunkBytes: data.size,\n chunkType: data.type,\n chunkCount: this.#mediaChunks.length,\n totalBytes,\n recorderState: this.#mediaRecorder?.state,\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDataAvailable, [data]);\n };\n\n #onRecordingStop = () => {\n const totalBytes = this.#mediaChunks.reduce(\n (sum, chunk) => sum + (chunk?.size ?? 0),\n 0\n );\n\n this.#logger.info(\"MediaRecorder.onstop fired\", {\n ...this.#summarizeRecorderState(),\n totalBytes,\n mediaStreamActive: this.#mediaStream?.active,\n });\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopped });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onStop);\n\n // If mediaStream is active after stopping mediaRecorder, then that means that\n // we are restarting and not stopping.\n if (this.#mediaStream?.active) {\n this.#logger.info(\n \"onRecordingStop -> mediaStream still active, transitioning to restarting\"\n );\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.restarting });\n }\n };\n\n #queryMicPermissionState = async () => {\n try {\n const result = await window.navigator.permissions.query({\n name: \"microphone\",\n });\n\n return result.state;\n } catch (error) {\n // Permissions API or the \"microphone\" descriptor is unsupported\n // (e.g. Safari). Fall through to the live getUserMedia attempt.\n this.#logger.info(\n \"queryMicPermissionState -> unsupported\",\n this.#serializeError(error)\n );\n\n return \"prompt\";\n }\n };\n\n #serializeError = error => {\n if (!error) return { error: null };\n\n return {\n name: error.name,\n message: error.message,\n stack: error.stack,\n code: error.code,\n constraint: error.constraint,\n };\n };\n\n #summarizeStream = stream => {\n if (!stream) return null;\n\n const summarizeTrack = track => ({\n kind: track.kind,\n readyState: track.readyState,\n enabled: track.enabled,\n muted: track.muted,\n label: track.label,\n settings:\n typeof track.getSettings === \"function\"\n ? track.getSettings()\n : undefined,\n });\n\n return {\n id: stream.id,\n active: stream.active,\n videoTracks: stream.getVideoTracks?.().map(summarizeTrack) ?? [],\n audioTracks: stream.getAudioTracks?.().map(summarizeTrack) ?? [],\n };\n };\n\n #summarizeRecorderState = (extra = {}) => ({\n recorderState: this.#mediaRecorder?.state,\n status: this.#store.getState().status,\n elapsedTime: this.#store.getState().elapsedTime,\n chunkCount: this.#mediaChunks.length,\n dataReceiving: this.#dataReceiving,\n countdownTimeLeft: this.#store.getState().countdownTimeLeft,\n ...extra,\n });\n\n // `delayMs` only exists to keep the start chime out of the recording; when no\n // chime plays (countdown skipped or disabled) we start immediately so the\n // recorder begins ticking without a perceptible gap.\n #startMediaRecorder = (delayMs = 0) => {\n this.#logger.info(\"startMediaRecorder -> scheduled\", {\n delayMs,\n ...this.#summarizeRecorderState(),\n });\n\n this.#startRecordingTimeoutID = setTimeout(() => {\n try {\n if (!this.#mediaRecorder) {\n this.#logger.error(\n \"startMediaRecorder -> aborted, mediaRecorder is null\",\n this.#summarizeRecorderState()\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n return;\n }\n\n if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#logger.error(\n \"startMediaRecorder -> aborted, media stream unavailable or ended\",\n {\n hasMediaStream: Boolean(this.#mediaStream),\n isEnded: this.#mediaStream\n ? isStreamEnded(this.#mediaStream)\n : true,\n stream: this.#summarizeStream(this.#mediaStream),\n }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n return;\n }\n\n if (this.#mediaRecorder?.state === \"recording\") {\n this.#logger.warn(\n \"startMediaRecorder -> mediaRecorder already recording, skipping\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"startMediaRecorder -> calling start()\", {\n timesliceMs: 5000,\n ...this.#summarizeRecorderState(),\n });\n this.#mediaRecorder.start(5000);\n\n // Titles the recording from its opening seconds, while it is still\n // being made. Skipped when there is nothing that could carry speech.\n if (this.#hasSpeechSourceForTitle()) {\n getFastTitleRunner().start(this.#mediaStream);\n }\n\n this.#logger.info(\n \"startMediaRecorder -> start() returned\",\n this.#summarizeRecorderState()\n );\n this.#startTimer();\n } catch (error) {\n this.#logger.error(\n \"startMediaRecorder -> failed\",\n this.#serializeError(error),\n this.#summarizeRecorderState()\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n // To prevent triggering #onRecordingStop when the mediaRecorder is failed to start.\n if (this.#mediaRecorder) {\n this.#mediaRecorder.onstop = noop;\n }\n\n if (this.#mediaStream) {\n this.#stopAllStreams();\n this.#mediaStream = null;\n }\n this.#stream = null;\n this.#audioStream = null;\n this.#micAudioStream = null;\n this.#mediaRecorder = null;\n\n throw error;\n }\n }, delayMs);\n };\n\n #startCountdown = () => {\n if (this.#countdownTimerId) {\n this.#logger.warn(\n \"startCountdown -> already running, ignoring\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"startCountdown -> begin\", {\n countdownTimeLeft: this.#store.getState().countdownTimeLeft,\n playCountdownAudio: this.#playCountdownAudio,\n });\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownStart);\n\n this.#countdownTimerId = setInterval(() => {\n let shouldBeep = false;\n\n this.#store.setState(({ countdownTimeLeft }) => {\n if (countdownTimeLeft - ONE_SECOND > 0) {\n const next = countdownTimeLeft - ONE_SECOND;\n this.#logger.info(\"startCountdown -> tick\", {\n remaining: next,\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [next]);\n shouldBeep = true;\n\n return { countdownTimeLeft: next };\n }\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [0]);\n\n this.#logger.info(\"startCountdown -> end, starting recorder\");\n if (this.#playCountdownAudio) this.#startRecordingAudio.play();\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.recording });\n this.#startMediaRecorder(\n this.#playCountdownAudio ? HALF_A_SECOND_IN_MILLISECONDS : 0\n );\n\n clearInterval(this.#countdownTimerId);\n this.#countdownTimerId = null;\n\n return { countdownTimeLeft: 0 };\n });\n\n if (shouldBeep && this.#playCountdownAudio) this.#playCountdownBeep();\n }, ONE_SECOND_IN_MILLISECONDS);\n };\n\n #startTimer = () => {\n this.#lastTimerUpdatedAt = Date.now();\n this.#timerId = setInterval(() => {\n this.#store.setState(({ elapsedTime }) => {\n const now = Date.now();\n const newElapsedTime = elapsedTime + (now - this.#lastTimerUpdatedAt);\n this.#lastTimerUpdatedAt = now;\n\n this.#checkIfTimeLimitReached(newElapsedTime);\n\n return { elapsedTime: newElapsedTime };\n });\n }, TWO_HUNDRED_MILLISECONDS);\n };\n\n #stopTimer = () => {\n clearInterval(this.#timerId);\n\n const newElapsedTime =\n this.#store.getState().elapsedTime +\n (Date.now() - this.#lastTimerUpdatedAt);\n\n this.#store.setState({ elapsedTime: newElapsedTime });\n };\n\n #checkIfTimeLimitReached = elapsedTime => {\n const oneMinuteBeforeTimeLimit =\n this.#timeLimit - ONE_MINUTE_IN_MILLISECONDS;\n\n if (elapsedTime <= oneMinuteBeforeTimeLimit) return;\n\n if (\n elapsedTime < this.#timeLimit &&\n elapsedTime > oneMinuteBeforeTimeLimit\n ) {\n if (not(this.#store.getState().showTimeLimitWarning)) {\n this.#logger.info(\"time limit warning threshold crossed\", {\n elapsedTime,\n timeLimit: this.#timeLimit,\n });\n this.#recordingLimitWarningAudio.play();\n }\n this.#store.setState({ showTimeLimitWarning: true });\n\n return;\n }\n\n this.#logger.info(\"time limit reached, stopping recording\", {\n elapsedTime,\n timeLimit: this.#timeLimit,\n });\n this.#stopRecordingDueToLimitReachedAudio.play();\n this.stopRecording();\n };\n}\n\nconst screenRecorder = new ScreenRecorder(true, {\n displaySurface: DISPLAY_SURFACE.monitor,\n height: { max: 2160 },\n width: { max: 3840 },\n});\n\nexport default screenRecorder;\n","import { useSyncExternalStore } from \"react\";\n\nimport { getMultipartS3Uploader } from \"neetomediarecorder/core\";\n\nconst listeners = new Set();\n\nconst subscribe = listener => {\n listeners.add(listener);\n\n return () => listeners.delete(listener);\n};\n\nconst triggerStatusChange = () => {\n listeners.forEach(listener => listener());\n};\n\nconst getSnapshot = () => getMultipartS3Uploader().status;\n\nconst useMultipartS3UploadStatus = () => {\n const status = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n return { status, isStatus: (...statuses) => statuses.includes(status) };\n};\n\nuseMultipartS3UploadStatus.triggerStatusChange = triggerStatusChange;\n\nexport default useMultipartS3UploadStatus;\n"],"names":["_typeof","assertClassBrand","classPrivateFieldGet2","classApplyDescriptorSet","classApplyDescriptorGet","require$$0","show","_ref","recordingId","axios","get","concat","encodeURIComponent","fastTitleApi","createPrefixedLogger","prefix","info","_logger","_len","arguments","length","args","Array","_key","logger","apply","error","_logger2","_len2","_key2","warn","_logger3","_len3","_key3","debug","_logger4","_len4","_key4","FAST_TITLE_WINDOW_MS","FAST_TITLE_MIME_TYPES","FAST_TITLE_AUDIO_BITS_PER_SECOND","supportedMimeType","find","type","MediaRecorder","isTypeSupported","WeakMap","_recorder","_tracks","_recordingId","_mimeType","_finished","_reset","_onWindowClosed","_upload","FastTitleRunner","_this","_classCallCheck","_classPrivateFieldInitSpec","writable","value","_defineProperty","_classPrivateFieldSet","mediaStream","_mediaStream$getAudio","_mediaStream$getAudio2","isRunning","audioTracks","getAudioTracks","call","isEmpty","_classPrivateFieldGet","map","track","clone","MediaStream","mimeType","audioBitsPerSecond","ondataavailable","onerror","event","_event$error","name","stop","start","trackCount","message","_classPrivateFieldGet2","state","pause","_classPrivateFieldGet3","resume","forEach","_value","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_event$data","_event$data$size","_event$data2","audio","wrap","_callee$","_context","prev","next","abrupt","data","size","hasRecordingId","Boolean","t0","_x","_value2","_callee2","startedAt","_yield$fastTitleApi$s","uploadUrl","response","_callee2$","_context2","performance","now","sent","fetch","method","headers","body","ok","Error","status","bytes","ms","Math","round","key","URL","pathname","replace","_x2","_x3","_createClass","runner","getFastTitleRunner","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","ONE_SECOND_IN_MILLISECONDS","HALF_A_SECOND_IN_MILLISECONDS","TWO_HUNDRED_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_SECOND","SCREEN_RECORDER_STATUS","media_aborted","permission_denied","no_specified_media_found","media_in_use","invalid_media_constraints","no_chrome_flags_set","recorder_error","idle","acquiring_media","media_acquired","restarting","recording","stopping","stopped","paused","SCREEN_RECORDER_ERROR","MicPermissionDenied","AbortError","NotAllowedError","NotFoundError","NotReadableError","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","FailedToStart","CreateRecordingError","InsufficientData","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","onReUpload","onCountdownStart","onCountdown","onCountdownEnd","onCountdownSkip","onShareSelected","onUnexpectedEnd","TOTAL_RETRIES","ABORT_UPLOAD_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","DEFAULT_RETRY_CONFIG","retries","retryDelay","HAS_CHROME_NAMESPACE","chrome","IS_EXTENSION","isNotNil","extension","IS_SAFARI","platform","MIME_TYPE","mp4","webmH264Opus","webmH264","webmVp9Opus","webmVp9","webmVp8Opus","webmVp8","webm","START_RECORDING_SOUND","COUNTDOWN_TICK_SOUND","STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND","RECORDING_LIMIT_REACHED_WARNING_SOUND","RECORDING_TIME_LIMIT_FREE_PLAN","setPrototypeOf","assertThisInitialized","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","getPrototypeOf","sleep","delay","Promise","resolve","setTimeout","RetryError","_Error","_inherits","_super","_createSuper","_wrapNativeSuper","buildRetryableApi","apiConnector","undefined","_ref$retries","_ref$retryDelay","_ref2","apiConnectorArgs","_config$signal","_config$signal2","_apiConnectorArgs$con","config","remainingAttempts","shouldCancelRetries","_error$config","_error$response","_error$response2","signal","aborted","CanceledError","addEventListener","isCancel","url","min","create","payload","post","abortUpload","retryableCreate","abortUploadApi","completeUpload","completeUploadApi","partPresignedUrl","partPresignedUrlApi","getUnSupportedConstraints","mediaType","supportedMediaConstraints","navigator","mediaDevices","getSupportedConstraints","Object","keys","filter","constraint","checkConstraints","isNil","mediaTypes","unSupportedConstraints","flat","isNotEmpty","join","isStreamEnded","existsBy","readyState","getTracks","getSupportedMimeType","_candidates$find","candidates","getMediaRecorderOptions","isMp4Supported","includes","addGainNode","audioStream","gain","audioContext","AudioContext","audioStreamSource","createMediaStreamSource","destinationStream","createMediaStreamDestination","gainNode","createGain","connect","stream","s3AxiosInstance","interceptors","use","identity","reject","presignedUpload","presignedUrl","blob","put","retryablePresignedUpload","s3Api","isNotCancelledRequest","resolvedResponse","calculateUploadProgress","uploadProgress","total","values","reduce","sum","part","uploaded","_uploadId","_unUploadedChunks","_partNumber","_s3PartUploadPromises","_callbacks","_abortController","_pendingS3ChunkUploads","_completeUploadPromise","_failedUpload","_uploadProgress","_lastLoggedOverallPercent","_status","_id","_status2","_fireCallbacks","_handleChunkUploadError","_serializeUploadError","_uploadChunkToS","_getCurrentUnUploadedBlob","_isRecordingNotSet","_isTerminalStatus","MultipartS3Uploader","_get_isTerminalStatus","set","_get_isRecordingNotSet","_set_status","uuidv4","uploadId","isNewUpload","AbortController","chunkBytes","push","unUploadedBytes","chunkType","bufferedChunks","bufferedBytes","bufferedMB","Number","toFixed","threshold","MIN_UPLOAD_CHUNK_SIZE","uploadChunkToS3Promise","parts","sessionLogs","isMp4","logs","completeStartedAt","lastChunkBytes","resolvedS3PartUploadPromises","notifyStartedAt","Date","pendingChunks","totalPartsStarted","UPLOAD_STATUS","uploading","pendingS3ChunkUploads","all","s3PartUploadPromises","failedPartNumbers","UPLOAD_EVENT","onError","insufficient_data","etag","partNumber","request","responseURL","searchParams","toSorted","a","b","partCount","completeUploadNotifyServer","notifyDurationMs","totalDurationMs","aborting","completed","onComplete","_objectSpread","finish","forceAbort","abortStartedAt","phase","_args2","partsStarted","hasAbortController","abort","durationMs","onAbort","t1","callback","_classPrivateFieldGet4","existingCallbacks","_toConsumableArray","_classPrivateFieldGet5","registeredCallbacks","updatedCallbacks","isNot","_classPrivateFieldGet6","context","uploadStatus","_error$response3","_error$response4","code","stack","responseStatus","responseStatusText","statusText","responseData","slice","_classPrivateFieldGet7","_callee3","chunks","_this$partNumber","_classPrivateFieldGet8","partBlob","partBytes","presignStartedAt","_yield$_this$generate","uploadStartedAt","s3PartUploadPromise","_callee3$","_context3","Blob","partMB","generatePreSignedUrl","presignDurationMs","includeMetadataInResponse","onUploadProgress","e","loaded","percentCompleted","overallPercent","partLoaded","partTotal","onProgress","then","_response$headers","throughputMbps","httpStatus","uploadDurationMs","minUploadChunkSize","useMultipartS3UploadStatus","triggerStatusChange","multipartS3Uploader","getMultipartS3Uploader","_ref3","_ref3$initialize","initialize","arrayWithHoles","iterableToArrayLimit","nonIterableRest","DISPLAY_SURFACE","monitor","initialState","elapsedTime","countdownTimeLeft","COUNTDOWN_TIME","showTimeLimitWarning","prepareStore","withImmutableActions","resetState","_audio","_video","_videoStream","_mediaRecorder","_mediaStream","_store","_mediaChunks","_lastTimerUpdatedAt","_timerId","_countdownTimerId","_startRecordingAudio","_countdownTickAudio","_recordingLimitWarningAudio","_stopRecordingDueToLimitReachedAudio","_stream","_audioStream","_micAudioStream","_timeLimit","_startRecordingTimeoutID","_enableNoiseCancellation","_showCountdown","_playCountdownAudio","_dataReceiving","_recordSystemAudio","_hasSpeechSourceForTitle","_stopAllStreams","_playCountdownBeep","_checkCompatibility","_acquireMediaStream","_onRecordingStart","_onRecordingActive","_onRecordingStop","_queryMicPermissionState","_serializeError","_summarizeStream","_summarizeRecorderState","_startMediaRecorder","_startCountdown","_startTimer","_stopTimer","_checkIfTimeLimitReached","ScreenRecorder","video","Audio","displaySurface","height","getVideoConfig","width","max","getResolution","showCountdown","timeLimit","setState","options","recordSystemAudio","enableNoiseCancellation","hasInjectedVideoStream","pick","initialStoreState","hasMediaStream","isEnded","videoBitsPerSecond","onstart","onstop","chunkCount","removeCallback","clearTimeout","clearInterval","removeAllCallbacksByEvent","startRecording","getState","_classPrivateFieldGet9","_classPrivateFieldGet10","_classPrivateFieldGet11","_classPrivateFieldGet12","_classPrivateFieldGet13","_slicedToArray","micTrack","micLive","muted","enabled","hasSystemAudio","_classPrivateFieldGet14","_classPrivateFieldGet15","_classPrivateFieldGet16","_classPrivateFieldGet17","_classPrivateFieldGet18","_classPrivateFieldGet19","micAudioStream","currentTime","play","_navigator$mediaDevic","hasDisplayCapture","getDisplayMedia","acquireStartedAt","micState","constraints","displayMediaStartedAt","audioConfig","micStartedAt","workletUrl","workletStartedAt","noiseSuppressorNode","finalStream","_audioContext","desktopAudio","microphoneAudio","combinedAudio","window","echoCancellation","deviceId","exact","t2","getUserMedia","t3","runtime","getURL","audioWorklet","addModule","AudioWorkletNode","t4","t5","audioConfigRequested","getVideoTracks","_classPrivateFieldGet20","_classPrivateFieldGet21","hasUnexpectedEndHandler","recorderState","stopRecording","addTrack","t6","hasAudio","hasAudioStream","_classPrivateFieldGet22","_ref4","_classPrivateFieldGet23","totalBytes","chunk","_chunk$size","_classPrivateFieldGet24","_classPrivateFieldGet25","_chunk$size2","mediaStreamActive","active","result","permissions","query","_stream$getVideoTrack","_stream$getVideoTrack2","_stream$getAudioTrack","_stream$getAudioTrack2","summarizeTrack","kind","label","settings","getSettings","id","videoTracks","_classPrivateFieldGet26","extra","dataReceiving","delayMs","_classPrivateFieldGet27","timesliceMs","noop","playCountdownAudio","setInterval","shouldBeep","_ref5","remaining","_ref6","newElapsedTime","oneMinuteBeforeTimeLimit","not","_classPrivateFieldGet28","_classPrivateFieldGet29","_ref7","_ref8","videoTrack","screenRecorder","listeners","Set","subscribe","listener","add","getSnapshot","useSyncExternalStore","isStatus","statuses"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,21,22,23,24,25,26,27,28,29,31,32,33,34,35,36,37,38,39,49,50,51,52]}
|
|
1
|
+
{"version":3,"file":"core.js","sources":["node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/@babel/runtime/helpers/esm/typeof.js","node_modules/@babel/runtime/helpers/esm/toPrimitive.js","node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","node_modules/@babel/runtime/helpers/esm/createClass.js","node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","node_modules/@babel/runtime/helpers/typeof.js","node_modules/@babel/runtime/helpers/regeneratorRuntime.js","node_modules/@babel/runtime/regenerator/index.js","src/apis/fast_title.js","src/utils/createPrefixedLogger.js","src/core/fastTitle/constants.js","src/core/fastTitle/index.js","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/uuid/dist/esm-browser/stringify.js","node_modules/uuid/dist/esm-browser/rng.js","node_modules/uuid/dist/esm-browser/native.js","node_modules/uuid/dist/esm-browser/v4.js","src/constants.js","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/inherits.js","node_modules/@babel/runtime/helpers/esm/assertThisInitialized.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/utils/index.js","src/utils/buildRetryableApi.js","src/apis/abort_upload.js","src/apis/complete_upload.js","src/apis/part_presigned_url.js","src/core/screenRecorder/utils.js","src/apis/s3.js","src/core/multipartS3Uploader/utils.js","src/core/multipartS3Uploader/index.js","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/core/screenRecorder/constants.js","src/core/screenRecorder/stores/index.js","src/core/screenRecorder/index.js","src/components/MediaRecorder/hooks/useMultipartS3UploadStatus.js"],"sourcesContent":["function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _classApplyDescriptorSet(e, t, l) {\n if (t.set) t.set.call(e, l);else {\n if (!t.writable) throw new TypeError(\"attempted to set read only private field\");\n t.value = l;\n }\n}\nexport { _classApplyDescriptorSet as default };","function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}\nexport { _assertClassBrand as default };","import assertClassBrand from \"./assertClassBrand.js\";\nfunction _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}\nexport { _classPrivateFieldGet2 as default };","import classApplyDescriptorSet from \"./classApplyDescriptorSet.js\";\nimport classPrivateFieldGet2 from \"./classPrivateFieldGet2.js\";\nfunction _classPrivateFieldSet(e, t, r) {\n var s = classPrivateFieldGet2(t, e);\n return classApplyDescriptorSet(e, s, r), r;\n}\nexport { _classPrivateFieldSet as default };","function _classApplyDescriptorGet(e, t) {\n return t.get ? t.get.call(e) : t.value;\n}\nexport { _classApplyDescriptorGet as default };","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classPrivateFieldGet2 from \"./classPrivateFieldGet2.js\";\nfunction _classPrivateFieldGet(e, t) {\n var r = classPrivateFieldGet2(t, e);\n return classApplyDescriptorGet(e, r);\n}\nexport { _classPrivateFieldGet as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import axios from \"axios\";\n\n// Where a recording's opening audio is PUT. Uploading it is the whole handoff —\n// the bucket triggers a lambda which titles the recording and reports it to the\n// server, so there is no second call to make.\n//\n// A nil upload_url means the recording already has a title, which is the\n// caller's signal to stop.\nconst show = ({ recordingId }) =>\n axios.get(\n `/api/v1/recordings/${encodeURIComponent(\n recordingId\n )}/fast_title_upload_url`\n );\n\nconst fastTitleApi = { show };\n\nexport default fastTitleApi;\n","const createPrefixedLogger = prefix => ({\n info: (...args) => logger.info(prefix, ...args),\n error: (...args) => logger.error(prefix, ...args),\n warn: (...args) => logger.warn(prefix, ...args),\n debug: (...args) => logger.debug(prefix, ...args),\n});\n\nexport default createPrefixedLogger;\n","// How much of the opening to transcribe. Long enough that a recording has\n// usually said something, short enough that the title is saved well before the\n// user stops — which is the whole point, since a link pasted right after\n// recording is what the unfurl cache captures.\n//\n// There is only ever one window. The title is built from whatever these seconds\n// contain rather than waiting for a clearly stated topic, so a second attempt\n// would rarely say anything new.\nexport const FAST_TITLE_WINDOW_MS = 20_000;\n\n// Ordered by preference. Opus at a low bitrate is all the transcription API\n// consumes, and keeps the window small enough that the upload never dominates.\n//\n// Independent of the video format: this records audio only, so a recording made\n// in MP4 still captures its opening as Opus. The MP4 entries are the fallback\n// for a browser whose MediaRecorder cannot do audio/webm at all — Safari.\nexport const FAST_TITLE_MIME_TYPES = [\n \"audio/webm;codecs=opus\",\n \"audio/ogg;codecs=opus\",\n \"audio/webm\",\n \"audio/mp4;codecs=mp4a.40.2\",\n \"audio/mp4\",\n];\n\nexport const FAST_TITLE_AUDIO_BITS_PER_SECOND = 24_000;\n","import { isEmpty } from \"ramda\";\n\nimport fastTitleApi from \"src/apis/fast_title\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport {\n FAST_TITLE_WINDOW_MS,\n FAST_TITLE_MIME_TYPES,\n FAST_TITLE_AUDIO_BITS_PER_SECOND,\n} from \"./constants\";\n\nconst supportedMimeType = () =>\n FAST_TITLE_MIME_TYPES.find(type => MediaRecorder.isTypeSupported(type));\n\n/**\n * Titles a recording while it is still being made.\n *\n * Link unfurlers (Slack, X, Teams) fetch a page's metadata the first time\n * somebody pastes the URL and cache it per URL, with no purge API worth relying\n * on — so whatever title exists at that moment is the one that sticks. Titling\n * after the upload finishes can lose that race. Titling during the recording\n * does not: for anything longer than about half a minute the title is saved\n * before the user presses stop.\n *\n * Runs a second, audio-only MediaRecorder over cloned audio tracks. When its\n * first window closes it PUTs that audio to S3 and stops. The upload is the\n * whole handoff: the bucket triggers a lambda which titles the recording and\n * reports it to the server, so there is no result to wait for here.\n *\n * It shares no object with the real recorder, and every failure path is a no-op\n * — the transcode lambda still titles the recording from its full transcript\n * afterwards.\n */\nclass FastTitleRunner {\n #logger = createPrefixedLogger(\"[FastTitle]\");\n #recorder;\n #tracks = [];\n #recordingId = null;\n #mimeType;\n #finished = false;\n\n get isRunning() {\n return Boolean(this.#recorder) && !this.#finished;\n }\n\n // Set once the recording exists. It is created asynchronously and usually\n // lands well before the first window closes.\n setRecordingId = recordingId => {\n this.#recordingId = recordingId;\n };\n\n /**\n * @param {MediaStream} mediaStream the stream being recorded; its audio tracks\n * are cloned so nothing here can disturb the real recorder\n */\n start = mediaStream => {\n if (this.isRunning) return;\n\n const audioTracks = mediaStream?.getAudioTracks?.() ?? [];\n if (isEmpty(audioTracks)) {\n this.#logger.info(\"start -> no audio track, skipping\");\n\n return;\n }\n\n this.#mimeType = supportedMimeType();\n if (!this.#mimeType) {\n this.#logger.info(\"start -> no supported audio mime type, skipping\");\n\n return;\n }\n\n this.#reset();\n\n try {\n // Cloned rather than shared: a clone is an independent track, so a second\n // MediaRecorder reading it cannot affect the one producing the actual\n // recording. Clones must be stopped explicitly or they outlive the take.\n this.#tracks = audioTracks.map(track => track.clone());\n\n this.#recorder = new MediaRecorder(new MediaStream(this.#tracks), {\n mimeType: this.#mimeType,\n audioBitsPerSecond: FAST_TITLE_AUDIO_BITS_PER_SECOND,\n });\n this.#recorder.ondataavailable = this.#onWindowClosed;\n this.#recorder.onerror = event => {\n this.#logger.error(\"recorder error\", event?.error?.name);\n this.stop();\n };\n this.#recorder.start(FAST_TITLE_WINDOW_MS);\n\n this.#logger.info(\"start -> recording opening audio\", {\n mimeType: this.#mimeType,\n trackCount: this.#tracks.length,\n });\n } catch (error) {\n this.#logger.error(\"start -> failed\", error?.message);\n this.stop();\n }\n };\n\n pause = () => {\n if (this.#recorder?.state === \"recording\") this.#recorder.pause();\n };\n\n resume = () => {\n if (this.#recorder?.state === \"paused\") this.#recorder.resume();\n };\n\n stop = () => {\n this.#finished = true;\n\n try {\n if (this.#recorder && this.#recorder.state !== \"inactive\") {\n // No final flush: audio sent now would arrive while the recording is\n // already uploading, which is what the transcode lambda is for.\n this.#recorder.ondataavailable = null;\n this.#recorder.stop();\n }\n } catch (error) {\n this.#logger.error(\"stop -> error stopping recorder\", error?.message);\n }\n\n this.#tracks.forEach(track => track.stop());\n this.#reset();\n };\n\n #reset = () => {\n this.#recorder = null;\n this.#tracks = [];\n this.#finished = false;\n };\n\n // Fires once, when the first window closes. Whatever it holds is the title's\n // only source, so this uploads it and stops.\n #onWindowClosed = async event => {\n if (this.#finished) return;\n\n if (!event.data?.size || !this.#recordingId) {\n this.#logger.info(\"nothing to send, stopping\", {\n size: event.data?.size ?? 0,\n hasRecordingId: Boolean(this.#recordingId),\n });\n this.stop();\n\n return;\n }\n\n // Stopped up front: this runs once either way, and stopping first means a\n // slow upload cannot overlap a second window.\n const audio = event.data;\n const recordingId = this.#recordingId;\n this.stop();\n\n try {\n await this.#upload(recordingId, audio);\n } catch (error) {\n // Not fatal: the transcode lambda still titles the recording from its\n // full transcript afterwards.\n this.#logger.error(\"upload failed\", error?.message);\n }\n };\n\n #upload = async (recordingId, audio) => {\n const startedAt = performance.now();\n\n // Already the response body: the host app's axios interceptors unwrap it,\n // the same way generatePreSignedUrl's caller destructures its result.\n const { uploadUrl } = await fastTitleApi.show({ recordingId });\n\n if (!uploadUrl) {\n this.#logger.info(\"not wanted for this recording\");\n\n return;\n }\n\n // Straight to S3, deliberately not through the app's axios: a presigned PUT\n // carries its own auth in the query string, and the shared interceptors\n // would strip credentials cross-origin and serialize the Blob away.\n const response = await fetch(uploadUrl, {\n method: \"PUT\",\n headers: { \"Content-Type\": this.#mimeType },\n body: audio,\n });\n\n if (!response.ok) throw new Error(`audio upload ${response.status}`);\n\n // The last thing this client will say about the recording. Uploading is the\n // whole handoff — the bucket triggers a lambda which transcribes, titles and\n // reports the title to the server — so nothing further appears here whether\n // it succeeds or finds nothing to title.\n this.#logger.info(\"upload succeeded -> handed off for titling\", {\n recordingId,\n bytes: audio.size,\n mimeType: this.#mimeType,\n ms: Math.round(performance.now() - startedAt),\n // Path only. The query string of a presigned URL carries its signature.\n key: new URL(uploadUrl).pathname.replace(/^\\//, \"\"),\n });\n };\n}\n\nlet runner = null;\n\nexport const getFastTitleRunner = () => {\n if (!runner) runner = new FastTitleRunner();\n\n return runner;\n};\n\nexport default FastTitleRunner;\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as 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}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFNckMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0FBRS9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3QixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFNekQsT0FBTyxDQUNMLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixHQUFHO1FBQ0gsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRztRQUNILFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDNUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQU8xQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUMifQ==","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm5nLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm5nLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsSUFBSSxlQUEwRCxDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLFVBQVUsR0FBRztJQUV6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwwR0FBMEcsQ0FDM0csQ0FBQztRQUNKLENBQUM7UUFFRCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMifQ==","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLEdBQ2QsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdkYsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDIn0=","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random || (options.rng || rng)();\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJakQsU0FBUyxFQUFFLENBQUMsT0FBeUIsRUFBRSxHQUFnQixFQUFFLE1BQWU7SUFDdEUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBRXhCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFHdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBR2xDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxlQUFlLEVBQUUsQ0FBQyJ9","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\nimport { HELP_DOCS_BASE_URL } from \"./helpUrls\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRYABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\nexport const TWO_HUNDRED_MILLISECONDS = 200;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;\nexport const ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;\n\nexport const ONE_SECOND = 1;\n\nexport const COUNTDOWN_TIME = 3;\n\nexport const UPLOAD_EVENT = {\n onComplete: \"onComplete\",\n onError: \"onError\",\n onProgress: \"onProgress\",\n};\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n insufficient_data: \"insufficient_data\",\n error: \"error\",\n};\n\nexport const SCREEN_RECORDER_STATUS = {\n media_aborted: \"media_aborted\",\n permission_denied: \"permission_denied\",\n no_specified_media_found: \"no_specified_media_found\",\n media_in_use: \"media_in_use\",\n invalid_media_constraints: \"invalid_media_constraints\",\n no_chrome_flags_set: \"no_chrome_flags_set\",\n recorder_error: \"recorder_error\",\n idle: \"idle\",\n acquiring_media: \"acquiring_media\",\n media_acquired: \"media_acquired\",\n restarting: \"restarting\",\n recording: \"recording\",\n stopping: \"stopping\",\n stopped: \"stopped\",\n paused: \"paused\",\n};\n\nexport const SCREEN_RECORDER_ERROR = {\n MicPermissionDenied: \"mic_permission_denied\",\n AbortError: \"media_aborted\",\n NotAllowedError: \"permission_denied\",\n NotFoundError: \"no_specified_media_found\",\n NotReadableError: \"media_in_use\",\n OverconstrainedError: \"invalid_media_constraints\",\n TypeError: \"no_chrome_flags_set\",\n None: \"\",\n NoRecorder: \"recorder_error\",\n UnSupportedBrowser: \"unsupported_browser\",\n FailedToStart: \"failed_to_start\",\n CreateRecordingError: \"create_recording_error\",\n InsufficientData: \"insufficient_data\",\n};\n\nexport const SCREEN_RECORDER_EVENT = {\n onStart: \"onStart\",\n onStop: \"onStop\",\n onDiscard: \"onDiscard\",\n onDataAvailable: \"onDataAvailable\",\n onDiscardDuringCountdown: \"onDiscardDuringCountdown\",\n onRestart: \"onRestart\",\n onReUpload: \"onReUpload\",\n onReUploadFromDisk: \"onReUploadFromDisk\",\n onPause: \"onPause\",\n onResume: \"onResume\",\n onCountdownStart: \"onCountdownStart\",\n onCountdown: \"onCountDown\",\n onCountdownEnd: \"onCountdownEnd\",\n onCountdownSkip: \"onCountdownSkip\",\n onShareSelected: \"onShareSelected\",\n // Fired when the capture ends without the app calling stop() — i.e. the\n // browser's \"Stop sharing\" pill or an OS-level termination (resource\n // pressure, source closed, permission revoked). The two are\n // indistinguishable in the Web/extension APIs, so consumers should surface\n // both possibilities. If no consumer subscribes, the recorder falls back to\n // finalizing the recording (stopRecording).\n onUnexpectedEnd: \"onUnexpectedEnd\",\n};\n\nexport const TOTAL_RETRIES = 15;\nexport const ABORT_UPLOAD_RETRIES = 2;\nexport const INITIAL_RETRY_DELAY = 4000;\nexport const MAX_RETRY_DELAY = 16000;\n\nexport const DEFAULT_RETRY_CONFIG = {\n retries: TOTAL_RETRIES,\n retryDelay: INITIAL_RETRY_DELAY,\n retryableStatuses: [],\n};\n\n// No need to localize this since it will only be used in the code\n// eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\nexport const NETWORK_ERROR = \"Network Error\";\nexport const TIMEOUT_ERROR = \"ECONNABORTED\";\n\nexport const HAS_CHROME_NAMESPACE = typeof chrome === \"object\";\n\nexport const IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);\n\nexport const IS_SAFARI = platform.name === \"Safari\";\n\nexport const IS_SAFARI_EXTENSION = IS_SAFARI && IS_EXTENSION;\n\nexport const PERMISSIONS_HELP_DOC = `${HELP_DOCS_BASE_URL}/p/a-10efcfd7`;\n\n// Firefox refuses to start a MediaRecorder on a stream that has both audio and\n// video tracks unless the MIME string declares the audio codec too. Chromium\n// and Safari accept the video-only form and silently pick Opus/AAC. We keep\n// both variants and always prefer the codec-complete ones in\n// getSupportedMimeType so a single code path works across browsers.\nexport const MIME_TYPE = {\n mp4: \"video/mp4\",\n webmH264Opus: \"video/webm;codecs=h264,opus\",\n webmH264: \"video/webm;codecs=h264\",\n webmVp9Opus: \"video/webm;codecs=vp9,opus\",\n webmVp9: \"video/webm;codecs=vp9\",\n webmVp8Opus: \"video/webm;codecs=vp8,opus\",\n webmVp8: \"video/webm;codecs=vp8\",\n webm: \"video/webm\",\n};\n\nexport const START_RECORDING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3\";\n\nexport const COUNTDOWN_TICK_SOUND =\n \"https://neeto-record-static-assets.s3.us-east-1.amazonaws.com/recording-tick-sound.mp3\";\n\nexport const STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3\";\n\nexport const RECORDING_LIMIT_REACHED_WARNING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3\";\n\nexport const RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes\nexport const RECORDING_TIME_LIMIT_PRO_PLAN = 2 * ONE_HOUR_IN_MILLISECONDS; // 2 hours\n\nexport const MIC_NOT_WORKING_ALERT_TIME = 30;\nexport const MIC_NOT_WORKING_SILENCE_TIMEOUT =\n MIC_NOT_WORKING_ALERT_TIME * 1000;\n","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","export const sleep = delay =>\n new Promise(resolve => setTimeout(resolve, delay));\n\nexport const generatePublicUrl = (\n recordingId,\n baseURL = window.location.origin\n) => `${baseURL}/watch/${recordingId}`;\n","// Axios is required here to detect CancelledError so retries can be skipped\n// when an AbortController fires after the request was queued. The filename\n// rule fires because of this axios import — this file is a retry helper, not\n// an API connector, so the snake_case requirement doesn't apply.\n/* eslint-disable\n @bigbinary/neeto/no-axios-import-outside-apis,\n @bigbinary/neeto/use-snake-case-for-api-connector-filename */\nimport axios from \"axios\";\nimport { min } from \"ramda\";\n\nimport {\n DEFAULT_RETRY_CONFIG,\n INITIAL_RETRY_DELAY,\n MAX_RETRY_DELAY,\n TOTAL_RETRIES,\n} from \"src/constants\";\nimport { sleep } from \"utils\";\n\nclass RetryError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\nconst buildRetryableApi =\n (\n apiConnector,\n {\n retries = TOTAL_RETRIES,\n retryDelay = INITIAL_RETRY_DELAY,\n } = DEFAULT_RETRY_CONFIG\n ) =>\n async apiConnectorArgs => {\n const { config = null } = apiConnectorArgs;\n\n // If the signal is already aborted before we start, addEventListener(\"abort\")\n // will never fire — so we'd otherwise run the full retry/backoff schedule\n // against an aborted request. Throw an axios CanceledError so callers'\n // `axios.isCancel` checks treat this as cancellation instead of a real\n // failure (e.g. completeUpload won't flip status to \"error\" while a\n // parallel abortUpload is finishing).\n if (config?.signal?.aborted) {\n throw new axios.CanceledError(\"Request cancelled\");\n }\n\n let remainingAttempts = retries + 1;\n let shouldCancelRetries = false;\n\n config?.signal?.addEventListener(\"abort\", () => {\n shouldCancelRetries = true;\n });\n\n while (remainingAttempts-- && !shouldCancelRetries) {\n try {\n return await apiConnector(apiConnectorArgs);\n } catch (error) {\n // Cancelled requests should bail immediately rather than spend the\n // full retry budget (4s + 8s + 16s × N) waiting on a dead signal.\n if (axios.isCancel(error)) throw error;\n\n logger.error(\n \"buildRetryableApi -> Failed to connect, remainingAttempts:\",\n error?.config?.url,\n error.response?.status,\n remainingAttempts\n );\n\n if (error.response?.status !== 401 && remainingAttempts > 0) {\n logger.info(\n \"buildRetryableApi -> Failed to connect -> retry in:\",\n retryDelay\n );\n await sleep(retryDelay);\n retryDelay = min(retryDelay * 2, MAX_RETRY_DELAY);\n if (shouldCancelRetries) throw error;\n } else {\n throw error;\n }\n }\n }\n\n throw new RetryError(\"Request cancelled or request retries exhausted\");\n };\n\nexport default buildRetryableApi;\n","import axios from \"axios\";\n\nimport { ABORT_UPLOAD_RETRIES } from \"src/constants\";\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload }) =>\n axios.post(`/api/v1/recordings/${recordingId}/abort_upload`, {\n abortUpload: payload,\n });\n\nconst retryableCreate = buildRetryableApi(create, {\n retries: ABORT_UPLOAD_RETRIES,\n});\n\nconst abortUploadApi = { create: retryableCreate };\n\nexport default abortUploadApi;\n","import axios from \"axios\";\n\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload, config }) =>\n axios.post(\n `/api/v1/recordings/${recordingId}/complete_upload`,\n { completeUpload: payload },\n config\n );\n\nconst retryableCreate = buildRetryableApi(create);\n\nconst completeUploadApi = { create: retryableCreate };\n\nexport default completeUploadApi;\n","import axios from \"axios\";\n\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload, config }) =>\n axios.post(\n `/api/v1/recordings/${recordingId}/part_presigned_url`,\n { partPresignedUrl: payload },\n config\n );\n\nconst retryableCreate = buildRetryableApi(create);\n\nconst partPresignedUrlApi = { create: retryableCreate };\n\nexport default partPresignedUrlApi;\n","import { existsBy, isNotEmpty } from \"neetocist\";\nimport { isNil } from \"ramda\";\n\nimport { IS_SAFARI, MIME_TYPE } from \"src/constants\";\n\nconst getUnSupportedConstraints = mediaType => {\n const supportedMediaConstraints =\n navigator.mediaDevices.getSupportedConstraints();\n\n return Object.keys(mediaType).filter(\n constraint => !supportedMediaConstraints[constraint]\n );\n};\n\nexport const checkConstraints = (...mediaTypes) => {\n if (isNil(navigator.mediaDevices)) {\n return;\n }\n\n const unSupportedConstraints = mediaTypes\n .filter(mediaType => typeof mediaType === \"object\")\n .map(getUnSupportedConstraints)\n .flat();\n\n if (isNotEmpty(unSupportedConstraints)) {\n logger.error(\n `The constraints ${unSupportedConstraints.join(\n \",\"\n )} doesn't support on this browser.`\n );\n }\n};\n\nexport const isStreamEnded = mediaStream =>\n existsBy({ readyState: \"ended\" }, mediaStream.getTracks());\n\n// Picks the best MediaRecorder MIME type the current browser supports.\n// Chromium produces H.264-in-WebM, Safari only produces MP4, and Firefox\n// produces VP9/VP8-in-WebM. Returns null if none of the candidates are\n// supported so callers can surface an \"unsupported browser\" state.\nexport const getSupportedMimeType = () => {\n if (typeof MediaRecorder === \"undefined\") return null;\n\n // Safari only exposes a working MediaRecorder for MP4.\n if (IS_SAFARI && MediaRecorder.isTypeSupported(MIME_TYPE.mp4)) {\n return MIME_TYPE.mp4;\n }\n\n // Prefer types that declare the audio codec explicitly. Firefox requires\n // this when the MediaStream has both audio and video tracks; Chromium and\n // Safari are happy with either form.\n const candidates = [\n MIME_TYPE.webmH264Opus,\n MIME_TYPE.webmVp9Opus,\n MIME_TYPE.webmVp8Opus,\n MIME_TYPE.webmH264,\n MIME_TYPE.webmVp9,\n MIME_TYPE.webmVp8,\n MIME_TYPE.webm,\n MIME_TYPE.mp4,\n ];\n\n return candidates.find(type => MediaRecorder.isTypeSupported(type)) ?? null;\n};\n\nexport const getMediaRecorderOptions = () => {\n const mimeType = getSupportedMimeType();\n\n if (!mimeType) return {};\n\n return { mimeType };\n};\n\nexport const isMp4Supported = (mimeType = getSupportedMimeType()) =>\n mimeType.includes(MIME_TYPE.mp4);\n\nexport const addGainNode = (audioContext, audioStream, gain = 1.5) => {\n const audioStreamSource = audioContext.createMediaStreamSource(audioStream);\n\n const destinationStream = audioContext.createMediaStreamDestination();\n\n const gainNode = audioContext.createGain();\n gainNode.gain.value = gain;\n\n audioStreamSource.connect(gainNode);\n gainNode.connect(destinationStream);\n\n return destinationStream.stream;\n};\n","import axios from \"axios\";\nimport { identity } from \"ramda\";\n\nimport { getSupportedMimeType } from \"src/core/screenRecorder/utils\";\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst s3AxiosInstance = axios.create({\n headers: { \"Content-Type\": getSupportedMimeType() },\n});\n\ns3AxiosInstance.interceptors.response.use(\n identity,\n error => !axios.isCancel(error) && Promise.reject(error)\n);\n\nconst presignedUpload = ({ presignedUrl, blob, config }) =>\n s3AxiosInstance.put(presignedUrl, blob, config);\n\nconst retryablePresignedUpload = buildRetryableApi(presignedUpload);\n\nconst s3Api = { presignedUpload: retryablePresignedUpload };\n\nexport default s3Api;\n","/**\n * Due to the custom axios interceptor for s3Api,\n * it'll return false for cancelled requests instead of a cancelled error object.\n */\nexport const isNotCancelledRequest = resolvedResponse =>\n typeof resolvedResponse !== \"boolean\";\n\nexport const calculateUploadProgress = uploadProgress => {\n const total = Object.values(uploadProgress).reduce(\n (sum, part) => sum + part.total,\n 0\n );\n\n const uploaded = Object.values(uploadProgress).reduce(\n (sum, part) => sum + part.uploaded,\n 0\n );\n\n return Math.round((uploaded * 100) / total);\n};\n","// Axios is required here to waive off the CancelledError which occurs when\n// using AbortController on an axios request.\n\nimport axios from \"axios\";\nimport { isNot, isNotEmpty } from \"neetocist\";\nimport { UPLOAD_EVENT, UPLOAD_STATUS } from \"neetomediarecorder/constants\";\nimport { useMultipartS3UploadStatus } from \"neetomediarecorder/core\";\nimport { isEmpty } from \"ramda\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport abortUploadApi from \"src/apis/abort_upload\";\nimport completeUploadApi from \"src/apis/complete_upload\";\nimport partPresignedUrlApi from \"src/apis/part_presigned_url\";\nimport s3Api from \"src/apis/s3\";\nimport { MIME_TYPE } from \"src/constants\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport { isNotCancelledRequest, calculateUploadProgress } from \"./utils\";\n\nimport { getSupportedMimeType, isMp4Supported } from \"../screenRecorder/utils\";\n\nclass MultipartS3Uploader {\n MIN_UPLOAD_CHUNK_SIZE = 5 * 1024 * 1024;\n\n #recordingId = \"\";\n #uploadId = \"\";\n #unUploadedChunks = [];\n #partNumber = 1;\n #s3PartUploadPromises = [];\n #callbacks = {};\n #abortController;\n #pendingS3ChunkUploads = [];\n #completeUploadPromise;\n #failedUpload = [];\n #uploadProgress = {};\n #lastLoggedOverallPercent = -1;\n\n #_status = \"\";\n #id = uuidv4();\n #logger = createPrefixedLogger(`[${this.#id}]`);\n #mimeType = getSupportedMimeType();\n\n constructor() {\n this.#logger.info(\"Uploader initialized\", {\n mimeType: this.#mimeType,\n minUploadChunkSize: this.MIN_UPLOAD_CHUNK_SIZE,\n });\n }\n\n get status() {\n return this.#_status;\n }\n\n get mimeType() {\n return this.#mimeType;\n }\n\n set #status(status) {\n this.#_status = status;\n useMultipartS3UploadStatus.triggerStatusChange();\n }\n\n get hasSufficientData() {\n return (\n isNotEmpty(this.#unUploadedChunks) ||\n isNotEmpty(this.#pendingS3ChunkUploads) ||\n isNotEmpty(this.#s3PartUploadPromises)\n );\n }\n\n setMimeType = mimeType => (this.#mimeType = mimeType);\n\n setRecording = (recordingId, uploadId) => {\n const isNewUpload =\n this.#recordingId !== recordingId || this.#uploadId !== uploadId;\n\n this.#logger.info(\"setRecording\", { recordingId, uploadId, isNewUpload });\n\n if (isNewUpload) {\n // Part numbers and part-upload responses are only meaningful for the\n // uploadId they were created under. Carrying them across makes\n // completeUpload claim parts S3 never received for the new upload, which\n // S3 rejects with InvalidPart.\n //\n // #unUploadedChunks is intentionally NOT cleared: the re-upload flow\n // push()es the blob before the replacement recording exists, so the\n // buffer legitimately belongs to the upload being set up here.\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#pendingS3ChunkUploads = [];\n this.#failedUpload = [];\n this.#uploadProgress = {};\n this.#lastLoggedOverallPercent = -1;\n }\n\n this.#recordingId = recordingId;\n this.#uploadId = uploadId;\n this.#abortController = new AbortController();\n };\n\n push = data => {\n // Once an uploader has been aborted, any further chunks belong to a\n // recording that no longer exists server-side. Drop them so we don't\n // spawn new part uploads against an aborted multipart upload (which\n // would otherwise loop on retries until the network gives up).\n if (this.#isTerminalStatus) {\n this.#logger.warn(\n \"push -> uploader is no longer active, dropping chunk\",\n {\n chunkBytes: data?.size,\n status: this.#_status,\n recordingId: this.#recordingId,\n }\n );\n this.#unUploadedChunks = [];\n\n return;\n }\n\n if (data.size > 0) {\n this.#unUploadedChunks.push(data);\n }\n\n const unUploadedBytes = this.#getCurrentUnUploadedBlob().size;\n this.#logger.info(\"push -> chunk buffered\", {\n chunkBytes: data?.size,\n chunkType: data?.type,\n bufferedChunks: this.#unUploadedChunks.length,\n bufferedBytes: unUploadedBytes,\n bufferedMB: Number((unUploadedBytes / 1024 / 1024).toFixed(2)),\n threshold: this.MIN_UPLOAD_CHUNK_SIZE,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n if (this.#isRecordingNotSet) {\n this.#logger.warn(\n \"push -> recording not yet set, holding chunk in buffer\"\n );\n\n return;\n }\n\n if (unUploadedBytes > this.MIN_UPLOAD_CHUNK_SIZE) {\n const uploadChunkToS3Promise = this.#uploadChunkToS3(\n this.#unUploadedChunks\n );\n\n this.#pendingS3ChunkUploads.push(uploadChunkToS3Promise);\n this.#unUploadedChunks = [];\n }\n };\n\n completeUploadNotifyServer = (parts, sessionLogs) =>\n completeUploadApi.create({\n recordingId: this.#recordingId,\n payload: {\n parts,\n uploadId: this.#uploadId,\n isMp4: isMp4Supported(this.#mimeType),\n logs: sessionLogs,\n },\n config: { signal: this.#abortController?.signal },\n });\n\n completeUpload = async sessionLogs => {\n const completeStartedAt = Date.now();\n this.#logger.info(\"completeUpload -> begin\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n pendingChunks: this.#pendingS3ChunkUploads.length,\n bufferedBytes: this.#getCurrentUnUploadedBlob().size,\n totalPartsStarted: this.#partNumber - 1,\n });\n try {\n this.#status = UPLOAD_STATUS.uploading;\n\n if (this.#isRecordingNotSet) {\n this.#logger.error(\"completeUpload -> not initialized\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n return;\n }\n\n // Upload last chunk; only if last chunk has data\n const lastChunkBytes = this.#getCurrentUnUploadedBlob().size;\n if (lastChunkBytes > 0) {\n this.#logger.info(\"completeUpload -> uploading final buffered chunk\", {\n bytes: lastChunkBytes,\n });\n\n const uploadChunkToS3Promise = this.#uploadChunkToS3(\n this.#unUploadedChunks\n );\n\n this.#pendingS3ChunkUploads.push(uploadChunkToS3Promise);\n // #uploadChunkToS3 snapshots the chunks into a Blob synchronously\n // before its first await, so the buffer is safe to release here. Not\n // releasing it re-uploads the same bytes as an extra part on any\n // subsequent completion attempt (same pattern as push()).\n this.#unUploadedChunks = [];\n }\n\n /**\n * Wait for all the pending uploadToS3Promises.\n * Else we encounter a race condition where a new request is made for presignedUrl\n * but at the same time we reach the resolvedS3PartUploadPromises line and await\n * the s3PartUploadPromises. And the s3PartUploadPromises is resolved before\n * adding the new presignedUrl part upload to s3PartUploadPromises.\n * This results in incorrect partNumbers.\n */\n this.#logger.info(\"completeUpload -> awaiting pending chunks\", {\n pendingS3ChunkUploads: this.#pendingS3ChunkUploads.length,\n });\n await Promise.all(this.#pendingS3ChunkUploads);\n\n this.#logger.info(\"completeUpload -> awaiting part uploads\", {\n s3PartUploadPromises: this.#s3PartUploadPromises.length,\n });\n\n const resolvedS3PartUploadPromises = await Promise.all(\n this.#s3PartUploadPromises\n );\n\n if (isNotEmpty(this.#failedUpload)) {\n this.#logger.error(\n \"completeUpload -> failed parts present, aborting completion\",\n { failedPartNumbers: this.#failedUpload }\n );\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n\n return;\n }\n\n if (resolvedS3PartUploadPromises.length === 0) {\n this.#logger.warn(\"completeUpload -> no parts uploaded\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n this.#status = UPLOAD_STATUS.insufficient_data;\n\n return;\n }\n\n const parts = resolvedS3PartUploadPromises\n .filter(isNotCancelledRequest)\n .map(resolvedResponse => ({\n etag: resolvedResponse.headers.etag,\n partNumber: new URL(\n resolvedResponse.request.responseURL\n ).searchParams.get(\"partNumber\"),\n }))\n .toSorted((a, b) => Number(a.partNumber) - Number(b.partNumber));\n\n this.#logger.info(\"completeUpload -> notifying server\", {\n partCount: parts.length,\n parts,\n });\n const notifyStartedAt = Date.now();\n this.#completeUploadPromise = this.completeUploadNotifyServer(\n parts,\n sessionLogs\n );\n\n await this.#completeUploadPromise;\n this.#logger.info(\"completeUpload -> server notified, upload finalized\", {\n notifyDurationMs: Date.now() - notifyStartedAt,\n totalDurationMs: Date.now() - completeStartedAt,\n });\n\n if (this.status === UPLOAD_STATUS.aborting) {\n this.#logger.warn(\n \"completeUpload -> finished but state was set to aborting\"\n );\n\n return;\n }\n\n this.#status = UPLOAD_STATUS.completed;\n\n this.#fireCallbacks(UPLOAD_EVENT.onComplete);\n } catch (error) {\n // ignore if aborted\n if (!axios.isCancel(error)) {\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n this.#logger.error(\"completeUpload -> error\", {\n ...this.#serializeUploadError(error),\n totalDurationMs: Date.now() - completeStartedAt,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n } else {\n this.#logger.info(\"completeUpload -> request cancelled (expected)\");\n }\n } finally {\n this.#completeUploadPromise = null;\n }\n };\n\n // eslint-disable-next-line default-param-last\n abortUpload = async (forceAbort = false, sessionLogs) => {\n const abortStartedAt = Date.now();\n let phase = \"init\";\n try {\n if (this.status === UPLOAD_STATUS.aborting && !forceAbort) {\n this.#logger.info(\"abortUpload -> already aborting\", {\n forceAbort,\n });\n\n return;\n }\n this.#status = UPLOAD_STATUS.aborting;\n\n if (this.#isRecordingNotSet) {\n this.#logger.info(\"abortUpload -> not initialized\");\n\n return;\n }\n const recordingId = this.#recordingId;\n const uploadId = this.#uploadId;\n\n this.#logger.info(\"abortUpload -> begin\", {\n recordingId,\n uploadId,\n forceAbort,\n partsStarted: this.#partNumber - 1,\n pendingS3ChunkUploads: this.#pendingS3ChunkUploads.length,\n hasAbortController: Boolean(this.#abortController),\n });\n\n // Don't let a rejected completeUpload stop us from issuing the abort API\n // call below — we still need to release the upload server-side.\n phase = \"awaitCompleteUploadPromise\";\n\n await Promise.resolve(this.#completeUploadPromise).catch(() => {});\n\n // Guard against a missing AbortController. If abortUpload is somehow\n // invoked twice, the second call would hit a null #abortController and\n // throw a TypeError into the outer catch — masking the real failure.\n phase = \"abortInflight\";\n this.#abortController?.abort();\n\n phase = \"abortUploadApi\";\n try {\n await abortUploadApi.create({\n recordingId,\n payload: {\n uploadId,\n isMp4: isMp4Supported(this.#mimeType),\n logs: sessionLogs,\n },\n });\n\n this.#logger.info(\"abortUpload -> success\", {\n durationMs: Date.now() - abortStartedAt,\n });\n } catch (error) {\n // After retries are exhausted, proceed with local cleanup so the\n // caller can navigate away / close tab. The server-side upload\n // will be cleaned up by S3 lifecycle rules.\n this.#logger.error(\"abortUpload -> mark as discarded failed\", {\n ...this.#serializeUploadError(error),\n durationMs: Date.now() - abortStartedAt,\n });\n }\n\n phase = \"fireOnAbort\";\n this.#fireCallbacks(UPLOAD_EVENT.onAbort);\n\n phase = \"cleanup\";\n this.#unUploadedChunks = [];\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#status = \"\";\n this.#abortController = null;\n } catch (error) {\n this.#logger.error(\"abortUpload -> failed\", {\n phase,\n ...this.#serializeUploadError(error),\n durationMs: Date.now() - abortStartedAt,\n });\n }\n };\n\n resetState = () => {\n this.#recordingId = \"\";\n this.#uploadId = \"\";\n this.#unUploadedChunks = [];\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#pendingS3ChunkUploads = [];\n this.#callbacks = {};\n this.#failedUpload = [];\n this.#uploadProgress = {};\n this.#lastLoggedOverallPercent = -1;\n this.#status = \"\";\n };\n\n addCallback = (event, callback) => {\n const existingCallbacks = this.#callbacks[event] ?? [];\n this.#callbacks = {\n ...this.#callbacks,\n [event]: [...existingCallbacks, callback],\n };\n };\n\n removeCallback = (event, callback) => {\n const registeredCallbacks = this.#callbacks[event] ?? [];\n const updatedCallbacks = registeredCallbacks.filter(isNot(callback));\n this.#callbacks = { ...this.#callbacks, [event]: updatedCallbacks };\n };\n\n #fireCallbacks = (event, args = []) => {\n this.#callbacks[event]?.forEach(callback => {\n callback(...args);\n });\n };\n\n #handleChunkUploadError = (error, partNumber, context = {}) => {\n // ignore if aborted\n if (axios.isCancel(error)) {\n this.#logger.info(\"upload chunk -> request cancelled (expected)\", {\n partNumber,\n });\n\n return;\n }\n\n this.#logger.error(\"upload chunk -> failed\", {\n partNumber,\n ...this.#serializeUploadError(error),\n ...context,\n uploadStatus: this.status,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n if (this.status === UPLOAD_STATUS.uploading) {\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n } else {\n this.#failedUpload.push(partNumber); // if user is still recording\n }\n };\n\n #serializeUploadError = error => {\n if (!error) return { error: null };\n\n return {\n name: error.name,\n message: error.message,\n code: error.code,\n stack: error.stack,\n responseStatus: error.response?.status,\n responseStatusText: error.response?.statusText,\n responseData:\n typeof error.response?.data === \"string\"\n ? error.response.data.slice(0, 500)\n : error.response?.data,\n };\n };\n\n generatePreSignedUrl = partNumber =>\n partPresignedUrlApi.create({\n recordingId: this.#recordingId,\n payload: {\n partNumber,\n uploadId: this.#uploadId,\n isMp4: this.#mimeType.includes(MIME_TYPE.mp4),\n },\n config: { signal: this.#abortController?.signal },\n });\n\n #uploadChunkToS3 = async chunks => {\n const partNumber = this.#partNumber;\n this.#partNumber++;\n const partBlob = new Blob(chunks, { type: this.#mimeType });\n const partBytes = partBlob.size;\n this.#uploadProgress[partNumber] = { uploaded: 0, total: partBytes };\n this.#logger.info(\"upload chunk -> begin\", {\n partNumber,\n partBytes,\n partMB: Number((partBytes / 1024 / 1024).toFixed(2)),\n mimeType: this.#mimeType,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n const presignStartedAt = Date.now();\n let presignedUrl;\n try {\n ({ presignedUrl } = await this.generatePreSignedUrl(partNumber));\n this.#logger.info(\"upload chunk -> presigned url ready\", {\n partNumber,\n presignDurationMs: Date.now() - presignStartedAt,\n });\n } catch (error) {\n this.#handleChunkUploadError(error, partNumber, {\n phase: \"presign\",\n presignDurationMs: Date.now() - presignStartedAt,\n });\n\n return;\n }\n\n const uploadStartedAt = Date.now();\n\n const s3PartUploadPromise = s3Api\n .presignedUpload({\n presignedUrl,\n blob: partBlob,\n config: {\n headers: { \"Content-Type\": this.#mimeType },\n includeMetadataInResponse: true,\n signal: this.#abortController?.signal,\n onUploadProgress: e => {\n this.#uploadProgress[partNumber] = {\n uploaded: e.loaded,\n total: e.total,\n };\n if (this.status === UPLOAD_STATUS.uploading) {\n const percentCompleted = calculateUploadProgress(\n this.#uploadProgress\n );\n\n // Only log every 10% to keep noise down while still being useful.\n // Tracker is on the instance so concurrent chunk uploads don't\n // each log when the *overall* percent crosses a threshold.\n if (\n percentCompleted - this.#lastLoggedOverallPercent >= 10 ||\n percentCompleted === 100\n ) {\n this.#logger.info(\"upload progress\", {\n overallPercent: percentCompleted,\n partNumber,\n partLoaded: e.loaded,\n partTotal: e.total,\n });\n this.#lastLoggedOverallPercent = percentCompleted;\n }\n\n this.#fireCallbacks(UPLOAD_EVENT.onProgress, [percentCompleted]);\n }\n },\n },\n })\n // eslint-disable-next-line promise/prefer-await-to-then\n .then(response => {\n const durationMs = Date.now() - uploadStartedAt;\n this.#logger.info(\"upload chunk -> success\", {\n partNumber,\n partBytes,\n durationMs,\n throughputMbps: durationMs\n ? Number(((partBytes * 8) / 1000 / durationMs).toFixed(2))\n : null,\n httpStatus: response?.status,\n etag: response?.headers?.etag,\n });\n\n return response;\n })\n // eslint-disable-next-line promise/prefer-await-to-then\n .catch(error => {\n this.#handleChunkUploadError(error, partNumber, {\n phase: \"upload\",\n uploadDurationMs: Date.now() - uploadStartedAt,\n partBytes,\n });\n });\n this.#s3PartUploadPromises.push(s3PartUploadPromise);\n };\n\n #getCurrentUnUploadedBlob = () =>\n new Blob(this.#unUploadedChunks, { type: this.#mimeType });\n\n get #isRecordingNotSet() {\n return isEmpty(this.#uploadId + this.#recordingId);\n }\n\n get #isTerminalStatus() {\n return (\n this.#_status === UPLOAD_STATUS.aborting ||\n this.#_status === UPLOAD_STATUS.completed ||\n this.#_status === UPLOAD_STATUS.error\n );\n }\n}\n\nlet multipartS3Uploader = new MultipartS3Uploader();\n\nexport const getMultipartS3Uploader = ({ initialize = false } = {}) => {\n if (!multipartS3Uploader || initialize) {\n multipartS3Uploader = new MultipartS3Uploader();\n useMultipartS3UploadStatus.triggerStatusChange();\n }\n\n return multipartS3Uploader;\n};\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as 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}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","// https://www.w3.org/TR/screen-capture/#displaycapturesurfacetype\nexport const DISPLAY_SURFACE = {\n monitor: \"monitor\",\n window: \"window\",\n browser: \"browser\",\n};\n\nexport const RECORDING_TIME_LIMIT = 900_000; // 15 minutes\nexport const RECORDING_TIME_LIMIT_WARNING_TIME = 840_000; // 14 minutes\n\nexport const MAX_RESOLUTION = 2160; // max 4k\n","import withImmutableActions from \"neetocommons/react-utils/withImmutableActions\";\nimport {\n SCREEN_RECORDER_STATUS,\n COUNTDOWN_TIME,\n} from \"neetomediarecorder/constants\";\nimport { create } from \"zustand\";\n\nconst initialState = {\n status: SCREEN_RECORDER_STATUS.idle,\n error: \"\",\n elapsedTime: 0,\n countdownTimeLeft: COUNTDOWN_TIME,\n showTimeLimitWarning: false,\n};\n\nconst prepareStore = () =>\n create(\n withImmutableActions(set => ({\n ...initialState,\n resetState: () => set(initialState),\n }))\n );\n\nexport { initialState };\nexport default prepareStore;\n","import { isNotEmpty, isNot, noop } from \"neetocist\";\nimport { not, pick } from \"ramda\";\n\nimport {\n COUNTDOWN_TICK_SOUND,\n HALF_A_SECOND_IN_MILLISECONDS,\n ONE_SECOND,\n ONE_SECOND_IN_MILLISECONDS,\n RECORDING_LIMIT_REACHED_WARNING_SOUND,\n SCREEN_RECORDER_STATUS,\n SCREEN_RECORDER_EVENT,\n SCREEN_RECORDER_ERROR,\n START_RECORDING_SOUND,\n STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND,\n TWO_HUNDRED_MILLISECONDS,\n ONE_MINUTE_IN_MILLISECONDS,\n RECORDING_TIME_LIMIT_FREE_PLAN,\n IS_EXTENSION,\n} from \"src/constants\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport { DISPLAY_SURFACE } from \"./constants\";\nimport prepareStore, { initialState as initialStoreState } from \"./stores\";\nimport {\n checkConstraints,\n getMediaRecorderOptions,\n getSupportedMimeType,\n isStreamEnded,\n addGainNode,\n} from \"./utils\";\n\nimport { getFastTitleRunner } from \"../fastTitle\";\n\nclass ScreenRecorder {\n #audio;\n #video;\n #videoStream;\n #mediaRecorder;\n #mediaStream;\n #store;\n #logger = createPrefixedLogger(\"[ScreenRecorder]\");\n #mediaChunks = [];\n #callbacks = {};\n #lastTimerUpdatedAt = 0;\n #timerId;\n #countdownTimerId;\n #startRecordingAudio = new Audio(START_RECORDING_SOUND);\n #countdownTickAudio = new Audio(COUNTDOWN_TICK_SOUND);\n #recordingLimitWarningAudio = new Audio(\n RECORDING_LIMIT_REACHED_WARNING_SOUND\n );\n #stopRecordingDueToLimitReachedAudio = new Audio(\n STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND\n );\n #stream;\n #audioStream;\n #micAudioStream;\n // Every AudioContext created for gain, noise suppression and mixing. Kept so\n // they can be closed when the streams stop instead of leaking per recording.\n #audioContexts = [];\n #timeLimit = RECORDING_TIME_LIMIT_FREE_PLAN;\n #startRecordingTimeoutID;\n #enableNoiseCancellation = false;\n #showCountdown = true;\n // Lets a host (e.g. the chrome extension) take over the countdown beeps and\n // recording-start chime so it can schedule them via Web Audio. Defaults to\n // true to preserve behavior for callers that don't manage audio themselves.\n #playCountdownAudio = true;\n #mimeType = getSupportedMimeType();\n #dataReceiving = false;\n #recordSystemAudio = false;\n\n constructor(audio, video) {\n this.#audio = audio;\n this.#video = video;\n\n this.#store = prepareStore();\n\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.idle });\n this.#checkCompatibility();\n }\n\n /** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\n get useRecorderStore() {\n return this.#store;\n }\n\n get timeLimit() {\n return this.#timeLimit;\n }\n\n get displaySurface() {\n const [videoTrack] = this.#mediaStream?.getVideoTracks() ?? [];\n\n return videoTrack?.getSettings().displaySurface;\n }\n\n get audioConfiguration() {\n return this.#audio;\n }\n\n set videoStream(value) {\n this.#videoStream = value;\n }\n\n setDisplaySurface = displaySurface => {\n this.#video.displaySurface = displaySurface;\n };\n setRecordSystemAudio = value => (this.#recordSystemAudio = value);\n\n setResolution = height => {\n if (height === \"auto\") return;\n const getVideoConfig = (width, height) => ({\n width: { max: width },\n height: { max: height },\n displaySurface: this.#video.displaySurface,\n });\n\n const getResolution = height => {\n if (height === 1080) return getVideoConfig(1920, 1080);\n\n if (height === 720) return getVideoConfig(1280, 720);\n\n return getVideoConfig(3840, 2160);\n };\n this.#video = getResolution(height);\n };\n\n getAudioStream = () => this.#audioStream;\n hasData = () => this.#dataReceiving;\n\n setEnableNoiseCancellation = value => (this.#enableNoiseCancellation = value);\n\n setMimeType = mimeType => (this.#mimeType = mimeType);\n\n setAudioConfiguration = audio => (this.#audio = audio);\n\n setShowCountdown = showCountdown => (this.#showCountdown = showCountdown);\n\n setPlayCountdownAudio = value => (this.#playCountdownAudio = value);\n\n setTimeLimit = (timeLimit = RECORDING_TIME_LIMIT_FREE_PLAN) =>\n (this.#timeLimit = timeLimit);\n\n getWebmMediaBlob = () =>\n new Blob(this.#mediaChunks, { type: this.#mimeType });\n\n addCallback = (event, callback) => {\n const existingCallbacks = this.#callbacks[event] ?? [];\n this.#callbacks = {\n ...this.#callbacks,\n [event]: [...existingCallbacks, callback],\n };\n };\n\n removeCallback = (event, callback) => {\n const registeredCallbacks = this.#callbacks[event] ?? [];\n const updatedCallbacks = registeredCallbacks.filter(isNot(callback));\n this.#callbacks = { ...this.#callbacks, [event]: updatedCallbacks };\n };\n\n removeAllCallbacksByEvent = event => {\n delete this.#callbacks[event];\n };\n\n setError = error => {\n this.#store.setState({ error });\n };\n\n startRecording = async () => {\n this.#logger.info(\n \"startRecording -> begin\",\n this.#summarizeRecorderState({\n showCountdown: this.#showCountdown,\n timeLimit: this.#timeLimit,\n mimeType: this.#mimeType,\n recordSystemAudio: this.#recordSystemAudio,\n enableNoiseCancellation: this.#enableNoiseCancellation,\n hasInjectedVideoStream: Boolean(this.#videoStream),\n })\n );\n\n this.#store.setState(pick([\"error\"], initialStoreState));\n\n if (!this.#mediaStream) {\n this.#logger.info(\"startRecording -> acquiring media stream\");\n await this.#acquireMediaStream();\n }\n\n if (this.#mediaStream && isStreamEnded(this.#mediaStream)) {\n this.#logger.info(\n \"startRecording -> media stream ended, re-acquiring\",\n this.#summarizeStream(this.#mediaStream)\n );\n // Re-acquiring opens a new mic stream, so release the old one first or\n // the previous mic stays in use. Only the audio side is released: an\n // injected videoStream is reused as-is by #acquireMediaStream.\n this.#releaseAudio();\n await this.#acquireMediaStream();\n }\n\n if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#logger.warn(\n \"startRecording -> aborting, media stream unavailable\",\n {\n hasMediaStream: Boolean(this.#mediaStream),\n isEnded: this.#mediaStream ? isStreamEnded(this.#mediaStream) : true,\n }\n );\n\n return;\n }\n\n const options = getMediaRecorderOptions();\n\n this.#logger.info(\"startRecording -> creating MediaRecorder\", {\n options,\n mimeType: this.#mimeType,\n stream: this.#summarizeStream(this.#mediaStream),\n });\n\n this.#mediaChunks = [];\n try {\n this.#mediaRecorder = new MediaRecorder(this.#mediaStream, options);\n } catch (error) {\n this.#logger.error(\n \"startRecording -> failed to construct MediaRecorder\",\n this.#serializeError(error),\n { options, mimeType: this.#mimeType }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.NoRecorder,\n });\n\n return;\n }\n\n this.#logger.info(\"startRecording -> MediaRecorder created\", {\n state: this.#mediaRecorder.state,\n mimeType: this.#mediaRecorder.mimeType,\n videoBitsPerSecond: this.#mediaRecorder.videoBitsPerSecond,\n audioBitsPerSecond: this.#mediaRecorder.audioBitsPerSecond,\n });\n\n this.#mediaRecorder.ondataavailable = this.#onRecordingActive;\n this.#mediaRecorder.onstart = this.#onRecordingStart;\n this.#mediaRecorder.onstop = this.#onRecordingStop;\n this.#mediaRecorder.onerror = event => {\n this.#logger.error(\n \"MediaRecorder.onerror fired\",\n this.#serializeError(event?.error),\n {\n state: this.#mediaRecorder?.state,\n chunkCount: this.#mediaChunks.length,\n stream: this.#summarizeStream(this.#mediaStream),\n }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.NoRecorder,\n });\n };\n if (this.#showCountdown) {\n this.#startCountdown();\n } else {\n // No countdown: emit the canonical \"count-in finished\" hook and flip to\n // recording so consumers (toolbar, options-page countdown) update, just\n // like the countdown and skipCountdown paths do.\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n this.#store.setState({\n countdownTimeLeft: 0,\n status: SCREEN_RECORDER_STATUS.recording,\n });\n this.#startMediaRecorder();\n }\n };\n\n stopRecording = () => {\n if (this.#mediaRecorder === undefined) {\n this.#logger.info(\n \"stopRecording -> mediaRecorder undefined, stopping streams only\",\n this.#summarizeRecorderState()\n );\n /**\n * If the permission is denied and \"Stop sharing\" overlay is clicked\n */\n this.#stopAllStreams();\n\n return;\n }\n\n if (this.#mediaRecorder?.state === \"inactive\") {\n this.#logger.info(\n \"stopRecording -> mediaRecorder inactive, treating as discard during countdown\",\n this.#summarizeRecorderState()\n );\n // When recording is stopped from the 'Stop Sharing' overlay\n // before it even starts, i.e during the countdown.\n // Or if the recording is stopped before startRecordingTimeoutID timeout executes\n this.removeCallback(SCREEN_RECORDER_EVENT.onStop);\n\n clearTimeout(this.#startRecordingTimeoutID);\n clearInterval(this.#countdownTimerId);\n\n this.#stopAllStreams();\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDiscardDuringCountdown);\n\n return;\n }\n\n this.#logger.info(\n \"stopRecording -> stopping\",\n this.#summarizeRecorderState()\n );\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.#mediaRecorder.stop();\n this.#stopAllStreams();\n\n this.#stopTimer();\n };\n\n // Skip the in-flight countdown and start the actual recording immediately.\n // The chime is suppressed (vs. natural completion which plays it) since the\n // user explicitly opted out of the count-in. Listeners hook onCountdownSkip\n // to clean up countdown-only side effects like scheduled beeps.\n skipCountdown = () => {\n if (!this.#countdownTimerId) {\n this.#logger.warn(\n \"skipCountdown -> ignored, no countdown running\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"skipCountdown\", this.#summarizeRecorderState());\n\n clearInterval(this.#countdownTimerId);\n this.#countdownTimerId = null;\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [0]);\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownSkip);\n // onCountdownEnd is the canonical \"countdown phase finished\" hook —\n // listeners that just want to know the count-in is over shouldn't have\n // to subscribe to onCountdownSkip too.\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n\n this.#store.setState({\n countdownTimeLeft: 0,\n status: SCREEN_RECORDER_STATUS.recording,\n });\n\n this.#startMediaRecorder();\n };\n\n pauseRecording = () => {\n if (this.#mediaRecorder?.state === \"recording\") {\n this.#logger.info(\"pauseRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.paused });\n this.#mediaRecorder.pause();\n getFastTitleRunner().pause();\n } else {\n this.#logger.warn(\n \"pauseRecording -> ignored, recorder not in recording state\",\n this.#summarizeRecorderState()\n );\n }\n\n this.#stopTimer();\n };\n\n resumeRecording = () => {\n if (this.#mediaRecorder?.state === \"paused\") {\n this.#logger.info(\"resumeRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.recording });\n this.#mediaRecorder.resume();\n getFastTitleRunner().resume();\n } else {\n this.#logger.warn(\n \"resumeRecording -> ignored, recorder not paused\",\n this.#summarizeRecorderState()\n );\n }\n\n this.#startTimer();\n };\n\n discardRecording = () => {\n if (this.#mediaRecorder?.state === \"inactive\") {\n this.#logger.info(\n \"discardRecording -> ignored, recorder already inactive\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"discardRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.removeAllCallbacksByEvent(SCREEN_RECORDER_EVENT.onStop);\n this.#mediaRecorder.stop();\n this.#stopAllStreams();\n\n clearInterval(this.#timerId);\n this.#store.setState(pick([\"elapsedTime\"], initialStoreState));\n this.#mediaChunks = [];\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDiscard);\n };\n\n restartRecording = () => {\n this.#logger.info(\"restartRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.removeAllCallbacksByEvent(SCREEN_RECORDER_EVENT.onStop);\n this.#mediaRecorder.stop();\n\n clearInterval(this.#timerId);\n this.#store.setState(\n pick([\"elapsedTime\", \"countdownTimeLeft\"], initialStoreState)\n );\n this.#mediaChunks = [];\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onRestart);\n\n this.startRecording();\n };\n\n resetState = () => {\n this.#logger.info(\"resetState\", this.#summarizeRecorderState());\n this.#mediaChunks = [];\n this.#callbacks = {};\n this.#dataReceiving = false;\n clearInterval(this.#timerId);\n clearInterval(this.#countdownTimerId);\n this.#store.getState().resetState();\n this.#checkCompatibility();\n };\n\n revokePermissions = () => {\n this.#logger.info(\"revokePermissions\", this.#summarizeRecorderState());\n if (!this.#mediaRecorder) return;\n\n this.#mediaRecorder.onstop = null;\n this.#stopAllStreams();\n };\n\n // Whether this recording could contain speech worth titling from.\n //\n // A muted mic is the case that matters: with the mic off the fast-title path\n // would upload audio, spend a transcription and a completion, and get nothing\n // back. Checked against the raw mic rather than #audioStream, which is the mic\n // mixed with system audio and stays loud through a dead mic.\n //\n // System audio counts on its own — a recording narrated by the thing on screen\n // is exactly as titleable as one narrated by the user.\n #hasSpeechSourceForTitle = () => {\n const [micTrack] = this.#micAudioStream?.getAudioTracks?.() ?? [];\n const micLive =\n Boolean(micTrack) &&\n micTrack.readyState !== \"ended\" &&\n !micTrack.muted &&\n micTrack.enabled;\n\n const hasSystemAudio = isNotEmpty(this.#stream?.getAudioTracks() ?? []);\n\n if (!micLive && !hasSystemAudio) {\n this.#logger.info(\"fast title skipped -> mic is off and no system audio\");\n\n return false;\n }\n\n return true;\n };\n\n #stopAllStreams = () => {\n getFastTitleRunner().stop();\n\n this.#logger.info(\"stopAllStreams\", {\n mediaStream: this.#summarizeStream(this.#mediaStream),\n stream: this.#summarizeStream(this.#stream),\n audioStream: this.#summarizeStream(this.#audioStream),\n micAudioStream: this.#summarizeStream(this.#micAudioStream),\n });\n\n this.#mediaStream &&\n this.#mediaStream?.getTracks().forEach(track => track.stop());\n this.#stream?.getTracks().forEach(track => track.stop());\n this.#releaseAudio();\n };\n\n #createAudioContext = () => {\n const audioContext = new AudioContext();\n this.#audioContexts.push(audioContext);\n\n return audioContext;\n };\n\n #releaseAudio = () => {\n this.#audioStream?.getAudioTracks()?.forEach(track => track.stop());\n this.#micAudioStream?.getAudioTracks()?.forEach(track => track.stop());\n this.#audioContexts.forEach(audioContext => {\n if (audioContext.state !== \"closed\") audioContext.close();\n });\n this.#audioContexts = [];\n };\n\n #playCountdownBeep = () => {\n this.#countdownTickAudio.currentTime = 0;\n this.#countdownTickAudio.play();\n };\n\n #checkCompatibility = () => {\n // The browser is considered supported if it can capture the display AND\n // if `getSupportedMimeType()` can negotiate a codec the MediaRecorder API\n // accepts. This covers Chromium (WebM/H.264), Safari (MP4) and Firefox\n // (WebM/VP9 or VP8).\n const hasDisplayCapture = Boolean(navigator.mediaDevices?.getDisplayMedia);\n const supportedMimeType = getSupportedMimeType();\n\n if (!hasDisplayCapture || !supportedMimeType) {\n this.#logger.error(\n \"screenRecorder -> unsupported browser. hasDisplayCapture:\",\n hasDisplayCapture,\n \"supportedMimeType:\",\n supportedMimeType,\n \"hasMediaDevices:\",\n Boolean(navigator.mediaDevices),\n \"hasMediaRecorder:\",\n typeof MediaRecorder !== \"undefined\"\n );\n this.#store.setState({ error: SCREEN_RECORDER_ERROR.UnSupportedBrowser });\n }\n\n checkConstraints(this.#audio, this.#video);\n };\n\n #acquireMediaStream = async () => {\n const acquireStartedAt = Date.now();\n this.#logger.info(\"acquireMediaStream -> begin\", {\n hasInjectedVideoStream: Boolean(this.#videoStream),\n audio: Boolean(this.#audio),\n recordSystemAudio: this.#recordSystemAudio,\n enableNoiseCancellation: this.#enableNoiseCancellation,\n });\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.acquiring_media });\n\n if (this.#audio && !this.#videoStream) {\n const micState = await this.#queryMicPermissionState();\n if (micState === \"denied\") {\n this.#logger.warn(\n \"acquireMediaStream -> mic permission denied, skipping screen prompt\",\n { micState }\n );\n\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n\n return;\n }\n }\n\n let stream;\n let hasAcquiredMedia = false;\n\n try {\n if (this.#videoStream) {\n this.#logger.info(\n \"acquireMediaStream -> using injected videoStream\",\n this.#summarizeStream(this.#videoStream)\n );\n stream = this.#videoStream;\n } else {\n const constraints = {\n video: this.#video,\n audio: this.#recordSystemAudio,\n };\n\n this.#logger.info(\n \"acquireMediaStream -> getDisplayMedia constraints\",\n constraints\n );\n\n const displayMediaStartedAt = Date.now();\n stream = await window.navigator.mediaDevices.getDisplayMedia(\n constraints\n );\n\n this.#logger.info(\"acquireMediaStream -> getDisplayMedia resolved\", {\n durationMs: Date.now() - displayMediaStartedAt,\n stream: this.#summarizeStream(stream),\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onShareSelected);\n }\n\n if (this.#audio) {\n try {\n const audioConfig = {\n audio: {\n echoCancellation: false,\n ...this.#audio,\n ...(this.#audio.deviceId && {\n deviceId: { exact: this.#audio.deviceId },\n }),\n },\n };\n\n this.#logger.info(\n \"acquireMediaStream -> getUserMedia audioConfig\",\n audioConfig\n );\n const micStartedAt = Date.now();\n this.#micAudioStream =\n await window.navigator.mediaDevices.getUserMedia(audioConfig);\n\n this.#logger.info(\"acquireMediaStream -> mic acquired\", {\n durationMs: Date.now() - micStartedAt,\n stream: this.#summarizeStream(this.#micAudioStream),\n });\n\n const audioStream = addGainNode(\n this.#createAudioContext(),\n this.#micAudioStream,\n 1.75\n ); // Increase volume by 50%\n this.#audioStream = audioStream;\n\n if (this.#enableNoiseCancellation) {\n try {\n const workletUrl = IS_EXTENSION\n ? chrome.runtime.getURL(\"public/NoiseSuppressorWorklet.js\")\n : \"NoiseSuppressorWorklet.js\";\n\n this.#logger.info(\n \"acquireMediaStream -> loading noise suppressor worklet\",\n { workletUrl }\n );\n\n const workletStartedAt = Date.now();\n const audioContext = this.#createAudioContext();\n await audioContext.audioWorklet.addModule(workletUrl);\n\n const audioStreamSource =\n audioContext.createMediaStreamSource(audioStream);\n\n const destinationStream =\n audioContext.createMediaStreamDestination();\n\n const noiseSuppressorNode = new AudioWorkletNode(\n audioContext,\n \"nn-suppressor-processor\"\n );\n\n audioStreamSource.connect(noiseSuppressorNode);\n noiseSuppressorNode.connect(destinationStream);\n\n this.#audioStream = destinationStream.stream;\n this.#logger.info(\n \"acquireMediaStream -> noise suppressor wired up\",\n { durationMs: Date.now() - workletStartedAt }\n );\n } catch (error) {\n this.#logger.error(\n \"acquireMediaStream -> failed to load audio worklet\",\n this.#serializeError(error)\n );\n }\n }\n } catch (audioError) {\n // Mic access can fail independently of screen capture (OS-level\n // block, no device, deviceId mismatch). Stop the screen stream and\n // surface a mic-only error so the user sees the proper callout\n // (\"doesn't have access to your microphone\" with Grant / I don't\n // need audio actions) instead of being misrouted to the screen\n // permission denied flow.\n this.#logger.warn(\n \"acquireMediaStream -> mic unavailable\",\n this.#serializeError(audioError),\n { audioConfigRequested: this.#audio }\n );\n if (!this.#videoStream) {\n stream.getTracks().forEach(track => track.stop());\n }\n\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n\n return;\n }\n }\n\n // Fired when capture ends without the app calling stop() — the browser's\n // \"Stop sharing\" pill or an OS-level termination. When a consumer is\n // listening for onUnexpectedEnd, hand the decision (finish/discard, show\n // diagnostics) over to it; otherwise preserve the legacy behavior of\n // finalizing the recording immediately.\n stream.getVideoTracks()[0].addEventListener(\"ended\", () => {\n const hasUnexpectedEndHandler = isNotEmpty(\n this.#callbacks[SCREEN_RECORDER_EVENT.onUnexpectedEnd] ?? []\n );\n\n this.#logger.info(\"display video track ended event received\", {\n recorderState: this.#mediaRecorder?.state,\n status: this.#store.getState().status,\n hasUnexpectedEndHandler,\n stream: this.#summarizeStream(stream),\n });\n\n if (hasUnexpectedEndHandler) {\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onUnexpectedEnd);\n\n return;\n }\n\n this.stopRecording();\n });\n\n const finalStream = new MediaStream();\n\n if (this.#audio && this.#audioStream) {\n if (isNotEmpty(stream.getAudioTracks())) {\n this.#logger.info(\"acquireMediaStream -> mixing system audio + mic\");\n const audioContext = this.#createAudioContext();\n\n const desktopAudio = audioContext.createMediaStreamSource(stream);\n const microphoneAudio = audioContext.createMediaStreamSource(\n this.#audioStream\n );\n\n const combinedAudio = audioContext.createMediaStreamDestination();\n\n desktopAudio.connect(combinedAudio);\n microphoneAudio.connect(combinedAudio);\n\n combinedAudio.stream\n .getAudioTracks()\n .forEach(track => finalStream.addTrack(track));\n } else {\n this.#logger.info(\n \"acquireMediaStream -> using mic audio only (no system audio in display stream)\"\n );\n\n this.#audioStream\n .getAudioTracks()\n .forEach(track => finalStream.addTrack(track));\n }\n } else if (this.#recordSystemAudio) {\n this.#logger.info(\"acquireMediaStream -> using system audio only\");\n stream.getAudioTracks().forEach(track => finalStream.addTrack(track));\n } else {\n this.#logger.info(\"acquireMediaStream -> recording without audio\");\n }\n stream.getVideoTracks().forEach(track => finalStream.addTrack(track));\n\n this.#mediaStream = finalStream;\n this.#stream = stream;\n hasAcquiredMedia = true;\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.media_acquired });\n this.#logger.info(\"acquireMediaStream -> success\", {\n totalDurationMs: Date.now() - acquireStartedAt,\n finalStream: this.#summarizeStream(this.#mediaStream),\n });\n } catch (error) {\n this.#logger.error(\n \"acquireMediaStream -> error\",\n this.#serializeError(error),\n {\n totalDurationMs: Date.now() - acquireStartedAt,\n hasAudio: Boolean(this.#audio),\n hasAudioStream: Boolean(this.#audioStream),\n hasMediaStream: Boolean(this.#mediaStream),\n }\n );\n\n if (SCREEN_RECORDER_ERROR[error?.name]) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR[error.name],\n status: SCREEN_RECORDER_STATUS.idle,\n });\n } else if (this.#audio && !this.#audioStream) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n } else if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR[error?.name],\n status: SCREEN_RECORDER_STATUS.idle,\n });\n }\n\n // A failure after the display/mic were opened but before they were\n // handed to #mediaStream leaves them running with nothing to stop them,\n // keeping the mic in use. Release them here, after the error checks\n // above have read #audioStream. An injected videoStream is owned by the\n // caller, so it is left alone.\n if (!hasAcquiredMedia) {\n if (stream && stream !== this.#videoStream) {\n stream.getTracks().forEach(track => track.stop());\n }\n this.#releaseAudio();\n this.#audioStream = null;\n this.#micAudioStream = null;\n }\n }\n };\n\n #fireCallbacks = (event, args = []) => {\n this.#callbacks[event]?.forEach(callback => {\n callback(...args);\n });\n };\n\n #onRecordingStart = () => {\n this.#logger.info(\n \"MediaRecorder.onstart fired\",\n this.#summarizeRecorderState()\n );\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onStart);\n };\n\n #onRecordingActive = ({ data }) => {\n if (data.size <= 0) {\n this.#logger.warn(\"ondataavailable -> empty chunk, ignoring\", {\n chunkCount: this.#mediaChunks.length,\n });\n\n return;\n }\n this.#dataReceiving = true;\n\n this.#mediaChunks.push(data);\n const totalBytes = this.#mediaChunks.reduce(\n (sum, chunk) => sum + (chunk?.size ?? 0),\n 0\n );\n\n this.#logger.info(\"ondataavailable -> chunk received\", {\n chunkBytes: data.size,\n chunkType: data.type,\n chunkCount: this.#mediaChunks.length,\n totalBytes,\n recorderState: this.#mediaRecorder?.state,\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDataAvailable, [data]);\n };\n\n #onRecordingStop = () => {\n const totalBytes = this.#mediaChunks.reduce(\n (sum, chunk) => sum + (chunk?.size ?? 0),\n 0\n );\n\n this.#logger.info(\"MediaRecorder.onstop fired\", {\n ...this.#summarizeRecorderState(),\n totalBytes,\n mediaStreamActive: this.#mediaStream?.active,\n });\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopped });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onStop);\n\n // If mediaStream is active after stopping mediaRecorder, then that means that\n // we are restarting and not stopping.\n if (this.#mediaStream?.active) {\n this.#logger.info(\n \"onRecordingStop -> mediaStream still active, transitioning to restarting\"\n );\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.restarting });\n }\n };\n\n #queryMicPermissionState = async () => {\n try {\n const result = await window.navigator.permissions.query({\n name: \"microphone\",\n });\n\n return result.state;\n } catch (error) {\n // Permissions API or the \"microphone\" descriptor is unsupported\n // (e.g. Safari). Fall through to the live getUserMedia attempt.\n this.#logger.info(\n \"queryMicPermissionState -> unsupported\",\n this.#serializeError(error)\n );\n\n return \"prompt\";\n }\n };\n\n #serializeError = error => {\n if (!error) return { error: null };\n\n return {\n name: error.name,\n message: error.message,\n stack: error.stack,\n code: error.code,\n constraint: error.constraint,\n };\n };\n\n #summarizeStream = stream => {\n if (!stream) return null;\n\n const summarizeTrack = track => ({\n kind: track.kind,\n readyState: track.readyState,\n enabled: track.enabled,\n muted: track.muted,\n label: track.label,\n settings:\n typeof track.getSettings === \"function\"\n ? track.getSettings()\n : undefined,\n });\n\n return {\n id: stream.id,\n active: stream.active,\n videoTracks: stream.getVideoTracks?.().map(summarizeTrack) ?? [],\n audioTracks: stream.getAudioTracks?.().map(summarizeTrack) ?? [],\n };\n };\n\n #summarizeRecorderState = (extra = {}) => ({\n recorderState: this.#mediaRecorder?.state,\n status: this.#store.getState().status,\n elapsedTime: this.#store.getState().elapsedTime,\n chunkCount: this.#mediaChunks.length,\n dataReceiving: this.#dataReceiving,\n countdownTimeLeft: this.#store.getState().countdownTimeLeft,\n ...extra,\n });\n\n // `delayMs` only exists to keep the start chime out of the recording; when no\n // chime plays (countdown skipped or disabled) we start immediately so the\n // recorder begins ticking without a perceptible gap.\n #startMediaRecorder = (delayMs = 0) => {\n this.#logger.info(\"startMediaRecorder -> scheduled\", {\n delayMs,\n ...this.#summarizeRecorderState(),\n });\n\n this.#startRecordingTimeoutID = setTimeout(() => {\n try {\n if (!this.#mediaRecorder) {\n this.#logger.error(\n \"startMediaRecorder -> aborted, mediaRecorder is null\",\n this.#summarizeRecorderState()\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n return;\n }\n\n if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#logger.error(\n \"startMediaRecorder -> aborted, media stream unavailable or ended\",\n {\n hasMediaStream: Boolean(this.#mediaStream),\n isEnded: this.#mediaStream\n ? isStreamEnded(this.#mediaStream)\n : true,\n stream: this.#summarizeStream(this.#mediaStream),\n }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n return;\n }\n\n if (this.#mediaRecorder?.state === \"recording\") {\n this.#logger.warn(\n \"startMediaRecorder -> mediaRecorder already recording, skipping\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"startMediaRecorder -> calling start()\", {\n timesliceMs: 5000,\n ...this.#summarizeRecorderState(),\n });\n this.#mediaRecorder.start(5000);\n\n // Titles the recording from its opening seconds, while it is still\n // being made. Skipped when there is nothing that could carry speech.\n if (this.#hasSpeechSourceForTitle()) {\n getFastTitleRunner().start(this.#mediaStream);\n }\n\n this.#logger.info(\n \"startMediaRecorder -> start() returned\",\n this.#summarizeRecorderState()\n );\n this.#startTimer();\n } catch (error) {\n this.#logger.error(\n \"startMediaRecorder -> failed\",\n this.#serializeError(error),\n this.#summarizeRecorderState()\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n // To prevent triggering #onRecordingStop when the mediaRecorder is failed to start.\n if (this.#mediaRecorder) {\n this.#mediaRecorder.onstop = noop;\n }\n\n if (this.#mediaStream) {\n this.#stopAllStreams();\n this.#mediaStream = null;\n }\n this.#stream = null;\n this.#audioStream = null;\n this.#micAudioStream = null;\n this.#mediaRecorder = null;\n\n throw error;\n }\n }, delayMs);\n };\n\n #startCountdown = () => {\n if (this.#countdownTimerId) {\n this.#logger.warn(\n \"startCountdown -> already running, ignoring\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"startCountdown -> begin\", {\n countdownTimeLeft: this.#store.getState().countdownTimeLeft,\n playCountdownAudio: this.#playCountdownAudio,\n });\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownStart);\n\n this.#countdownTimerId = setInterval(() => {\n let shouldBeep = false;\n\n this.#store.setState(({ countdownTimeLeft }) => {\n if (countdownTimeLeft - ONE_SECOND > 0) {\n const next = countdownTimeLeft - ONE_SECOND;\n this.#logger.info(\"startCountdown -> tick\", {\n remaining: next,\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [next]);\n shouldBeep = true;\n\n return { countdownTimeLeft: next };\n }\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [0]);\n\n this.#logger.info(\"startCountdown -> end, starting recorder\");\n if (this.#playCountdownAudio) this.#startRecordingAudio.play();\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.recording });\n this.#startMediaRecorder(\n this.#playCountdownAudio ? HALF_A_SECOND_IN_MILLISECONDS : 0\n );\n\n clearInterval(this.#countdownTimerId);\n this.#countdownTimerId = null;\n\n return { countdownTimeLeft: 0 };\n });\n\n if (shouldBeep && this.#playCountdownAudio) this.#playCountdownBeep();\n }, ONE_SECOND_IN_MILLISECONDS);\n };\n\n #startTimer = () => {\n this.#lastTimerUpdatedAt = Date.now();\n this.#timerId = setInterval(() => {\n this.#store.setState(({ elapsedTime }) => {\n const now = Date.now();\n const newElapsedTime = elapsedTime + (now - this.#lastTimerUpdatedAt);\n this.#lastTimerUpdatedAt = now;\n\n this.#checkIfTimeLimitReached(newElapsedTime);\n\n return { elapsedTime: newElapsedTime };\n });\n }, TWO_HUNDRED_MILLISECONDS);\n };\n\n #stopTimer = () => {\n clearInterval(this.#timerId);\n\n const newElapsedTime =\n this.#store.getState().elapsedTime +\n (Date.now() - this.#lastTimerUpdatedAt);\n\n this.#store.setState({ elapsedTime: newElapsedTime });\n };\n\n #checkIfTimeLimitReached = elapsedTime => {\n const oneMinuteBeforeTimeLimit =\n this.#timeLimit - ONE_MINUTE_IN_MILLISECONDS;\n\n if (elapsedTime <= oneMinuteBeforeTimeLimit) return;\n\n if (\n elapsedTime < this.#timeLimit &&\n elapsedTime > oneMinuteBeforeTimeLimit\n ) {\n if (not(this.#store.getState().showTimeLimitWarning)) {\n this.#logger.info(\"time limit warning threshold crossed\", {\n elapsedTime,\n timeLimit: this.#timeLimit,\n });\n this.#recordingLimitWarningAudio.play();\n }\n this.#store.setState({ showTimeLimitWarning: true });\n\n return;\n }\n\n this.#logger.info(\"time limit reached, stopping recording\", {\n elapsedTime,\n timeLimit: this.#timeLimit,\n });\n this.#stopRecordingDueToLimitReachedAudio.play();\n this.stopRecording();\n };\n}\n\nconst screenRecorder = new ScreenRecorder(true, {\n displaySurface: DISPLAY_SURFACE.monitor,\n height: { max: 2160 },\n width: { max: 3840 },\n});\n\nexport default screenRecorder;\n","import { useSyncExternalStore } from \"react\";\n\nimport { getMultipartS3Uploader } from \"neetomediarecorder/core\";\n\nconst listeners = new Set();\n\nconst subscribe = listener => {\n listeners.add(listener);\n\n return () => listeners.delete(listener);\n};\n\nconst triggerStatusChange = () => {\n listeners.forEach(listener => listener());\n};\n\nconst getSnapshot = () => getMultipartS3Uploader().status;\n\nconst useMultipartS3UploadStatus = () => {\n const status = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n return { status, isStatus: (...statuses) => statuses.includes(status) };\n};\n\nuseMultipartS3UploadStatus.triggerStatusChange = triggerStatusChange;\n\nexport default useMultipartS3UploadStatus;\n"],"names":["_typeof","assertClassBrand","classPrivateFieldGet2","classApplyDescriptorSet","classApplyDescriptorGet","require$$0","show","_ref","recordingId","axios","get","concat","encodeURIComponent","fastTitleApi","createPrefixedLogger","prefix","info","_logger","_len","arguments","length","args","Array","_key","logger","apply","error","_logger2","_len2","_key2","warn","_logger3","_len3","_key3","debug","_logger4","_len4","_key4","FAST_TITLE_WINDOW_MS","FAST_TITLE_MIME_TYPES","FAST_TITLE_AUDIO_BITS_PER_SECOND","supportedMimeType","find","type","MediaRecorder","isTypeSupported","WeakMap","_recorder","_tracks","_recordingId","_mimeType","_finished","_reset","_onWindowClosed","_upload","FastTitleRunner","_this","_classCallCheck","_classPrivateFieldInitSpec","writable","value","_defineProperty","_classPrivateFieldSet","mediaStream","_mediaStream$getAudio","_mediaStream$getAudio2","isRunning","audioTracks","getAudioTracks","call","isEmpty","_classPrivateFieldGet","map","track","clone","MediaStream","mimeType","audioBitsPerSecond","ondataavailable","onerror","event","_event$error","name","stop","start","trackCount","message","_classPrivateFieldGet2","state","pause","_classPrivateFieldGet3","resume","forEach","_value","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_event$data","_event$data$size","_event$data2","audio","wrap","_callee$","_context","prev","next","abrupt","data","size","hasRecordingId","Boolean","t0","_x","_value2","_callee2","startedAt","_yield$fastTitleApi$s","uploadUrl","response","_callee2$","_context2","performance","now","sent","fetch","method","headers","body","ok","Error","status","bytes","ms","Math","round","key","URL","pathname","replace","_x2","_x3","_createClass","runner","getFastTitleRunner","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","ONE_SECOND_IN_MILLISECONDS","HALF_A_SECOND_IN_MILLISECONDS","TWO_HUNDRED_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_SECOND","SCREEN_RECORDER_STATUS","media_aborted","permission_denied","no_specified_media_found","media_in_use","invalid_media_constraints","no_chrome_flags_set","recorder_error","idle","acquiring_media","media_acquired","restarting","recording","stopping","stopped","paused","SCREEN_RECORDER_ERROR","MicPermissionDenied","AbortError","NotAllowedError","NotFoundError","NotReadableError","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","FailedToStart","CreateRecordingError","InsufficientData","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","onReUpload","onCountdownStart","onCountdown","onCountdownEnd","onCountdownSkip","onShareSelected","onUnexpectedEnd","TOTAL_RETRIES","ABORT_UPLOAD_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","DEFAULT_RETRY_CONFIG","retries","retryDelay","HAS_CHROME_NAMESPACE","chrome","IS_EXTENSION","isNotNil","extension","IS_SAFARI","platform","MIME_TYPE","mp4","webmH264Opus","webmH264","webmVp9Opus","webmVp9","webmVp8Opus","webmVp8","webm","START_RECORDING_SOUND","COUNTDOWN_TICK_SOUND","STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND","RECORDING_LIMIT_REACHED_WARNING_SOUND","RECORDING_TIME_LIMIT_FREE_PLAN","setPrototypeOf","assertThisInitialized","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","getPrototypeOf","sleep","delay","Promise","resolve","setTimeout","RetryError","_Error","_inherits","_super","_createSuper","_wrapNativeSuper","buildRetryableApi","apiConnector","undefined","_ref$retries","_ref$retryDelay","_ref2","apiConnectorArgs","_config$signal","_config$signal2","_apiConnectorArgs$con","config","remainingAttempts","shouldCancelRetries","_error$config","_error$response","_error$response2","signal","aborted","CanceledError","addEventListener","isCancel","url","min","create","payload","post","abortUpload","retryableCreate","abortUploadApi","completeUpload","completeUploadApi","partPresignedUrl","partPresignedUrlApi","getUnSupportedConstraints","mediaType","supportedMediaConstraints","navigator","mediaDevices","getSupportedConstraints","Object","keys","filter","constraint","checkConstraints","isNil","mediaTypes","unSupportedConstraints","flat","isNotEmpty","join","isStreamEnded","existsBy","readyState","getTracks","getSupportedMimeType","_candidates$find","candidates","getMediaRecorderOptions","isMp4Supported","includes","addGainNode","audioContext","audioStream","gain","audioStreamSource","createMediaStreamSource","destinationStream","createMediaStreamDestination","gainNode","createGain","connect","stream","s3AxiosInstance","interceptors","use","identity","reject","presignedUpload","presignedUrl","blob","put","retryablePresignedUpload","s3Api","isNotCancelledRequest","resolvedResponse","calculateUploadProgress","uploadProgress","total","values","reduce","sum","part","uploaded","_uploadId","_unUploadedChunks","_partNumber","_s3PartUploadPromises","_callbacks","_abortController","_pendingS3ChunkUploads","_completeUploadPromise","_failedUpload","_uploadProgress","_lastLoggedOverallPercent","_status","_id","_status2","_fireCallbacks","_handleChunkUploadError","_serializeUploadError","_uploadChunkToS","_getCurrentUnUploadedBlob","_isRecordingNotSet","_isTerminalStatus","MultipartS3Uploader","_get_isTerminalStatus","set","_get_isRecordingNotSet","_set_status","uuidv4","uploadId","isNewUpload","AbortController","chunkBytes","push","unUploadedBytes","chunkType","bufferedChunks","bufferedBytes","bufferedMB","Number","toFixed","threshold","MIN_UPLOAD_CHUNK_SIZE","uploadChunkToS3Promise","parts","sessionLogs","isMp4","logs","completeStartedAt","lastChunkBytes","resolvedS3PartUploadPromises","notifyStartedAt","Date","pendingChunks","totalPartsStarted","UPLOAD_STATUS","uploading","pendingS3ChunkUploads","all","s3PartUploadPromises","failedPartNumbers","UPLOAD_EVENT","onError","insufficient_data","etag","partNumber","request","responseURL","searchParams","toSorted","a","b","partCount","completeUploadNotifyServer","notifyDurationMs","totalDurationMs","aborting","completed","onComplete","_objectSpread","finish","forceAbort","abortStartedAt","phase","_args2","partsStarted","hasAbortController","abort","durationMs","onAbort","t1","callback","_classPrivateFieldGet4","existingCallbacks","_toConsumableArray","_classPrivateFieldGet5","registeredCallbacks","updatedCallbacks","isNot","_classPrivateFieldGet6","context","uploadStatus","_error$response3","_error$response4","code","stack","responseStatus","responseStatusText","statusText","responseData","slice","_classPrivateFieldGet7","_callee3","chunks","_this$partNumber","_classPrivateFieldGet8","partBlob","partBytes","presignStartedAt","_yield$_this$generate","uploadStartedAt","s3PartUploadPromise","_callee3$","_context3","Blob","partMB","generatePreSignedUrl","presignDurationMs","includeMetadataInResponse","onUploadProgress","e","loaded","percentCompleted","overallPercent","partLoaded","partTotal","onProgress","then","_response$headers","throughputMbps","httpStatus","uploadDurationMs","minUploadChunkSize","useMultipartS3UploadStatus","triggerStatusChange","multipartS3Uploader","getMultipartS3Uploader","_ref3","_ref3$initialize","initialize","arrayWithHoles","iterableToArrayLimit","nonIterableRest","DISPLAY_SURFACE","monitor","initialState","elapsedTime","countdownTimeLeft","COUNTDOWN_TIME","showTimeLimitWarning","prepareStore","withImmutableActions","resetState","_audio","_video","_videoStream","_mediaRecorder","_mediaStream","_store","_mediaChunks","_lastTimerUpdatedAt","_timerId","_countdownTimerId","_startRecordingAudio","_countdownTickAudio","_recordingLimitWarningAudio","_stopRecordingDueToLimitReachedAudio","_stream","_audioStream","_micAudioStream","_audioContexts","_timeLimit","_startRecordingTimeoutID","_enableNoiseCancellation","_showCountdown","_playCountdownAudio","_dataReceiving","_recordSystemAudio","_hasSpeechSourceForTitle","_stopAllStreams","_createAudioContext","_releaseAudio","_playCountdownBeep","_checkCompatibility","_acquireMediaStream","_onRecordingStart","_onRecordingActive","_onRecordingStop","_queryMicPermissionState","_serializeError","_summarizeStream","_summarizeRecorderState","_startMediaRecorder","_startCountdown","_startTimer","_stopTimer","_checkIfTimeLimitReached","ScreenRecorder","video","Audio","displaySurface","height","getVideoConfig","width","max","getResolution","showCountdown","timeLimit","setState","options","recordSystemAudio","enableNoiseCancellation","hasInjectedVideoStream","pick","initialStoreState","hasMediaStream","isEnded","videoBitsPerSecond","onstart","onstop","chunkCount","removeCallback","clearTimeout","clearInterval","removeAllCallbacksByEvent","startRecording","getState","_classPrivateFieldGet9","_classPrivateFieldGet10","_classPrivateFieldGet11","_classPrivateFieldGet12","_classPrivateFieldGet13","_slicedToArray","micTrack","micLive","muted","enabled","hasSystemAudio","_classPrivateFieldGet14","_classPrivateFieldGet15","micAudioStream","AudioContext","_classPrivateFieldGet16","_classPrivateFieldGet17","_classPrivateFieldGet18","_classPrivateFieldGet19","close","currentTime","play","_navigator$mediaDevic","hasDisplayCapture","getDisplayMedia","acquireStartedAt","micState","hasAcquiredMedia","constraints","displayMediaStartedAt","audioConfig","micStartedAt","workletUrl","workletStartedAt","noiseSuppressorNode","finalStream","_audioContext","desktopAudio","microphoneAudio","combinedAudio","window","echoCancellation","deviceId","exact","t2","getUserMedia","t3","runtime","getURL","audioWorklet","addModule","AudioWorkletNode","t4","t5","audioConfigRequested","getVideoTracks","_classPrivateFieldGet20","_classPrivateFieldGet21","hasUnexpectedEndHandler","recorderState","stopRecording","addTrack","t6","hasAudio","hasAudioStream","_classPrivateFieldGet22","_ref4","_classPrivateFieldGet23","totalBytes","chunk","_chunk$size","_classPrivateFieldGet24","_classPrivateFieldGet25","_chunk$size2","mediaStreamActive","active","result","permissions","query","_stream$getVideoTrack","_stream$getVideoTrack2","_stream$getAudioTrack","_stream$getAudioTrack2","summarizeTrack","kind","label","settings","getSettings","id","videoTracks","_classPrivateFieldGet26","extra","dataReceiving","delayMs","_classPrivateFieldGet27","timesliceMs","noop","playCountdownAudio","setInterval","shouldBeep","_ref5","remaining","_ref6","newElapsedTime","oneMinuteBeforeTimeLimit","not","_classPrivateFieldGet28","_classPrivateFieldGet29","_ref7","_ref8","videoTrack","screenRecorder","listeners","Set","subscribe","listener","add","getSnapshot","useSyncExternalStore","isStatus","statuses"],"mappings":";;;;;;;;;;AAAA,SAAS,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACjD,EAAE,IAAI;AACN,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK;AACjB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE;AACF,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/C;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE;AAC9B,EAAE,OAAO,YAAY;AACrB,IAAI,IAAI,CAAC,GAAG,IAAI;AAChB,MAAM,CAAC,GAAG,SAAS;AACnB,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;AACvC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,SAAS,KAAK,CAAC,CAAC,EAAE;AACxB,QAAQ,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7D,MAAM;AACN,MAAM,SAAS,MAAM,CAAC,CAAC,EAAE;AACzB,QAAQ,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAC9D,MAAM;AACN,MAAM,KAAK,CAAC,MAAM,CAAC;AACnB,IAAI,CAAC,CAAC;AACN,EAAE,CAAC;AACH;;ACxBA,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/B,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC;AACjF;;ACFA,SAASA,SAAO,CAAC,CAAC,EAAE;AACpB,EAAE,yBAAyB;;AAE3B,EAAE,OAAOA,SAAO,GAAG,UAAU,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE;AACpG,IAAI,OAAO,OAAO,CAAC;AACnB,EAAE,CAAC,GAAG,UAAU,CAAC,EAAE;AACnB,IAAI,OAAO,CAAC,IAAI,UAAU,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AACvH,EAAE,CAAC,EAAEA,SAAO,CAAC,CAAC,CAAC;AACf;;ACPA,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3B,EAAE,IAAI,QAAQ,IAAIA,SAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC;AAC5C,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AAC/B,EAAE,IAAI,MAAM,KAAK,CAAC,EAAE;AACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAc,CAAC;AACrC,IAAI,IAAI,QAAQ,IAAIA,SAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACxC,IAAI,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC;AACvE,EAAE;AACF,EAAE,OAAO,CAAC,QAAQ,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAC9C;;ACRA,SAAS,aAAa,CAAC,CAAC,EAAE;AAC1B,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC;AAClC,EAAE,OAAO,QAAQ,IAAIA,SAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;AAC5C;;ACJA,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,KAAE,EAAE,CAAC,CAAC,YAAY,GAAG,IAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAE,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChJ,EAAE;AACF;AACA,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/B,EAAE,OAAO,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAgC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,WAAW,EAAE;AACrH,IAAI,QAAQ,EAAE;AACd,GAAG,CAAC,EAAE,CAAC;AACP;;ACVA,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAClC,EAAE,OAAO,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AACnE,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,UAAU,EAAE,IAAE;AAClB,IAAI,YAAY,EAAE,IAAE;AACpB,IAAI,QAAQ,EAAE;AACd,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AAClB;;ACRA,SAAS,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC3C,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;AACnC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC;AACpF,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;AACf,EAAE;AACF;;ACLA,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpC,EAAE,IAAI,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACtF,EAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC;AACtE;;ACFA,SAAS,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE;AACtC,EAAE,OAAO,CAAC,CAAC,GAAG,CAACC,iBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC;;ACDA,SAAS,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACxC,EAAE,IAAI,CAAC,GAAGC,sBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;AACrC,EAAE,OAAOC,wBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC5C;;ACLA,SAAS,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE;AACxC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;AACxC;;ACAA,SAAS,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE;AACrC,EAAE,IAAI,CAAC,GAAGD,sBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;AACrC,EAAE,OAAOE,wBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC;AACtC;;;;;;;;;;;CCLA,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB,GAAE,yBAAyB;;AAE3B,GAAE,OAAO,MAAA,CAAA,OAAA,GAAiB,OAAO,GAAG,UAAU,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE;KACjH,OAAO,OAAO,CAAC;GACnB,CAAG,GAAG,UAAU,CAAC,EAAE;KACf,OAAO,CAAC,IAAI,UAAU,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AACvH,GAAA,CAAG,EAAE,MAAA,CAAA,OAAA,CAAA,UAAA,GAA4B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CAC7F;AACA,CAAA,MAAA,CAAA,OAAA,GAAiB,OAAO,EAAE,MAAA,CAAA,OAAA,CAAA,UAAA,GAA4B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAA;;;;;;ACTtG,CAAA,IAAI,OAAO,GAAGC,cAAsB,CAAC,SAAS,CAAC;AAC/C,CAAA,SAAS,mBAAmB,GAAG;AAE/B,GAAE,MAAA,CAAA,OAAA,GAAiB,mBAAmB,GAAG,SAAS,mBAAmB,GAAG;KACpE,OAAO,CAAC;AACZ,GAAA,CAAG,EAAE,MAAA,CAAA,OAAA,CAAA,UAAA,GAA4B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO;AACjF,GAAE,IAAI,CAAC;KACH,CAAC,GAAG,EAAE;AACV,KAAI,CAAC,GAAG,MAAM,CAAC,SAAS;AACxB,KAAI,CAAC,GAAG,CAAC,CAAC,cAAc;AACxB,KAAI,CAAC,GAAG,MAAM,CAAC,cAAc,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;OAC9C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;KACpB,CAAK;KACD,CAAC,GAAG,UAAU,IAAI,OAAO,MAAM,GAAG,MAAM,GAAG,EAAE;AACjD,KAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,IAAI,YAAY;AAClC,KAAI,CAAC,GAAG,CAAC,CAAC,aAAa,IAAI,iBAAiB;AAC5C,KAAI,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,eAAe;GACtC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KACvB,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;OACjC,KAAK,EAAE,CAAC;OACR,UAAU,EAAE,IAAE;OACd,YAAY,EAAE,IAAE;OAChB,QAAQ,EAAE;AAChB,MAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;GACZ;AACA,GAAE,IAAI;AACN,KAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;GAClB,CAAG,CAAC,OAAO,CAAC,EAAE;KACV,MAAM,GAAG,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACtC,OAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACrB,KAAA,CAAK;GACL;GACE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,KAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,YAAY,SAAS,GAAG,CAAC,GAAG,SAAS;OAC3D,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;OAC9B,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9B,KAAI,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE;OACrB,KAAK,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;MAChC,CAAC,EAAE,CAAC;GACT;GACE,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC7B,KAAI,IAAI;AACR,OAAM,OAAO;SACL,IAAI,EAAE,QAAQ;SACd,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AACxB,QAAO;KACP,CAAK,CAAC,OAAO,CAAC,EAAE;AAChB,OAAM,OAAO;SACL,IAAI,EAAE,OAAO;SACb,GAAG,EAAE;AACb,QAAO;KACP;GACA;AACA,GAAE,CAAC,CAAC,IAAI,GAAG,IAAI;GACb,IAAI,CAAC,GAAG,gBAAgB;KACtB,CAAC,GAAG,gBAAgB;KACpB,CAAC,GAAG,WAAW;KACf,CAAC,GAAG,WAAW;KACf,CAAC,GAAG,EAAE;GACR,SAAS,SAAS,GAAG,CAAA;GACrB,SAAS,iBAAiB,GAAG,CAAA;GAC7B,SAAS,0BAA0B,GAAG,CAAA;AACxC,GAAE,IAAI,CAAC,GAAG,EAAE;AACZ,GAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY;KACvB,OAAO,IAAI;AACf,GAAA,CAAG,CAAC;AACJ,GAAE,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc;AAC/B,KAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,GAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzC,GAAE,IAAI,CAAC,GAAG,0BAA0B,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACvF,GAAE,SAAS,qBAAqB,CAAC,CAAC,EAAE;AACpC,KAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;OAC/C,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE;SACxB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,OAAA,CAAO,CAAC;AACR,KAAA,CAAK,CAAC;GACN;AACA,GAAE,SAAS,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE;KAC3B,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAChC,OAAM,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClC,OAAM,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE;AAC9B,SAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;AACrB,WAAU,CAAC,GAAG,CAAC,CAAC,KAAK;AACrB,SAAQ,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;WAClG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACjC,CAAS,EAAE,UAAU,CAAC,EAAE;WACd,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClC,SAAA,CAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;WAClC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC3B,CAAS,EAAE,UAAU,CAAC,EAAE;WACd,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzC,SAAA,CAAS,CAAC;OACV;AACA,OAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;KACd;KACI,IAAI,CAAC;AACT,KAAI,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE;OACjB,KAAK,EAAE,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;SAC1B,SAAS,0BAA0B,GAAG;WACpC,OAAO,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;aAC3B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9B,WAAA,CAAW,CAAC;SACZ;AACA,SAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,GAAG,0BAA0B,EAAE;OACpH;AACA,MAAK,CAAC;GACN;GACE,SAAS,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrC,KAAI,IAAI,CAAC,GAAG,CAAC;AACb,KAAI,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;OACrB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,8BAA8B,CAAC;AAC9D,OAAM,IAAI,CAAC,KAAK,CAAC,EAAE;AACnB,SAAQ,IAAI,OAAO,KAAK,CAAC,EAAE,MAAM,CAAC;AAClC,SAAQ,OAAO;WACL,KAAK,EAAE,CAAC;WACR,IAAI,EAAE;AAChB,UAAS;OACT;AACA,OAAM,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI;AACtC,SAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ;SAClB,IAAI,CAAC,EAAE;WACL,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;WACjC,IAAI,CAAC,EAAE;AACjB,aAAY,IAAI,CAAC,KAAK,CAAC,EAAE;aACb,OAAO,CAAC;WACpB;SACA;SACQ,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,MAAM,EAAE;AACzF,WAAU,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG;WAC/B,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC;AACpC,SAAA,CAAS,MAAM,QAAQ,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC;SACzD,CAAC,GAAG,CAAC;SACL,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACjC,SAAQ,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,EAAE;AACjC,WAAU,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE;AAC/C,WAAU,OAAO;AACjB,aAAY,KAAK,EAAE,CAAC,CAAC,GAAG;AACxB,aAAY,IAAI,EAAE,CAAC,CAAC;AACpB,YAAW;SACX;SACQ,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;OACxE;AACA,KAAA,CAAK;GACL;AACA,GAAE,SAAS,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE;AACrC,KAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;OACd,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvB,KAAI,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,GAAG,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,QAAQ,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,mCAAmC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC;AAC/R,KAAI,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC;AAC1C,KAAI,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;AAC1F,KAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;AACjB,KAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC;GAClQ;AACA,GAAE,SAAS,YAAY,CAAC,CAAC,EAAE;KACvB,IAAI,CAAC,GAAG;AACZ,OAAM,MAAM,EAAE,CAAC,CAAC,CAAC;AACjB,MAAK;KACD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;GAC9G;AACA,GAAE,SAAS,aAAa,CAAC,CAAC,EAAE;KACxB,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,EAAE;AAC9B,KAAI,CAAC,CAAC,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC;GACrD;AACA,GAAE,SAAS,OAAO,CAAC,CAAC,EAAE;AACtB,KAAI,IAAI,CAAC,UAAU,GAAG,CAAC;OACjB,MAAM,EAAE;AACd,MAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAE,CAAC;GACrD;AACA,GAAE,SAAS,MAAM,CAAC,CAAC,EAAE;AACrB,KAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AACvB,OAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;OACZ,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;OACvB,IAAI,UAAU,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;OACzC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AAC5B,SAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,WAAU,CAAC,GAAG,SAAS,IAAI,GAAG;AAC9B,aAAY,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,KAAE,EAAE,IAAI;AACpG,aAAY,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAE,EAAE,IAAI;AACvD,WAAA,CAAW;AACX,SAAQ,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC;OACzB;KACA;KACI,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC;GACxD;AACA,GAAE,OAAO,iBAAiB,CAAC,SAAS,GAAG,0BAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE;KACnF,KAAK,EAAE,0BAA0B;KACjC,YAAY,EAAE;AAClB,IAAG,CAAC,EAAE,CAAC,CAAC,0BAA0B,EAAE,aAAa,EAAE;KAC/C,KAAK,EAAE,iBAAiB;KACxB,YAAY,EAAE;IACf,CAAC,EAAE,iBAAiB,CAAC,WAAW,GAAG,MAAM,CAAC,0BAA0B,EAAE,CAAC,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC,mBAAmB,GAAG,UAAU,CAAC,EAAE;KACnI,IAAI,CAAC,GAAG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW;KAC/C,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,iBAAiB,IAAI,mBAAmB,MAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAChG,GAAA,CAAG,EAAE,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,EAAE;AAC3B,KAAI,OAAO,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,0BAA0B,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1M,GAAA,CAAG,EAAE,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE;AAC5B,KAAI,OAAO;OACL,OAAO,EAAE;AACf,MAAK;AACL,GAAA,CAAG,EAAE,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,YAAY;KAChG,OAAO,IAAI;GACf,CAAG,CAAC,EAAE,CAAC,CAAC,aAAa,GAAG,aAAa,EAAE,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KACtE,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;AACjC,KAAI,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClD,KAAI,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACrE,OAAM,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE;AACxC,KAAA,CAAK,CAAC;GACN,CAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY;KAC/E,OAAO,IAAI;GACf,CAAG,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY;KACpC,OAAO,oBAAoB;GAC/B,CAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,EAAE;AAC5B,KAAI,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;OACf,CAAC,GAAG,EAAE;AACZ,KAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KAC1B,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,SAAS,IAAI,GAAG;AACxC,OAAM,OAAO,CAAC,CAAC,MAAM,GAAG;AACxB,SAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;SACf,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,KAAE,EAAE,IAAI;OAC/D;OACM,OAAO,IAAI,CAAC,IAAI,GAAG,IAAE,EAAE,IAAI;AACjC,KAAA,CAAK;GACL,CAAG,EAAE,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,SAAS,GAAG;KACxC,WAAW,EAAE,OAAO;AACxB,KAAI,KAAK,EAAE,SAAS,KAAK,CAAC,CAAC,EAAE;OACvB,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,KAAE,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAC5R,CAAK;AACL,KAAI,IAAI,EAAE,SAAS,IAAI,GAAG;AAC1B,OAAM,IAAI,CAAC,IAAI,GAAG,IAAE;OACd,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU;OACrC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG;AACzC,OAAM,OAAO,IAAI,CAAC,IAAI;KACtB,CAAK;AACL,KAAI,iBAAiB,EAAE,SAAS,iBAAiB,CAAC,CAAC,EAAE;AACrD,OAAM,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;AAC5B,OAAM,IAAI,CAAC,GAAG,IAAI;AAClB,OAAM,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,SAAQ,OAAO,CAAC,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;OAChG;AACA,OAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;SACpD,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAClC,WAAU,CAAC,GAAG,CAAC,CAAC,UAAU;AAC1B,SAAQ,IAAI,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC;SAC7C,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;WACzB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC;aAC3B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC;AACvC,WAAU,IAAI,CAAC,IAAI,CAAC,EAAE;AACtB,aAAY,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAE,CAAC;AACrE,aAAY,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;WACrE,CAAW,MAAM,IAAI,CAAC,EAAE;AACxB,aAAY,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAE,CAAC;AACrE,WAAA,CAAW,MAAM;aACL,IAAI,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,wCAAwC,CAAC;AACzE,aAAY,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;WACrE;SACA;OACA;KACA,CAAK;KACD,MAAM,EAAE,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AAClC,OAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;SACpD,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SAC1B,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE;AAC1F,WAAU,IAAI,CAAC,GAAG,CAAC;AACnB,WAAU;SACV;OACA;OACM,CAAC,KAAK,OAAO,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,GAAG,IAAI,CAAC;OAC5F,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,EAAE;AACnC,OAAM,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC9G,CAAK;KACD,QAAQ,EAAE,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;OAChC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG;AACzC,OAAM,OAAO,OAAO,KAAK,CAAC,CAAC,IAAI,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,QAAQ,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;KAC/N,CAAK;AACL,KAAI,MAAM,EAAE,SAAS,MAAM,CAAC,CAAC,EAAE;AAC/B,OAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;SACpD,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;SAC1B,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;OACnG;KACA,CAAK;AACL,KAAI,OAAO,EAAE,SAAS,MAAM,CAAC,CAAC,EAAE;AAChC,OAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;SACpD,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAClC,SAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,WAAU,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU;AAC9B,WAAU,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE;AAClC,aAAY,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;AACzB,aAAY,aAAa,CAAC,CAAC,CAAC;WAC5B;WACU,OAAO,CAAC;SAClB;OACA;AACA,OAAM,MAAM,KAAK,CAAC,uBAAuB,CAAC;KAC1C,CAAK;KACD,aAAa,EAAE,SAAS,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACnD,OAAM,OAAO,IAAI,CAAC,QAAQ,GAAG;AAC7B,SAAQ,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;SACnB,UAAU,EAAE,CAAC;SACb,OAAO,EAAE;AACjB,QAAO,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;KACpD;IACG,EAAE,CAAC;CACN;AACA,CAAA,MAAA,CAAA,OAAA,GAAiB,mBAAmB,EAAE,MAAA,CAAA,OAAA,CAAA,UAAA,GAA4B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAA;;;;;AC/SlH;;AAEA,IAAI,OAAO,GAAGA,yBAAwC,EAAE;IACxD,WAAc,GAAG,OAAO;;AAExB;AACA,IAAI;AACJ,EAAE,kBAAkB,GAAG,OAAO;AAC9B,CAAC,CAAC,OAAO,oBAAoB,EAAE;AAC/B,EAAE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACtC,IAAI,UAAU,CAAC,kBAAkB,GAAG,OAAO;AAC3C,EAAA,CAAG,MAAM;AACT,IAAI,QAAQ,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC,OAAO,CAAC;AACpD,EAAA;AACA;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,WAAW,GAAAD,IAAA,CAAXC,WAAW;EAAA,OACzBC,KAAK,CAACC,GAAG,CAAA,qBAAA,CAAAC,MAAA,CACeC,kBAAkB,CACtCJ,WAAW,CACZ,EAAA,wBAAA,CAAA,CACF;AAAA,CAAA;AAEH,IAAMK,YAAY,GAAG;AAAEP,EAAAA,IAAI,EAAJA;AAAK,CAAC;;ACf7B,IAAMQ,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGC,MAAM,EAAA;EAAA,OAAK;IACtCC,IAAI,EAAE,SAAAA,IAAAA,GAAA;AAAA,MAAA,IAAAC,OAAA;AAAA,MAAA,KAAA,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,IAAI,GAAA,IAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAAJF,QAAAA,IAAI,CAAAE,IAAA,CAAA,GAAAJ,SAAA,CAAAI,IAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAK,CAAAN,OAAA,GAAAO,MAAM,EAACR,IAAI,CAAAS,KAAA,CAAAR,OAAA,GAACF,MAAM,CAAA,CAAAJ,MAAA,CAAKU,IAAI,CAAA,CAAC;AAAA,IAAA,CAAA;IAC/CK,KAAK,EAAE,SAAAA,KAAAA,GAAA;AAAA,MAAA,IAAAC,QAAA;AAAA,MAAA,KAAA,IAAAC,KAAA,GAAAT,SAAA,CAAAC,MAAA,EAAIC,IAAI,GAAA,IAAAC,KAAA,CAAAM,KAAA,GAAAC,KAAA,GAAA,CAAA,EAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA,EAAA,EAAA;AAAJR,QAAAA,IAAI,CAAAQ,KAAA,CAAA,GAAAV,SAAA,CAAAU,KAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAK,CAAAF,QAAA,GAAAH,MAAM,EAACE,KAAK,CAAAD,KAAA,CAAAE,QAAA,GAACZ,MAAM,CAAA,CAAAJ,MAAA,CAAKU,IAAI,CAAA,CAAC;AAAA,IAAA,CAAA;IACjDS,IAAI,EAAE,SAAAA,IAAAA,GAAA;AAAA,MAAA,IAAAC,QAAA;AAAA,MAAA,KAAA,IAAAC,KAAA,GAAAb,SAAA,CAAAC,MAAA,EAAIC,IAAI,GAAA,IAAAC,KAAA,CAAAU,KAAA,GAAAC,KAAA,GAAA,CAAA,EAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA,EAAA,EAAA;AAAJZ,QAAAA,IAAI,CAAAY,KAAA,CAAA,GAAAd,SAAA,CAAAc,KAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAK,CAAAF,QAAA,GAAAP,MAAM,EAACM,IAAI,CAAAL,KAAA,CAAAM,QAAA,GAAChB,MAAM,CAAA,CAAAJ,MAAA,CAAKU,IAAI,CAAA,CAAC;AAAA,IAAA,CAAA;IAC/Ca,KAAK,EAAE,SAAAA,KAAAA,GAAA;AAAA,MAAA,IAAAC,QAAA;AAAA,MAAA,KAAA,IAAAC,KAAA,GAAAjB,SAAA,CAAAC,MAAA,EAAIC,IAAI,GAAA,IAAAC,KAAA,CAAAc,KAAA,GAAAC,KAAA,GAAA,CAAA,EAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA,EAAA,EAAA;AAAJhB,QAAAA,IAAI,CAAAgB,KAAA,CAAA,GAAAlB,SAAA,CAAAkB,KAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAK,CAAAF,QAAA,GAAAX,MAAM,EAACU,KAAK,CAAAT,KAAA,CAAAU,QAAA,GAACpB,MAAM,CAAA,CAAAJ,MAAA,CAAKU,IAAI,CAAA,CAAC;AAAA,IAAA;GAClD;AAAA,CAAC;;ACLF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMiB,oBAAoB,GAAG,KAAM;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,qBAAqB,GAAG,CACnC,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,EACZ,4BAA4B,EAC5B,WAAW,CACZ;AAEM,IAAMC,gCAAgC,GAAG,KAAM;;;;ACbtD,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;AAAA,EAAA,OACrBF,qBAAqB,CAACG,IAAI,CAAC,UAAAC,IAAI,EAAA;AAAA,IAAA,OAAIC,aAAa,CAACC,eAAe,CAACF,IAAI,CAAC;EAAA,CAAA,CAAC;AAAA,CAAA;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlBA,IAAA1B,SAAA,oBAAA6B,OAAA,EAAA;AAAA,IAAAC,SAAA,oBAAAD,OAAA,EAAA;AAAA,IAAAE,OAAA,oBAAAF,OAAA,EAAA;AAAA,IAAAG,cAAA,oBAAAH,OAAA,EAAA;AAAA,IAAAI,WAAA,oBAAAJ,OAAA,EAAA;AAAA,IAAAK,SAAA,oBAAAL,OAAA,EAAA;AAAA,IAAAM,MAAA,oBAAAN,OAAA,EAAA;AAAA,IAAAO,eAAA,oBAAAP,OAAA,EAAA;AAAA,IAAAQ,OAAA,oBAAAR,OAAA,EAAA;AAAA,IAmBMS,eAAe,gBAAA,YAAA;AAAA,EAAA,SAAAA,eAAAA,GAAA;AAAA,IAAA,IAAAC,KAAA,GAAA,IAAA;AAAAC,IAAAA,eAAA,OAAAF,eAAA,CAAA;AAAAG,IAAAA,4BAAA,OAAAzC,SAAA,EAAA;MAAA0C,QAAA,EAAA,IAAA;MAAAC,KAAA,EACT9C,oBAAoB,CAAC,aAAa;AAAC,KAAA,CAAA;AAAA4C,IAAAA,4BAAA,OAAAX,SAAA,EAAA;MAAAY,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAV,OAAA,EAAA;MAAAW,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEnC;AAAE,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAT,cAAA,EAAA;MAAAU,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACG;AAAI,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAR,WAAA,EAAA;MAAAS,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAP,SAAA,EAAA;MAAAQ,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEP;AAAK,KAAA,CAAA;IAAAC,eAAA,CAAA,IAAA,EAAA,gBAAA,EAQA,UAAArD,WAAW,EAAI;AAC9BsD,MAAAA,qBAAA,CAAAN,KAAI,EAAAP,cAAA,EAAgBzC,WAAW,CAAA;IACjC,CAAC,CAAA;IAAAqD,eAAA,CAAA,IAAA,EAAA,OAAA,EAMO,UAAAE,WAAW,EAAI;MAAA,IAAAC,qBAAA,EAAAC,sBAAA;MACrB,IAAIT,KAAI,CAACU,SAAS,EAAE;MAEpB,IAAMC,WAAW,GAAA,CAAAH,qBAAA,GAAGD,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAA,CAAAE,sBAAA,GAAXF,WAAW,CAAEK,cAAc,MAAA,IAAA,IAAAH,sBAAA,KAAA,MAAA,GAAA,MAAA,GAA3BA,sBAAA,CAAAI,IAAA,CAAAN,WAAW,CAAoB,MAAA,IAAA,IAAAC,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI,EAAE;AACzD,MAAA,IAAIM,OAAO,CAACH,WAAW,CAAC,EAAE;QACxBI,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,mCAAmC,CAAC;AAEtD,QAAA;AACF,MAAA;AAEA8C,MAAAA,qBAAA,CAAAN,KAAI,EAAAN,WAAA,EAAaT,iBAAiB,EAAE,CAAA;AACpC,MAAA,IAAI,CAAA8B,qBAAA,CAACf,KAAI,EAAAN,WAAA,CAAU,EAAE;QACnBqB,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,iDAAiD,CAAC;AAEpE,QAAA;AACF,MAAA;AAEAuD,MAAAA,qBAAA,CAAAf,KAAI,EAAAJ,MAAA,CAAA,CAAAiB,IAAA,CAAJb,KAAI,CAAA;MAEJ,IAAI;AACF;AACA;AACA;QACAM,qBAAA,CAAAN,KAAI,EAAAR,OAAA,EAAWmB,WAAW,CAACK,GAAG,CAAC,UAAAC,KAAK,EAAA;UAAA,OAAIA,KAAK,CAACC,KAAK,EAAE;QAAA,CAAA,CAAC,CAAA;AAEtDZ,QAAAA,qBAAA,CAAAN,KAAI,EAAAT,SAAA,EAAa,IAAIH,aAAa,CAAC,IAAI+B,WAAW,CAAAJ,qBAAA,CAACf,KAAI,EAAAR,OAAA,EAAS,EAAE;AAChE4B,UAAAA,QAAQ,EAAAL,qBAAA,CAAEf,KAAI,EAAAN,WAAA,CAAU;AACxB2B,UAAAA,kBAAkB,EAAErC;AACtB,SAAC,CAAC,CAAA;AACF+B,QAAAA,qBAAA,CAAAf,KAAI,EAAAT,SAAA,CAAA,CAAW+B,eAAe,GAAAP,qBAAA,CAAGf,KAAI,EAAAH,eAAA,CAAgB;QACrDkB,qBAAA,CAAAf,KAAI,EAAAT,SAAA,EAAWgC,OAAO,GAAG,UAAAC,KAAK,EAAI;AAAA,UAAA,IAAAC,YAAA;UAChCV,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,CAAA,CAASS,KAAK,CAAC,gBAAgB,EAAEsD,KAAK,KAAA,IAAA,IAALA,KAAK,wBAAAC,YAAA,GAALD,KAAK,CAAEtD,KAAK,MAAA,IAAA,IAAAuD,YAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,YAAA,CAAcC,IAAI,CAAC;UACxD1B,KAAI,CAAC2B,IAAI,EAAE;QACb,CAAC;QACDZ,qBAAA,CAAAf,KAAI,EAAAT,SAAA,EAAWqC,KAAK,CAAC9C,oBAAoB,CAAC;QAE1CiC,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,kCAAkC,EAAE;AACpD4D,UAAAA,QAAQ,EAAAL,qBAAA,CAAEf,KAAI,EAAAN,WAAA,CAAU;AACxBmC,UAAAA,UAAU,EAAEd,qBAAA,CAAAf,KAAI,EAAAR,OAAA,CAAA,CAAS5B;AAC3B,SAAC,CAAC;MACJ,CAAC,CAAC,OAAOM,KAAK,EAAE;AACd6C,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,CAAA,CAASS,KAAK,CAAC,iBAAiB,EAAEA,KAAK,aAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE4D,OAAO,CAAC;QACrD9B,KAAI,CAAC2B,IAAI,EAAE;AACb,MAAA;IACF,CAAC,CAAA;AAAAtB,IAAAA,eAAA,gBAEO,YAAM;AAAA,MAAA,IAAA0B,sBAAA;MACZ,IAAI,CAAA,CAAAA,sBAAA,GAAAhB,qBAAA,CAAAf,KAAI,EAAAT,SAAA,CAAA,MAAA,IAAA,IAAAwC,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,sBAAA,CAAgBC,KAAK,MAAK,WAAW,EAAEjB,qBAAA,CAAAf,KAAI,EAAAT,SAAA,CAAA,CAAW0C,KAAK,EAAE;IACnE,CAAC,CAAA;AAAA5B,IAAAA,eAAA,iBAEQ,YAAM;AAAA,MAAA,IAAA6B,sBAAA;MACb,IAAI,CAAA,CAAAA,sBAAA,GAAAnB,qBAAA,CAAAf,KAAI,EAAAT,SAAA,CAAA,MAAA,IAAA,IAAA2C,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,sBAAA,CAAgBF,KAAK,MAAK,QAAQ,EAAEjB,qBAAA,CAAAf,KAAI,EAAAT,SAAA,CAAA,CAAW4C,MAAM,EAAE;IACjE,CAAC,CAAA;AAAA9B,IAAAA,eAAA,eAEM,YAAM;AACXC,MAAAA,qBAAA,CAAAN,KAAI,EAAAL,SAAA,EAAa,IAAI,CAAA;MAErB,IAAI;AACF,QAAA,IAAIoB,qBAAA,CAAAf,KAAI,EAAAT,SAAA,CAAA,IAAcwB,qBAAA,CAAAf,KAAI,EAAAT,SAAA,CAAA,CAAWyC,KAAK,KAAK,UAAU,EAAE;AACzD;AACA;AACAjB,UAAAA,qBAAA,CAAAf,KAAI,EAAAT,SAAA,CAAA,CAAW+B,eAAe,GAAG,IAAI;AACrCP,UAAAA,qBAAA,CAAAf,KAAI,EAAAT,SAAA,CAAA,CAAWoC,IAAI,EAAE;AACvB,QAAA;MACF,CAAC,CAAC,OAAOzD,KAAK,EAAE;AACd6C,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,CAAA,CAASS,KAAK,CAAC,iCAAiC,EAAEA,KAAK,aAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE4D,OAAO,CAAC;AACvE,MAAA;MAEAf,qBAAA,CAAAf,KAAI,EAAAR,OAAA,EAAS4C,OAAO,CAAC,UAAAnB,KAAK,EAAA;QAAA,OAAIA,KAAK,CAACU,IAAI,EAAE;MAAA,CAAA,CAAC;AAC3CZ,MAAAA,qBAAA,CAAAf,KAAI,EAAAJ,MAAA,CAAA,CAAAiB,IAAA,CAAJb,KAAI,CAAA;IACN,CAAC,CAAA;AAAAE,IAAAA,4BAAA,OAAAN,MAAA,EAAA;MAAAO,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEQ,SAAAA,KAAAA,GAAM;AACbE,QAAAA,qBAAA,CAAAN,KAAI,EAAAT,SAAA,EAAa,IAAI,CAAA;AACrBe,QAAAA,qBAAA,CAAAN,KAAI,EAAAR,OAAA,EAAW,EAAE,CAAA;AACjBc,QAAAA,qBAAA,CAAAN,KAAI,EAAAL,SAAA,EAAa,KAAK,CAAA;AACxB,MAAA;AAAC,KAAA,CAAA;AAAAO,IAAAA,4BAAA,OAAAL,eAAA,EAAA;MAAAM,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA,YAAA;QAAA,IAAAiC,MAAA,GAAAC,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAIiB,SAAAC,OAAAA,CAAMjB,KAAK,EAAA;AAAA,UAAA,IAAAkB,WAAA;AAAA,UAAA,IAAAC,gBAAA,EAAAC,YAAA,EAAAC,KAAA,EAAA7F,WAAA;AAAA,UAAA,OAAAuF,mBAAA,CAAAO,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,cAAA,KAAA,CAAA;AAAA,gBAAA,IAAA,CAAAnC,qBAAA,CACvBf,KAAI,EAAAL,SAAA,CAAA,EAAA;AAAAqD,kBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,kBAAA;AAAA,gBAAA;gBAAA,OAAAF,QAAA,CAAAG,MAAA,CAAA,QAAA,CAAA;AAAA,cAAA,KAAA,CAAA;AAAA,gBAAA,IAAA,EAEJ,GAAAT,WAAA,GAAClB,KAAK,CAAC4B,IAAI,cAAAV,WAAA,KAAA,MAAA,IAAVA,WAAA,CAAYW,IAAI,KAAI,CAAAtC,qBAAA,CAACf,KAAI,EAAAP,cAAA,CAAa,CAAA,EAAA;AAAAuD,kBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,kBAAA;AAAA,gBAAA;gBACzCnC,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,2BAA2B,EAAE;AAC7C6F,kBAAAA,IAAI,GAAAV,gBAAA,GAAA,CAAAC,YAAA,GAAEpB,KAAK,CAAC4B,IAAI,MAAA,IAAA,IAAAR,YAAA,KAAA,MAAA,GAAA,MAAA,GAAVA,YAAA,CAAYS,IAAI,MAAA,IAAA,IAAAV,gBAAA,KAAA,MAAA,GAAAA,gBAAA,GAAI,CAAC;AAC3BW,kBAAAA,cAAc,EAAEC,OAAO,CAAAxC,qBAAA,CAACf,KAAI,EAAAP,cAAA,CAAA;AAC9B,iBAAC,CAAC;gBACFO,KAAI,CAAC2B,IAAI,EAAE;gBAAC,OAAAqB,QAAA,CAAAG,MAAA,CAAA,QAAA,CAAA;AAAA,cAAA,KAAA,CAAA;AAKd;AACA;gBACMN,KAAK,GAAGrB,KAAK,CAAC4B,IAAI;AAClBpG,gBAAAA,WAAW,GAAA+D,qBAAA,CAAGf,KAAI,EAAAP,cAAA,CAAA;gBACxBO,KAAI,CAAC2B,IAAI,EAAE;AAACqB,gBAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;AAAAD,gBAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,gBAAA,OAAAnC,qBAAA,CAGJf,KAAI,EAAAF,OAAA,CAAA,CAAAe,IAAA,CAAJb,KAAI,EAAShD,WAAW,EAAE6F,KAAK,CAAA;AAAA,cAAA,KAAA,EAAA;AAAAG,gBAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA,cAAA,KAAA,EAAA;AAAAF,gBAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA;gBAAAD,QAAA,CAAAQ,EAAA,GAAAR,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAErC;AACA;gBACAjC,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASS,KAAK,CAAC,eAAe,EAAA8E,QAAA,CAAAQ,EAAA,KAAA,IAAA,IAAAR,QAAA,CAAAQ,EAAA,KAAA,MAAA,GAAA,MAAA,GAAER,QAAA,CAAAQ,EAAA,CAAO1B,OAAO,CAAC;AAAC,cAAA,KAAA,EAAA;AAAA,cAAA,KAAA,KAAA;gBAAA,OAAAkB,QAAA,CAAArB,IAAA,EAAA;AAAA;AAAA,UAAA,CAAA,EAAAc,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;QAAA,CAEvD,CAAA,CAAA;AAAA,QAAA,SAAArC,MAAAqD,EAAA,EAAA;AAAA,UAAA,OAAApB,MAAA,CAAApE,KAAA,CAAA,IAAA,EAAAN,SAAA,CAAA;AAAA,QAAA;AAAA,QAAA,OAAAyC,KAAA;AAAA,MAAA,CAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAJ,OAAA,EAAA;MAAAK,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA,YAAA;AAAA,QAAA,IAAAsD,OAAA,GAAApB,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAES,SAAAmB,QAAAA,CAAO3G,WAAW,EAAE6F,KAAK,EAAA;AAAA,UAAA,IAAAe,SAAA,EAAAC,qBAAA,EAAAC,SAAA,EAAAC,QAAA;AAAA,UAAA,OAAAxB,mBAAA,CAAAO,IAAA,CAAA,SAAAkB,UAAAC,SAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhB,IAAA,GAAAgB,SAAA,CAAAf,IAAA;AAAA,cAAA,KAAA,CAAA;AAC3BU,gBAAAA,SAAS,GAAGM,WAAW,CAACC,GAAG,EAAE,CAAA;AAGnC;AAAAF,gBAAAA,SAAA,CAAAf,IAAA,GAAA,CAAA;gBAAA,OAC4B7F,YAAY,CAACP,IAAI,CAAC;AAAEE,kBAAAA,WAAW,EAAXA;AAAY,iBAAC,CAAC;AAAA,cAAA,KAAA,CAAA;gBAAA6G,qBAAA,GAAAI,SAAA,CAAAG,IAAA;gBAAtDN,SAAS,GAAAD,qBAAA,CAATC,SAAS;AAAA,gBAAA,IAEZA,SAAS,EAAA;AAAAG,kBAAAA,SAAA,CAAAf,IAAA,GAAA,CAAA;AAAA,kBAAA;AAAA,gBAAA;gBACZnC,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,+BAA+B,CAAC;gBAAC,OAAAyG,SAAA,CAAAd,MAAA,CAAA,QAAA,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAc,gBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;gBAAA,OAQ9BmB,KAAK,CAACP,SAAS,EAAE;AACtCQ,kBAAAA,MAAM,EAAE,KAAK;AACbC,kBAAAA,OAAO,EAAE;AAAE,oBAAA,cAAc,EAAAxD,qBAAA,CAAEf,KAAI,EAAAN,WAAA;mBAAY;AAC3C8E,kBAAAA,IAAI,EAAE3B;AACR,iBAAC,CAAC;AAAA,cAAA,KAAA,EAAA;gBAJIkB,QAAQ,GAAAE,SAAA,CAAAG,IAAA;gBAAA,IAMTL,QAAQ,CAACU,EAAE,EAAA;AAAAR,kBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,kBAAA;AAAA,gBAAA;gBAAA,MAAQ,IAAIwB,KAAK,CAAA,eAAA,CAAAvH,MAAA,CAAiB4G,QAAQ,CAACY,MAAM,CAAA,CAAG;AAAA,cAAA,KAAA,EAAA;AAEpE;AACA;AACA;AACA;gBACA5D,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,4CAA4C,EAAE;AAC9DR,kBAAAA,WAAW,EAAXA,WAAW;kBACX4H,KAAK,EAAE/B,KAAK,CAACQ,IAAI;AACjBjC,kBAAAA,QAAQ,EAAAL,qBAAA,CAAEf,KAAI,EAAAN,WAAA,CAAU;kBACxBmF,EAAE,EAAEC,IAAI,CAACC,KAAK,CAACb,WAAW,CAACC,GAAG,EAAE,GAAGP,SAAS,CAAC;AAC7C;AACAoB,kBAAAA,GAAG,EAAE,IAAIC,GAAG,CAACnB,SAAS,CAAC,CAACoB,QAAQ,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE;AACpD,iBAAC,CAAC;AAAC,cAAA,KAAA,EAAA;AAAA,cAAA,KAAA,KAAA;gBAAA,OAAAlB,SAAA,CAAAtC,IAAA,EAAA;AAAA;AAAA,UAAA,CAAA,EAAAgC,QAAA,CAAA;QAAA,CACJ,CAAA,CAAA;QAAA,SAAAvD,KAAAA,CAAAgF,GAAA,EAAAC,GAAA,EAAA;AAAA,UAAA,OAAA3B,OAAA,CAAAzF,KAAA,CAAA,IAAA,EAAAN,SAAA,CAAA;AAAA,QAAA;AAAA,QAAA,OAAAyC,KAAA;AAAA,MAAA,CAAA;AAAA,KAAA,CAAA;AAAA,EAAA;AAAAkF,EAAAA,YAAA,CAAAvF,eAAA,EAAA,CAAA;IAAAiF,GAAA,EAAA,WAAA;IAAA9H,GAAA,EA9JD,SAAAA,GAAAA,GAAgB;AACd,MAAA,OAAOqG,OAAO,CAAAxC,qBAAA,CAAC,IAAI,EAAAxB,SAAA,CAAA,CAAW,IAAI,CAAAwB,qBAAA,CAAC,IAAI,EAAApB,SAAA,CAAU;AACnD,IAAA;;AAEA;AACA;AAKA;AACF;AACA;AACA;AA+EE;AACA;AAAA,GAAA,CAAA,CAAA;AAAA,EAAA,OAAAI,eAAA;AAAA,CAAA,EAAA;AAoEF,IAAIwF,MAAM,GAAG,IAAI;IAEJC,kBAAkB,GAAG,SAArBA,kBAAkBA,GAAS;AACtC,EAAA,IAAI,CAACD,MAAM,EAAEA,MAAM,GAAG,IAAIxF,eAAe,EAAE;AAE3C,EAAA,OAAOwF,MAAM;AACf;;AChNA,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC/C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvD,EAAE,OAAO,CAAC;AACV;;ACHA,SAAS,kBAAkB,CAAC,CAAC,EAAE;AAC/B,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAOE,iBAAgB,CAAC,CAAC,CAAC;AAClD;;ACHA,SAAS,gBAAgB,CAAC,CAAC,EAAE;AAC7B,EAAE,IAAI,WAAW,IAAI,OAAO,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACjH;;ACDA,SAAS,2BAA2B,CAAC,CAAC,EAAE,CAAC,EAAE;AAC3C,EAAE,IAAI,CAAC,EAAE;AACT,IAAI,IAAI,QAAQ,IAAI,OAAO,CAAC,EAAE,OAAOA,iBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AAC5C,IAAI,OAAO,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,KAAK,CAAC,IAAI,0CAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,GAAGA,iBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM;AAC9N,EAAE;AACF;;ACPA,SAAS,kBAAkB,GAAG;AAC9B,EAAE,MAAM,IAAI,SAAS,CAAC,sIAAsI,CAAC;AAC7J;;ACEA,SAAS,kBAAkB,CAAC,CAAC,EAAE;AAC/B,EAAE,OAAOC,kBAAiB,CAAC,CAAC,CAAC,IAAIC,gBAAe,CAAC,CAAC,CAAC,IAAIC,2BAA0B,CAAC,CAAC,CAAC,IAAIC,kBAAiB,EAAE;AAC3G;;ACLA,MAAM,SAAS,GAAG,EAAE;AACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAC9B,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrD;AACO,SAAS,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE;AACjD,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtC,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClC,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClC,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClC,QAAQ,GAAG;AACX,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClC,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClC,QAAQ,GAAG;AACX,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClC,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClC,QAAQ,GAAG;AACX,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClC,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClC,QAAQ,GAAG;AACX,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACnC,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACnC,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACnC,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACnC,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACnC,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE;AAClD;;AC1BA,IAAI,eAAe;AACnB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;AACjB,SAAS,GAAG,GAAG;AAC9B,IAAI,IAAI,CAAC,eAAe,EAAE;AAC1B,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;AACtE,YAAY,MAAM,IAAI,KAAK,CAAC,0GAA0G,CAAC;AACvI,QAAQ;AACR,QAAQ,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7D,IAAI;AACJ,IAAI,OAAO,eAAe,CAAC,KAAK,CAAC;AACjC;;ACVA,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;AACvG,aAAe,EAAE,UAAU,EAAE;;ACE7B,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE;AAClC,IAAI,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AAC/C,QAAQ,OAAO,MAAM,CAAC,UAAU,EAAE;AAClC,IAAI;AACJ,IAAI,OAAO,GAAG,OAAO,IAAI,EAAE;AAC3B,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,GAAG;AACzD,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI;AACrC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI;AAQrC,IAAI,OAAO,eAAe,CAAC,IAAI,CAAC;AAChC;;ACXO,IAAMC,0BAA0B,GAAG,IAAI;AACvC,IAAMC,6BAA6B,GAAG,GAAG;AACzC,IAAMC,wBAAwB,GAAG,GAAG;AAEpC,IAAMC,0BAA0B,GAAG,EAAE,GAAGH,0BAA0B;AAGlE,IAAMI,UAAU,GAAG,CAAC;AAkBpB,IAAMC,sBAAsB,GAAG;AACpCC,EAAAA,aAAa,EAAE,eAAe;AAC9BC,EAAAA,iBAAiB,EAAE,mBAAmB;AACtCC,EAAAA,wBAAwB,EAAE,0BAA0B;AACpDC,EAAAA,YAAY,EAAE,cAAc;AAC5BC,EAAAA,yBAAyB,EAAE,2BAA2B;AACtDC,EAAAA,mBAAmB,EAAE,qBAAqB;AAC1CC,EAAAA,cAAc,EAAE,gBAAgB;AAChCC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,eAAe,EAAE,iBAAiB;AAClCC,EAAAA,cAAc,EAAE,gBAAgB;AAChCC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,MAAM,EAAE;AACV,CAAC;AAEM,IAAMC,qBAAqB,GAAG;AACnCC,EAAAA,mBAAmB,EAAE,uBAAuB;AAC5CC,EAAAA,UAAU,EAAE,eAAe;AAC3BC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,aAAa,EAAE,0BAA0B;AACzCC,EAAAA,gBAAgB,EAAE,cAAc;AAChCC,EAAAA,oBAAoB,EAAE,2BAA2B;AACjDC,EAAAA,SAAS,EAAE,qBAAqB;AAChCC,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE,gBAAgB;AAC5BC,EAAAA,kBAAkB,EAAE,qBAAqB;AACzCC,EAAAA,aAAa,EAAE,iBAAiB;AAChCC,EAAAA,oBAAoB,EAAE,wBAAwB;AAC9CC,EAAAA,gBAAgB,EAAE;AACpB,CAAC;AAEM,IAAMC,qBAAqB,GAAG;AACnCC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,eAAe,EAAE,iBAAiB;AAClCC,EAAAA,wBAAwB,EAAE,0BAA0B;AACpDC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAIAC,gBAAgB,EAAE,kBAAkB;AACpCC,EAAAA,WAAW,EAAE,aAAa;AAC1BC,EAAAA,cAAc,EAAE,gBAAgB;AAChCC,EAAAA,eAAe,EAAE,iBAAiB;AAClCC,EAAAA,eAAe,EAAE,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACAC,EAAAA,eAAe,EAAE;AACnB,CAAC;AAEM,IAAMC,aAAa,GAAG,EAAE;AACxB,IAAMC,oBAAoB,GAAG,CAAC;AAC9B,IAAMC,mBAAmB,GAAG,IAAI;AAChC,IAAMC,eAAe,GAAG,KAAK;AAE7B,IAAMC,oBAAoB,GAAG;AAClCC,EAAAA,OAAO,EAAEL,aAAa;AACtBM,EAAAA,UAAU,EAAEJ,mBAEd,CAAC;AAOM,IAAMK,oBAAoB,GAAG,CAAA,OAAOC,MAAM,iCAAA/M,SAAA,CAAN+M,MAAM,CAAA,MAAK,QAAQ;AAEvD,IAAMC,YAAY,GAAGF,oBAAoB,IAAIG,QAAQ,CAACF,MAAM,CAACG,SAAS,CAAC;AAEvE,IAAMC,SAAS,GAAGC,QAAQ,CAAClI,IAAI,KAAK,QAAQ;;AAMnD;AACA;AACA;AACA;AACA;AACO,IAAMmI,SAAS,GAAG;AACvBC,EAAAA,GAAG,EAAE,WAAW;AAChBC,EAAAA,YAAY,EAAE,6BAA6B;AAC3CC,EAAAA,QAAQ,EAAE,wBAAwB;AAClCC,EAAAA,WAAW,EAAE,4BAA4B;AACzCC,EAAAA,OAAO,EAAE,uBAAuB;AAChCC,EAAAA,WAAW,EAAE,4BAA4B;AACzCC,EAAAA,OAAO,EAAE,uBAAuB;AAChCC,EAAAA,IAAI,EAAE;AACR,CAAC;AAEM,IAAMC,qBAAqB,GAChC,iFAAiF;AAE5E,IAAMC,oBAAoB,GAC/B,wFAAwF;AAEnF,IAAMC,yCAAyC,GACpD,6EAA6E;AAExE,IAAMC,qCAAqC,GAChD,iFAAiF;AAE5E,IAAMC,8BAA8B,GAAG,EAAE,GAAGzE,0BAA0B,CAAC;;AClJ9E,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/B,EAAE,OAAO,eAAe,GAAG,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AAClG,IAAI,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;AAC7B,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1B;;ACHA,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;AACzB,EAAE,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC;AACrH,EAAE,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE;AAChD,IAAI,WAAW,EAAE;AACjB,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,QAAQ,EAAE,IAAE;AAClB,MAAM,YAAY,EAAE;AACpB;AACA,GAAG,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,WAAW,EAAE;AAC5C,IAAI,QAAQ,EAAE;AACd,GAAG,CAAC,EAAE,CAAC,IAAI0E,eAAc,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/B;;ACZA,SAAS,sBAAsB,CAAC,CAAC,EAAE;AACnC,EAAE,IAAI,MAAM,KAAK,CAAC,EAAE,MAAM,IAAI,cAAc,CAAC,2DAA2D,CAAC;AACzG,EAAE,OAAO,CAAC;AACV;;ACDA,SAAS,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE;AAC1C,EAAE,IAAI,CAAC,KAAK,QAAQ,IAAInO,SAAO,CAAC,CAAC,CAAC,IAAI,UAAU,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;AACvE,EAAE,IAAI,MAAM,KAAK,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC;AACnG,EAAE,OAAOoO,sBAAqB,CAAC,CAAC,CAAC;AACjC;;ACNA,SAAS,eAAe,CAAC,CAAC,EAAE;AAC5B,EAAE,OAAO,eAAe,GAAG,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE;AAC/F,IAAI,OAAO,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;AAClD,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;AACvB;;ACJA,SAAS,iBAAiB,CAAC,CAAC,EAAE;AAC9B,EAAE,IAAI;AACN,IAAI,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;AACpE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,UAAU,IAAI,OAAO,CAAC;AACjC,EAAE;AACF;;ACNA,SAASC,2BAAyB,GAAG;AACrC,EAAE,IAAI;AACN,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AAC3F,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;AACf,EAAE,OAAO,CAACA,2BAAyB,GAAG,SAAS,yBAAyB,GAAG;AAC3E,IAAI,OAAO,CAAC,CAAC,CAAC;AACd,EAAE,CAAC,GAAG;AACN;;ACLA,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC7B,EAAE,IAAIC,2BAAwB,EAAE,EAAE,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACjF,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAChB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;AACpC,EAAE,OAAO,CAAC,IAAIH,eAAc,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;AAC/C;;ACJA,SAAS,gBAAgB,CAAC,CAAC,EAAE;AAC7B,EAAE,IAAI,CAAC,GAAG,UAAU,IAAI,OAAO,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,MAAM;AACvD,EAAE,OAAO,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,CAAC,EAAE;AACzD,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAACI,iBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AACpD,IAAI,IAAI,UAAU,IAAI,OAAO,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC;AACzG,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE;AACtB,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;AACvB,IAAI;AACJ,IAAI,SAAS,OAAO,GAAG;AACvB,MAAM,OAAOC,UAAS,CAAC,CAAC,EAAE,SAAS,EAAEC,eAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;AACtE,IAAI;AACJ,IAAI,OAAO,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE;AAC1D,MAAM,WAAW,EAAE;AACnB,QAAQ,KAAK,EAAE,OAAO;AACtB,QAAQ,UAAU,EAAE,KAAE;AACtB,QAAQ,QAAQ,EAAE,IAAE;AACpB,QAAQ,YAAY,EAAE;AACtB;AACA,KAAK,CAAC,EAAEN,eAAc,CAAC,OAAO,EAAE,CAAC,CAAC;AAClC,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACxB;;ACzBO,IAAMO,KAAK,GAAG,SAARA,KAAKA,CAAGC,KAAK,EAAA;AAAA,EAAA,OACxB,IAAIC,OAAO,CAAC,UAAAC,OAAO,EAAA;AAAA,IAAA,OAAIC,UAAU,CAACD,OAAO,EAAEF,KAAK,CAAC;EAAA,CAAA,CAAC;AAAA,CAAA;;;;ACetB,IAExBI,UAAU,0BAAAC,MAAA,EAAA;EAAAC,SAAA,CAAAF,UAAA,EAAAC,MAAA,CAAA;AAAA,EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,UAAA,CAAA;EACd,SAAAA,UAAAA,CAAYzJ,OAAO,EAAE;AAAA7B,IAAAA,eAAA,OAAAsL,UAAA,CAAA;AAAA,IAAA,OAAAG,MAAA,CAAA7K,IAAA,CAAA,IAAA,EACbiB,OAAO,CAAA;AACf,EAAA;EAAC,OAAAwD,YAAA,CAAAiG,UAAA,CAAA;AAAA,CAAA,eAAAK,gBAAA,CAHsBlH,KAAK,CAAA,CAAA;AAM9B,IAAMmH,iBAAiB,GACrB,SADIA,iBAAiBA,CAEnBC,YAAY,EAAA;AAAA,EAAA,IAAA/O,IAAA,GAAAY,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAoO,SAAA,GAAApO,SAAA,CAAA,CAAA,CAAA,GAIRwL,oBAAoB;IAAA6C,YAAA,GAAAjP,IAAA,CAFtBqM,OAAO;AAAPA,IAAAA,OAAO,GAAA4C,YAAA,KAAA,MAAA,GAAGjD,aAAa,GAAAiD,YAAA;IAAAC,eAAA,GAAAlP,IAAA,CACvBsM,UAAU;AAAVA,IAAAA,UAAU,GAAA4C,eAAA,KAAA,MAAA,GAAGhD,mBAAmB,GAAAgD,eAAA;AAAA,EAAA,oBAAA,YAAA;IAAA,IAAAC,KAAA,GAAA5J,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAGpC,SAAAC,OAAAA,CAAM0J,gBAAgB,EAAA;MAAA,IAAAC,cAAA,EAAAC,eAAA;AAAA,MAAA,IAAAC,qBAAA,EAAAC,MAAA,EAAAC,iBAAA,EAAAC,mBAAA,EAAAC,aAAA,EAAAC,eAAA,EAAAC,gBAAA;AAAA,MAAA,OAAArK,mBAAA,CAAAO,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAAAoJ,YAAAA,qBAAA,GACMH,gBAAgB,CAAlCI,MAAM,EAANA,MAAM,GAAAD,qBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,qBAAA,CAAA;AAGrB;AACA;AACA;AACA;AACA;AAAA,YAAA,IAAA,EACIC,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAAH,cAAA,GAANG,MAAM,CAAEM,MAAM,MAAA,IAAA,IAAAT,cAAA,KAAA,MAAA,IAAdA,cAAA,CAAgBU,OAAO,CAAA,EAAA;AAAA9J,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAAA,MACnB,IAAIjG,KAAK,CAAC8P,aAAa,CAAC,mBAAmB,CAAC;AAAA,UAAA,KAAA,CAAA;YAGhDP,iBAAiB,GAAGpD,OAAO,GAAG,CAAC;AAC/BqD,YAAAA,mBAAmB,GAAG,KAAK;AAE/BF,YAAAA,MAAM,aAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAAA,CAAAF,eAAA,GAANE,MAAM,CAAEM,MAAM,MAAA,IAAA,IAAAR,eAAA,uBAAdA,eAAA,CAAgBW,gBAAgB,CAAC,OAAO,EAAE,YAAM;AAC9CP,cAAAA,mBAAmB,GAAG,IAAI;AAC5B,YAAA,CAAC,CAAC;AAAC,UAAA,KAAA,CAAA;AAAA,YAAA,IAAA,EAEID,iBAAiB,EAAE,IAAI,CAACC,mBAAmB,CAAA,EAAA;AAAAzJ,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA;AAAAF,YAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;AAAAD,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;YAAA,OAEjC4I,YAAY,CAACK,gBAAgB,CAAC;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,OAAAnJ,QAAA,CAAAG,MAAA,CAAA,QAAA,EAAAH,QAAA,CAAAoB,IAAA,CAAA;AAAA,UAAA,KAAA,EAAA;AAAApB,YAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA;YAAAD,QAAA,CAAAQ,EAAA,GAAAR,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,IAAA,CAIvC/F,KAAK,CAACgQ,QAAQ,CAAAjK,QAAA,CAAAQ,EAAA,CAAO,EAAA;AAAAR,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA;YAAA,MAAAF,QAAA,CAAAQ,EAAA;AAAA,UAAA,KAAA,EAAA;AAEzBxF,YAAAA,MAAM,CAACE,KAAK,CACV,4DAA4D,EAAA8E,QAAA,CAAAQ,EAAA,KAAA,IAAA,IAAAR,QAAA,CAAAQ,EAAA,wBAAAkJ,aAAA,GAC5D1J,QAAA,CAAAQ,EAAA,CAAO+I,MAAM,MAAA,IAAA,IAAAG,aAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAA,CAAeQ,GAAG,GAAAP,eAAA,GAClB3J,QAAA,CAAAQ,EAAA,CAAMO,QAAQ,MAAA,IAAA,IAAA4I,eAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,eAAA,CAAgBhI,MAAM,EACtB6H,iBAAiB,CAClB;AAAC,YAAA,IAAA,EAEE,EAAAI,gBAAA,GAAA5J,QAAA,CAAAQ,EAAA,CAAMO,QAAQ,MAAA,IAAA,IAAA6I,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,gBAAA,CAAgBjI,MAAM,MAAK,GAAG,IAAI6H,iBAAiB,GAAG,CAAC,CAAA,EAAA;AAAAxJ,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA;AACzDlF,YAAAA,MAAM,CAACR,IAAI,CACT,qDAAqD,EACrD6L,UAAU,CACX;AAACrG,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;YAAA,OACIgI,KAAK,CAAC7B,UAAU,CAAC;AAAA,UAAA,KAAA,EAAA;YACvBA,UAAU,GAAG8D,GAAG,CAAC9D,UAAU,GAAG,CAAC,EAAEH,eAAe,CAAC;AAAC,YAAA,IAAA,CAC9CuD,mBAAmB,EAAA;AAAAzJ,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA;YAAA,MAAAF,QAAA,CAAAQ,EAAA;AAAA,UAAA,KAAA,EAAA;AAAAR,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA,KAAA,EAAA;YAAA,MAAAF,QAAA,CAAAQ,EAAA;AAAA,UAAA,KAAA,EAAA;AAAAR,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,MAOvB,IAAIqI,UAAU,CAAC,gDAAgD,CAAC;AAAA,UAAA,KAAA,EAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAvI,QAAA,CAAArB,IAAA,EAAA;AAAA;AAAA,MAAA,CAAA,EAAAc,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;IAAA,CACvE,CAAA,CAAA;AAAA,IAAA,OAAA,UAAAgB,EAAA,EAAA;AAAA,MAAA,OAAAyI,KAAA,CAAAjO,KAAA,CAAA,IAAA,EAAAN,SAAA,CAAA;AAAA,IAAA,CAAA;AAAA,EAAA,CAAA,EAAA;AAAA,CAAA;;AC7EH,IAAMyP,QAAM,GAAG,SAATA,MAAMA,CAAArQ,IAAA,EAAA;AAAA,EAAA,IAAMC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAEqQ,OAAO,GAAAtQ,IAAA,CAAPsQ,OAAO;AAAA,EAAA,OACpCpQ,KAAK,CAACqQ,IAAI,uBAAAnQ,MAAA,CAAuBH,WAAW,EAAA,eAAA,CAAA,EAAiB;AAC3DuQ,IAAAA,WAAW,EAAEF;AACf,GAAC,CAAC;AAAA,CAAA;AAEJ,IAAMG,iBAAe,GAAG3B,iBAAiB,CAACuB,QAAM,EAAE;AAChDhE,EAAAA,OAAO,EAAEJ;AACX,CAAC,CAAC;AAEF,IAAMyE,cAAc,GAAG;AAAEL,EAAAA,MAAM,EAAEI;AAAgB,CAAC;;ACVlD,IAAMJ,QAAM,GAAG,SAATA,MAAMA,CAAArQ,IAAA,EAAA;AAAA,EAAA,IAAMC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAEqQ,OAAO,GAAAtQ,IAAA,CAAPsQ,OAAO;IAAEd,MAAM,GAAAxP,IAAA,CAANwP,MAAM;AAAA,EAAA,OAC5CtP,KAAK,CAACqQ,IAAI,uBAAAnQ,MAAA,CACcH,WAAW,EAAA,kBAAA,CAAA,EACjC;AAAE0Q,IAAAA,cAAc,EAAEL;GAAS,EAC3Bd,MAAM,CACP;AAAA,CAAA;AAEH,IAAMiB,iBAAe,GAAG3B,iBAAiB,CAACuB,QAAM,CAAC;AAEjD,IAAMO,iBAAiB,GAAG;AAAEP,EAAAA,MAAM,EAAEI;AAAgB,CAAC;;ACTrD,IAAMJ,MAAM,GAAG,SAATA,MAAMA,CAAArQ,IAAA,EAAA;AAAA,EAAA,IAAMC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAEqQ,OAAO,GAAAtQ,IAAA,CAAPsQ,OAAO;IAAEd,MAAM,GAAAxP,IAAA,CAANwP,MAAM;AAAA,EAAA,OAC5CtP,KAAK,CAACqQ,IAAI,uBAAAnQ,MAAA,CACcH,WAAW,EAAA,qBAAA,CAAA,EACjC;AAAE4Q,IAAAA,gBAAgB,EAAEP;GAAS,EAC7Bd,MAAM,CACP;AAAA,CAAA;AAEH,IAAMiB,eAAe,GAAG3B,iBAAiB,CAACuB,MAAM,CAAC;AAEjD,IAAMS,mBAAmB,GAAG;AAAET,EAAAA,MAAM,EAAEI;AAAgB,CAAC;;ACRvD,IAAMM,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAGC,SAAS,EAAI;AAC7C,EAAA,IAAMC,yBAAyB,GAC7BC,SAAS,CAACC,YAAY,CAACC,uBAAuB,EAAE;EAElD,OAAOC,MAAM,CAACC,IAAI,CAACN,SAAS,CAAC,CAACO,MAAM,CAClC,UAAAC,UAAU,EAAA;AAAA,IAAA,OAAI,CAACP,yBAAyB,CAACO,UAAU,CAAC;EAAA,CAAA,CACrD;AACH,CAAC;AAEM,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAsB;AACjD,EAAA,IAAIC,KAAK,CAACR,SAAS,CAACC,YAAY,CAAC,EAAE;AACjC,IAAA;AACF,EAAA;AAAC,EAAA,KAAA,IAAAxQ,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAHiC8Q,UAAU,GAAA,IAAA5Q,KAAA,CAAAJ,IAAA,GAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAAV2Q,IAAAA,UAAU,CAAA3Q,IAAA,CAAA,GAAAJ,SAAA,CAAAI,IAAA,CAAA;AAAA,EAAA;AAK5C,EAAA,IAAM4Q,sBAAsB,GAAGD,UAAU,CACtCJ,MAAM,CAAC,UAAAP,SAAS,EAAA;AAAA,IAAA,OAAIvR,SAAA,CAAOuR,SAAS,CAAA,KAAK,QAAQ;AAAA,EAAA,CAAA,CAAC,CAClD/M,GAAG,CAAC8M,yBAAyB,CAAC,CAC9Bc,IAAI,EAAE;AAET,EAAA,IAAIC,UAAU,CAACF,sBAAsB,CAAC,EAAE;IACtC3Q,MAAM,CAACE,KAAK,CAAA,kBAAA,CAAAf,MAAA,CACSwR,sBAAsB,CAACG,IAAI,CAC5C,GAAG,CACJ,EAAA,mCAAA,CAAA,CACF;AACH,EAAA;AACF,CAAC;AAEM,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGxO,WAAW,EAAA;AAAA,EAAA,OACtCyO,QAAQ,CAAC;AAAEC,IAAAA,UAAU,EAAE;AAAQ,GAAC,EAAE1O,WAAW,CAAC2O,SAAS,EAAE,CAAC;AAAA,CAAA;;AAE5D;AACA;AACA;AACA;IACaC,oBAAoB,GAAG,SAAvBA,oBAAoBA,GAAS;AAAA,EAAA,IAAAC,gBAAA;AACxC,EAAA,IAAI,OAAOhQ,aAAa,KAAK,WAAW,EAAE,OAAO,IAAI;;AAErD;EACA,IAAIuK,SAAS,IAAIvK,aAAa,CAACC,eAAe,CAACwK,SAAS,CAACC,GAAG,CAAC,EAAE;IAC7D,OAAOD,SAAS,CAACC,GAAG;AACtB,EAAA;;AAEA;AACA;AACA;AACA,EAAA,IAAMuF,UAAU,GAAG,CACjBxF,SAAS,CAACE,YAAY,EACtBF,SAAS,CAACI,WAAW,EACrBJ,SAAS,CAACM,WAAW,EACrBN,SAAS,CAACG,QAAQ,EAClBH,SAAS,CAACK,OAAO,EACjBL,SAAS,CAACO,OAAO,EACjBP,SAAS,CAACQ,IAAI,EACdR,SAAS,CAACC,GAAG,CACd;AAED,EAAA,OAAA,CAAAsF,gBAAA,GAAOC,UAAU,CAACnQ,IAAI,CAAC,UAAAC,IAAI,EAAA;AAAA,IAAA,OAAIC,aAAa,CAACC,eAAe,CAACF,IAAI,CAAC;AAAA,EAAA,CAAA,CAAC,MAAA,IAAA,IAAAiQ,gBAAA,KAAA,MAAA,GAAAA,gBAAA,GAAI,IAAI;AAC7E;AAEO,IAAME,uBAAuB,GAAG,SAA1BA,uBAAuBA,GAAS;EAC3C,IAAMlO,QAAQ,GAAG+N,oBAAoB,EAAE;AAEvC,EAAA,IAAI,CAAC/N,QAAQ,EAAE,OAAO,EAAE;EAExB,OAAO;AAAEA,IAAAA,QAAQ,EAARA;GAAU;AACrB,CAAC;AAEM,IAAMmO,cAAc,GAAG,SAAjBA,cAAcA,GAAA;AAAA,EAAA,IAAInO,QAAQ,GAAAzD,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAoO,SAAA,GAAApO,SAAA,CAAA,CAAA,CAAA,GAAGwR,oBAAoB,EAAE;AAAA,EAAA,OAC9D/N,QAAQ,CAACoO,QAAQ,CAAC3F,SAAS,CAACC,GAAG,CAAC;AAAA,CAAA;AAE3B,IAAM2F,WAAW,GAAG,SAAdA,WAAWA,CAAIC,YAAY,EAAEC,WAAW,EAAiB;AAAA,EAAA,IAAfC,IAAI,GAAAjS,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAoO,SAAA,GAAApO,SAAA,CAAA,CAAA,CAAA,GAAG,GAAG;AAC/D,EAAA,IAAMkS,iBAAiB,GAAGH,YAAY,CAACI,uBAAuB,CAACH,WAAW,CAAC;AAE3E,EAAA,IAAMI,iBAAiB,GAAGL,YAAY,CAACM,4BAA4B,EAAE;AAErE,EAAA,IAAMC,QAAQ,GAAGP,YAAY,CAACQ,UAAU,EAAE;AAC1CD,EAAAA,QAAQ,CAACL,IAAI,CAACxP,KAAK,GAAGwP,IAAI;AAE1BC,EAAAA,iBAAiB,CAACM,OAAO,CAACF,QAAQ,CAAC;AACnCA,EAAAA,QAAQ,CAACE,OAAO,CAACJ,iBAAiB,CAAC;EAEnC,OAAOA,iBAAiB,CAACK,MAAM;AACjC,CAAC;;AClFD,IAAMC,eAAe,GAAGpT,KAAK,CAACmQ,MAAM,CAAC;AACnC7I,EAAAA,OAAO,EAAE;AAAE,IAAA,cAAc,EAAE4K,oBAAoB;AAAG;AACpD,CAAC,CAAC;AAEFkB,eAAe,CAACC,YAAY,CAACvM,QAAQ,CAACwM,GAAG,CACvCC,QAAQ,EACR,UAAAtS,KAAK,EAAA;AAAA,EAAA,OAAI,CAACjB,KAAK,CAACgQ,QAAQ,CAAC/O,KAAK,CAAC,IAAIkN,OAAO,CAACqF,MAAM,CAACvS,KAAK,CAAC;AAAA,CAAA,CACzD;AAED,IAAMwS,eAAe,GAAG,SAAlBA,eAAeA,CAAA3T,IAAA,EAAA;AAAA,EAAA,IAAM4T,YAAY,GAAA5T,IAAA,CAAZ4T,YAAY;IAAEC,IAAI,GAAA7T,IAAA,CAAJ6T,IAAI;IAAErE,MAAM,GAAAxP,IAAA,CAANwP,MAAM;EAAA,OACnD8D,eAAe,CAACQ,GAAG,CAACF,YAAY,EAAEC,IAAI,EAAErE,MAAM,CAAC;AAAA,CAAA;AAEjD,IAAMuE,wBAAwB,GAAGjF,iBAAiB,CAAC6E,eAAe,CAAC;AAEnE,IAAMK,KAAK,GAAG;AAAEL,EAAAA,eAAe,EAAEI;AAAyB,CAAC;;ACpB3D;AACA;AACA;AACA;AACO,IAAME,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGC,gBAAgB,EAAA;EAAA,OACnD,OAAOA,gBAAgB,KAAK,SAAS;AAAA,CAAA;AAEhC,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAGC,cAAc,EAAI;AACvD,EAAA,IAAMC,KAAK,GAAGhD,MAAM,CAACiD,MAAM,CAACF,cAAc,CAAC,CAACG,MAAM,CAChD,UAACC,GAAG,EAAEC,IAAI,EAAA;AAAA,IAAA,OAAKD,GAAG,GAAGC,IAAI,CAACJ,KAAK;AAAA,EAAA,CAAA,EAC/B,CAAC,CACF;AAED,EAAA,IAAMK,QAAQ,GAAGrD,MAAM,CAACiD,MAAM,CAACF,cAAc,CAAC,CAACG,MAAM,CACnD,UAACC,GAAG,EAAEC,IAAI,EAAA;AAAA,IAAA,OAAKD,GAAG,GAAGC,IAAI,CAACC,QAAQ;AAAA,EAAA,CAAA,EAClC,CAAC,CACF;EAED,OAAO3M,IAAI,CAACC,KAAK,CAAE0M,QAAQ,GAAG,GAAG,GAAIL,KAAK,CAAC;AAC7C,CAAC;;;;;;ACA8E,IAAA3R,YAAA,oBAAAH,OAAA,EAAA;AAAA,IAAAoS,SAAA,oBAAApS,OAAA,EAAA;AAAA,IAAAqS,iBAAA,oBAAArS,OAAA,EAAA;AAAA,IAAAsS,WAAA,oBAAAtS,OAAA,EAAA;AAAA,IAAAuS,qBAAA,oBAAAvS,OAAA,EAAA;AAAA,IAAAwS,YAAA,oBAAAxS,OAAA,EAAA;AAAA,IAAAyS,gBAAA,oBAAAzS,OAAA,EAAA;AAAA,IAAA0S,sBAAA,oBAAA1S,OAAA,EAAA;AAAA,IAAA2S,sBAAA,oBAAA3S,OAAA,EAAA;AAAA,IAAA4S,aAAA,oBAAA5S,OAAA,EAAA;AAAA,IAAA6S,eAAA,oBAAA7S,OAAA,EAAA;AAAA,IAAA8S,yBAAA,oBAAA9S,OAAA,EAAA;AAAA,IAAA+S,OAAA,oBAAA/S,OAAA,EAAA;AAAA,IAAAgT,GAAA,oBAAAhT,OAAA,EAAA;AAAA,IAAA7B,SAAA,oBAAA6B,OAAA,EAAA;AAAA,IAAAI,WAAA,oBAAAJ,OAAA,EAAA;AAAA,IAAAiT,QAAA,oBAAAjT,OAAA,EAAA;AAAA,IAAAkT,gBAAA,oBAAAlT,OAAA,EAAA;AAAA,IAAAmT,uBAAA,oBAAAnT,OAAA,EAAA;AAAA,IAAAoT,qBAAA,oBAAApT,OAAA,EAAA;AAAA,IAAAqT,eAAA,oBAAArT,OAAA,EAAA;AAAA,IAAAsT,yBAAA,oBAAAtT,OAAA,EAAA;AAAA,IAAAuT,kBAAA,oBAAAvT,OAAA,EAAA;AAAA,IAAAwT,iBAAA,oBAAAxT,OAAA,EAAA;AAAA,IAEzEyT,mBAAmB,gBAAA,YAAA;AAqBvB,EAAA,SAAAA,sBAAc;AAAA,IAAA,IAAA/S,KAAA,GAAA,IAAA;AAAAC,IAAAA,eAAA,OAAA8S,mBAAA,CAAA;AAAA7S,IAAAA,4BAAA,OAAA4S,iBAAA,EAAA;AAAA5V,MAAAA,GAAA,EAAA8V,qBAAA;MAAAC,GAAA,EAAA;AAAA,KAAA,CAAA;AAAA/S,IAAAA,4BAAA,OAAA2S,kBAAA,EAAA;AAAA3V,MAAAA,GAAA,EAAAgW,sBAAA;MAAAD,GAAA,EAAA;AAAA,KAAA,CAAA;AAAA/S,IAAAA,4BAAA,OAAAqS,QAAA,EAAA;MAAArV,GAAA,EAAA,MAAA;AAAA+V,MAAAA,GAAA,EAAAE;AAAA,KAAA,CAAA;AAAA9S,IAAAA,eAAA,CAAA,IAAA,EAAA,uBAAA,EApBU,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AAAAH,IAAAA,4BAAA,OAAAT,YAAA,EAAA;MAAAU,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAExB;AAAE,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAwR,SAAA,EAAA;MAAAvR,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACL;AAAE,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAyR,iBAAA,EAAA;MAAAxR,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACM;AAAE,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAA0R,WAAA,EAAA;MAAAzR,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACR;AAAC,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAA2R,qBAAA,EAAA;MAAA1R,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACS;AAAE,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAA4R,YAAA,EAAA;MAAA3R,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACb;AAAE,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAA6R,gBAAA,EAAA;MAAA5R,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAA8R,sBAAA,EAAA;MAAA7R,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEU;AAAE,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAA+R,sBAAA,EAAA;MAAA9R,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAgS,aAAA,EAAA;MAAA/R,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEX;AAAE,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAiS,eAAA,EAAA;MAAAhS,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACA;AAAE,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAkS,yBAAA,EAAA;MAAAjS,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACQ;AAAE,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAmS,OAAA,EAAA;MAAAlS,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEnB;AAAE,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAAoS,GAAA,EAAA;MAAAnS,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACPgT,EAAM;AAAE,KAAA,CAAA;AAAAlT,IAAAA,4BAAA,OAAAzC,SAAA,EAAA;MAAA0C,QAAA,EAAA,IAAA;MAAAC,KAAA,EACJ9C,oBAAoB,CAAA,GAAA,CAAAH,MAAA,CAAA4D,qBAAA,CAAK,IAAI,EAAAuR,GAAA,CAAA,EAAA,GAAA,CAAA;AAAQ,KAAA,CAAA;AAAApS,IAAAA,4BAAA,OAAAR,WAAA,EAAA;MAAAS,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACnC+O,oBAAoB;AAAE,KAAA,CAAA;IAAA9O,eAAA,CAAA,IAAA,EAAA,aAAA,EA8BpB,UAAAe,QAAQ,EAAA;AAAA,MAAA,OAAAd,qBAAA,CAAKN,KAAI,EAAAN,WAAA,EAAa0B,QAAQ,CAAA;IAAA,CAAC,CAAA;AAAAf,IAAAA,eAAA,CAAA,IAAA,EAAA,cAAA,EAEtC,UAACrD,WAAW,EAAEqW,QAAQ,EAAK;AACxC,MAAA,IAAMC,WAAW,GACfvS,qBAAA,CAAAf,KAAI,EAAAP,YAAA,CAAA,KAAkBzC,WAAW,IAAI+D,qBAAA,CAAAf,KAAI,EAAA0R,SAAA,MAAe2B,QAAQ;MAElEtS,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,cAAc,EAAE;AAAER,QAAAA,WAAW,EAAXA,WAAW;AAAEqW,QAAAA,QAAQ,EAARA,QAAQ;AAAEC,QAAAA,WAAW,EAAXA;AAAY,OAAC,CAAC;AAEzE,MAAA,IAAIA,WAAW,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAhT,QAAAA,qBAAA,CAAAN,KAAI,EAAA4R,WAAA,EAAe,CAAC,CAAA;AACpBtR,QAAAA,qBAAA,CAAAN,KAAI,EAAA6R,qBAAA,EAAyB,EAAE,CAAA;AAC/BvR,QAAAA,qBAAA,CAAAN,KAAI,EAAAgS,sBAAA,EAA0B,EAAE,CAAA;AAChC1R,QAAAA,qBAAA,CAAAN,KAAI,EAAAkS,aAAA,EAAiB,EAAE,CAAA;AACvB5R,QAAAA,qBAAA,CAAAN,KAAI,EAAAmS,eAAA,EAAmB,EAAE,CAAA;AACzB7R,QAAAA,qBAAA,CAAAN,KAAI,EAAAoS,yBAAA,EAA6B,EAAE,CAAA;AACrC,MAAA;AAEA9R,MAAAA,qBAAA,CAAAN,KAAI,EAAAP,YAAA,EAAgBzC,WAAW,CAAA;AAC/BsD,MAAAA,qBAAA,CAAAN,KAAI,EAAA0R,SAAA,EAAa2B,QAAQ,CAAA;AACzB/S,MAAAA,qBAAA,CAAAN,KAAI,EAAA+R,gBAAA,EAAoB,IAAIwB,eAAe,EAAE,CAAA;IAC/C,CAAC,CAAA;IAAAlT,eAAA,CAAA,IAAA,EAAA,MAAA,EAEM,UAAA+C,IAAI,EAAI;AACb;AACA;AACA;AACA;AACA,MAAA,IAAArC,qBAAA,CAAIf,KAAI,EAAA8S,iBAAA,CAAA,EAAoB;QAC1B/R,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASa,IAAI,CACf,sDAAsD,EACtD;AACEkV,UAAAA,UAAU,EAAEpQ,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEC,IAAI;AACtBsB,UAAAA,MAAM,EAAA5D,qBAAA,CAAEf,KAAI,EAAAqS,OAAA,CAAS;AACrBrV,UAAAA,WAAW,EAAA+D,qBAAA,CAAEf,KAAI,EAAAP,YAAA;AACnB,SAAC,CACF;AACDa,QAAAA,qBAAA,CAAAN,KAAI,EAAA2R,iBAAA,EAAqB,EAAE,CAAA;AAE3B,QAAA;AACF,MAAA;AAEA,MAAA,IAAIvO,IAAI,CAACC,IAAI,GAAG,CAAC,EAAE;QACjBtC,qBAAA,CAAAf,KAAI,EAAA2R,iBAAA,EAAmB8B,IAAI,CAACrQ,IAAI,CAAC;AACnC,MAAA;AAEA,MAAA,IAAMsQ,eAAe,GAAG3S,qBAAA,CAAAf,KAAI,EAAA4S,yBAAA,CAAA,CAAA/R,IAAA,CAAJb,KAAI,CAAA,CAA6BqD,IAAI;MAC7DtC,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,wBAAwB,EAAE;AAC1CgW,QAAAA,UAAU,EAAEpQ,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEC,IAAI;AACtBsQ,QAAAA,SAAS,EAAEvQ,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAEjE,IAAI;AACrByU,QAAAA,cAAc,EAAE7S,qBAAA,CAAAf,KAAI,EAAA2R,iBAAA,EAAmB/T,MAAM;AAC7CiW,QAAAA,aAAa,EAAEH,eAAe;AAC9BI,QAAAA,UAAU,EAAEC,MAAM,CAAC,CAACL,eAAe,GAAG,IAAI,GAAG,IAAI,EAAEM,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9DC,SAAS,EAAEjU,KAAI,CAACkU,qBAAqB;AACrClX,QAAAA,WAAW,EAAA+D,qBAAA,CAAEf,KAAI,EAAAP,YAAA,CAAa;AAC9B4T,QAAAA,QAAQ,EAAAtS,qBAAA,CAAEf,KAAI,EAAA0R,SAAA;AAChB,OAAC,CAAC;AAEF,MAAA,IAAA3Q,qBAAA,CAAIf,KAAI,EAAA6S,kBAAA,CAAA,EAAqB;QAC3B9R,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASa,IAAI,CACf,wDAAwD,CACzD;AAED,QAAA;AACF,MAAA;AAEA,MAAA,IAAIoV,eAAe,GAAG1T,KAAI,CAACkU,qBAAqB,EAAE;AAChD,QAAA,IAAMC,sBAAsB,GAAApT,qBAAA,CAAGf,KAAI,EAAA2S,eAAA,CAAA,CAAA9R,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CACjCf,KAAI,EAAA2R,iBAAA,CAAA,CACL;QAED5Q,qBAAA,CAAAf,KAAI,EAAAgS,sBAAA,EAAwByB,IAAI,CAACU,sBAAsB,CAAC;AACxD7T,QAAAA,qBAAA,CAAAN,KAAI,EAAA2R,iBAAA,EAAqB,EAAE,CAAA;AAC7B,MAAA;IACF,CAAC,CAAA;AAAAtR,IAAAA,eAAA,CAAA,IAAA,EAAA,4BAAA,EAE4B,UAAC+T,KAAK,EAAEC,WAAW,EAAA;AAAA,MAAA,IAAAtS,sBAAA;MAAA,OAC9C4L,iBAAiB,CAACP,MAAM,CAAC;AACvBpQ,QAAAA,WAAW,EAAA+D,qBAAA,CAAEf,KAAI,EAAAP,YAAA,CAAa;AAC9B4N,QAAAA,OAAO,EAAE;AACP+G,UAAAA,KAAK,EAALA,KAAK;AACLf,UAAAA,QAAQ,EAAAtS,qBAAA,CAAEf,KAAI,EAAA0R,SAAA,CAAU;UACxB4C,KAAK,EAAE/E,cAAc,CAAAxO,qBAAA,CAACf,KAAI,EAAAN,WAAA,CAAA,CAAW;AACrC6U,UAAAA,IAAI,EAAEF;SACP;AACD9H,QAAAA,MAAM,EAAE;AAAEM,UAAAA,MAAM,EAAA,CAAA9K,sBAAA,GAAAhB,qBAAA,CAAEf,KAAI,EAAA+R,gBAAA,CAAA,MAAA,IAAA,IAAAhQ,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,sBAAA,CAAuB8K;AAAO;AAClD,OAAC,CAAC;AAAA,IAAA,CAAA,CAAA;IAAAxM,eAAA,CAAA,IAAA,EAAA,gBAAA,eAAA,YAAA;MAAA,IAAAtD,IAAA,GAAAuF,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAEa,SAAAC,OAAAA,CAAM4R,WAAW,EAAA;QAAA,IAAAG,iBAAA,EAAAC,cAAA,EAAAN,sBAAA,EAAAO,4BAAA,EAAAN,KAAA,EAAAO,eAAA;AAAA,QAAA,OAAApS,mBAAA,CAAAO,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;AAC1BsR,cAAAA,iBAAiB,GAAGI,IAAI,CAACzQ,GAAG,EAAE;cACpCpD,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,yBAAyB,EAAE;AAC3CR,gBAAAA,WAAW,EAAA+D,qBAAA,CAAEf,KAAI,EAAAP,YAAA,CAAa;AAC9B4T,gBAAAA,QAAQ,EAAAtS,qBAAA,CAAEf,KAAI,EAAA0R,SAAA,CAAU;AACxBmD,gBAAAA,aAAa,EAAE9T,qBAAA,CAAAf,KAAI,EAAAgS,sBAAA,EAAwBpU,MAAM;gBACjDiW,aAAa,EAAE9S,qBAAA,CAAAf,KAAI,EAAA4S,yBAAA,CAAA,CAAA/R,IAAA,CAAJb,KAAI,CAAA,CAA6BqD,IAAI;AACpDyR,gBAAAA,iBAAiB,EAAE/T,qBAAA,CAAAf,KAAI,EAAA4R,WAAA,CAAA,GAAe;AACxC,eAAC,CAAC;AAAC5O,cAAAA,QAAA,CAAAC,IAAA,GAAA,CAAA;AAED3C,cAAAA,qBAAA,CAAAN,KAAI,EAAAuS,QAAA,EAAWwC,aAAa,CAACC,SAAS,CAAA;AAAC,cAAA,IAAA,CAAAjU,qBAAA,CAEnCf,KAAI,EAAA6S,kBAAA,CAAA,EAAA;AAAA7P,gBAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cACNnC,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASS,KAAK,CAAC,mCAAmC,EAAE;AACtDlB,gBAAAA,WAAW,EAAA+D,qBAAA,CAAEf,KAAI,EAAAP,YAAA,CAAa;AAC9B4T,gBAAAA,QAAQ,EAAAtS,qBAAA,CAAEf,KAAI,EAAA0R,SAAA;AAChB,eAAC,CAAC;cAAC,OAAA1O,QAAA,CAAAG,MAAA,CAAA,QAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAKL;cACMsR,cAAc,GAAG1T,qBAAA,CAAAf,KAAI,EAAA4S,yBAAA,CAAA,CAAA/R,IAAA,CAAJb,KAAI,CAAA,CAA6BqD,IAAI;cAC5D,IAAIoR,cAAc,GAAG,CAAC,EAAE;gBACtB1T,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,kDAAkD,EAAE;AACpEoH,kBAAAA,KAAK,EAAE6P;AACT,iBAAC,CAAC;AAEIN,gBAAAA,sBAAsB,GAAApT,qBAAA,CAAGf,KAAI,EAAA2S,eAAA,CAAA,CAAA9R,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CACjCf,KAAI,EAAA2R,iBAAA,CAAA,CAAA;gBAGN5Q,qBAAA,CAAAf,KAAI,EAAAgS,sBAAA,EAAwByB,IAAI,CAACU,sBAAsB,CAAC;AACxD;AACA;AACA;AACA;AACA7T,gBAAAA,qBAAA,CAAAN,KAAI,EAAA2R,iBAAA,EAAqB,EAAE,CAAA;AAC7B,cAAA;;AAEA;AACN;AACA;AACA;AACA;AACA;AACA;AACA;cACM5Q,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,2CAA2C,EAAE;AAC7DyX,gBAAAA,qBAAqB,EAAElU,qBAAA,CAAAf,KAAI,EAAAgS,sBAAA,CAAA,CAAwBpU;AACrD,eAAC,CAAC;AAACoF,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;cAAA,OACGkI,OAAO,CAAC8J,GAAG,CAAAnU,qBAAA,CAACf,KAAI,EAAAgS,sBAAA,CAAA,CAAwB;AAAA,YAAA,KAAA,EAAA;cAE9CjR,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,yCAAyC,EAAE;AAC3D2X,gBAAAA,oBAAoB,EAAEpU,qBAAA,CAAAf,KAAI,EAAA6R,qBAAA,CAAA,CAAuBjU;AACnD,eAAC,CAAC;AAACoF,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;cAAA,OAEwCkI,OAAO,CAAC8J,GAAG,CAAAnU,qBAAA,CACpDf,KAAI,EAAA6R,qBAAA,CAAA,CACL;AAAA,YAAA,KAAA,EAAA;cAFK6C,4BAA4B,GAAA1R,QAAA,CAAAoB,IAAA;AAAA,cAAA,IAAA,CAI9ByK,UAAU,CAAA9N,qBAAA,CAACf,KAAI,EAAAkS,aAAA,CAAA,CAAe,EAAA;AAAAlP,gBAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA,cAAA;cAChCnC,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASS,KAAK,CAChB,6DAA6D,EAC7D;AAAEkX,gBAAAA,iBAAiB,EAAArU,qBAAA,CAAEf,KAAI,EAAAkS,aAAA;AAAe,eAAC,CAC1C;AACD5R,cAAAA,qBAAA,CAAAN,KAAI,EAAAuS,QAAA,EAAWwC,aAAa,CAAC7W,KAAK,CAAA;cAClC6C,qBAAA,CAAAf,KAAI,EAAAwS,gBAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBqV,YAAY,CAACC,OAAO,CAAA;cAAE,OAAAtS,QAAA,CAAAG,MAAA,CAAA,QAAA,CAAA;AAAA,YAAA,KAAA,EAAA;AAAA,cAAA,IAAA,EAKxCuR,4BAA4B,CAAC9W,MAAM,KAAK,CAAC,CAAA,EAAA;AAAAoF,gBAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA,cAAA;cAC3CnC,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASa,IAAI,CAAC,qCAAqC,EAAE;AACvDtB,gBAAAA,WAAW,EAAA+D,qBAAA,CAAEf,KAAI,EAAAP,YAAA,CAAa;AAC9B4T,gBAAAA,QAAQ,EAAAtS,qBAAA,CAAEf,KAAI,EAAA0R,SAAA;AAChB,eAAC,CAAC;AACFpR,cAAAA,qBAAA,CAAAN,KAAI,EAAAuS,QAAA,EAAWwC,aAAa,CAACQ,iBAAiB,CAAA;cAAC,OAAAvS,QAAA,CAAAG,MAAA,CAAA,QAAA,CAAA;AAAA,YAAA,KAAA,EAAA;cAK3CiR,KAAK,GAAGM,4BAA4B,CACvCpG,MAAM,CAAC0C,qBAAqB,CAAC,CAC7BhQ,GAAG,CAAC,UAAAiQ,gBAAgB,EAAA;gBAAA,OAAK;AACxBuE,kBAAAA,IAAI,EAAEvE,gBAAgB,CAAC1M,OAAO,CAACiR,IAAI;AACnCC,kBAAAA,UAAU,EAAE,IAAIxQ,GAAG,CACjBgM,gBAAgB,CAACyE,OAAO,CAACC,WAAW,CACrC,CAACC,YAAY,CAAC1Y,GAAG,CAAC,YAAY;iBAChC;AAAA,cAAA,CAAC,CAAC,CACF2Y,QAAQ,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;AAAA,gBAAA,OAAKhC,MAAM,CAAC+B,CAAC,CAACL,UAAU,CAAC,GAAG1B,MAAM,CAACgC,CAAC,CAACN,UAAU,CAAC;cAAA,CAAA,CAAC;cAElE1U,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,oCAAoC,EAAE;gBACtDwY,SAAS,EAAE5B,KAAK,CAACxW,MAAM;AACvBwW,gBAAAA,KAAK,EAALA;AACF,eAAC,CAAC;AACIO,cAAAA,eAAe,GAAGC,IAAI,CAACzQ,GAAG,EAAE;AAClC7D,cAAAA,qBAAA,CAAAN,KAAI,EAAAiS,sBAAA,EAA0BjS,KAAI,CAACiW,0BAA0B,CAC3D7B,KAAK,EACLC,WAAW,CACZ,CAAA;AAACrR,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,cAAA,OAAAnC,qBAAA,CAEIf,KAAI,EAAAiS,sBAAA,CAAA;AAAA,YAAA,KAAA,EAAA;cACVlR,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,qDAAqD,EAAE;AACvE0Y,gBAAAA,gBAAgB,EAAEtB,IAAI,CAACzQ,GAAG,EAAE,GAAGwQ,eAAe;AAC9CwB,gBAAAA,eAAe,EAAEvB,IAAI,CAACzQ,GAAG,EAAE,GAAGqQ;AAChC,eAAC,CAAC;AAAC,cAAA,IAAA,EAECxU,KAAI,CAAC2E,MAAM,KAAKoQ,aAAa,CAACqB,QAAQ,CAAA,EAAA;AAAApT,gBAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA,cAAA;cACxCnC,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASa,IAAI,CACf,0DAA0D,CAC3D;cAAC,OAAA0E,QAAA,CAAAG,MAAA,CAAA,QAAA,CAAA;AAAA,YAAA,KAAA,EAAA;AAKJ7C,cAAAA,qBAAA,CAAAN,KAAI,EAAAuS,QAAA,EAAWwC,aAAa,CAACsB,SAAS,CAAA;cAEtCtV,qBAAA,CAAAf,KAAI,EAAAwS,gBAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBqV,YAAY,CAACiB,UAAU,CAAA;AAAEtT,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA,KAAA,EAAA;AAAAF,cAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA;cAAAD,QAAA,CAAAQ,EAAA,GAAAR,QAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAE7C;cACA,IAAI,CAAC/F,KAAK,CAACgQ,QAAQ,CAAAjK,QAAA,CAAAQ,EAAA,CAAO,EAAE;AAC1BlD,gBAAAA,qBAAA,CAAAN,KAAI,EAAAuS,QAAA,EAAWwC,aAAa,CAAC7W,KAAK,CAAA;gBAClC6C,qBAAA,CAAAf,KAAI,EAAAwS,gBAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBqV,YAAY,CAACC,OAAO,CAAA;gBACxCvU,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,CAAA,CAASS,KAAK,CAAC,yBAAyB,EAAAqY,eAAA,CAAAA,eAAA,KAAAxV,qBAAA,CACvCf,KAAI,EAAA0S,qBAAA,CAAA,CAAA7R,IAAA,CAAJb,KAAI,EAAAgD,QAAA,CAAAQ,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA;AACP2S,kBAAAA,eAAe,EAAEvB,IAAI,CAACzQ,GAAG,EAAE,GAAGqQ,iBAAiB;AAC/CxX,kBAAAA,WAAW,EAAA+D,qBAAA,CAAEf,KAAI,EAAAP,YAAA,CAAa;AAC9B4T,kBAAAA,QAAQ,EAAAtS,qBAAA,CAAEf,KAAI,EAAA0R,SAAA;iBAAU,CAAA,CACxB;AACJ,cAAA,CAAC,MAAM;gBACL3Q,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,gDAAgD,CAAC;AACrE,cAAA;AAAC,YAAA,KAAA,EAAA;AAAAwF,cAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA;AAED3C,cAAAA,qBAAA,CAAAN,KAAI,EAAAiS,sBAAA,EAA0B,IAAI,CAAA;cAAC,OAAAjP,QAAA,CAAAwT,MAAA,CAAA,EAAA,CAAA;AAAA,YAAA,KAAA,EAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAxT,QAAA,CAAArB,IAAA,EAAA;AAAA;AAAA,QAAA,CAAA,EAAAc,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA;MAAA,CAEtC,CAAA,CAAA;AAAA,MAAA,OAAA,UAAAgB,EAAA,EAAA;AAAA,QAAA,OAAA1G,IAAA,CAAAkB,KAAA,CAAA,IAAA,EAAAN,SAAA,CAAA;AAAA,MAAA,CAAA;AAAA,IAAA,CAAA,EAAA,CAAA;IAAA0C,eAAA,CAAA,IAAA,EAAA,aAAA,eAAAiC,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAGa,SAAAmB,QAAAA,GAAA;AAAA,MAAA,IAAA8S,UAAA;QAAApC,WAAA;QAAAqC,cAAA;QAAAC,KAAA;QAAAzU,sBAAA;QAAAlF,WAAA;QAAAqW,QAAA;AAAAuD,QAAAA,MAAA,GAAAjZ,SAAA;AAAA,MAAA,OAAA4E,mBAAA,CAAAO,IAAA,CAAA,SAAAkB,UAAAC,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhB,IAAA,GAAAgB,SAAA,CAAAf,IAAA;AAAA,UAAA,KAAA,CAAA;YAAOuT,UAAU,GAAAG,MAAA,CAAAhZ,MAAA,GAAA,CAAA,IAAAgZ,MAAA,CAAA,CAAA,CAAA,KAAA7K,SAAA,GAAA6K,MAAA,CAAA,CAAA,CAAA,GAAG,KAAK;AAAEvC,YAAAA,WAAW,GAAAuC,MAAA,CAAAhZ,MAAA,GAAA,CAAA,GAAAgZ,MAAA,MAAA7K,SAAA;AAC5C2K,YAAAA,cAAc,GAAG9B,IAAI,CAACzQ,GAAG,EAAE;AAC7BwS,YAAAA,KAAK,GAAG,MAAM;AAAA1S,YAAAA,SAAA,CAAAhB,IAAA,GAAA,CAAA;YAAA,IAAA,EAEZjD,KAAI,CAAC2E,MAAM,KAAKoQ,aAAa,CAACqB,QAAQ,IAAI,CAACK,UAAU,CAAA,EAAA;AAAAxS,cAAAA,SAAA,CAAAf,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;YACvDnC,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,iCAAiC,EAAE;AACnDiZ,cAAAA,UAAU,EAAVA;AACF,aAAC,CAAC;YAAC,OAAAxS,SAAA,CAAAd,MAAA,CAAA,QAAA,CAAA;AAAA,UAAA,KAAA,CAAA;AAIL7C,YAAAA,qBAAA,CAAAN,KAAI,EAAAuS,QAAA,EAAWwC,aAAa,CAACqB,QAAQ,CAAA;AAAC,YAAA,IAAA,CAAArV,qBAAA,CAElCf,KAAI,EAAA6S,kBAAA,CAAA,EAAA;AAAA5O,cAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA;YACNnC,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,gCAAgC,CAAC;YAAC,OAAAyG,SAAA,CAAAd,MAAA,CAAA,QAAA,CAAA;AAAA,UAAA,KAAA,EAAA;AAIhDnG,YAAAA,WAAW,GAAA+D,qBAAA,CAAGf,KAAI,EAAAP,YAAA,CAAA;AAClB4T,YAAAA,QAAQ,GAAAtS,qBAAA,CAAGf,KAAI,EAAA0R,SAAA,CAAA;YAErB3Q,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,sBAAsB,EAAE;AACxCR,cAAAA,WAAW,EAAXA,WAAW;AACXqW,cAAAA,QAAQ,EAARA,QAAQ;AACRoD,cAAAA,UAAU,EAAVA,UAAU;AACVI,cAAAA,YAAY,EAAE9V,qBAAA,CAAAf,KAAI,EAAA4R,WAAA,IAAe,CAAC;AAClCqD,cAAAA,qBAAqB,EAAElU,qBAAA,CAAAf,KAAI,EAAAgS,sBAAA,EAAwBpU,MAAM;AACzDkZ,cAAAA,kBAAkB,EAAEvT,OAAO,CAAAxC,qBAAA,CAACf,KAAI,EAAA+R,gBAAA,CAAA;AAClC,aAAC,CAAC;;AAEF;AACA;AACA4E,YAAAA,KAAK,GAAG,4BAA4B;AAAC1S,YAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,YAAA,OAE/BkI,OAAO,CAACC,OAAO,CAAAtK,qBAAA,CAACf,KAAI,EAAAiS,sBAAA,EAAwB,CAAA,OAAA,CAAM,CAAC,YAAM,CAAC,CAAC,CAAC;AAAA,UAAA,KAAA,EAAA;AAElE;AACA;AACA;AACA0E,YAAAA,KAAK,GAAG,eAAe;AACvB,YAAA,CAAAzU,sBAAA,GAAAnB,qBAAA,CAAAf,KAAI,EAAA+R,gBAAA,CAAA,MAAA,IAAA,IAAA7P,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,sBAAA,CAAuB6U,KAAK,EAAE;AAE9BJ,YAAAA,KAAK,GAAG,gBAAgB;AAAC1S,YAAAA,SAAA,CAAAhB,IAAA,GAAA,EAAA;AAAAgB,YAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;YAAA,OAEjBuK,cAAc,CAACL,MAAM,CAAC;AAC1BpQ,cAAAA,WAAW,EAAXA,WAAW;AACXqQ,cAAAA,OAAO,EAAE;AACPgG,gBAAAA,QAAQ,EAARA,QAAQ;gBACRiB,KAAK,EAAE/E,cAAc,CAAAxO,qBAAA,CAACf,KAAI,EAAAN,WAAA,CAAA,CAAW;AACrC6U,gBAAAA,IAAI,EAAEF;AACR;AACF,aAAC,CAAC;AAAA,UAAA,KAAA,EAAA;YAEFtT,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,wBAAwB,EAAE;AAC1CwZ,cAAAA,UAAU,EAAEpC,IAAI,CAACzQ,GAAG,EAAE,GAAGuS;AAC3B,aAAC,CAAC;AAACzS,YAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA,KAAA,EAAA;AAAAe,YAAAA,SAAA,CAAAhB,IAAA,GAAA,EAAA;YAAAgB,SAAA,CAAAT,EAAA,GAAAS,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA;AAEH;AACA;AACA;YACAlD,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,CAAA,CAASS,KAAK,CAAC,yCAAyC,EAAAqY,eAAA,CAAAA,eAAA,KAAAxV,qBAAA,CACvDf,KAAI,EAAA0S,qBAAA,CAAA,CAAA7R,IAAA,CAAJb,KAAI,EAAAiE,SAAA,CAAAT,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA;AACPwT,cAAAA,UAAU,EAAEpC,IAAI,CAACzQ,GAAG,EAAE,GAAGuS;aAAc,CAAA,CACvC;AAAC,UAAA,KAAA,EAAA;AAGLC,YAAAA,KAAK,GAAG,aAAa;YACrB5V,qBAAA,CAAAf,KAAI,EAAAwS,gBAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBqV,YAAY,CAAC4B,OAAO,CAAA;AAExCN,YAAAA,KAAK,GAAG,SAAS;AACjBrW,YAAAA,qBAAA,CAAAN,KAAI,EAAA2R,iBAAA,EAAqB,EAAE,CAAA;AAC3BrR,YAAAA,qBAAA,CAAAN,KAAI,EAAA4R,WAAA,EAAe,CAAC,CAAA;AACpBtR,YAAAA,qBAAA,CAAAN,KAAI,EAAA6R,qBAAA,EAAyB,EAAE,CAAA;AAC/BvR,YAAAA,qBAAA,CAAAN,KAAI,EAAAuS,QAAA,EAAW,EAAE,CAAA;AACjBjS,YAAAA,qBAAA,CAAAN,KAAI,EAAA+R,gBAAA,EAAoB,IAAI,CAAA;AAAC9N,YAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA,KAAA,EAAA;AAAAe,YAAAA,SAAA,CAAAhB,IAAA,GAAA,EAAA;YAAAgB,SAAA,CAAAiT,EAAA,GAAAjT,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;YAE7BlD,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,CAAA,CAASS,KAAK,CAAC,uBAAuB,EAAAqY,eAAA,CAAAA,eAAA,CAAA;AACxCI,cAAAA,KAAK,EAALA;AAAK,aAAA,EAAA5V,qBAAA,CACFf,KAAI,EAAA0S,qBAAA,CAAA,CAAA7R,IAAA,CAAJb,KAAI,EAAAiE,SAAA,CAAAiT,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA;AACPF,cAAAA,UAAU,EAAEpC,IAAI,CAACzQ,GAAG,EAAE,GAAGuS;aAAc,CAAA,CACvC;AAAC,UAAA,KAAA,EAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAzS,SAAA,CAAAtC,IAAA,EAAA;AAAA;AAAA,MAAA,CAAA,EAAAgC,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA;IAAA,CAEN,CAAA,CAAA,CAAA;AAAAtD,IAAAA,eAAA,qBAEY,YAAM;AACjBC,MAAAA,qBAAA,CAAAN,KAAI,EAAAP,YAAA,EAAgB,EAAE,CAAA;AACtBa,MAAAA,qBAAA,CAAAN,KAAI,EAAA0R,SAAA,EAAa,EAAE,CAAA;AACnBpR,MAAAA,qBAAA,CAAAN,KAAI,EAAA2R,iBAAA,EAAqB,EAAE,CAAA;AAC3BrR,MAAAA,qBAAA,CAAAN,KAAI,EAAA4R,WAAA,EAAe,CAAC,CAAA;AACpBtR,MAAAA,qBAAA,CAAAN,KAAI,EAAA6R,qBAAA,EAAyB,EAAE,CAAA;AAC/BvR,MAAAA,qBAAA,CAAAN,KAAI,EAAAgS,sBAAA,EAA0B,EAAE,CAAA;AAChC1R,MAAAA,qBAAA,CAAAN,KAAI,EAAA8R,YAAA,EAAc,EAAE,CAAA;AACpBxR,MAAAA,qBAAA,CAAAN,KAAI,EAAAkS,aAAA,EAAiB,EAAE,CAAA;AACvB5R,MAAAA,qBAAA,CAAAN,KAAI,EAAAmS,eAAA,EAAmB,EAAE,CAAA;AACzB7R,MAAAA,qBAAA,CAAAN,KAAI,EAAAoS,yBAAA,EAA6B,EAAE,CAAA;AACnC9R,MAAAA,qBAAA,CAAAN,KAAI,EAAAuS,QAAA,EAAW,EAAE,CAAA;IACnB,CAAC,CAAA;AAAAlS,IAAAA,eAAA,CAAA,IAAA,EAAA,aAAA,EAEa,UAACmB,KAAK,EAAE2V,QAAQ,EAAK;AAAA,MAAA,IAAAC,sBAAA;AACjC,MAAA,IAAMC,iBAAiB,GAAA,CAAAD,sBAAA,GAAGrW,qBAAA,CAAAf,KAAI,EAAA8R,YAAA,CAAA,CAAYtQ,KAAK,CAAC,MAAA,IAAA,IAAA4V,sBAAA,KAAA,MAAA,GAAAA,sBAAA,GAAI,EAAE;MACtD9W,qBAAA,CAAAN,KAAI,EAAA8R,YAAA,EAAAyE,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAxV,qBAAA,CACCf,KAAI,EAAA8R,YAAA,CAAA,CAAA,EAAA,EAAA,EAAAzR,eAAA,CAAA,EAAA,EACNmB,KAAK,EAAA,EAAA,CAAArE,MAAA,CAAAma,kBAAA,CAAOD,iBAAiB,CAAA,EAAA,CAAEF,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;IAE5C,CAAC,CAAA;AAAA9W,IAAAA,eAAA,CAAA,IAAA,EAAA,gBAAA,EAEgB,UAACmB,KAAK,EAAE2V,QAAQ,EAAK;AAAA,MAAA,IAAAI,sBAAA;AACpC,MAAA,IAAMC,mBAAmB,GAAA,CAAAD,sBAAA,GAAGxW,qBAAA,CAAAf,KAAI,EAAA8R,YAAA,CAAA,CAAYtQ,KAAK,CAAC,MAAA,IAAA,IAAA+V,sBAAA,KAAA,MAAA,GAAAA,sBAAA,GAAI,EAAE;MACxD,IAAME,gBAAgB,GAAGD,mBAAmB,CAAClJ,MAAM,CAACoJ,KAAK,CAACP,QAAQ,CAAC,CAAC;AACpE7W,MAAAA,qBAAA,CAAAN,KAAI,EAAA8R,YAAA,EAAAyE,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAAxV,qBAAA,CAAmBf,KAAI,EAAA8R,YAAA,CAAA,CAAA,EAAA,EAAA,EAAAzR,eAAA,CAAA,EAAA,EAAcmB,KAAK,EAAGiW,gBAAgB,CAAA,CAAA,CAAA;IACnE,CAAC,CAAA;AAAAvX,IAAAA,4BAAA,OAAAsS,gBAAA,EAAA;MAAArS,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEgB,SAAAA,KAAAA,CAACoB,KAAK,EAAgB;AAAA,QAAA,IAAAmW,sBAAA;AAAA,QAAA,IAAd9Z,IAAI,GAAAF,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAoO,SAAA,GAAApO,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAChC,QAAA,CAAAga,sBAAA,GAAA5W,qBAAA,CAAAf,KAAI,EAAA8R,YAAA,CAAA,CAAYtQ,KAAK,CAAC,MAAA,IAAA,IAAAmW,sBAAA,uBAAtBA,sBAAA,CAAwBvV,OAAO,CAAC,UAAA+U,QAAQ,EAAI;AAC1CA,UAAAA,QAAQ,CAAAlZ,KAAA,CAAA,MAAA,EAAAqZ,kBAAA,CAAIzZ,IAAI,CAAA,CAAC;AACnB,QAAA,CAAC,CAAC;AACJ,MAAA;AAAC,KAAA,CAAA;AAAAqC,IAAAA,4BAAA,OAAAuS,uBAAA,EAAA;MAAAtS,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEyB,SAAAA,KAAAA,CAAClC,KAAK,EAAEuX,UAAU,EAAmB;AAAA,QAAA,IAAjBmC,OAAO,GAAAja,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAoO,SAAA,GAAApO,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACxD;AACA,QAAA,IAAIV,KAAK,CAACgQ,QAAQ,CAAC/O,KAAK,CAAC,EAAE;UACzB6C,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,8CAA8C,EAAE;AAChEiY,YAAAA,UAAU,EAAVA;AACF,WAAC,CAAC;AAEF,UAAA;AACF,QAAA;AAEA1U,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,CAAA,CAASS,KAAK,CAAC,wBAAwB,EAAAqY,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAA;AACzCd,UAAAA,UAAU,EAAVA;AAAU,SAAA,EAAA1U,qBAAA,CACPf,KAAI,EAAA0S,qBAAA,CAAA,CAAA7R,IAAA,CAAJb,KAAI,EAAuB9B,KAAK,CAAA,CAAA,EAChC0Z,OAAO,CAAA,EAAA,EAAA,EAAA;UACVC,YAAY,EAAE7X,KAAI,CAAC2E,MAAM;AACzB3H,UAAAA,WAAW,EAAA+D,qBAAA,CAAEf,KAAI,EAAAP,YAAA,CAAa;AAC9B4T,UAAAA,QAAQ,EAAAtS,qBAAA,CAAEf,KAAI,EAAA0R,SAAA;SAAU,CAAA,CACxB;AACF,QAAA,IAAI1R,KAAI,CAAC2E,MAAM,KAAKoQ,aAAa,CAACC,SAAS,EAAE;AAC3C1U,UAAAA,qBAAA,CAAAN,KAAI,EAAAuS,QAAA,EAAWwC,aAAa,CAAC7W,KAAK,CAAA;UAClC6C,qBAAA,CAAAf,KAAI,EAAAwS,gBAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBqV,YAAY,CAACC,OAAO,CAAA;AAC1C,QAAA,CAAC,MAAM;UACLvU,qBAAA,CAAAf,KAAI,EAAAkS,aAAA,CAAA,CAAeuB,IAAI,CAACgC,UAAU,CAAC,CAAC;AACtC,QAAA;AACF,MAAA;AAAC,KAAA,CAAA;AAAAvV,IAAAA,4BAAA,OAAAwS,qBAAA,EAAA;MAAAvS,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEuB,SAAAA,KAAAA,CAAAlC,KAAK,EAAI;AAAA,QAAA,IAAAyO,eAAA,EAAAC,gBAAA,EAAAkL,gBAAA,EAAAC,gBAAA;QAC/B,IAAI,CAAC7Z,KAAK,EAAE,OAAO;AAAEA,UAAAA,KAAK,EAAE;SAAM;QAElC,OAAO;UACLwD,IAAI,EAAExD,KAAK,CAACwD,IAAI;UAChBI,OAAO,EAAE5D,KAAK,CAAC4D,OAAO;UACtBkW,IAAI,EAAE9Z,KAAK,CAAC8Z,IAAI;UAChBC,KAAK,EAAE/Z,KAAK,CAAC+Z,KAAK;UAClBC,cAAc,EAAA,CAAAvL,eAAA,GAAEzO,KAAK,CAAC6F,QAAQ,MAAA,IAAA,IAAA4I,eAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,eAAA,CAAgBhI,MAAM;UACtCwT,kBAAkB,EAAA,CAAAvL,gBAAA,GAAE1O,KAAK,CAAC6F,QAAQ,MAAA,IAAA,IAAA6I,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,gBAAA,CAAgBwL,UAAU;AAC9CC,UAAAA,YAAY,EACV,QAAA,CAAAP,gBAAA,GAAO5Z,KAAK,CAAC6F,QAAQ,MAAA,IAAA,IAAA+T,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,gBAAA,CAAgB1U,IAAI,MAAK,QAAQ,GACpClF,KAAK,CAAC6F,QAAQ,CAACX,IAAI,CAACkV,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAA,CAAAP,gBAAA,GACjC7Z,KAAK,CAAC6F,QAAQ,cAAAgU,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAdA,gBAAA,CAAgB3U;SACvB;AACH,MAAA;AAAC,KAAA,CAAA;IAAA/C,eAAA,CAAA,IAAA,EAAA,sBAAA,EAEsB,UAAAoV,UAAU,EAAA;AAAA,MAAA,IAAA8C,sBAAA;MAAA,OAC/B1K,mBAAmB,CAACT,MAAM,CAAC;AACzBpQ,QAAAA,WAAW,EAAA+D,qBAAA,CAAEf,KAAI,EAAAP,YAAA,CAAa;AAC9B4N,QAAAA,OAAO,EAAE;AACPoI,UAAAA,UAAU,EAAVA,UAAU;AACVpC,UAAAA,QAAQ,EAAAtS,qBAAA,CAAEf,KAAI,EAAA0R,SAAA,CAAU;UACxB4C,KAAK,EAAEvT,qBAAA,CAAAf,KAAI,EAAAN,WAAA,CAAA,CAAW8P,QAAQ,CAAC3F,SAAS,CAACC,GAAG;SAC7C;AACDyC,QAAAA,MAAM,EAAE;AAAEM,UAAAA,MAAM,EAAA,CAAA0L,sBAAA,GAAAxX,qBAAA,CAAEf,KAAI,EAAA+R,gBAAA,CAAA,MAAA,IAAA,IAAAwG,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,sBAAA,CAAuB1L;AAAO;AAClD,OAAC,CAAC;AAAA,IAAA,CAAA,CAAA;AAAA3M,IAAAA,4BAAA,OAAAyS,eAAA,EAAA;MAAAxS,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA,YAAA;QAAA,IAAAiC,MAAA,GAAAC,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAEe,SAAAgW,QAAAA,CAAMC,MAAM,EAAA;AAAA,UAAA,IAAAC,gBAAA,CAAA,CAAAC;AAAA,UAAA,IAAAlD,UAAA,EAAAmD,QAAA,EAAAC,SAAA,EAAAC,gBAAA,EAAAnI,YAAA,EAAAoI,qBAAA,EAAAC,eAAA,EAAAC,mBAAA;AAAA,UAAA,OAAA1W,mBAAA,CAAAO,IAAA,CAAA,SAAAoW,UAAAC,SAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAlW,IAAA,GAAAkW,SAAA,CAAAjW,IAAA;AAAA,cAAA,KAAA,CAAA;AACvBuS,gBAAAA,UAAU,GAAA1U,qBAAA,CAAGf,KAAI,EAAA4R,WAAA,CAAA;AACvBtR,gBAAAA,qBAAA,CAAAN,KAAI,EAAA4R,WAAA,GAAA8G,gBAAA,GAAA3X,qBAAA,CAAJf,KAAI,EAAA4R,WAAA,GAAA8G,gBAAA,EAAA,EAAAA,gBAAA,EAAA;AACEE,gBAAAA,QAAQ,GAAG,IAAIQ,IAAI,CAACX,MAAM,EAAE;AAAEtZ,kBAAAA,IAAI,EAAA4B,qBAAA,CAAEf,KAAI,EAAAN,WAAA;AAAW,iBAAC,CAAC;gBACrDmZ,SAAS,GAAGD,QAAQ,CAACvV,IAAI;AAC/BtC,gBAAAA,qBAAA,CAAAf,KAAI,EAAAmS,eAAA,CAAA,CAAiBsD,UAAU,CAAC,GAAG;AAAEhE,kBAAAA,QAAQ,EAAE,CAAC;AAAEL,kBAAAA,KAAK,EAAEyH;iBAAW;gBACpE9X,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,uBAAuB,EAAE;AACzCiY,kBAAAA,UAAU,EAAVA,UAAU;AACVoD,kBAAAA,SAAS,EAATA,SAAS;AACTQ,kBAAAA,MAAM,EAAEtF,MAAM,CAAC,CAAC8E,SAAS,GAAG,IAAI,GAAG,IAAI,EAAE7E,OAAO,CAAC,CAAC,CAAC,CAAC;AACpD5S,kBAAAA,QAAQ,EAAAL,qBAAA,CAAEf,KAAI,EAAAN,WAAA,CAAU;AACxB1C,kBAAAA,WAAW,EAAA+D,qBAAA,CAAEf,KAAI,EAAAP,YAAA,CAAa;AAC9B4T,kBAAAA,QAAQ,EAAAtS,qBAAA,CAAEf,KAAI,EAAA0R,SAAA;AAChB,iBAAC,CAAC;AAEIoH,gBAAAA,gBAAgB,GAAGlE,IAAI,CAACzQ,GAAG,EAAE;AAAAgV,gBAAAA,SAAA,CAAAlW,IAAA,GAAA,CAAA;AAAAkW,gBAAAA,SAAA,CAAAjW,IAAA,GAAA,EAAA;AAAA,gBAAA,OAGPlD,KAAI,CAACsZ,oBAAoB,CAAC7D,UAAU,CAAC;AAAA,cAAA,KAAA,EAAA;gBAAAsD,qBAAA,GAAAI,SAAA,CAAA/U,IAAA;gBAA5DuM,YAAY,GAAAoI,qBAAA,CAAZpI,YAAY;gBACf5P,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,qCAAqC,EAAE;AACvDiY,kBAAAA,UAAU,EAAVA,UAAU;AACV8D,kBAAAA,iBAAiB,EAAE3E,IAAI,CAACzQ,GAAG,EAAE,GAAG2U;AAClC,iBAAC,CAAC;AAACK,gBAAAA,SAAA,CAAAjW,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA,cAAA,KAAA,EAAA;AAAAiW,gBAAAA,SAAA,CAAAlW,IAAA,GAAA,EAAA;gBAAAkW,SAAA,CAAA3V,EAAA,GAAA2V,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAEHpY,gBAAAA,qBAAA,CAAAf,KAAI,EAAAyS,uBAAA,EAAA5R,IAAA,CAAJb,KAAI,EAAAmZ,SAAA,CAAA3V,EAAA,EAAgCiS,UAAU,EAAE;AAC9CkB,kBAAAA,KAAK,EAAE,SAAS;AAChB4C,kBAAAA,iBAAiB,EAAE3E,IAAI,CAACzQ,GAAG,EAAE,GAAG2U;iBACjC,CAAA;gBAAE,OAAAK,SAAA,CAAAhW,MAAA,CAAA,QAAA,CAAA;AAAA,cAAA,KAAA,EAAA;AAKC6V,gBAAAA,eAAe,GAAGpE,IAAI,CAACzQ,GAAG,EAAE;AAE5B8U,gBAAAA,mBAAmB,GAAGlI,KAAK,CAC9BL,eAAe,CAAC;AACfC,kBAAAA,YAAY,EAAZA,YAAY;AACZC,kBAAAA,IAAI,EAAEgI,QAAQ;AACdrM,kBAAAA,MAAM,EAAE;AACNhI,oBAAAA,OAAO,EAAE;AAAE,sBAAA,cAAc,EAAAxD,qBAAA,CAAEf,KAAI,EAAAN,WAAA;qBAAY;AAC3C8Z,oBAAAA,yBAAyB,EAAE,IAAI;AAC/B3M,oBAAAA,MAAM,EAAA,CAAA8L,sBAAA,GAAA5X,qBAAA,CAAEf,KAAI,EAAA+R,gBAAA,CAAA,MAAA,IAAA,IAAA4G,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,sBAAA,CAAuB9L,MAAM;AACrC4M,oBAAAA,gBAAgB,EAAE,SAAAA,gBAAAA,CAAAC,CAAC,EAAI;AACrB3Y,sBAAAA,qBAAA,CAAAf,KAAI,EAAAmS,eAAA,CAAA,CAAiBsD,UAAU,CAAC,GAAG;wBACjChE,QAAQ,EAAEiI,CAAC,CAACC,MAAM;wBAClBvI,KAAK,EAAEsI,CAAC,CAACtI;uBACV;AACD,sBAAA,IAAIpR,KAAI,CAAC2E,MAAM,KAAKoQ,aAAa,CAACC,SAAS,EAAE;wBAC3C,IAAM4E,gBAAgB,GAAG1I,uBAAuB,CAAAnQ,qBAAA,CAC9Cf,KAAI,EAAAmS,eAAA,CAAA,CACL;;AAED;AACA;AACA;AACA,wBAAA,IACEyH,gBAAgB,GAAA7Y,qBAAA,CAAGf,KAAI,EAAAoS,yBAAA,CAA0B,IAAI,EAAE,IACvDwH,gBAAgB,KAAK,GAAG,EACxB;0BACA7Y,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,iBAAiB,EAAE;AACnCqc,4BAAAA,cAAc,EAAED,gBAAgB;AAChCnE,4BAAAA,UAAU,EAAVA,UAAU;4BACVqE,UAAU,EAAEJ,CAAC,CAACC,MAAM;4BACpBI,SAAS,EAAEL,CAAC,CAACtI;AACf,2BAAC,CAAC;AACF9Q,0BAAAA,qBAAA,CAAAN,KAAI,EAAAoS,yBAAA,EAA6BwH,gBAAgB,CAAA;AACnD,wBAAA;AAEA7Y,wBAAAA,qBAAA,CAAAf,KAAI,EAAAwS,gBAAA,EAAA3R,IAAA,CAAJb,KAAI,EAAgBqV,YAAY,CAAC2E,UAAU,EAAE,CAACJ,gBAAgB,CAAC,CAAA;AACjE,sBAAA;AACF,oBAAA;AACF;iBACD;AACD;AAAA,iBACCK,IAAI,CAAC,UAAAlW,QAAQ,EAAI;AAAA,kBAAA,IAAAmW,iBAAA;AAChB,kBAAA,IAAMlD,UAAU,GAAGpC,IAAI,CAACzQ,GAAG,EAAE,GAAG6U,eAAe;kBAC/CjY,qBAAA,CAAAf,KAAI,EAAAvC,SAAA,EAASD,IAAI,CAAC,yBAAyB,EAAE;AAC3CiY,oBAAAA,UAAU,EAAVA,UAAU;AACVoD,oBAAAA,SAAS,EAATA,SAAS;AACT7B,oBAAAA,UAAU,EAAVA,UAAU;oBACVmD,cAAc,EAAEnD,UAAU,GACtBjD,MAAM,CAAC,CAAE8E,SAAS,GAAG,CAAC,GAAI,IAAI,GAAG7B,UAAU,EAAEhD,OAAO,CAAC,CAAC,CAAC,CAAC,GACxD,IAAI;AACRoG,oBAAAA,UAAU,EAAErW,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,GAAA,MAAA,GAARA,QAAQ,CAAEY,MAAM;AAC5B6Q,oBAAAA,IAAI,EAAEzR,QAAQ,KAAA,IAAA,IAARA,QAAQ,wBAAAmW,iBAAA,GAARnW,QAAQ,CAAEQ,OAAO,MAAA,IAAA,IAAA2V,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,iBAAA,CAAmB1E;AAC3B,mBAAC,CAAC;AAEF,kBAAA,OAAOzR,QAAQ;gBACjB,CAAC;AACD;iBAAA,OAAA,CACM,CAAC,UAAA7F,KAAK,EAAI;AACd6C,kBAAAA,qBAAA,CAAAf,KAAI,EAAAyS,uBAAA,CAAA,CAAA5R,IAAA,CAAJb,KAAI,EAAyB9B,KAAK,EAAEuX,UAAU,EAAE;AAC9CkB,oBAAAA,KAAK,EAAE,QAAQ;AACf0D,oBAAAA,gBAAgB,EAAEzF,IAAI,CAACzQ,GAAG,EAAE,GAAG6U,eAAe;AAC9CH,oBAAAA,SAAS,EAATA;mBACD,CAAA;AACH,gBAAA,CAAC,CAAC;gBACJ9X,qBAAA,CAAAf,KAAI,EAAA6R,qBAAA,EAAuB4B,IAAI,CAACwF,mBAAmB,CAAC;AAAC,cAAA,KAAA,EAAA;AAAA,cAAA,KAAA,KAAA;gBAAA,OAAAE,SAAA,CAAAxX,IAAA,EAAA;AAAA;AAAA,UAAA,CAAA,EAAA6W,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;QAAA,CACtD,CAAA,CAAA;AAAA,QAAA,SAAApY,MAAAgF,GAAA,EAAA;AAAA,UAAA,OAAA/C,MAAA,CAAApE,KAAA,CAAA,IAAA,EAAAN,SAAA,CAAA;AAAA,QAAA;AAAA,QAAA,OAAAyC,KAAA;AAAA,MAAA,CAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,4BAAA,OAAA0S,yBAAA,EAAA;MAAAzS,QAAA,EAAA,IAAA;MAAAC,KAAA,EAE2B,SAAAA,KAAAA,GAAA;QAAA,OAC1B,IAAIgZ,IAAI,CAAArY,qBAAA,CAACf,KAAI,EAAA2R,iBAAA,CAAA,EAAoB;AAAExS,UAAAA,IAAI,EAAA4B,qBAAA,CAAEf,KAAI,EAAAN,WAAA;AAAW,SAAC,CAAC;AAAA,MAAA;AAAA,KAAA,CAAA;AAthB1DqB,IAAAA,qBAAA,KAAI,EAAAtD,SAAA,EAASD,IAAI,CAAC,sBAAsB,EAAE;AACxC4D,MAAAA,QAAQ,EAAAL,qBAAA,CAAE,IAAI,EAAArB,WAAA,CAAU;MACxB4a,kBAAkB,EAAE,IAAI,CAACpG;AAC3B,KAAC,CAAC;AACJ,EAAA;AAAC5O,EAAAA,YAAA,CAAAyN,mBAAA,EAAA,CAAA;IAAA/N,GAAA,EAAA,QAAA;IAAA9H,GAAA,EAED,SAAAA,GAAAA,GAAa;AACX,MAAA,OAAA6D,qBAAA,CAAO,IAAI,EAAAsR,OAAA,CAAA;AACb,IAAA;AAAC,GAAA,EAAA;IAAArN,GAAA,EAAA,UAAA;IAAA9H,GAAA,EAED,SAAAA,GAAAA,GAAe;AACb,MAAA,OAAA6D,qBAAA,CAAO,IAAI,EAAArB,WAAA,CAAA;AACb,IAAA;AAAC,GAAA,EAAA;IAAAsF,GAAA,EAAA,mBAAA;IAAA9H,GAAA,EAOD,SAAAA,GAAAA,GAAwB;MACtB,OACE2R,UAAU,CAAA9N,qBAAA,CAAC,IAAI,EAAA4Q,iBAAA,CAAA,CAAmB,IAClC9C,UAAU,CAAA9N,qBAAA,CAAC,IAAI,EAAAiR,sBAAA,CAAA,CAAwB,IACvCnD,UAAU,CAAA9N,qBAAA,CAAC,IAAI,EAAA8Q,qBAAA,CAAA,CAAuB;AAE1C,IAAA;;AA2OA;AAAA,GAAA,CAAA,CAAA;AAAA,EAAA,OAAAkB,mBAAA;AAAA,CAAA,EAAA;AAAA,SAAAI,WAAAA,CAtPYxO,MAAM,EAAE;AAClBrE,EAAAA,qBAAA,CAAA,IAAI,EAAA+R,OAAA,EAAY1N,MAAM,CAAA;EACtB4V,4BAA0B,CAACC,mBAAmB,EAAE;AAClD;AAAC,SAAAtH,yBAugBwB;AACvB,EAAA,OAAOpS,OAAO,CAACC,qBAAA,CAAA,IAAI,EAAA2Q,SAAA,CAAA,GAAA3Q,qBAAA,CAAa,IAAI,EAAAtB,YAAA,CAAa,CAAC;AACpD;AAAC,SAAAuT,wBAEuB;EACtB,OACEjS,qBAAA,CAAA,IAAI,EAAAsR,OAAA,CAAA,KAAc0C,aAAa,CAACqB,QAAQ,IACxCrV,qBAAA,CAAA,IAAI,EAAAsR,OAAA,CAAA,KAAc0C,aAAa,CAACsB,SAAS,IACzCtV,qBAAA,CAAA,IAAI,EAAAsR,OAAA,CAAA,KAAc0C,aAAa,CAAC7W,KAAK;AAEzC;AAGF,IAAIuc,mBAAmB,GAAG,IAAI1H,mBAAmB,EAAE;IAEtC2H,sBAAsB,GAAG,SAAzBA,sBAAsBA,GAAoC;AAAA,EAAA,IAAAC,KAAA,GAAAhd,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAoO,SAAA,GAAApO,SAAA,CAAA,CAAA,CAAA,GAAP,EAAE;IAAAid,gBAAA,GAAAD,KAAA,CAAzBE,UAAU;AAAVA,IAAAA,UAAU,GAAAD,gBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,gBAAA;AACzD,EAAA,IAAI,CAACH,mBAAmB,IAAII,UAAU,EAAE;IACtCJ,mBAAmB,GAAG,IAAI1H,mBAAmB,EAAE;IAC/CwH,4BAA0B,CAACC,mBAAmB,EAAE;AAClD,EAAA;AAEA,EAAA,OAAOC,mBAAmB;AAC5B;;ACzlBA,SAAS,eAAe,CAAC,CAAC,EAAE;AAC5B,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAChC;;ACFA,SAAS,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE;AACrC,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,WAAW,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;AAClG,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE;AACjB,IAAI,IAAI,CAAC;AACT,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC;AACP,MAAM,CAAC,GAAG,EAAE;AACZ,MAAM,CAAC,GAAG,IAAE;AACZ,MAAM,CAAC,GAAG,KAAE;AACZ,IAAI,IAAI;AACR,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAGtC,MAAM,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;AAChB,MAAM,CAAC,GAAG,IAAE,EAAE,CAAC,GAAG,CAAC;AACnB,IAAI,CAAC,SAAS;AACd,MAAM,IAAI;AACV,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/E,MAAM,CAAC,SAAS;AAChB,QAAQ,IAAI,CAAC,EAAE,MAAM,CAAC;AACtB,MAAM;AACN,IAAI;AACJ,IAAI,OAAO,CAAC;AACZ,EAAE;AACF;;AC1BA,SAAS,gBAAgB,GAAG;AAC5B,EAAE,MAAM,IAAI,SAAS,CAAC,2IAA2I,CAAC;AAClK;;ACEA,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9B,EAAE,OAAOK,eAAc,CAAC,CAAC,CAAC,IAAIC,qBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAInV,2BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,IAAIoV,gBAAe,EAAE;AACjH;;ACNA;AACO,IAAMC,eAAe,GAAG;AAC7BC,EAAAA,OAAO,EAAE,SAGX,CAAC;AAKkC;;;;ACHnC,IAAMC,YAAY,GAAG;EACnBxW,MAAM,EAAEwB,wBAAsB,CAACQ,IAAI;AACnCzI,EAAAA,KAAK,EAAE,EAAE;AACTkd,EAAAA,WAAW,EAAE,CAAC;AACdC,EAAAA,iBAAiB,EAAEC,cAAc;AACjCC,EAAAA,oBAAoB,EAAE;AACxB,CAAC;AAED,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAA;AAAA,EAAA,OAChBpO,QAAM,CACJqO,oBAAoB,CAAC,UAAAxI,GAAG,EAAA;AAAA,IAAA,OAAAsD,eAAA,CAAAA,eAAA,CAAA,EAAA,EACnB4E,YAAY,CAAA,EAAA,EAAA,EAAA;MACfO,UAAU,EAAE,SAAAA,UAAAA,GAAA;QAAA,OAAMzI,GAAG,CAACkI,YAAY,CAAC;AAAA,MAAA;AAAA,KAAA,CAAA;AAAA,EAAA,CACnC,CAAC,CACJ;AAAA,CAAA;;;;;;ACU+C,IAAAQ,MAAA,oBAAArc,OAAA,EAAA;AAAA,IAAAsc,MAAA,oBAAAtc,OAAA,EAAA;AAAA,IAAAuc,YAAA,oBAAAvc,OAAA,EAAA;AAAA,IAAAwc,cAAA,oBAAAxc,OAAA,EAAA;AAAA,IAAAyc,YAAA,oBAAAzc,OAAA,EAAA;AAAA,IAAA0c,MAAA,oBAAA1c,OAAA,EAAA;AAAA,IAAA7B,OAAA,oBAAA6B,OAAA,EAAA;AAAA,IAAA2c,YAAA,oBAAA3c,OAAA,EAAA;AAAA,IAAAwS,UAAA,oBAAAxS,OAAA,EAAA;AAAA,IAAA4c,mBAAA,oBAAA5c,OAAA,EAAA;AAAA,IAAA6c,QAAA,oBAAA7c,OAAA,EAAA;AAAA,IAAA8c,iBAAA,oBAAA9c,OAAA,EAAA;AAAA,IAAA+c,oBAAA,oBAAA/c,OAAA,EAAA;AAAA,IAAAgd,mBAAA,oBAAAhd,OAAA,EAAA;AAAA,IAAAid,2BAAA,oBAAAjd,OAAA,EAAA;AAAA,IAAAkd,oCAAA,oBAAAld,OAAA,EAAA;AAAA,IAAAmd,OAAA,oBAAAnd,OAAA,EAAA;AAAA,IAAAod,YAAA,oBAAApd,OAAA,EAAA;AAAA,IAAAqd,eAAA,oBAAArd,OAAA,EAAA;AAAA,IAAAsd,cAAA,oBAAAtd,OAAA,EAAA;AAAA,IAAAud,UAAA,oBAAAvd,OAAA,EAAA;AAAA,IAAAwd,wBAAA,oBAAAxd,OAAA,EAAA;AAAA,IAAAyd,wBAAA,oBAAAzd,OAAA,EAAA;AAAA,IAAA0d,cAAA,oBAAA1d,OAAA,EAAA;AAAA,IAAA2d,mBAAA,oBAAA3d,OAAA,EAAA;AAAA,IAAAI,SAAA,oBAAAJ,OAAA,EAAA;AAAA,IAAA4d,cAAA,oBAAA5d,OAAA,EAAA;AAAA,IAAA6d,kBAAA,oBAAA7d,OAAA,EAAA;AAAA,IAAA8d,wBAAA,oBAAA9d,OAAA,EAAA;AAAA,IAAA+d,eAAA,oBAAA/d,OAAA,EAAA;AAAA,IAAAge,mBAAA,oBAAAhe,OAAA,EAAA;AAAA,IAAAie,aAAA,oBAAAje,OAAA,EAAA;AAAA,IAAAke,kBAAA,oBAAAle,OAAA,EAAA;AAAA,IAAAme,mBAAA,oBAAAne,OAAA,EAAA;AAAA,IAAAoe,mBAAA,oBAAApe,OAAA,EAAA;AAAA,IAAAkT,cAAA,oBAAAlT,OAAA,EAAA;AAAA,IAAAqe,iBAAA,oBAAAre,OAAA,EAAA;AAAA,IAAAse,kBAAA,oBAAAte,OAAA,EAAA;AAAA,IAAAue,gBAAA,oBAAAve,OAAA,EAAA;AAAA,IAAAwe,wBAAA,oBAAAxe,OAAA,EAAA;AAAA,IAAAye,eAAA,oBAAAze,OAAA,EAAA;AAAA,IAAA0e,gBAAA,oBAAA1e,OAAA,EAAA;AAAA,IAAA2e,uBAAA,oBAAA3e,OAAA,EAAA;AAAA,IAAA4e,mBAAA,oBAAA5e,OAAA,EAAA;AAAA,IAAA6e,eAAA,oBAAA7e,OAAA,EAAA;AAAA,IAAA8e,WAAA,oBAAA9e,OAAA,EAAA;AAAA,IAAA+e,UAAA,oBAAA/e,OAAA,EAAA;AAAA,IAAAgf,wBAAA,oBAAAhf,OAAA,EAAA;AAAA,IAE5Cif,cAAc,gBAAA,YAAA;AAwBlB;AACA;;AAMA;AACA;AACA;;AAMA,EAAA,SAAAA,cAAAA,CAAY1b,OAAK,EAAE2b,KAAK,EAAE;AAAA,IAAA,IAAAxe,KAAA,GAAA,IAAA;AAAAC,IAAAA,eAAA,OAAAse,cAAA,CAAA;AAAAre,IAAAA,0BAAA,OAAAyb,MAAA,EAAA;MAAAxb,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA0b,MAAA,EAAA;MAAAzb,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA2b,YAAA,EAAA;MAAA1b,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA4b,cAAA,EAAA;MAAA3b,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA6b,YAAA,EAAA;MAAA5b,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA8b,MAAA,EAAA;MAAA7b,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAAzC,OAAA,EAAA;MAAA0C,QAAA,EAAA,IAAA;MAAAC,KAAA,EAhChB9C,oBAAoB,CAAC,kBAAkB;AAAC,KAAA,CAAA;AAAA4C,IAAAA,0BAAA,OAAA+b,YAAA,EAAA;MAAA9b,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACnC;AAAE,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA4R,UAAA,EAAA;MAAA3R,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACJ;AAAE,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAAgc,mBAAA,EAAA;MAAA/b,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACO;AAAC,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAAic,QAAA,EAAA;MAAAhc,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAAkc,iBAAA,EAAA;MAAAjc,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAAmc,oBAAA,EAAA;MAAAlc,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAGA,IAAIqe,KAAK,CAACnU,qBAAqB;AAAC,KAAA,CAAA;AAAApK,IAAAA,0BAAA,OAAAoc,mBAAA,EAAA;MAAAnc,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACjC,IAAIqe,KAAK,CAAClU,oBAAoB;AAAC,KAAA,CAAA;AAAArK,IAAAA,0BAAA,OAAAqc,2BAAA,EAAA;MAAApc,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACvB,IAAIqe,KAAK,CACrChU,qCAAqC;AACtC,KAAA,CAAA;AAAAvK,IAAAA,0BAAA,OAAAsc,oCAAA,EAAA;MAAArc,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACsC,IAAIqe,KAAK,CAC9CjU,yCAAyC;AAC1C,KAAA,CAAA;AAAAtK,IAAAA,0BAAA,OAAAuc,OAAA,EAAA;MAAAtc,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAAwc,YAAA,EAAA;MAAAvc,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAAyc,eAAA,EAAA;MAAAxc,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA0c,cAAA,EAAA;MAAAzc,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAMgB;AAAE,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA2c,UAAA,EAAA;MAAA1c,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACNsK;AAA8B,KAAA,CAAA;AAAAxK,IAAAA,0BAAA,OAAA4c,wBAAA,EAAA;MAAA3c,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA6c,wBAAA,EAAA;MAAA5c,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEhB;AAAK,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA8c,cAAA,EAAA;MAAA7c,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACf;AAAI,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA+c,mBAAA,EAAA;MAAA9c,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAIC;AAAI,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAAR,SAAA,EAAA;MAAAS,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACd+O,oBAAoB;AAAE,KAAA,CAAA;AAAAjP,IAAAA,0BAAA,OAAAgd,cAAA,EAAA;MAAA/c,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACjB;AAAK,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAAid,kBAAA,EAAA;MAAAhd,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EACD;AAAK,KAAA,CAAA;IAAAC,eAAA,CAAA,IAAA,EAAA,mBAAA,EAmCN,UAAAqe,cAAc,EAAI;AACpC3d,MAAAA,qBAAA,CAAAf,KAAI,EAAA4b,MAAA,CAAA,CAAQ8C,cAAc,GAAGA,cAAc;IAC7C,CAAC,CAAA;IAAAre,eAAA,CAAA,IAAA,EAAA,sBAAA,EACsB,UAAAD,KAAK,EAAA;AAAA,MAAA,OAAAE,qBAAA,CAAKN,KAAI,EAAAmd,kBAAA,EAAsB/c,KAAK,CAAA;IAAA,CAAC,CAAA;IAAAC,eAAA,CAAA,IAAA,EAAA,eAAA,EAEjD,UAAAse,MAAM,EAAI;MACxB,IAAIA,MAAM,KAAK,MAAM,EAAE;AACvB,MAAA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,KAAK,EAAEF,MAAM,EAAA;QAAA,OAAM;AACzCE,UAAAA,KAAK,EAAE;AAAEC,YAAAA,GAAG,EAAED;WAAO;AACrBF,UAAAA,MAAM,EAAE;AAAEG,YAAAA,GAAG,EAAEH;WAAQ;AACvBD,UAAAA,cAAc,EAAE3d,qBAAA,CAAAf,KAAI,EAAA4b,MAAA,CAAA,CAAQ8C;SAC7B;MAAA,CAAC;AAEF,MAAA,IAAMK,aAAa,GAAG,SAAhBA,aAAaA,CAAGJ,MAAM,EAAI;QAC9B,IAAIA,MAAM,KAAK,IAAI,EAAE,OAAOC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;QAEtD,IAAID,MAAM,KAAK,GAAG,EAAE,OAAOC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC;AAEpD,QAAA,OAAOA,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;MACnC,CAAC;MACDte,qBAAA,CAAAN,KAAI,EAAA4b,MAAA,EAAUmD,aAAa,CAACJ,MAAM,CAAC,CAAA;IACrC,CAAC,CAAA;AAAAte,IAAAA,eAAA,CAAA,IAAA,EAAA,gBAAA,EAEgB,YAAA;AAAA,MAAA,OAAAU,qBAAA,CAAMf,KAAI,EAAA0c,YAAA,CAAA;IAAA,CAAa,CAAA;AAAArc,IAAAA,eAAA,CAAA,IAAA,EAAA,SAAA,EAC9B,YAAA;AAAA,MAAA,OAAAU,qBAAA,CAAMf,KAAI,EAAAkd,cAAA,CAAA;IAAA,CAAe,CAAA;IAAA7c,eAAA,CAAA,IAAA,EAAA,4BAAA,EAEN,UAAAD,KAAK,EAAA;AAAA,MAAA,OAAAE,qBAAA,CAAKN,KAAI,EAAA+c,wBAAA,EAA4B3c,KAAK,CAAA;IAAA,CAAC,CAAA;IAAAC,eAAA,CAAA,IAAA,EAAA,aAAA,EAE/D,UAAAe,QAAQ,EAAA;AAAA,MAAA,OAAAd,qBAAA,CAAKN,KAAI,EAAAN,SAAA,EAAa0B,QAAQ,CAAA;IAAA,CAAC,CAAA;IAAAf,eAAA,CAAA,IAAA,EAAA,uBAAA,EAE7B,UAAAwC,KAAK,EAAA;AAAA,MAAA,OAAAvC,qBAAA,CAAKN,KAAI,EAAA2b,MAAA,EAAU9Y,KAAK,CAAA;IAAA,CAAC,CAAA;IAAAxC,eAAA,CAAA,IAAA,EAAA,kBAAA,EAEnC,UAAA2e,aAAa,EAAA;AAAA,MAAA,OAAA1e,qBAAA,CAAKN,KAAI,EAAAgd,cAAA,EAAkBgC,aAAa,CAAA;IAAA,CAAC,CAAA;IAAA3e,eAAA,CAAA,IAAA,EAAA,uBAAA,EAEjD,UAAAD,KAAK,EAAA;AAAA,MAAA,OAAAE,qBAAA,CAAKN,KAAI,EAAAid,mBAAA,EAAuB7c,KAAK,CAAA;IAAA,CAAC,CAAA;AAAAC,IAAAA,eAAA,CAAA,IAAA,EAAA,cAAA,EAEpD,YAAA;AAAA,MAAA,IAAC4e,SAAS,GAAAthB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAoO,SAAA,GAAApO,SAAA,CAAA,CAAA,CAAA,GAAG+M,8BAA8B;AAAA,MAAA,OAAApK,qBAAA,CACvDN,KAAI,EAAA6c,UAAA,EAAcoC,SAAS,CAAA;IAAA,CAAC,CAAA;AAAA5e,IAAAA,eAAA,CAAA,IAAA,EAAA,kBAAA,EAEZ,YAAA;MAAA,OACjB,IAAI+Y,IAAI,CAAArY,qBAAA,CAACf,KAAI,EAAAic,YAAA,CAAA,EAAe;AAAE9c,QAAAA,IAAI,EAAA4B,qBAAA,CAAEf,KAAI,EAAAN,SAAA;AAAW,OAAC,CAAC;AAAA,IAAA,CAAA,CAAA;AAAAW,IAAAA,eAAA,CAAA,IAAA,EAAA,aAAA,EAEzC,UAACmB,KAAK,EAAE2V,QAAQ,EAAK;AAAA,MAAA,IAAApV,sBAAA;AACjC,MAAA,IAAMsV,iBAAiB,GAAA,CAAAtV,sBAAA,GAAGhB,qBAAA,CAAAf,KAAI,EAAA8R,UAAA,CAAA,CAAYtQ,KAAK,CAAC,MAAA,IAAA,IAAAO,sBAAA,KAAA,MAAA,GAAAA,sBAAA,GAAI,EAAE;MACtDzB,qBAAA,CAAAN,KAAI,EAAA8R,UAAA,EAAAyE,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAAxV,qBAAA,CACCf,KAAI,EAAA8R,UAAA,CAAA,CAAA,EAAA,EAAA,EAAAzR,eAAA,CAAA,EAAA,EACNmB,KAAK,EAAA,EAAA,CAAArE,MAAA,CAAAma,kBAAA,CAAOD,iBAAiB,CAAA,EAAA,CAAEF,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA;IAE5C,CAAC,CAAA;AAAA9W,IAAAA,eAAA,CAAA,IAAA,EAAA,gBAAA,EAEgB,UAACmB,KAAK,EAAE2V,QAAQ,EAAK;AAAA,MAAA,IAAAjV,sBAAA;AACpC,MAAA,IAAMsV,mBAAmB,GAAA,CAAAtV,sBAAA,GAAGnB,qBAAA,CAAAf,KAAI,EAAA8R,UAAA,CAAA,CAAYtQ,KAAK,CAAC,MAAA,IAAA,IAAAU,sBAAA,KAAA,MAAA,GAAAA,sBAAA,GAAI,EAAE;MACxD,IAAMuV,gBAAgB,GAAGD,mBAAmB,CAAClJ,MAAM,CAACoJ,KAAK,CAACP,QAAQ,CAAC,CAAC;AACpE7W,MAAAA,qBAAA,CAAAN,KAAI,EAAA8R,UAAA,EAAAyE,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAAxV,qBAAA,CAAmBf,KAAI,EAAA8R,UAAA,CAAA,CAAA,EAAA,EAAA,EAAAzR,eAAA,CAAA,EAAA,EAAcmB,KAAK,EAAGiW,gBAAgB,CAAA,CAAA,CAAA;IACnE,CAAC,CAAA;IAAApX,eAAA,CAAA,IAAA,EAAA,2BAAA,EAE2B,UAAAmB,KAAK,EAAI;AACnC,MAAA,OAAOT,qBAAA,CAAAf,KAAI,EAAA8R,UAAA,CAAA,CAAYtQ,KAAK,CAAC;IAC/B,CAAC,CAAA;IAAAnB,eAAA,CAAA,IAAA,EAAA,UAAA,EAEU,UAAAnC,KAAK,EAAI;AAClB6C,MAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;AAAEhhB,QAAAA,KAAK,EAALA;AAAM,OAAC,CAAC;IACjC,CAAC,CAAA;IAAAmC,eAAA,CAAA,IAAA,EAAA,gBAAA,eAAAiC,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAEgB,SAAAC,OAAAA,GAAA;AAAA,MAAA,IAAA0c,OAAA;AAAA,MAAA,OAAA5c,mBAAA,CAAAO,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AACfnC,YAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CACf,yBAAyB,EAAAuD,qBAAA,CACzBf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,EAAyB;AAC3Bgf,cAAAA,aAAa,EAAAje,qBAAA,CAAEf,KAAI,EAAAgd,cAAA,CAAe;AAClCiC,cAAAA,SAAS,EAAAle,qBAAA,CAAEf,KAAI,EAAA6c,UAAA,CAAW;AAC1Bzb,cAAAA,QAAQ,EAAAL,qBAAA,CAAEf,KAAI,EAAAN,SAAA,CAAU;AACxB0f,cAAAA,iBAAiB,EAAAre,qBAAA,CAAEf,KAAI,EAAAmd,kBAAA,CAAmB;AAC1CkC,cAAAA,uBAAuB,EAAAte,qBAAA,CAAEf,KAAI,EAAA+c,wBAAA,CAAyB;AACtDuC,cAAAA,sBAAsB,EAAE/b,OAAO,CAAAxC,qBAAA,CAACf,KAAI,EAAA6b,YAAA,CAAA;AACtC,aAAC,CAAA,CACF;AAED9a,YAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,EAAQkD,QAAQ,CAACK,IAAI,CAAC,CAAC,OAAO,CAAC,EAAEC,YAAiB,CAAC,CAAC;AAAC,YAAA,IAAAze,qBAAA,CAEpDf,KAAI,EAAA+b,YAAA,CAAA,EAAA;AAAA/Y,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;YACPnC,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,0CAA0C,CAAC;AAACwF,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;YAAA,OAAAnC,qBAAA,CACxDf,KAAI,EAAA0d,mBAAA,CAAA,CAAA7c,IAAA,CAAJb,KAAI,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,IAAA,EAGRe,qBAAA,CAAAf,KAAI,EAAA+b,YAAA,CAAA,IAAiBhN,aAAa,CAAAhO,qBAAA,CAACf,KAAI,EAAA+b,YAAA,CAAA,CAAc,CAAA,EAAA;AAAA/Y,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA;YACvDnC,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CACf,oDAAoD,EAAAuD,qBAAA,CACpDf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CAAkBf,KAAI,EAAA+b,YAAA,CAAA,CAAA,CAC3B;AACD;AACA;AACA;AACAhb,YAAAA,qBAAA,CAAAf,KAAI,EAAAud,aAAA,CAAA,CAAA1c,IAAA,CAAJb,KAAI,CAAA;AAAiBgD,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;YAAA,OAAAnC,qBAAA,CACff,KAAI,EAAA0d,mBAAA,CAAA,CAAA7c,IAAA,CAAJb,KAAI,CAAA;AAAA,UAAA,KAAA,EAAA;AAAA,YAAA,IAAA,EAGR,CAAAe,qBAAA,CAACf,KAAI,EAAA+b,YAAA,CAAa,IAAIhN,aAAa,CAAAhO,qBAAA,CAACf,KAAI,EAAA+b,YAAA,CAAA,CAAc,CAAA,EAAA;AAAA/Y,cAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,cAAA;AAAA,YAAA;YACxDnC,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASa,IAAI,CACf,sDAAsD,EACtD;cACEmhB,cAAc,EAAElc,OAAO,CAAAxC,qBAAA,CAACf,KAAI,EAAA+b,YAAA,CAAA,CAAc;AAC1C2D,cAAAA,OAAO,EAAE3e,qBAAA,CAAAf,KAAI,EAAA+b,YAAA,CAAA,GAAgBhN,aAAa,CAAAhO,qBAAA,CAACf,KAAI,EAAA+b,YAAA,EAAc,GAAG;AAClE,aAAC,CACF;YAAC,OAAA/Y,QAAA,CAAAG,MAAA,CAAA,QAAA,CAAA;AAAA,UAAA,KAAA,EAAA;YAKEgc,OAAO,GAAG7P,uBAAuB,EAAE;YAEzCvO,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,0CAA0C,EAAE;AAC5D2hB,cAAAA,OAAO,EAAPA,OAAO;AACP/d,cAAAA,QAAQ,EAAAL,qBAAA,CAAEf,KAAI,EAAAN,SAAA,CAAU;AACxB0Q,cAAAA,MAAM,EAAArP,qBAAA,CAAEf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CAAkBf,KAAI,EAAA+b,YAAA,CAAA;AACpC,aAAC,CAAC;AAEFzb,YAAAA,qBAAA,CAAAN,KAAI,EAAAic,YAAA,EAAgB,EAAE,CAAA;AAACjZ,YAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA;AAErB3C,YAAAA,qBAAA,CAAAN,KAAI,EAAA8b,cAAA,EAAkB,IAAI1c,aAAa,CAAA2B,qBAAA,CAACf,KAAI,EAAA+b,YAAA,CAAA,EAAeoD,OAAO,CAAC,CAAA;AAACnc,YAAAA,QAAA,CAAAE,IAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA,KAAA,EAAA;AAAAF,YAAAA,QAAA,CAAAC,IAAA,GAAA,EAAA;YAAAD,QAAA,CAAAQ,EAAA,GAAAR,QAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA;YAEpEjC,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASS,KAAK,CAChB,qDAAqD,EAAA6C,qBAAA,CACrDf,KAAI,EAAA+d,eAAA,EAAAld,IAAA,CAAJb,KAAI,EAAAgD,QAAA,CAAAQ,EAAA,CAAA,EACJ;AAAE2b,cAAAA,OAAO,EAAPA,OAAO;AAAE/d,cAAAA,QAAQ,EAAAL,qBAAA,CAAEf,KAAI,EAAAN,SAAA;AAAW,aAAC,CACtC;AAEDqB,YAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;cACnBva,MAAM,EAAEwB,sBAAsB,CAACQ,IAAI;cACnCzI,KAAK,EAAEiJ,qBAAqB,CAACS;AAC/B,aAAC,CAAC;YAAC,OAAA5E,QAAA,CAAAG,MAAA,CAAA,QAAA,CAAA;AAAA,UAAA,KAAA,EAAA;YAKLpC,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,yCAAyC,EAAE;AAC3DwE,cAAAA,KAAK,EAAEjB,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,EAAgB9Z,KAAK;AAChCZ,cAAAA,QAAQ,EAAEL,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,EAAgB1a,QAAQ;AACtCue,cAAAA,kBAAkB,EAAE5e,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,EAAgB6D,kBAAkB;AAC1Dte,cAAAA,kBAAkB,EAAEN,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,CAAgBza;AAC1C,aAAC,CAAC;AAEFN,YAAAA,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,CAAgBxa,eAAe,GAAAP,qBAAA,CAAGf,KAAI,EAAA4d,kBAAA,CAAmB;AAC7D7c,YAAAA,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,CAAgB8D,OAAO,GAAA7e,qBAAA,CAAGf,KAAI,EAAA2d,iBAAA,CAAkB;AACpD5c,YAAAA,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,CAAgB+D,MAAM,GAAA9e,qBAAA,CAAGf,KAAI,EAAA6d,gBAAA,CAAiB;YAClD9c,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,EAAgBva,OAAO,GAAG,UAAAC,KAAK,EAAI;AAAA,cAAA,IAAA4V,sBAAA;cACrCrW,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASS,KAAK,CAChB,6BAA6B,EAAA6C,qBAAA,CAC7Bf,KAAI,EAAA+d,eAAA,CAAA,CAAAld,IAAA,CAAJb,KAAI,EAAiBwB,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEtD,KAAK,CAAA,EACjC;AACE8D,gBAAAA,KAAK,EAAA,CAAAoV,sBAAA,GAAArW,qBAAA,CAAEf,KAAI,EAAA8b,cAAA,CAAA,MAAA,IAAA,IAAA1E,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,sBAAA,CAAqBpV,KAAK;AACjC8d,gBAAAA,UAAU,EAAE/e,qBAAA,CAAAf,KAAI,EAAAic,YAAA,EAAcre,MAAM;AACpCwS,gBAAAA,MAAM,EAAArP,qBAAA,CAAEf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CAAkBf,KAAI,EAAA+b,YAAA,CAAA;AACpC,eAAC,CACF;AAEDhb,cAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;gBACnBva,MAAM,EAAEwB,sBAAsB,CAACQ,IAAI;gBACnCzI,KAAK,EAAEiJ,qBAAqB,CAACS;AAC/B,eAAC,CAAC;YACJ,CAAC;AACD,YAAA,IAAA7G,qBAAA,CAAIf,KAAI,EAAAgd,cAAA,CAAA,EAAiB;AACvBjc,cAAAA,qBAAA,CAAAf,KAAI,EAAAme,eAAA,CAAA,CAAAtd,IAAA,CAAJb,KAAI,CAAA;AACN,YAAA,CAAC,MAAM;AACL;AACA;AACA;cACAe,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACU,cAAc,CAAA;AACxD5H,cAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;AACnB7D,gBAAAA,iBAAiB,EAAE,CAAC;gBACpB1W,MAAM,EAAEwB,sBAAsB,CAACY;AACjC,eAAC,CAAC;AACFhG,cAAAA,qBAAA,CAAAf,KAAI,EAAAke,mBAAA,CAAA,CAAArd,IAAA,CAAJb,KAAI,CAAA;AACN,YAAA;AAAC,UAAA,KAAA,EAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAgD,QAAA,CAAArB,IAAA,EAAA;AAAA;AAAA,MAAA,CAAA,EAAAc,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA;IAAA,CACF,CAAA,CAAA,CAAA;AAAApC,IAAAA,eAAA,wBAEe,YAAM;AAAA,MAAA,IAAAkX,sBAAA;AACpB,MAAA,IAAIxW,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,KAAoB/P,SAAS,EAAE;AACrChL,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CACf,iEAAiE,EAAAuD,qBAAA,CACjEf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AACD;AACN;AACA;AACMe,QAAAA,qBAAA,CAAAf,KAAI,EAAAqd,eAAA,CAAA,CAAAxc,IAAA,CAAJb,KAAI,CAAA;AAEJ,QAAA;AACF,MAAA;AAEA,MAAA,IAAI,EAAAuX,sBAAA,GAAAxW,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,MAAA,IAAA,IAAAvE,sBAAA,uBAAJA,sBAAA,CAAqBvV,KAAK,MAAK,UAAU,EAAE;AAC7CjB,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CACf,+EAA+E,EAAAuD,qBAAA,CAC/Ef,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AACD;AACA;AACA;AACAA,QAAAA,KAAI,CAAC+f,cAAc,CAAC9X,qBAAqB,CAACE,MAAM,CAAC;AAEjD6X,QAAAA,YAAY,CAAAjf,qBAAA,CAACf,KAAI,EAAA8c,wBAAA,CAAA,CAA0B;AAC3CmD,QAAAA,aAAa,CAAAlf,qBAAA,CAACf,KAAI,EAAAoc,iBAAA,CAAA,CAAmB;AAErCrb,QAAAA,qBAAA,CAAAf,KAAI,EAAAqd,eAAA,CAAA,CAAAxc,IAAA,CAAJb,KAAI,CAAA;QAEJe,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACK,wBAAwB,CAAA;AAElE,QAAA;AACF,MAAA;AAEAvH,MAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CACf,2BAA2B,EAAAuD,qBAAA,CAC3Bf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AACDe,MAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;QAAEva,MAAM,EAAEwB,sBAAsB,CAACa;AAAS,OAAC,CAAC;AACjEjG,MAAAA,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,CAAgBna,IAAI,EAAE;AAC1BZ,MAAAA,qBAAA,CAAAf,KAAI,EAAAqd,eAAA,CAAA,CAAAxc,IAAA,CAAJb,KAAI,CAAA;AAEJe,MAAAA,qBAAA,CAAAf,KAAI,EAAAqe,UAAA,CAAA,CAAAxd,IAAA,CAAJb,KAAI,CAAA;IACN,CAAC,CAAA;AAAAK,IAAAA,eAAA,wBAMe,YAAM;AACpB,MAAA,IAAI,CAAAU,qBAAA,CAACf,KAAI,EAAAoc,iBAAA,CAAkB,EAAE;AAC3Brb,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASa,IAAI,CACf,gDAAgD,EAAAyC,qBAAA,CAChDf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AAED,QAAA;AACF,MAAA;AAEAe,MAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CAAC,eAAe,EAAAuD,qBAAA,CAAEf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CAA2B;AAElEigB,MAAAA,aAAa,CAAAlf,qBAAA,CAACf,KAAI,EAAAoc,iBAAA,CAAA,CAAmB;AACrC9b,MAAAA,qBAAA,CAAAN,KAAI,EAAAoc,iBAAA,EAAqB,IAAI,CAAA;AAE7Brb,MAAAA,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,EAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACS,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;MAC1D3H,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACW,eAAe,CAAA;AACzD;AACA;AACA;MACA7H,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACU,cAAc,CAAA;AAExD5H,MAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;AACnB7D,QAAAA,iBAAiB,EAAE,CAAC;QACpB1W,MAAM,EAAEwB,sBAAsB,CAACY;AACjC,OAAC,CAAC;AAEFhG,MAAAA,qBAAA,CAAAf,KAAI,EAAAke,mBAAA,CAAA,CAAArd,IAAA,CAAJb,KAAI,CAAA;IACN,CAAC,CAAA;AAAAK,IAAAA,eAAA,yBAEgB,YAAM;AAAA,MAAA,IAAAsX,sBAAA;AACrB,MAAA,IAAI,EAAAA,sBAAA,GAAA5W,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,MAAA,IAAA,IAAAnE,sBAAA,uBAAJA,sBAAA,CAAqB3V,KAAK,MAAK,WAAW,EAAE;AAC9CjB,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CAAC,gBAAgB,EAAAuD,qBAAA,CAAEf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CAA2B;AACnEe,QAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;UAAEva,MAAM,EAAEwB,sBAAsB,CAACe;AAAO,SAAC,CAAC;AAC/DnG,QAAAA,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,CAAgB7Z,KAAK,EAAE;QAC3BuD,kBAAkB,EAAE,CAACvD,KAAK,EAAE;AAC9B,MAAA,CAAC,MAAM;AACLlB,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASa,IAAI,CACf,4DAA4D,EAAAyC,qBAAA,CAC5Df,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AACH,MAAA;AAEAe,MAAAA,qBAAA,CAAAf,KAAI,EAAAqe,UAAA,CAAA,CAAAxd,IAAA,CAAJb,KAAI,CAAA;IACN,CAAC,CAAA;AAAAK,IAAAA,eAAA,0BAEiB,YAAM;AAAA,MAAA,IAAAkY,sBAAA;AACtB,MAAA,IAAI,EAAAA,sBAAA,GAAAxX,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,MAAA,IAAA,IAAAvD,sBAAA,uBAAJA,sBAAA,CAAqBvW,KAAK,MAAK,QAAQ,EAAE;AAC3CjB,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CAAC,iBAAiB,EAAAuD,qBAAA,CAAEf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CAA2B;AACpEe,QAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;UAAEva,MAAM,EAAEwB,sBAAsB,CAACY;AAAU,SAAC,CAAC;AAClEhG,QAAAA,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,CAAgB3Z,MAAM,EAAE;QAC5BqD,kBAAkB,EAAE,CAACrD,MAAM,EAAE;AAC/B,MAAA,CAAC,MAAM;AACLpB,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASa,IAAI,CACf,iDAAiD,EAAAyC,qBAAA,CACjDf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AACH,MAAA;AAEAe,MAAAA,qBAAA,CAAAf,KAAI,EAAAoe,WAAA,CAAA,CAAAvd,IAAA,CAAJb,KAAI,CAAA;IACN,CAAC,CAAA;AAAAK,IAAAA,eAAA,2BAEkB,YAAM;AAAA,MAAA,IAAAsY,sBAAA;AACvB,MAAA,IAAI,EAAAA,sBAAA,GAAA5X,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,MAAA,IAAA,IAAAnD,sBAAA,uBAAJA,sBAAA,CAAqB3W,KAAK,MAAK,UAAU,EAAE;AAC7CjB,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CACf,wDAAwD,EAAAuD,qBAAA,CACxDf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AAED,QAAA;AACF,MAAA;AAEAe,MAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CAAC,kBAAkB,EAAAuD,qBAAA,CAAEf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CAA2B;AACrEe,MAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;QAAEva,MAAM,EAAEwB,sBAAsB,CAACa;AAAS,OAAC,CAAC;AACjEhH,MAAAA,KAAI,CAACkgB,yBAAyB,CAACjY,qBAAqB,CAACE,MAAM,CAAC;AAC5DpH,MAAAA,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,CAAgBna,IAAI,EAAE;AAC1BZ,MAAAA,qBAAA,CAAAf,KAAI,EAAAqd,eAAA,CAAA,CAAAxc,IAAA,CAAJb,KAAI,CAAA;AAEJigB,MAAAA,aAAa,CAAAlf,qBAAA,CAACf,KAAI,EAAAmc,QAAA,CAAA,CAAU;AAC5Bpb,MAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,EAAQkD,QAAQ,CAACK,IAAI,CAAC,CAAC,aAAa,CAAC,EAAEC,YAAiB,CAAC,CAAC;AAC9Dlf,MAAAA,qBAAA,CAAAN,KAAI,EAAAic,YAAA,EAAgB,EAAE,CAAA;MAEtBlb,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACG,SAAS,CAAA;IACrD,CAAC,CAAA;AAAA/H,IAAAA,eAAA,2BAEkB,YAAM;AACvBU,MAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CAAC,kBAAkB,EAAAuD,qBAAA,CAAEf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CAA2B;AACrEe,MAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;QAAEva,MAAM,EAAEwB,sBAAsB,CAACa;AAAS,OAAC,CAAC;AACjEhH,MAAAA,KAAI,CAACkgB,yBAAyB,CAACjY,qBAAqB,CAACE,MAAM,CAAC;AAC5DpH,MAAAA,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,CAAgBna,IAAI,EAAE;AAE1Bse,MAAAA,aAAa,CAAAlf,qBAAA,CAACf,KAAI,EAAAmc,QAAA,CAAA,CAAU;AAC5Bpb,MAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAClBK,IAAI,CAAC,CAAC,aAAa,EAAE,mBAAmB,CAAC,EAAEC,YAAiB,CAAC,CAC9D;AACDlf,MAAAA,qBAAA,CAAAN,KAAI,EAAAic,YAAA,EAAgB,EAAE,CAAA;MAEtBlb,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACM,SAAS,CAAA;MAEnDvI,KAAI,CAACmgB,cAAc,EAAE;IACvB,CAAC,CAAA;AAAA9f,IAAAA,eAAA,qBAEY,YAAM;AACjBU,MAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CAAC,YAAY,EAAAuD,qBAAA,CAAEf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CAA2B;AAC/DM,MAAAA,qBAAA,CAAAN,KAAI,EAAAic,YAAA,EAAgB,EAAE,CAAA;AACtB3b,MAAAA,qBAAA,CAAAN,KAAI,EAAA8R,UAAA,EAAc,EAAE,CAAA;AACpBxR,MAAAA,qBAAA,CAAAN,KAAI,EAAAkd,cAAA,EAAkB,KAAK,CAAA;AAC3B+C,MAAAA,aAAa,CAAAlf,qBAAA,CAACf,KAAI,EAAAmc,QAAA,CAAA,CAAU;AAC5B8D,MAAAA,aAAa,CAAAlf,qBAAA,CAACf,KAAI,EAAAoc,iBAAA,CAAA,CAAmB;MACrCrb,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,EAAQoE,QAAQ,EAAE,CAAC1E,UAAU,EAAE;AACnC3a,MAAAA,qBAAA,CAAAf,KAAI,EAAAyd,mBAAA,CAAA,CAAA5c,IAAA,CAAJb,KAAI,CAAA;IACN,CAAC,CAAA;AAAAK,IAAAA,eAAA,4BAEmB,YAAM;AACxBU,MAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CAAC,mBAAmB,EAAAuD,qBAAA,CAAEf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CAA2B;AACtE,MAAA,IAAI,CAAAe,qBAAA,CAACf,KAAI,EAAA8b,cAAA,CAAe,EAAE;AAE1B/a,MAAAA,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,CAAgB+D,MAAM,GAAG,IAAI;AACjC9e,MAAAA,qBAAA,CAAAf,KAAI,EAAAqd,eAAA,CAAA,CAAAxc,IAAA,CAAJb,KAAI,CAAA;IACN,CAAC,CAAA;AAAAE,IAAAA,0BAAA,OAAAkd,wBAAA,EAAA;MAAAjd,QAAA,EAAA,IAAA;MAAAC,KAAA,EAW0B,SAAAA,KAAAA,GAAM;QAAA,IAAAigB,sBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA;AAC/B,QAAA,IAAAvU,KAAA,GAAA,CAAAmU,sBAAA,GAAA,CAAAC,uBAAA,GAAAvf,qBAAA,CAAmBf,KAAI,EAAA2c,eAAA,CAAA,MAAA,IAAA,IAAA2D,uBAAA,wBAAAC,uBAAA,GAAJD,uBAAA,CAAsB1f,cAAc,MAAA,IAAA,IAAA2f,uBAAA,KAAA,MAAA,GAAA,MAAA,GAApCA,uBAAA,CAAA1f,IAAA,CAAAyf,uBAAA,CAAwC,MAAA,IAAA,IAAAD,sBAAA,KAAA,MAAA,GAAAA,sBAAA,GAAI,EAAE;UAAA1F,KAAA,GAAA+F,cAAA,CAAAxU,KAAA,EAAA,CAAA,CAAA;AAA1DyU,UAAAA,QAAQ,GAAAhG,KAAA,CAAA,CAAA,CAAA;QACf,IAAMiG,OAAO,GACXrd,OAAO,CAACod,QAAQ,CAAC,IACjBA,QAAQ,CAAC1R,UAAU,KAAK,OAAO,IAC/B,CAAC0R,QAAQ,CAACE,KAAK,IACfF,QAAQ,CAACG,OAAO;QAElB,IAAMC,cAAc,GAAGlS,UAAU,CAAA,CAAA2R,uBAAA,GAAA,CAAAC,uBAAA,GAAA1f,qBAAA,CAACf,KAAI,EAAAyc,OAAA,eAAAgE,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,uBAAA,CAAc7f,cAAc,EAAE,MAAA,IAAA,IAAA4f,uBAAA,KAAA,MAAA,GAAAA,uBAAA,GAAI,EAAE,CAAC;AAEvE,QAAA,IAAI,CAACI,OAAO,IAAI,CAACG,cAAc,EAAE;UAC/BhgB,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,sDAAsD,CAAC;AAEzE,UAAA,OAAO,KAAK;AACd,QAAA;AAEA,QAAA,OAAO,IAAI;AACb,MAAA;AAAC,KAAA,CAAA;AAAA0C,IAAAA,0BAAA,OAAAmd,eAAA,EAAA;MAAAld,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEiB,SAAAA,KAAAA,GAAM;QAAA,IAAA4gB,uBAAA,EAAAC,uBAAA;QACtBzb,kBAAkB,EAAE,CAAC7D,IAAI,EAAE;QAE3BZ,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,gBAAgB,EAAE;AAClC+C,UAAAA,WAAW,EAAAQ,qBAAA,CAAEf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CAAkBf,KAAI,EAAA+b,YAAA,CAAA,CAAc;AACrD3L,UAAAA,MAAM,EAAArP,qBAAA,CAAEf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CAAkBf,KAAI,EAAAyc,OAAA,CAAA,CAAS;AAC3C9M,UAAAA,WAAW,EAAA5O,qBAAA,CAAEf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CAAkBf,KAAI,EAAA0c,YAAA,CAAA,CAAc;AACrDwE,UAAAA,cAAc,EAAAngB,qBAAA,CAAEf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CAAkBf,KAAI,EAAA2c,eAAA,CAAA;AAC5C,SAAC,CAAC;QAEF5b,qBAAA,CAAAf,KAAI,EAAA+b,YAAA,OAAAiF,uBAAA,GAAAjgB,qBAAA,CACFf,KAAI,EAAA+b,YAAA,CAAA,MAAA,IAAA,IAAAiF,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,uBAAA,CAAmB9R,SAAS,EAAE,CAAC9M,OAAO,CAAC,UAAAnB,KAAK,EAAA;UAAA,OAAIA,KAAK,CAACU,IAAI,EAAE;QAAA,CAAA,CAAC,CAAA;AAC/D,QAAA,CAAAsf,uBAAA,GAAAlgB,qBAAA,CAAAf,KAAI,EAAAyc,OAAA,CAAA,MAAA,IAAA,IAAAwE,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,uBAAA,CAAc/R,SAAS,EAAE,CAAC9M,OAAO,CAAC,UAAAnB,KAAK,EAAA;UAAA,OAAIA,KAAK,CAACU,IAAI,EAAE;QAAA,CAAA,CAAC;AACxDZ,QAAAA,qBAAA,CAAAf,KAAI,EAAAud,aAAA,CAAA,CAAA1c,IAAA,CAAJb,KAAI,CAAA;AACN,MAAA;AAAC,KAAA,CAAA;AAAAE,IAAAA,0BAAA,OAAAod,mBAAA,EAAA;MAAAnd,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEqB,SAAAA,KAAAA,GAAM;AAC1B,QAAA,IAAMsP,YAAY,GAAG,IAAIyR,YAAY,EAAE;QACvCpgB,qBAAA,CAAAf,KAAI,EAAA4c,cAAA,EAAgBnJ,IAAI,CAAC/D,YAAY,CAAC;AAEtC,QAAA,OAAOA,YAAY;AACrB,MAAA;AAAC,KAAA,CAAA;AAAAxP,IAAAA,0BAAA,OAAAqd,aAAA,EAAA;MAAApd,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEe,SAAAA,KAAAA,GAAM;AAAA,QAAA,IAAAghB,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA,EAAAC,uBAAA;QACpB,CAAAH,uBAAA,GAAArgB,qBAAA,CAAAf,KAAI,EAAA0c,YAAA,CAAA,MAAA,IAAA,IAAA0E,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAA,CAAAC,uBAAA,GAAJD,uBAAA,CAAmBxgB,cAAc,EAAE,MAAA,IAAA,IAAAygB,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAnCA,uBAAA,CAAqCjf,OAAO,CAAC,UAAAnB,KAAK,EAAA;UAAA,OAAIA,KAAK,CAACU,IAAI,EAAE;QAAA,CAAA,CAAC;QACnE,CAAA2f,uBAAA,GAAAvgB,qBAAA,CAAAf,KAAI,EAAA2c,eAAA,CAAA,MAAA,IAAA,IAAA2E,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAA,CAAAC,uBAAA,GAAJD,uBAAA,CAAsB1gB,cAAc,EAAE,MAAA,IAAA,IAAA2gB,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAtCA,uBAAA,CAAwCnf,OAAO,CAAC,UAAAnB,KAAK,EAAA;UAAA,OAAIA,KAAK,CAACU,IAAI,EAAE;QAAA,CAAA,CAAC;QACtEZ,qBAAA,CAAAf,KAAI,EAAA4c,cAAA,EAAgBxa,OAAO,CAAC,UAAAsN,YAAY,EAAI;UAC1C,IAAIA,YAAY,CAAC1N,KAAK,KAAK,QAAQ,EAAE0N,YAAY,CAAC8R,KAAK,EAAE;AAC3D,QAAA,CAAC,CAAC;AACFlhB,QAAAA,qBAAA,CAAAN,KAAI,EAAA4c,cAAA,EAAkB,EAAE,CAAA;AAC1B,MAAA;AAAC,KAAA,CAAA;AAAA1c,IAAAA,0BAAA,OAAAsd,kBAAA,EAAA;MAAArd,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEoB,SAAAA,KAAAA,GAAM;AACzBW,QAAAA,qBAAA,CAAAf,KAAI,EAAAsc,mBAAA,CAAA,CAAqBmF,WAAW,GAAG,CAAC;AACxC1gB,QAAAA,qBAAA,CAAAf,KAAI,EAAAsc,mBAAA,CAAA,CAAqBoF,IAAI,EAAE;AACjC,MAAA;AAAC,KAAA,CAAA;AAAAxhB,IAAAA,0BAAA,OAAAud,mBAAA,EAAA;MAAAtd,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEqB,SAAAA,KAAAA,GAAM;AAAA,QAAA,IAAAuhB,qBAAA;AAC1B;AACA;AACA;AACA;AACA,QAAA,IAAMC,iBAAiB,GAAGre,OAAO,CAAA,CAAAoe,qBAAA,GAAC1T,SAAS,CAACC,YAAY,cAAAyT,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAtBA,qBAAA,CAAwBE,eAAe,CAAC;QAC1E,IAAM5iB,iBAAiB,GAAGkQ,oBAAoB,EAAE;AAEhD,QAAA,IAAI,CAACyS,iBAAiB,IAAI,CAAC3iB,iBAAiB,EAAE;AAC5C8B,UAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASS,KAAK,CAChB,2DAA2D,EAC3D0jB,iBAAiB,EACjB,oBAAoB,EACpB3iB,iBAAiB,EACjB,kBAAkB,EAClBsE,OAAO,CAAC0K,SAAS,CAACC,YAAY,CAAC,EAC/B,mBAAmB,EACnB,OAAO9O,aAAa,KAAK,WAAW,CACrC;AACD2B,UAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;YAAEhhB,KAAK,EAAEiJ,qBAAqB,CAACU;AAAmB,WAAC,CAAC;AAC3E,QAAA;AAEA2G,QAAAA,gBAAgB,CAAAzN,qBAAA,CAACf,KAAI,EAAA2b,MAAA,CAAA,EAAA5a,qBAAA,CAASf,KAAI,EAAA4b,MAAA,CAAA,CAAQ;AAC5C,MAAA;AAAC,KAAA,CAAA;AAAA1b,IAAAA,0BAAA,OAAAwd,mBAAA,EAAA;MAAAvd,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA,YAAA;QAAA,IAAAiC,MAAA,GAAAC,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAEqB,SAAAmB,QAAAA,GAAA;AAAA,UAAA,IAAAme,gBAAA,EAAAC,QAAA,EAAA3R,MAAA,EAAA4R,gBAAA,EAAAC,WAAA,EAAAC,qBAAA,EAAAC,WAAA,EAAAC,YAAA,EAAAzS,WAAA,EAAA0S,UAAA,EAAAC,gBAAA,EAAA5S,YAAA,EAAAG,iBAAA,EAAAE,iBAAA,EAAAwS,mBAAA,EAAAC,WAAA,EAAAC,aAAA,EAAAC,YAAA,EAAAC,eAAA,EAAAC,aAAA;AAAA,UAAA,OAAArgB,mBAAA,CAAAO,IAAA,CAAA,SAAAkB,UAAAC,SAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhB,IAAA,GAAAgB,SAAA,CAAAf,IAAA;AAAA,cAAA,KAAA,CAAA;AACd4e,gBAAAA,gBAAgB,GAAGlN,IAAI,CAACzQ,GAAG,EAAE;gBACnCpD,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,6BAA6B,EAAE;kBAC/C8hB,sBAAsB,EAAE/b,OAAO,CAAAxC,qBAAA,CAACf,KAAI,EAAA6b,YAAA,CAAA,CAAc;kBAClDhZ,KAAK,EAAEU,OAAO,CAAAxC,qBAAA,CAACf,KAAI,EAAA2b,MAAA,CAAA,CAAQ;AAC3ByD,kBAAAA,iBAAiB,EAAAre,qBAAA,CAAEf,KAAI,EAAAmd,kBAAA,CAAmB;AAC1CkC,kBAAAA,uBAAuB,EAAAte,qBAAA,CAAEf,KAAI,EAAA+c,wBAAA;AAC/B,iBAAC,CAAC;AACFhc,gBAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;kBAAEva,MAAM,EAAEwB,sBAAsB,CAACS;AAAgB,iBAAC,CAAC;AAAC,gBAAA,IAAA,EAErE7F,qBAAA,CAAAf,KAAI,EAAA2b,MAAA,CAAA,IAAW,CAAA5a,qBAAA,CAACf,KAAI,EAAA6b,YAAA,CAAa,CAAA,EAAA;AAAA5X,kBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,kBAAA;AAAA,gBAAA;AAAAe,gBAAAA,SAAA,CAAAf,IAAA,GAAA,CAAA;gBAAA,OAAAnC,qBAAA,CACZf,KAAI,EAAA8d,wBAAA,CAAA,CAAAjd,IAAA,CAAJb,KAAI,CAAA;AAAA,cAAA,KAAA,CAAA;gBAArB+hB,QAAQ,GAAA9d,SAAA,CAAAG,IAAA;gBAAA,IAAA,EACV2d,QAAQ,KAAK,QAAQ,CAAA,EAAA;AAAA9d,kBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,kBAAA;AAAA,gBAAA;gBACvBnC,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASa,IAAI,CACf,qEAAqE,EACrE;AAAEyjB,kBAAAA,QAAQ,EAARA;AAAS,iBAAC,CACb;AAEDhhB,gBAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;kBACnBhhB,KAAK,EAAEiJ,qBAAqB,CAACC,mBAAmB;kBAChDzC,MAAM,EAAEwB,sBAAsB,CAACQ;AACjC,iBAAC,CAAC;gBAAC,OAAA1C,SAAA,CAAAd,MAAA,CAAA,QAAA,CAAA;AAAA,cAAA,KAAA,EAAA;AAOH6e,gBAAAA,gBAAgB,GAAG,KAAK;AAAA/d,gBAAAA,SAAA,CAAAhB,IAAA,GAAA,EAAA;AAAA,gBAAA,IAAA,CAAAlC,qBAAA,CAGtBf,KAAI,EAAA6b,YAAA,CAAA,EAAA;AAAA5X,kBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,kBAAA;AAAA,gBAAA;gBACNnC,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CACf,kDAAkD,EAAAuD,qBAAA,CAClDf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CAAkBf,KAAI,EAAA6b,YAAA,CAAA,CAAA,CAC3B;AACDzL,gBAAAA,MAAM,GAAArP,qBAAA,CAAGf,KAAI,EAAA6b,YAAA,CAAa;AAAC5X,gBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA,cAAA,KAAA,EAAA;AAErB+e,gBAAAA,WAAW,GAAG;AAClBzD,kBAAAA,KAAK,EAAAzd,qBAAA,CAAEf,KAAI,EAAA4b,MAAA,CAAO;AAClB/Y,kBAAAA,KAAK,EAAA9B,qBAAA,CAAEf,KAAI,EAAAmd,kBAAA;iBACZ;gBAEDpc,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CACf,mDAAmD,EACnDykB,WAAW,CACZ;AAEKC,gBAAAA,qBAAqB,GAAGtN,IAAI,CAACzQ,GAAG,EAAE;AAAAF,gBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;gBAAA,OACzB2f,MAAM,CAAC5U,SAAS,CAACC,YAAY,CAAC2T,eAAe,CAC1DI,WAAW,CACZ;AAAA,cAAA,KAAA,EAAA;gBAFD7R,MAAM,GAAAnM,SAAA,CAAAG,IAAA;gBAINrD,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,gDAAgD,EAAE;AAClEwZ,kBAAAA,UAAU,EAAEpC,IAAI,CAACzQ,GAAG,EAAE,GAAG+d,qBAAqB;kBAC9C9R,MAAM,EAAArP,qBAAA,CAAEf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAkBoQ,MAAM;AACtC,iBAAC,CAAC;gBACFrP,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACY,eAAe,CAAA;AAAE,cAAA,KAAA,EAAA;AAAA,gBAAA,IAAA,CAAA9H,qBAAA,CAGzDf,KAAI,EAAA2b,MAAA,CAAA,EAAA;AAAA1X,kBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,kBAAA;AAAA,gBAAA;AAAAe,gBAAAA,SAAA,CAAAhB,IAAA,GAAA,EAAA;AAEEkf,gBAAAA,WAAW,GAAG;kBAClBtf,KAAK,EAAA0T,aAAA,CAAAA,aAAA,CAAA;AACHuM,oBAAAA,gBAAgB,EAAE;AAAK,mBAAA,EAAA/hB,qBAAA,CACpBf,KAAI,EAAA2b,MAAA,CAAA,CAAA,EACH5a,qBAAA,CAAAf,KAAI,EAAA2b,MAAA,CAAA,CAAQoH,QAAQ,IAAI;AAC1BA,oBAAAA,QAAQ,EAAE;AAAEC,sBAAAA,KAAK,EAAEjiB,qBAAA,CAAAf,KAAI,EAAA2b,MAAA,CAAA,CAAQoH;AAAS;mBACzC;iBAEJ;gBAEDhiB,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CACf,gDAAgD,EAChD2kB,WAAW,CACZ;AACKC,gBAAAA,YAAY,GAAGxN,IAAI,CAACzQ,GAAG,EAAE;gBAAAF,SAAA,CAAAT,EAAA,GAAAlD,qBAAA;gBAAA2D,SAAA,CAAAiT,EAAA,GAC/BlX,KAAI;gBAAAiE,SAAA,CAAAgf,EAAA,GAAAtG,eAAA;AAAA1Y,gBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;gBAAA,OACI2f,MAAM,CAAC5U,SAAS,CAACC,YAAY,CAACgV,YAAY,CAACf,WAAW,CAAC;AAAA,cAAA,KAAA,EAAA;AAAAle,gBAAAA,SAAA,CAAAkf,EAAA,GAAAlf,SAAA,CAAAG,IAAA;AAAA,gBAAA,IAAAH,SAAA,CAAAT,EAAA,EAAAS,SAAA,CAAAiT,EAAA,EAAAjT,SAAA,CAAAgf,EAAA,EAAAhf,SAAA,CAAAkf,EAAA,CAAA;gBAE/DpiB,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,oCAAoC,EAAE;AACtDwZ,kBAAAA,UAAU,EAAEpC,IAAI,CAACzQ,GAAG,EAAE,GAAGie,YAAY;AACrChS,kBAAAA,MAAM,EAAArP,qBAAA,CAAEf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CAAkBf,KAAI,EAAA2c,eAAA,CAAA;AACpC,iBAAC,CAAC;gBAEIhN,WAAW,GAAGF,WAAW,CAAA1O,qBAAA,CAC7Bf,KAAI,EAAAsd,mBAAA,CAAA,CAAAzc,IAAA,CAAJb,KAAI,CAAA,EAAAe,qBAAA,CACJf,KAAI,EAAA2c,eAAA,CAAA,EACJ,IAAI,CACL,CAAA;AACDrc,gBAAAA,qBAAA,CAAAN,KAAI,EAAA0c,YAAA,EAAgB/M,WAAW,CAAA;AAAC,gBAAA,IAAA,CAAA5O,qBAAA,CAE5Bf,KAAI,EAAA+c,wBAAA,CAAA,EAAA;AAAA9Y,kBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,kBAAA;AAAA,gBAAA;AAAAe,gBAAAA,SAAA,CAAAhB,IAAA,GAAA,EAAA;AAEEof,gBAAAA,UAAU,GAAG7Y,YAAY,GAC3BD,MAAM,CAAC6Z,OAAO,CAACC,MAAM,CAAC,kCAAkC,CAAC,GACzD,2BAA2B;gBAE/BtiB,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CACf,wDAAwD,EACxD;AAAE6kB,kBAAAA,UAAU,EAAVA;AAAW,iBAAC,CACf;AAEKC,gBAAAA,gBAAgB,GAAG1N,IAAI,CAACzQ,GAAG,EAAE;gBAC7BuL,YAAY,GAAA3O,qBAAA,CAAGf,KAAI,EAAAsd,mBAAA,CAAA,CAAAzc,IAAA,CAAJb,KAAI,CAAA;AAAAiE,gBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,gBAAA,OACnBwM,YAAY,CAAC4T,YAAY,CAACC,SAAS,CAAClB,UAAU,CAAC;AAAA,cAAA,KAAA,EAAA;AAE/CxS,gBAAAA,iBAAiB,GACrBH,YAAY,CAACI,uBAAuB,CAACH,WAAW,CAAC;AAE7CI,gBAAAA,iBAAiB,GACrBL,YAAY,CAACM,4BAA4B,EAAE;AAEvCuS,gBAAAA,mBAAmB,GAAG,IAAIiB,gBAAgB,CAC9C9T,YAAY,EACZ,yBAAyB,CAC1B;AAEDG,gBAAAA,iBAAiB,CAACM,OAAO,CAACoS,mBAAmB,CAAC;AAC9CA,gBAAAA,mBAAmB,CAACpS,OAAO,CAACJ,iBAAiB,CAAC;AAE9CzP,gBAAAA,qBAAA,CAAAN,KAAI,EAAA0c,YAAA,EAAgB3M,iBAAiB,CAACK,MAAM,CAAA;gBAC5CrP,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CACf,iDAAiD,EACjD;AAAEwZ,kBAAAA,UAAU,EAAEpC,IAAI,CAACzQ,GAAG,EAAE,GAAGme;AAAiB,iBAAC,CAC9C;AAACre,gBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA,cAAA,KAAA,EAAA;AAAAe,gBAAAA,SAAA,CAAAhB,IAAA,GAAA,EAAA;gBAAAgB,SAAA,CAAAwf,EAAA,GAAAxf,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA;gBAEFlD,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASS,KAAK,CAChB,oDAAoD,EAAA6C,qBAAA,CACpDf,KAAI,EAAA+d,eAAA,EAAAld,IAAA,CAAJb,KAAI,EAAAiE,SAAA,CAAAwf,EAAA,CAAA,CACL;AAAC,cAAA,KAAA,EAAA;AAAAxf,gBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA,cAAA,KAAA,EAAA;AAAAe,gBAAAA,SAAA,CAAAhB,IAAA,GAAA,EAAA;gBAAAgB,SAAA,CAAAyf,EAAA,GAAAzf,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA;AAIN;AACA;AACA;AACA;AACA;AACA;gBACAlD,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASa,IAAI,CACf,uCAAuC,EAAAyC,qBAAA,CACvCf,KAAI,EAAA+d,eAAA,EAAAld,IAAA,CAAJb,KAAI,EAAAiE,SAAA,CAAAyf,EAAA,CAAA,EACJ;AAAEC,kBAAAA,oBAAoB,EAAA5iB,qBAAA,CAAEf,KAAI,EAAA2b,MAAA;AAAQ,iBAAC,CACtC;AACD,gBAAA,IAAI,CAAA5a,qBAAA,CAACf,KAAI,EAAA6b,YAAA,CAAa,EAAE;AACtBzL,kBAAAA,MAAM,CAAClB,SAAS,EAAE,CAAC9M,OAAO,CAAC,UAAAnB,KAAK,EAAA;oBAAA,OAAIA,KAAK,CAACU,IAAI,EAAE;kBAAA,CAAA,CAAC;AACnD,gBAAA;AAEAZ,gBAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;kBACnBhhB,KAAK,EAAEiJ,qBAAqB,CAACC,mBAAmB;kBAChDzC,MAAM,EAAEwB,sBAAsB,CAACQ;AACjC,iBAAC,CAAC;gBAAC,OAAA1C,SAAA,CAAAd,MAAA,CAAA,QAAA,CAAA;AAAA,cAAA,KAAA,EAAA;AAMP;AACA;AACA;AACA;AACA;gBACAiN,MAAM,CAACwT,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC5W,gBAAgB,CAAC,OAAO,EAAE,YAAM;kBAAA,IAAA6W,uBAAA,EAAAC,uBAAA;kBACzD,IAAMC,uBAAuB,GAAGlV,UAAU,CAAA,CAAAgV,uBAAA,GACxC9iB,qBAAA,CAAAf,KAAI,EAAA8R,UAAA,EAAY7J,qBAAqB,CAACa,eAAe,CAAC,MAAA,IAAA,IAAA+a,uBAAA,KAAA,MAAA,GAAAA,uBAAA,GAAI,EAAE,CAC7D;kBAED9iB,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,0CAA0C,EAAE;AAC5DwmB,oBAAAA,aAAa,EAAA,CAAAF,uBAAA,GAAA/iB,qBAAA,CAAEf,KAAI,EAAA8b,cAAA,CAAA,MAAA,IAAA,IAAAgI,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,uBAAA,CAAqB9hB,KAAK;oBACzC2C,MAAM,EAAE5D,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQoE,QAAQ,EAAE,CAACzb,MAAM;AACrCof,oBAAAA,uBAAuB,EAAvBA,uBAAuB;oBACvB3T,MAAM,EAAArP,qBAAA,CAAEf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAkBoQ,MAAM;AACtC,mBAAC,CAAC;AAEF,kBAAA,IAAI2T,uBAAuB,EAAE;oBAC3BhjB,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACa,eAAe,CAAA;AAEzD,oBAAA;AACF,kBAAA;kBAEA9I,KAAI,CAACikB,aAAa,EAAE;AACtB,gBAAA,CAAC,CAAC;gBAEIzB,WAAW,GAAG,IAAIrhB,WAAW,EAAE;AAErC,gBAAA,IAAIJ,qBAAA,CAAAf,KAAI,EAAA2b,MAAA,CAAA,IAAA5a,qBAAA,CAAWf,KAAI,EAAA0c,YAAA,CAAa,EAAE;AACpC,kBAAA,IAAI7N,UAAU,CAACuB,MAAM,CAACxP,cAAc,EAAE,CAAC,EAAE;oBACvCG,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,iDAAiD,CAAC;oBAC9DkS,aAAY,GAAA3O,qBAAA,CAAGf,KAAI,EAAAsd,mBAAA,CAAA,CAAAzc,IAAA,CAAJb,KAAI,CAAA;AAEnB0iB,oBAAAA,YAAY,GAAGhT,aAAY,CAACI,uBAAuB,CAACM,MAAM,CAAC;oBAC3DuS,eAAe,GAAGjT,aAAY,CAACI,uBAAuB,CAAA/O,qBAAA,CAC1Df,KAAI,EAAA0c,YAAA,CAAA,CACL;AAEKkG,oBAAAA,aAAa,GAAGlT,aAAY,CAACM,4BAA4B,EAAE;AAEjE0S,oBAAAA,YAAY,CAACvS,OAAO,CAACyS,aAAa,CAAC;AACnCD,oBAAAA,eAAe,CAACxS,OAAO,CAACyS,aAAa,CAAC;oBAEtCA,aAAa,CAACxS,MAAM,CACjBxP,cAAc,EAAE,CAChBwB,OAAO,CAAC,UAAAnB,KAAK,EAAA;AAAA,sBAAA,OAAIuhB,WAAW,CAAC0B,QAAQ,CAACjjB,KAAK,CAAC;oBAAA,CAAA,CAAC;AAClD,kBAAA,CAAC,MAAM;oBACLF,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CACf,gFAAgF,CACjF;oBAEDuD,qBAAA,CAAAf,KAAI,EAAA0c,YAAA,CAAA,CACD9b,cAAc,EAAE,CAChBwB,OAAO,CAAC,UAAAnB,KAAK,EAAA;AAAA,sBAAA,OAAIuhB,WAAW,CAAC0B,QAAQ,CAACjjB,KAAK,CAAC;oBAAA,CAAA,CAAC;AAClD,kBAAA;AACF,gBAAA,CAAC,MAAM,IAAAF,qBAAA,CAAIf,KAAI,EAAAmd,kBAAA,CAAA,EAAqB;kBAClCpc,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,+CAA+C,CAAC;AAClE4S,kBAAAA,MAAM,CAACxP,cAAc,EAAE,CAACwB,OAAO,CAAC,UAAAnB,KAAK,EAAA;AAAA,oBAAA,OAAIuhB,WAAW,CAAC0B,QAAQ,CAACjjB,KAAK,CAAC;kBAAA,CAAA,CAAC;AACvE,gBAAA,CAAC,MAAM;kBACLF,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,+CAA+C,CAAC;AACpE,gBAAA;AACA4S,gBAAAA,MAAM,CAACwT,cAAc,EAAE,CAACxhB,OAAO,CAAC,UAAAnB,KAAK,EAAA;AAAA,kBAAA,OAAIuhB,WAAW,CAAC0B,QAAQ,CAACjjB,KAAK,CAAC;gBAAA,CAAA,CAAC;AAErEX,gBAAAA,qBAAA,CAAAN,KAAI,EAAA+b,YAAA,EAAgByG,WAAW,CAAA;AAC/BliB,gBAAAA,qBAAA,CAAAN,KAAI,EAAAyc,OAAA,EAAWrM,MAAM,CAAA;AACrB4R,gBAAAA,gBAAgB,GAAG,IAAI;AACvBjhB,gBAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;kBAAEva,MAAM,EAAEwB,sBAAsB,CAACU;AAAe,iBAAC,CAAC;gBACvE9F,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,+BAA+B,EAAE;AACjD2Y,kBAAAA,eAAe,EAAEvB,IAAI,CAACzQ,GAAG,EAAE,GAAG2d,gBAAgB;AAC9CU,kBAAAA,WAAW,EAAAzhB,qBAAA,CAAEf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CAAkBf,KAAI,EAAA+b,YAAA,CAAA;AACzC,iBAAC,CAAC;AAAC9X,gBAAAA,SAAA,CAAAf,IAAA,GAAA,EAAA;AAAA,gBAAA;AAAA,cAAA,KAAA,EAAA;AAAAe,gBAAAA,SAAA,CAAAhB,IAAA,GAAA,EAAA;gBAAAgB,SAAA,CAAAkgB,EAAA,GAAAlgB,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA;gBAEHlD,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASS,KAAK,CAChB,6BAA6B,EAAA6C,qBAAA,CAC7Bf,KAAI,EAAA+d,eAAA,EAAAld,IAAA,CAAJb,KAAI,EAAAiE,SAAA,CAAAkgB,EAAA,CAAA,EACJ;AACEhO,kBAAAA,eAAe,EAAEvB,IAAI,CAACzQ,GAAG,EAAE,GAAG2d,gBAAgB;kBAC9CsC,QAAQ,EAAE7gB,OAAO,CAAAxC,qBAAA,CAACf,KAAI,EAAA2b,MAAA,CAAA,CAAQ;kBAC9B0I,cAAc,EAAE9gB,OAAO,CAAAxC,qBAAA,CAACf,KAAI,EAAA0c,YAAA,CAAA,CAAc;AAC1C+C,kBAAAA,cAAc,EAAElc,OAAO,CAAAxC,qBAAA,CAACf,KAAI,EAAA+b,YAAA,CAAA;AAC9B,iBAAC,CACF;AAED,gBAAA,IAAI5U,qBAAqB,CAAAlD,SAAA,CAAAkgB,EAAA,aAAAlgB,SAAA,CAAAkgB,EAAA,KAAA,MAAA,GAAA,MAAA,GAAClgB,SAAA,CAAAkgB,EAAA,CAAOziB,IAAI,CAAC,EAAE;AACtCX,kBAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;oBACnBhhB,KAAK,EAAEiJ,qBAAqB,CAAClD,SAAA,CAAAkgB,EAAA,CAAMziB,IAAI,CAAC;oBACxCiD,MAAM,EAAEwB,sBAAsB,CAACQ;AACjC,mBAAC,CAAC;AACJ,gBAAA,CAAC,MAAM,IAAI5F,qBAAA,CAAAf,KAAI,EAAA2b,MAAA,CAAA,IAAW,CAAA5a,qBAAA,CAACf,KAAI,EAAA0c,YAAA,CAAa,EAAE;AAC5C3b,kBAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;oBACnBhhB,KAAK,EAAEiJ,qBAAqB,CAACC,mBAAmB;oBAChDzC,MAAM,EAAEwB,sBAAsB,CAACQ;AACjC,mBAAC,CAAC;AACJ,gBAAA,CAAC,MAAM,IAAI,CAAA5F,qBAAA,CAACf,KAAI,EAAA+b,YAAA,CAAa,IAAIhN,aAAa,CAAAhO,qBAAA,CAACf,KAAI,EAAA+b,YAAA,EAAc,EAAE;AACjEhb,kBAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;AACnBhhB,oBAAAA,KAAK,EAAEiJ,qBAAqB,CAAAlD,SAAA,CAAAkgB,EAAA,KAAA,IAAA,IAAAlgB,SAAA,CAAAkgB,EAAA,uBAAClgB,SAAA,CAAAkgB,EAAA,CAAOziB,IAAI,CAAC;oBACzCiD,MAAM,EAAEwB,sBAAsB,CAACQ;AACjC,mBAAC,CAAC;AACJ,gBAAA;;AAEA;AACA;AACA;AACA;AACA;gBACA,IAAI,CAACqb,gBAAgB,EAAE;kBACrB,IAAI5R,MAAM,IAAIA,MAAM,KAAArP,qBAAA,CAAKf,KAAI,EAAA6b,YAAA,CAAa,EAAE;AAC1CzL,oBAAAA,MAAM,CAAClB,SAAS,EAAE,CAAC9M,OAAO,CAAC,UAAAnB,KAAK,EAAA;sBAAA,OAAIA,KAAK,CAACU,IAAI,EAAE;oBAAA,CAAA,CAAC;AACnD,kBAAA;AACAZ,kBAAAA,qBAAA,CAAAf,KAAI,EAAAud,aAAA,CAAA,CAAA1c,IAAA,CAAJb,KAAI,CAAA;AACJM,kBAAAA,qBAAA,CAAAN,KAAI,EAAA0c,YAAA,EAAgB,IAAI,CAAA;AACxBpc,kBAAAA,qBAAA,CAAAN,KAAI,EAAA2c,eAAA,EAAmB,IAAI,CAAA;AAC7B,gBAAA;AAAC,cAAA,KAAA,EAAA;AAAA,cAAA,KAAA,KAAA;gBAAA,OAAA1Y,SAAA,CAAAtC,IAAA,EAAA;AAAA;AAAA,UAAA,CAAA,EAAAgC,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA;QAAA,CAEJ,CAAA,CAAA;AAAA,QAAA,SAAAvD,KAAAA,GAAA;AAAA,UAAA,OAAAiC,MAAA,CAAApE,KAAA,CAAA,IAAA,EAAAN,SAAA,CAAA;AAAA,QAAA;AAAA,QAAA,OAAAyC,KAAA;AAAA,MAAA,CAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAAsS,cAAA,EAAA;MAAArS,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEgB,SAAAA,KAAAA,CAACoB,KAAK,EAAgB;AAAA,QAAA,IAAA8iB,uBAAA;AAAA,QAAA,IAAdzmB,IAAI,GAAAF,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAoO,SAAA,GAAApO,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAChC,QAAA,CAAA2mB,uBAAA,GAAAvjB,qBAAA,CAAAf,KAAI,EAAA8R,UAAA,CAAA,CAAYtQ,KAAK,CAAC,MAAA,IAAA,IAAA8iB,uBAAA,uBAAtBA,uBAAA,CAAwBliB,OAAO,CAAC,UAAA+U,QAAQ,EAAI;AAC1CA,UAAAA,QAAQ,CAAAlZ,KAAA,CAAA,MAAA,EAAAqZ,kBAAA,CAAIzZ,IAAI,CAAA,CAAC;AACnB,QAAA,CAAC,CAAC;AACJ,MAAA;AAAC,KAAA,CAAA;AAAAqC,IAAAA,0BAAA,OAAAyd,iBAAA,EAAA;MAAAxd,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEmB,SAAAA,KAAAA,GAAM;AACxBW,QAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CACf,6BAA6B,EAAAuD,qBAAA,CAC7Bf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;QACDe,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACC,OAAO,CAAA;AACnD,MAAA;AAAC,KAAA,CAAA;AAAAhI,IAAAA,0BAAA,OAAA0d,kBAAA,EAAA;MAAAzd,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEoB,SAAAA,KAAAA,CAAAmkB,KAAA,EAAc;AAAA,QAAA,IAAAC,uBAAA;AAAA,QAAA,IAAXphB,IAAI,GAAAmhB,KAAA,CAAJnhB,IAAI;AAC1B,QAAA,IAAIA,IAAI,CAACC,IAAI,IAAI,CAAC,EAAE;UAClBtC,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASa,IAAI,CAAC,0CAA0C,EAAE;AAC5DwhB,YAAAA,UAAU,EAAE/e,qBAAA,CAAAf,KAAI,EAAAic,YAAA,CAAA,CAAcre;AAChC,WAAC,CAAC;AAEF,UAAA;AACF,QAAA;AACA0C,QAAAA,qBAAA,CAAAN,KAAI,EAAAkd,cAAA,EAAkB,IAAI,CAAA;QAE1Bnc,qBAAA,CAAAf,KAAI,EAAAic,YAAA,EAAcxI,IAAI,CAACrQ,IAAI,CAAC;AAC5B,QAAA,IAAMqhB,UAAU,GAAG1jB,qBAAA,CAAAf,KAAI,EAAAic,YAAA,CAAA,CAAc3K,MAAM,CACzC,UAACC,GAAG,EAAEmT,KAAK,EAAA;AAAA,UAAA,IAAAC,WAAA;AAAA,UAAA,OAAKpT,GAAG,IAAA,CAAAoT,WAAA,GAAID,KAAK,aAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAErhB,IAAI,MAAA,IAAA,IAAAshB,WAAA,cAAAA,WAAA,GAAI,CAAC,CAAC;AAAA,QAAA,CAAA,EACxC,CAAC,CACF;QAED5jB,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,mCAAmC,EAAE;UACrDgW,UAAU,EAAEpQ,IAAI,CAACC,IAAI;UACrBsQ,SAAS,EAAEvQ,IAAI,CAACjE,IAAI;AACpB2gB,UAAAA,UAAU,EAAE/e,qBAAA,CAAAf,KAAI,EAAAic,YAAA,EAAcre,MAAM;AACpC6mB,UAAAA,UAAU,EAAVA,UAAU;AACVT,UAAAA,aAAa,EAAA,CAAAQ,uBAAA,GAAAzjB,qBAAA,CAAEf,KAAI,EAAA8b,cAAA,CAAA,MAAA,IAAA,IAAA0I,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,uBAAA,CAAqBxiB;AACtC,SAAC,CAAC;AACFjB,QAAAA,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,EAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACI,eAAe,EAAE,CAACjF,IAAI,CAAC,CAAA;AACnE,MAAA;AAAC,KAAA,CAAA;AAAAlD,IAAAA,0BAAA,OAAA2d,gBAAA,EAAA;MAAA1d,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEkB,SAAAA,KAAAA,GAAM;QAAA,IAAAwkB,uBAAA,EAAAC,uBAAA;AACvB,QAAA,IAAMJ,UAAU,GAAG1jB,qBAAA,CAAAf,KAAI,EAAAic,YAAA,CAAA,CAAc3K,MAAM,CACzC,UAACC,GAAG,EAAEmT,KAAK,EAAA;AAAA,UAAA,IAAAI,YAAA;AAAA,UAAA,OAAKvT,GAAG,IAAA,CAAAuT,YAAA,GAAIJ,KAAK,aAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAErhB,IAAI,MAAA,IAAA,IAAAyhB,YAAA,cAAAA,YAAA,GAAI,CAAC,CAAC;AAAA,QAAA,CAAA,EACxC,CAAC,CACF;QAED/jB,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,4BAA4B,EAAA+Y,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAAxV,qBAAA,CACzCf,KAAI,EAAAie,uBAAA,CAAA,CAAApd,IAAA,CAAJb,KAAI,CAAA,CAAA,EAAA,EAAA,EAAA;AACPykB,UAAAA,UAAU,EAAVA,UAAU;AACVM,UAAAA,iBAAiB,EAAA,CAAAH,uBAAA,GAAA7jB,qBAAA,CAAEf,KAAI,EAAA+b,YAAA,CAAA,MAAA,IAAA,IAAA6I,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,uBAAA,CAAmBI;SAAM,CAAA,CAC5C;AACFjkB,QAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;UAAEva,MAAM,EAAEwB,sBAAsB,CAACc;AAAQ,SAAC,CAAC;QAChElG,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACE,MAAM,CAAA;;AAEhD;AACA;AACA,QAAA,IAAA,CAAA0c,uBAAA,GAAA9jB,qBAAA,CAAIf,KAAI,EAAA+b,YAAA,CAAA,MAAA,IAAA,IAAA8I,uBAAA,KAAA,MAAA,IAAJA,uBAAA,CAAmBG,MAAM,EAAE;UAC7BjkB,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CACf,0EAA0E,CAC3E;AACDuD,UAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;YAAEva,MAAM,EAAEwB,sBAAsB,CAACW;AAAW,WAAC,CAAC;AACrE,QAAA;AACF,MAAA;AAAC,KAAA,CAAA;AAAA5G,IAAAA,0BAAA,OAAA4d,wBAAA,EAAA;MAAA3d,QAAA,EAAA,IAAA;MAAAC,KAAA,EAAA,YAAA;QAAA,IAAAsD,OAAA,GAAApB,iBAAA,eAAAC,mBAAA,CAAAC,IAAA,CAE0B,SAAAgW,QAAAA,GAAA;AAAA,UAAA,IAAAyM,MAAA;AAAA,UAAA,OAAA1iB,mBAAA,CAAAO,IAAA,CAAA,SAAAoW,UAAAC,SAAA,EAAA;AAAA,YAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAlW,IAAA,GAAAkW,SAAA,CAAAjW,IAAA;AAAA,cAAA,KAAA,CAAA;AAAAiW,gBAAAA,SAAA,CAAAlW,IAAA,GAAA,CAAA;AAAAkW,gBAAAA,SAAA,CAAAjW,IAAA,GAAA,CAAA;AAAA,gBAAA,OAEF2f,MAAM,CAAC5U,SAAS,CAACiX,WAAW,CAACC,KAAK,CAAC;AACtDzjB,kBAAAA,IAAI,EAAE;AACR,iBAAC,CAAC;AAAA,cAAA,KAAA,CAAA;gBAFIujB,MAAM,GAAA9L,SAAA,CAAA/U,IAAA;AAAA,gBAAA,OAAA+U,SAAA,CAAAhW,MAAA,CAAA,QAAA,EAIL8hB,MAAM,CAACjjB,KAAK,CAAA;AAAA,cAAA,KAAA,CAAA;AAAAmX,gBAAAA,SAAA,CAAAlW,IAAA,GAAA,CAAA;gBAAAkW,SAAA,CAAA3V,EAAA,GAAA2V,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAEnB;AACA;gBACApY,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CACf,wCAAwC,EAAAuD,qBAAA,CACxCf,KAAI,EAAA+d,eAAA,EAAAld,IAAA,CAAJb,KAAI,EAAAmZ,SAAA,CAAA3V,EAAA,CAAA,CACL;AAAC,gBAAA,OAAA2V,SAAA,CAAAhW,MAAA,CAAA,QAAA,EAEK,QAAQ,CAAA;AAAA,cAAA,KAAA,EAAA;AAAA,cAAA,KAAA,KAAA;gBAAA,OAAAgW,SAAA,CAAAxX,IAAA,EAAA;AAAA;AAAA,UAAA,CAAA,EAAA6W,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;QAAA,CAElB,CAAA,CAAA;AAAA,QAAA,SAAApY,KAAAA,GAAA;AAAA,UAAA,OAAAsD,OAAA,CAAAzF,KAAA,CAAA,IAAA,EAAAN,SAAA,CAAA;AAAA,QAAA;AAAA,QAAA,OAAAyC,KAAA;AAAA,MAAA,CAAA;AAAA,KAAA,CAAA;AAAAF,IAAAA,0BAAA,OAAA6d,eAAA,EAAA;MAAA5d,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEiB,SAAAA,KAAAA,CAAAlC,KAAK,EAAI;QACzB,IAAI,CAACA,KAAK,EAAE,OAAO;AAAEA,UAAAA,KAAK,EAAE;SAAM;QAElC,OAAO;UACLwD,IAAI,EAAExD,KAAK,CAACwD,IAAI;UAChBI,OAAO,EAAE5D,KAAK,CAAC4D,OAAO;UACtBmW,KAAK,EAAE/Z,KAAK,CAAC+Z,KAAK;UAClBD,IAAI,EAAE9Z,KAAK,CAAC8Z,IAAI;UAChBzJ,UAAU,EAAErQ,KAAK,CAACqQ;SACnB;AACH,MAAA;AAAC,KAAA,CAAA;AAAArO,IAAAA,0BAAA,OAAA8d,gBAAA,EAAA;MAAA7d,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAEkB,SAAAA,KAAAA,CAAAgQ,MAAM,EAAI;AAAA,QAAA,IAAAgV,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA;AAC3B,QAAA,IAAI,CAACnV,MAAM,EAAE,OAAO,IAAI;AAExB,QAAA,IAAMoV,cAAc,GAAG,SAAjBA,cAAcA,CAAGvkB,KAAK,EAAA;UAAA,OAAK;YAC/BwkB,IAAI,EAAExkB,KAAK,CAACwkB,IAAI;YAChBxW,UAAU,EAAEhO,KAAK,CAACgO,UAAU;YAC5B6R,OAAO,EAAE7f,KAAK,CAAC6f,OAAO;YACtBD,KAAK,EAAE5f,KAAK,CAAC4f,KAAK;YAClB6E,KAAK,EAAEzkB,KAAK,CAACykB,KAAK;AAClBC,YAAAA,QAAQ,EACN,OAAO1kB,KAAK,CAAC2kB,WAAW,KAAK,UAAU,GACnC3kB,KAAK,CAAC2kB,WAAW,EAAE,GACnB7Z;WACP;QAAA,CAAC;QAEF,OAAO;UACL8Z,EAAE,EAAEzV,MAAM,CAACyV,EAAE;UACbb,MAAM,EAAE5U,MAAM,CAAC4U,MAAM;UACrBc,WAAW,EAAA,CAAAV,qBAAA,GAAA,CAAAC,sBAAA,GAAEjV,MAAM,CAACwT,cAAc,MAAA,IAAA,IAAAyB,sBAAA,KAAA,MAAA,GAAA,MAAA,GAArBA,sBAAA,CAAAxkB,IAAA,CAAAuP,MAAM,CAAmB,CAACpP,GAAG,CAACwkB,cAAc,CAAC,MAAA,IAAA,IAAAJ,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI,EAAE;UAChEzkB,WAAW,EAAA,CAAA2kB,qBAAA,GAAA,CAAAC,sBAAA,GAAEnV,MAAM,CAACxP,cAAc,MAAA,IAAA,IAAA2kB,sBAAA,KAAA,MAAA,GAAA,MAAA,GAArBA,sBAAA,CAAA1kB,IAAA,CAAAuP,MAAM,CAAmB,CAACpP,GAAG,CAACwkB,cAAc,CAAC,MAAA,IAAA,IAAAF,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI;SAC/D;AACH,MAAA;AAAC,KAAA,CAAA;AAAAplB,IAAAA,0BAAA,OAAA+d,uBAAA,EAAA;MAAA9d,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEyB,SAAAA,KAAAA,GAAA;AAAA,QAAA,IAAA2lB,uBAAA;AAAA,QAAA,IAACC,KAAK,GAAAroB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAoO,SAAA,GAAApO,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,QAAA,OAAA4Y,aAAA,CAAA;AACnCyN,UAAAA,aAAa,EAAA,CAAA+B,uBAAA,GAAAhlB,qBAAA,CAAEf,KAAI,EAAA8b,cAAA,CAAA,MAAA,IAAA,IAAAiK,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,uBAAA,CAAqB/jB,KAAK;UACzC2C,MAAM,EAAE5D,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQoE,QAAQ,EAAE,CAACzb,MAAM;UACrCyW,WAAW,EAAEra,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQoE,QAAQ,EAAE,CAAChF,WAAW;AAC/C0E,UAAAA,UAAU,EAAE/e,qBAAA,CAAAf,KAAI,EAAAic,YAAA,EAAcre,MAAM;AACpCqoB,UAAAA,aAAa,EAAAllB,qBAAA,CAAEf,KAAI,EAAAkd,cAAA,CAAe;UAClC7B,iBAAiB,EAAEta,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQoE,QAAQ,EAAE,CAAC/E;AAAiB,SAAA,EACxD2K,KAAK,CAAA;AAAA,MAAA;AACR,KAAA,CAAA;AAAA9lB,IAAAA,0BAAA,OAAAge,mBAAA,EAAA;MAAA/d,QAAA,EAAA,IAAA;MAAAC,KAAA,EAKoB,SAAAA,KAAAA,GAAiB;AAAA,QAAA,IAAhB8lB,OAAO,GAAAvoB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAoO,SAAA,GAAApO,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC;QAChCoD,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,iCAAiC,EAAA+Y,aAAA,CAAA;AACjD2P,UAAAA,OAAO,EAAPA;SAAO,EAAAnlB,qBAAA,CACJf,KAAI,EAAAie,uBAAA,CAAA,CAAApd,IAAA,CAAJb,KAAI,CAAA,CAAA,CACP;AAEFM,QAAAA,qBAAA,CAAAN,KAAI,EAAA8c,wBAAA,EAA4BxR,UAAU,CAAC,YAAM;UAC/C,IAAI;AAAA,YAAA,IAAA6a,uBAAA;AACF,YAAA,IAAI,CAAAplB,qBAAA,CAACf,KAAI,EAAA8b,cAAA,CAAe,EAAE;AACxB/a,cAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASS,KAAK,CAChB,sDAAsD,EAAA6C,qBAAA,CACtDf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AAEDe,cAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;gBACnBva,MAAM,EAAEwB,sBAAsB,CAACQ,IAAI;gBACnCzI,KAAK,EAAEiJ,qBAAqB,CAACW;AAC/B,eAAC,CAAC;AAEF,cAAA;AACF,YAAA;AAEA,YAAA,IAAI,CAAA/G,qBAAA,CAACf,KAAI,EAAA+b,YAAA,CAAa,IAAIhN,aAAa,CAAAhO,qBAAA,CAACf,KAAI,EAAA+b,YAAA,EAAc,EAAE;cAC1Dhb,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASS,KAAK,CAChB,kEAAkE,EAClE;gBACEuhB,cAAc,EAAElc,OAAO,CAAAxC,qBAAA,CAACf,KAAI,EAAA+b,YAAA,CAAA,CAAc;AAC1C2D,gBAAAA,OAAO,EAAE3e,qBAAA,CAAAf,KAAI,EAAA+b,YAAA,CAAA,GACThN,aAAa,CAAAhO,qBAAA,CAACf,KAAI,EAAA+b,YAAA,CAAA,CAAc,GAChC,IAAI;AACR3L,gBAAAA,MAAM,EAAArP,qBAAA,CAAEf,KAAI,EAAAge,gBAAA,CAAA,CAAAnd,IAAA,CAAJb,KAAI,EAAAe,qBAAA,CAAkBf,KAAI,EAAA+b,YAAA,CAAA;AACpC,eAAC,CACF;AAEDhb,cAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;gBACnBva,MAAM,EAAEwB,sBAAsB,CAACQ,IAAI;gBACnCzI,KAAK,EAAEiJ,qBAAqB,CAACW;AAC/B,eAAC,CAAC;AAEF,cAAA;AACF,YAAA;AAEA,YAAA,IAAI,EAAAqe,uBAAA,GAAAplB,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,MAAA,IAAA,IAAAqK,uBAAA,uBAAJA,uBAAA,CAAqBnkB,KAAK,MAAK,WAAW,EAAE;AAC9CjB,cAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASa,IAAI,CACf,iEAAiE,EAAAyC,qBAAA,CACjEf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AAED,cAAA;AACF,YAAA;YAEAe,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,uCAAuC,EAAA+Y,aAAA,CAAA;AACvD6P,cAAAA,WAAW,EAAE;aAAI,EAAArlB,qBAAA,CACdf,KAAI,EAAAie,uBAAA,CAAA,CAAApd,IAAA,CAAJb,KAAI,CAAA,CAAA,CACP;YACFe,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,EAAgBla,KAAK,CAAC,IAAI,CAAC;;AAE/B;AACA;YACA,IAAAb,qBAAA,CAAIf,KAAI,EAAAod,wBAAA,CAAA,CAAAvc,IAAA,CAAJb,KAAI,CAAA,EAA6B;cACnCwF,kBAAkB,EAAE,CAAC5D,KAAK,CAAAb,qBAAA,CAACf,KAAI,EAAA+b,YAAA,CAAA,CAAc;AAC/C,YAAA;AAEAhb,YAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASD,IAAI,CACf,wCAAwC,EAAAuD,qBAAA,CACxCf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AACDe,YAAAA,qBAAA,CAAAf,KAAI,EAAAoe,WAAA,CAAA,CAAAvd,IAAA,CAAJb,KAAI,CAAA;UACN,CAAC,CAAC,OAAO9B,KAAK,EAAE;AACd6C,YAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASS,KAAK,CAChB,8BAA8B,EAAA6C,qBAAA,CAC9Bf,KAAI,EAAA+d,eAAA,CAAA,CAAAld,IAAA,CAAJb,KAAI,EAAiB9B,KAAK,CAAA,EAAA6C,qBAAA,CAC1Bf,KAAI,EAAAie,uBAAA,CAAA,CAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AAEDe,YAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;cACnBva,MAAM,EAAEwB,sBAAsB,CAACQ,IAAI;cACnCzI,KAAK,EAAEiJ,qBAAqB,CAACW;AAC/B,aAAC,CAAC;;AAEF;AACA,YAAA,IAAA/G,qBAAA,CAAIf,KAAI,EAAA8b,cAAA,CAAA,EAAiB;AACvB/a,cAAAA,qBAAA,CAAAf,KAAI,EAAA8b,cAAA,CAAA,CAAgB+D,MAAM,GAAGwG,IAAI;AACnC,YAAA;AAEA,YAAA,IAAAtlB,qBAAA,CAAIf,KAAI,EAAA+b,YAAA,CAAA,EAAe;AACrBhb,cAAAA,qBAAA,CAAAf,KAAI,EAAAqd,eAAA,CAAA,CAAAxc,IAAA,CAAJb,KAAI,CAAA;AACJM,cAAAA,qBAAA,CAAAN,KAAI,EAAA+b,YAAA,EAAgB,IAAI,CAAA;AAC1B,YAAA;AACAzb,YAAAA,qBAAA,CAAAN,KAAI,EAAAyc,OAAA,EAAW,IAAI,CAAA;AACnBnc,YAAAA,qBAAA,CAAAN,KAAI,EAAA0c,YAAA,EAAgB,IAAI,CAAA;AACxBpc,YAAAA,qBAAA,CAAAN,KAAI,EAAA2c,eAAA,EAAmB,IAAI,CAAA;AAC3Brc,YAAAA,qBAAA,CAAAN,KAAI,EAAA8b,cAAA,EAAkB,IAAI,CAAA;AAE1B,YAAA,MAAM5d,KAAK;AACb,UAAA;QACF,CAAC,EAAEgoB,OAAO,CAAC,CAAA;AACb,MAAA;AAAC,KAAA,CAAA;AAAAhmB,IAAAA,0BAAA,OAAAie,eAAA,EAAA;MAAAhe,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEiB,SAAAA,KAAAA,GAAM;AACtB,QAAA,IAAAW,qBAAA,CAAIf,KAAI,EAAAoc,iBAAA,CAAA,EAAoB;AAC1Brb,UAAAA,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,CAAA,CAASa,IAAI,CACf,6CAA6C,EAAAyC,qBAAA,CAC7Cf,KAAI,EAAAie,uBAAA,EAAApd,IAAA,CAAJb,KAAI,CAAA,CACL;AAED,UAAA;AACF,QAAA;QAEAe,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,yBAAyB,EAAE;UAC3C6d,iBAAiB,EAAEta,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQoE,QAAQ,EAAE,CAAC/E,iBAAiB;AAC3DiL,UAAAA,kBAAkB,EAAAvlB,qBAAA,CAAEf,KAAI,EAAAid,mBAAA;AAC1B,SAAC,CAAC;QAEFlc,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACQ,gBAAgB,CAAA;AAE1DnI,QAAAA,qBAAA,CAAAN,KAAI,EAAAoc,iBAAA,EAAqBmK,WAAW,CAAC,YAAM;UACzC,IAAIC,UAAU,GAAG,KAAK;UAEtBzlB,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,EAAQkD,QAAQ,CAAC,UAAAuH,KAAA,EAA2B;AAAA,YAAA,IAAxBpL,iBAAiB,GAAAoL,KAAA,CAAjBpL,iBAAiB;AACvC,YAAA,IAAIA,iBAAiB,GAAGnV,UAAU,GAAG,CAAC,EAAE;AACtC,cAAA,IAAMhD,IAAI,GAAGmY,iBAAiB,GAAGnV,UAAU;cAC3CnF,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,wBAAwB,EAAE;AAC1CkpB,gBAAAA,SAAS,EAAExjB;AACb,eAAC,CAAC;AACFnC,cAAAA,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,EAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACS,WAAW,EAAE,CAACxF,IAAI,CAAC,CAAA;AAC7DsjB,cAAAA,UAAU,GAAG,IAAI;cAEjB,OAAO;AAAEnL,gBAAAA,iBAAiB,EAAEnY;eAAM;AACpC,YAAA;AAEAnC,YAAAA,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,EAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACS,WAAW,EAAE,CAAC,CAAC,CAAC,CAAA;YAE1D3H,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,0CAA0C,CAAC;AAC7D,YAAA,IAAAuD,qBAAA,CAAIf,KAAI,EAAAid,mBAAA,CAAA,EAAsBlc,qBAAA,CAAAf,KAAI,EAAAqc,oBAAA,CAAA,CAAsBqF,IAAI,EAAE;YAC9D3gB,qBAAA,CAAAf,KAAI,EAAAwS,cAAA,CAAA,CAAA3R,IAAA,CAAJb,KAAI,EAAgBiI,qBAAqB,CAACU,cAAc,CAAA;AACxD5H,YAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;cAAEva,MAAM,EAAEwB,sBAAsB,CAACY;AAAU,aAAC,CAAC;AAClEhG,YAAAA,qBAAA,CAAAf,KAAI,EAAAke,mBAAA,CAAA,CAAArd,IAAA,CAAJb,KAAI,EACFe,qBAAA,CAAAf,KAAI,EAAAid,mBAAA,CAAA,GAAuBlX,6BAA6B,GAAG,CAAC,CAAA;AAG9Dka,YAAAA,aAAa,CAAAlf,qBAAA,CAACf,KAAI,EAAAoc,iBAAA,CAAA,CAAmB;AACrC9b,YAAAA,qBAAA,CAAAN,KAAI,EAAAoc,iBAAA,EAAqB,IAAI,CAAA;YAE7B,OAAO;AAAEf,cAAAA,iBAAiB,EAAE;aAAG;AACjC,UAAA,CAAC,CAAC;AAEF,UAAA,IAAImL,UAAU,IAAAzlB,qBAAA,CAAIf,KAAI,EAAAid,mBAAA,CAAoB,EAAElc,qBAAA,CAAAf,KAAI,EAAAwd,kBAAA,CAAA,CAAA3c,IAAA,CAAJb,KAAI,CAAA;QAClD,CAAC,EAAE8F,0BAA0B,CAAC,CAAA;AAChC,MAAA;AAAC,KAAA,CAAA;AAAA5F,IAAAA,0BAAA,OAAAke,WAAA,EAAA;MAAAje,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEa,SAAAA,KAAAA,GAAM;QAClBE,qBAAA,CAAAN,KAAI,EAAAkc,mBAAA,EAAuBtH,IAAI,CAACzQ,GAAG,EAAE,CAAA;AACrC7D,QAAAA,qBAAA,CAAAN,KAAI,EAAAmc,QAAA,EAAYoK,WAAW,CAAC,YAAM;UAChCxlB,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,EAAQkD,QAAQ,CAAC,UAAAyH,KAAA,EAAqB;AAAA,YAAA,IAAlBvL,WAAW,GAAAuL,KAAA,CAAXvL,WAAW;AACjC,YAAA,IAAMjX,GAAG,GAAGyQ,IAAI,CAACzQ,GAAG,EAAE;AACtB,YAAA,IAAMyiB,cAAc,GAAGxL,WAAW,IAAIjX,GAAG,GAAApD,qBAAA,CAAGf,KAAI,EAAAkc,mBAAA,CAAoB,CAAC;AACrE5b,YAAAA,qBAAA,CAAAN,KAAI,EAAAkc,mBAAA,EAAuB/X,GAAG,CAAA;YAE9BpD,qBAAA,CAAAf,KAAI,EAAAse,wBAAA,EAAAzd,IAAA,CAAJb,KAAI,EAA0B4mB,cAAc,CAAA;YAE5C,OAAO;AAAExL,cAAAA,WAAW,EAAEwL;aAAgB;AACxC,UAAA,CAAC,CAAC;QACJ,CAAC,EAAE5gB,wBAAwB,CAAC,CAAA;AAC9B,MAAA;AAAC,KAAA,CAAA;AAAA9F,IAAAA,0BAAA,OAAAme,UAAA,EAAA;MAAAle,QAAA,EAAA,IAAA;MAAAC,KAAA,EAEY,SAAAA,KAAAA,GAAM;AACjB6f,QAAAA,aAAa,CAAAlf,qBAAA,CAACf,KAAI,EAAAmc,QAAA,CAAA,CAAU;QAE5B,IAAMyK,cAAc,GAClB7lB,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQoE,QAAQ,EAAE,CAAChF,WAAW,IACjCxG,IAAI,CAACzQ,GAAG,EAAE,GAAApD,qBAAA,CAAGf,KAAI,EAAAkc,mBAAA,CAAoB,CAAC;AAEzCnb,QAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;AAAE9D,UAAAA,WAAW,EAAEwL;AAAe,SAAC,CAAC;AACvD,MAAA;AAAC,KAAA,CAAA;AAAA1mB,IAAAA,0BAAA,OAAAoe,wBAAA,EAAA;MAAAne,QAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAE0B,SAAAA,KAAAA,CAAAgb,WAAW,EAAI;QACxC,IAAMyL,wBAAwB,GAC5B9lB,qBAAA,CAAAf,KAAI,EAAA6c,UAAA,IAAc5W,0BAA0B;QAE9C,IAAImV,WAAW,IAAIyL,wBAAwB,EAAE;AAE7C,QAAA,IACEzL,WAAW,GAAAra,qBAAA,CAAGf,KAAI,EAAA6c,UAAA,CAAW,IAC7BzB,WAAW,GAAGyL,wBAAwB,EACtC;AACA,UAAA,IAAIC,GAAG,CAAC/lB,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQoE,QAAQ,EAAE,CAAC7E,oBAAoB,CAAC,EAAE;YACpDxa,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,sCAAsC,EAAE;AACxD4d,cAAAA,WAAW,EAAXA,WAAW;AACX6D,cAAAA,SAAS,EAAAle,qBAAA,CAAEf,KAAI,EAAA6c,UAAA;AACjB,aAAC,CAAC;AACF9b,YAAAA,qBAAA,CAAAf,KAAI,EAAAuc,2BAAA,CAAA,CAA6BmF,IAAI,EAAE;AACzC,UAAA;AACA3gB,UAAAA,qBAAA,CAAAf,KAAI,EAAAgc,MAAA,CAAA,CAAQkD,QAAQ,CAAC;AAAE3D,YAAAA,oBAAoB,EAAE;AAAK,WAAC,CAAC;AAEpD,UAAA;AACF,QAAA;QAEAxa,qBAAA,CAAAf,KAAI,EAAAvC,OAAA,EAASD,IAAI,CAAC,wCAAwC,EAAE;AAC1D4d,UAAAA,WAAW,EAAXA,WAAW;AACX6D,UAAAA,SAAS,EAAAle,qBAAA,CAAEf,KAAI,EAAA6c,UAAA;AACjB,SAAC,CAAC;AACF9b,QAAAA,qBAAA,CAAAf,KAAI,EAAAwc,oCAAA,CAAA,CAAsCkF,IAAI,EAAE;QAChD1hB,KAAI,CAACikB,aAAa,EAAE;AACtB,MAAA;AAAC,KAAA,CAAA;AApjCC3jB,IAAAA,qBAAA,CAAA,IAAI,EAAAqb,MAAA,EAAU9Y,OAAK,CAAA;AACnBvC,IAAAA,qBAAA,CAAA,IAAI,EAAAsb,MAAA,EAAU4C,KAAK,CAAA;AAEnBle,IAAAA,qBAAA,CAAA,IAAI,EAAA0b,MAAA,EAAUR,YAAY,EAAE,CAAA;AAE5Bza,IAAAA,qBAAA,CAAA,IAAI,EAAAib,MAAA,CAAA,CAAQkD,QAAQ,CAAC;MAAEva,MAAM,EAAEwB,sBAAsB,CAACQ;AAAK,KAAC,CAAC;AAC7D5F,IAAAA,qBAAA,KAAI,EAAA0c,mBAAA,CAAA,CAAA5c,IAAA,CAAJ,IAAI,CAAA;AACN,EAAA;;AAEA;AAAAyE,EAAAA,YAAA,CAAAiZ,cAAA,EAAA,CAAA;IAAAvZ,GAAA,EAAA,kBAAA;IAAA9H,GAAA,EACA,SAAAA,GAAAA,GAAuB;AACrB,MAAA,OAAA6D,qBAAA,CAAO,IAAI,EAAAib,MAAA,CAAA;AACb,IAAA;AAAC,GAAA,EAAA;IAAAhX,GAAA,EAAA,WAAA;IAAA9H,GAAA,EAED,SAAAA,GAAAA,GAAgB;AACd,MAAA,OAAA6D,qBAAA,CAAO,IAAI,EAAA8b,UAAA,CAAA;AACb,IAAA;AAAC,GAAA,EAAA;IAAA7X,GAAA,EAAA,gBAAA;IAAA9H,GAAA,EAED,SAAAA,GAAAA,GAAqB;MAAA,IAAA6pB,uBAAA,EAAAC,uBAAA;MACnB,IAAAC,KAAA,IAAAF,uBAAA,GAAA,CAAAC,uBAAA,GAAAjmB,qBAAA,CAAqB,IAAI,EAAAgb,YAAA,eAAAiL,uBAAA,KAAA,MAAA,GAAA,MAAA,GAAJA,uBAAA,CAAmBpD,cAAc,EAAE,cAAAmD,uBAAA,KAAA,MAAA,GAAAA,uBAAA,GAAI,EAAE;QAAAG,KAAA,GAAAxG,cAAA,CAAAuG,KAAA,EAAA,CAAA,CAAA;AAAvDE,QAAAA,UAAU,GAAAD,KAAA,CAAA,CAAA,CAAA;MAEjB,OAAOC,UAAU,aAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEvB,WAAW,EAAE,CAAClH,cAAc;AACjD,IAAA;AAAC,GAAA,EAAA;IAAA1Z,GAAA,EAAA,oBAAA;IAAA9H,GAAA,EAED,SAAAA,GAAAA,GAAyB;AACvB,MAAA,OAAA6D,qBAAA,CAAO,IAAI,EAAA4a,MAAA,CAAA;AACb,IAAA;AAAC,GAAA,EAAA;IAAA3W,GAAA,EAAA,aAAA;AAAAiO,IAAAA,GAAA,EAED,SAAAA,GAAAA,CAAgB7S,KAAK,EAAE;AACrBE,MAAAA,qBAAA,CAAA,IAAI,EAAAub,YAAA,EAAgBzb,KAAK,CAAA;AAC3B,IAAA;;AA8NA;AACA;AACA;AACA;AA0HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAoeA;AACA;AACA;AAAA,GAAA,CAAA,CAAA;AAAA,EAAA,OAAAme,cAAA;AAAA,CAAA,EAAA;AAgNF,IAAM6I,cAAc,GAAG,IAAI7I,cAAc,CAAC,IAAI,EAAE;EAC9CG,cAAc,EAAEzD,eAAe,CAACC,OAAO;AACvCyD,EAAAA,MAAM,EAAE;AAAEG,IAAAA,GAAG,EAAE;GAAM;AACrBD,EAAAA,KAAK,EAAE;AAAEC,IAAAA,GAAG,EAAE;AAAK;AACrB,CAAC;;AChoCD,IAAMuI,SAAS,GAAG,IAAIC,GAAG,EAAE;AAE3B,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAGC,QAAQ,EAAI;AAC5BH,EAAAA,SAAS,CAACI,GAAG,CAACD,QAAQ,CAAC;EAEvB,OAAO,YAAA;AAAA,IAAA,OAAMH,SAAS,CAAA,QAAA,CAAO,CAACG,QAAQ,CAAC;AAAA,EAAA,CAAA;AACzC,CAAC;AAED,IAAMhN,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAS;AAChC6M,EAAAA,SAAS,CAACjlB,OAAO,CAAC,UAAAolB,QAAQ,EAAA;AAAA,IAAA,OAAIA,QAAQ,EAAE;EAAA,CAAA,CAAC;AAC3C,CAAC;AAED,IAAME,WAAW,GAAG,SAAdA,WAAWA,GAAA;EAAA,OAAShN,wBAAsB,EAAE,CAAC/V,MAAM;AAAA,CAAA;AAEzD,IAAM4V,0BAA0B,GAAG,SAA7BA,0BAA0BA,GAAS;EACvC,IAAM5V,MAAM,GAAGgjB,oBAAoB,CAACJ,SAAS,EAAEG,WAAW,EAAEA,WAAW,CAAC;EAExE,OAAO;AAAE/iB,IAAAA,MAAM,EAANA,MAAM;IAAEijB,QAAQ,EAAE,SAAAA,QAAAA,GAAA;AAAA,MAAA,KAAA,IAAAlqB,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIiqB,QAAQ,GAAA,IAAA/pB,KAAA,CAAAJ,IAAA,GAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAAR8pB,QAAAA,QAAQ,CAAA9pB,IAAA,CAAA,GAAAJ,SAAA,CAAAI,IAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAK8pB,QAAQ,CAACrY,QAAQ,CAAC7K,MAAM,CAAC;AAAA,IAAA;GAAE;AACzE;AAEA4V,0BAA0B,CAACC,mBAAmB,GAAGA,mBAAmB;;;;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,21,22,23,24,25,26,27,28,29,31,32,33,34,35,36,37,38,39,49,50,51,52]}
|