@arturwojnar/hermes-postgresql
Version:
Production-Ready TypeScript Outbox Pattern for PostgreSQL
1 lines • 56.9 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../src/asyncOutbox/AsyncOutboxConsumer.ts","../src/common/consts.ts","../src/common/errors.ts","../src/publishingQueue/createSerializedPublishingQueue.ts","../src/common/createSimpleQueue.ts","../src/common/createAsyncOpsQueue.ts","../src/publishingQueue/nonBlockingQueue/intervalResendingStrategy.ts","../src/publishingQueue/nonBlockingQueue/createNonBlockingPublishingQueue.ts","../../../node_modules/fp-ts/lib/function.js","../src/common/lsn.ts","../src/subscribeToReplicationSlot/types.ts","../src/subscribeToReplicationSlot/consts.ts","../src/common/helpers.ts","../src/common/offset.ts","../src/subscribeToReplicationSlot/processBeginMessage.ts","../src/subscribeToReplicationSlot/processCommitMessage.ts","../src/subscribeToReplicationSlot/processInsertMessage.ts","../src/subscribeToReplicationSlot/processPrimaryKeepAliveMessage.ts","../src/subscribeToReplicationSlot/onData.ts","../src/subscribeToReplicationSlot/sendStandbyStatusUpdate.ts","../src/subscribeToReplicationSlot/transaction/transaction.ts","../src/subscribeToReplicationSlot/logicalReplicationStream.ts","../src/outbox/killBackendReplicationProcesses.ts","../src/outbox/OutboxConsumerState.ts","../src/outbox/migrate.ts","../src/outbox/OutboxConsumer.ts","../src/outbox/createOutboxConsumer.ts","../src/policies/useBasicAsyncStoragePolicy.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,"\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dual = exports.getEndomorphismMonoid = exports.SK = exports.hole = exports.constVoid = exports.constUndefined = exports.constNull = exports.constFalse = exports.constTrue = exports.unsafeCoerce = exports.apply = exports.getRing = exports.getSemiring = exports.getMonoid = exports.getSemigroup = exports.getBooleanAlgebra = void 0;\nexports.identity = identity;\nexports.constant = constant;\nexports.flip = flip;\nexports.flow = flow;\nexports.tuple = tuple;\nexports.increment = increment;\nexports.decrement = decrement;\nexports.absurd = absurd;\nexports.tupled = tupled;\nexports.untupled = untupled;\nexports.pipe = pipe;\nexports.not = not;\n// -------------------------------------------------------------------------------------\n// instances\n// -------------------------------------------------------------------------------------\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getBooleanAlgebra = function (B) {\n return function () { return ({\n meet: function (x, y) { return function (a) { return B.meet(x(a), y(a)); }; },\n join: function (x, y) { return function (a) { return B.join(x(a), y(a)); }; },\n zero: function () { return B.zero; },\n one: function () { return B.one; },\n implies: function (x, y) { return function (a) { return B.implies(x(a), y(a)); }; },\n not: function (x) { return function (a) { return B.not(x(a)); }; }\n }); };\n};\nexports.getBooleanAlgebra = getBooleanAlgebra;\n/**\n * Unary functions form a semigroup as long as you can provide a semigroup for the codomain.\n *\n * @example\n * import { Predicate, getSemigroup } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate<number> = (n) => n <= 2\n * const g: Predicate<number> = (n) => n >= 0\n *\n * const S1 = getSemigroup(B.SemigroupAll)<number>()\n *\n * assert.deepStrictEqual(S1.concat(f, g)(1), true)\n * assert.deepStrictEqual(S1.concat(f, g)(3), false)\n *\n * const S2 = getSemigroup(B.SemigroupAny)<number>()\n *\n * assert.deepStrictEqual(S2.concat(f, g)(1), true)\n * assert.deepStrictEqual(S2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nvar getSemigroup = function (S) {\n return function () { return ({\n concat: function (f, g) { return function (a) { return S.concat(f(a), g(a)); }; }\n }); };\n};\nexports.getSemigroup = getSemigroup;\n/**\n * Unary functions form a monoid as long as you can provide a monoid for the codomain.\n *\n * @example\n * import { Predicate } from 'fp-ts/Predicate'\n * import { getMonoid } from 'fp-ts/function'\n * import * as B from 'fp-ts/boolean'\n *\n * const f: Predicate<number> = (n) => n <= 2\n * const g: Predicate<number> = (n) => n >= 0\n *\n * const M1 = getMonoid(B.MonoidAll)<number>()\n *\n * assert.deepStrictEqual(M1.concat(f, g)(1), true)\n * assert.deepStrictEqual(M1.concat(f, g)(3), false)\n *\n * const M2 = getMonoid(B.MonoidAny)<number>()\n *\n * assert.deepStrictEqual(M2.concat(f, g)(1), true)\n * assert.deepStrictEqual(M2.concat(f, g)(3), true)\n *\n * @category instances\n * @since 2.10.0\n */\nvar getMonoid = function (M) {\n var getSemigroupM = (0, exports.getSemigroup)(M);\n return function () { return ({\n concat: getSemigroupM().concat,\n empty: function () { return M.empty; }\n }); };\n};\nexports.getMonoid = getMonoid;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getSemiring = function (S) { return ({\n add: function (f, g) { return function (x) { return S.add(f(x), g(x)); }; },\n zero: function () { return S.zero; },\n mul: function (f, g) { return function (x) { return S.mul(f(x), g(x)); }; },\n one: function () { return S.one; }\n}); };\nexports.getSemiring = getSemiring;\n/**\n * @category instances\n * @since 2.10.0\n */\nvar getRing = function (R) {\n var S = (0, exports.getSemiring)(R);\n return {\n add: S.add,\n mul: S.mul,\n one: S.one,\n zero: S.zero,\n sub: function (f, g) { return function (x) { return R.sub(f(x), g(x)); }; }\n };\n};\nexports.getRing = getRing;\n// -------------------------------------------------------------------------------------\n// utils\n// -------------------------------------------------------------------------------------\n/**\n * @since 2.11.0\n */\nvar apply = function (a) {\n return function (f) {\n return f(a);\n };\n};\nexports.apply = apply;\n/**\n * @since 2.0.0\n */\nfunction identity(a) {\n return a;\n}\n/**\n * @since 2.0.0\n */\nexports.unsafeCoerce = identity;\n/**\n * @since 2.0.0\n */\nfunction constant(a) {\n return function () { return a; };\n}\n/**\n * A thunk that returns always `true`.\n *\n * @since 2.0.0\n */\nexports.constTrue = constant(true);\n/**\n * A thunk that returns always `false`.\n *\n * @since 2.0.0\n */\nexports.constFalse = constant(false);\n/**\n * A thunk that returns always `null`.\n *\n * @since 2.0.0\n */\nexports.constNull = constant(null);\n/**\n * A thunk that returns always `undefined`.\n *\n * @since 2.0.0\n */\nexports.constUndefined = constant(undefined);\n/**\n * A thunk that returns always `void`.\n *\n * @since 2.0.0\n */\nexports.constVoid = exports.constUndefined;\nfunction flip(f) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length > 1) {\n return f(args[1], args[0]);\n }\n return function (a) { return f(a)(args[0]); };\n };\n}\nfunction flow(ab, bc, cd, de, ef, fg, gh, hi, ij) {\n switch (arguments.length) {\n case 1:\n return ab;\n case 2:\n return function () {\n return bc(ab.apply(this, arguments));\n };\n case 3:\n return function () {\n return cd(bc(ab.apply(this, arguments)));\n };\n case 4:\n return function () {\n return de(cd(bc(ab.apply(this, arguments))));\n };\n case 5:\n return function () {\n return ef(de(cd(bc(ab.apply(this, arguments)))));\n };\n case 6:\n return function () {\n return fg(ef(de(cd(bc(ab.apply(this, arguments))))));\n };\n case 7:\n return function () {\n return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));\n };\n case 8:\n return function () {\n return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));\n };\n case 9:\n return function () {\n return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));\n };\n }\n return;\n}\n/**\n * @since 2.0.0\n */\nfunction tuple() {\n var t = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n t[_i] = arguments[_i];\n }\n return t;\n}\n/**\n * @since 2.0.0\n */\nfunction increment(n) {\n return n + 1;\n}\n/**\n * @since 2.0.0\n */\nfunction decrement(n) {\n return n - 1;\n}\n/**\n * @since 2.0.0\n */\nfunction absurd(_) {\n throw new Error('Called `absurd` function which should be uncallable');\n}\n/**\n * Creates a tupled version of this function: instead of `n` arguments, it accepts a single tuple argument.\n *\n * @example\n * import { tupled } from 'fp-ts/function'\n *\n * const add = tupled((x: number, y: number): number => x + y)\n *\n * assert.strictEqual(add([1, 2]), 3)\n *\n * @since 2.4.0\n */\nfunction tupled(f) {\n return function (a) { return f.apply(void 0, a); };\n}\n/**\n * Inverse function of `tupled`\n *\n * @since 2.4.0\n */\nfunction untupled(f) {\n return function () {\n var a = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n a[_i] = arguments[_i];\n }\n return f(a);\n };\n}\nfunction pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {\n switch (arguments.length) {\n case 1:\n return a;\n case 2:\n return ab(a);\n case 3:\n return bc(ab(a));\n case 4:\n return cd(bc(ab(a)));\n case 5:\n return de(cd(bc(ab(a))));\n case 6:\n return ef(de(cd(bc(ab(a)))));\n case 7:\n return fg(ef(de(cd(bc(ab(a))))));\n case 8:\n return gh(fg(ef(de(cd(bc(ab(a)))))));\n case 9:\n return hi(gh(fg(ef(de(cd(bc(ab(a))))))));\n default: {\n var ret = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n ret = arguments[i](ret);\n }\n return ret;\n }\n }\n}\n/**\n * Type hole simulation\n *\n * @since 2.7.0\n */\nexports.hole = absurd;\n/**\n * @since 2.11.0\n */\nvar SK = function (_, b) { return b; };\nexports.SK = SK;\n/**\n * Use `Predicate` module instead.\n *\n * @category zone of death\n * @since 2.0.0\n * @deprecated\n */\nfunction not(predicate) {\n return function (a) { return !predicate(a); };\n}\n/**\n * Use `Endomorphism` module instead.\n *\n * @category zone of death\n * @since 2.10.0\n * @deprecated\n */\nvar getEndomorphismMonoid = function () { return ({\n concat: function (first, second) { return flow(first, second); },\n empty: identity\n}); };\nexports.getEndomorphismMonoid = getEndomorphismMonoid;\n/** @internal */\nvar dual = function (arity, body) {\n var isDataFirst = typeof arity === 'number' ? function (args) { return args.length >= arity; } : arity;\n return function () {\n var args = Array.from(arguments);\n if (isDataFirst(arguments)) {\n return body.apply(this, args);\n }\n return function (self) { return body.apply(void 0, __spreadArray([self], args, false)); };\n };\n};\nexports.dual = dual;\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["setInterval","clearInterval","this","processInsertMessage","_processInsertMessage","_onData","onData","pipe"],"mappings":";;;;;AA+DA,MAAM,mBAAmB,CAAA;AAQM,IAAA,OAAA;AAPZ,IAAA,cAAc;AACd,IAAA,OAAO;IAEhB,QAAQ,GAAG,KAAK;IAChB,aAAa,GAAG,KAAK;IACrB,WAAW,GAA0B,IAAI;AAEjD,IAAA,WAAA,CAA6B,OAAwC,EAAA;QAAxC,IAAO,CAAA,OAAA,GAAP,OAAO;AAClC,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;AACrE,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM;;AAG/B,IAAA,MAAM,IAAI,CAAC,OAA8D,EAAE,OAAwB,EAAA;AACjG,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC;;QAG7E,MAAM,GAAG,GAAG,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;AAEzC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAC1B,YAAA,IAAI,WAAW,IAAI,GAAG,EAAE;AACtB,gBAAA,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;oBACvB,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;;;iBAE3B;gBACL,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,KAAI;AAC5B,oBAAA,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;wBACvB,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;;AAElC,iBAAC,CAAC;;;aAEC;YACL,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC;;;IAIxC,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,sCAAA,CAAwC,CAAC;;AAG3D,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;QACpB,IAAI,CAAC,aAAa,EAAE;AAEpB,QAAA,QAAQ,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;;AAGvC,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;;AAGzB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;AAGf,IAAA,MAAM,WAAW,CAAC,GAAQ,EAAE,OAAiC,EAAA;AACnE,QAAA,MAAM,GAAG,CAAA;;;;;;;UAOH,IAAI,CAAC,OAAO,CAAC,YAAY,CAAA;AACzB,QAAA,EAAA,OAAO,CAAC,SAAS,CAAA;AACjB,QAAA,EAAA,OAAO,CAAC,WAAW,CAAA;UACnB,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;;KAEzC;;IAGK,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,YAAW;AACxC,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,2BAA2B,EAAE;;YACxC,OAAO,KAAK,EAAE;;AAGlB,SAAC,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;;AAGpB,IAAA,MAAM,2BAA2B,GAAA;AACvC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB;;AAGF,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI;AACF,YAAA,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;;;;;OAK3C;AAED,YAAA,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE;AACrC,gBAAA,IAAI;AACF,oBAAA,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;wBACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;wBAChC,OAAO,EAAE,OAAO,CAAC,IAAI;AACrB,wBAAA,eAAe,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;AACzC,qBAAA,CAAC;AAEF,oBAAA,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;;;;AAIG,+BAAA,EAAA,OAAO,CAAC,QAAQ;WACtC;;gBACD,OAAO,KAAK,EAAE;AACd,oBAAA,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;;;AAGG,+BAAA,EAAA,OAAO,CAAC,QAAQ;WACtC;;;;gBAGG;AACR,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;;;AAG/B;AAED,MAAM,yBAAyB,GAAG,CAA4B,MAAuC,KACnG,IAAI,mBAAmB,CAAU,MAAM;;AC/LzC,MAAM,eAAe,GAAG,CAAA,UAAA,CAAY;AACpC,MAAM,cAAc,GAAG,CAAA,WAAA,CAAa;AAGpC,MAAM,WAAW,GAAG,CAAC,YAAoB,EAAE,YAAoB,KAC7D,CAAA,EAAG,cAAc,CAAI,CAAA,EAAA,YAAY,CAAI,CAAA,EAAA,YAAY,EAAE;;ACFrD,IAAK,eAEJ;AAFD,CAAA,UAAK,eAAe,EAAA;AAClB,IAAA,eAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC/C,CAAC,EAFI,eAAe,KAAf,eAAe,GAEnB,EAAA,CAAA,CAAA;AAID,MAAM,+BAAgC,SAAQ,WAG7C,CAAA;AACC,IAAA,WAAA,CAAY,MAAkC,EAAA;AAC5C,QAAA,KAAK,CACH,eAAe,CAAC,oBAAoB,EACpC,MAAM,EACN,CAAA,SAAA,EAAY,MAAM,CAAC,YAAY,CAAa,UAAA,EAAA,MAAM,CAAC,YAAY,CAAA,uCAAA,CAAyC,CACzG;;AAEJ;;ACPD,MAAM,+BAA+B,GAAG,CACtC,OAA4E,EAC5E,OAA8C,KACgB;AAC9D,IAAA,MAAM,sBAAsB,GAAG,OAAO,EAAE,sBAAsB,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACvF,IAAA,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,KAAK,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AAC7E,IAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAO;AAE1B,IAAA,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAkC;IAC5D,IAAI,YAAY,GAAG,KAAK;AACxB,IAAA,IAAI,iBAAiB,GAAG,mBAAmB,CAAC,QAAQ,EAAE;AAEtD,IAAA,MAAM,KAAK,GAAG,CAAC,gBAAgD,KAAI;QACjE,IAAI,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AAC7C,YAAA,OAAO,gBAAgB;;QAGzB,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC;AACzC,QAAA,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAE/B,QAAA,OAAO,gBAAgB;AACzB,KAAC;IAED,MAAM,aAAa,GAAG,MAAK;AACzB,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB;;AAGF,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAG;QAChC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;AACpC,KAAC;AAED,IAAA,MAAM,GAAG,GAAG,YAAW;QACrB,IAAI,YAAY,EAAE;YAChB;;QAGF,YAAY,GAAG,IAAI;AACnB,QAAA,iBAAiB,GAAG,IAAI,mBAAmB,EAAE;AAE7C,QAAA,IAAI;AACF,YAAA,GAAG;AACD,gBAAA,MAAM,MAAM,GAAG,MAAM,qBAAqB,EAAE;gBAE5C,QAAQ,MAAM;AACZ,oBAAA,KAAK,WAAW;wBACd;AACF,oBAAA,KAAK,QAAQ;wBACX,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;wBAE9C,IAAI,sBAAsB,EAAE;AAC1B,4BAAA,MAAM,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;;wBAG7C;AACF,oBAAA,KAAK,WAAW;wBACd,YAAY,GAAG,KAAK;wBACpB,iBAAiB,CAAC,OAAO,EAAE;wBAC3B;AACF,oBAAA;wBACE,WAAW,CAAC,MAAM,CAAC;;aAExB,QAAQ,YAAY;;gBACb;YACR,YAAY,GAAG,KAAK;YACpB,iBAAiB,CAAC,OAAO,EAAE;;AAE/B,KAAC;AAED,IAAA,MAAM,qBAAqB,GAAG,YAAmC;AAC/D,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,WAAW;;AAGpB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;AAE1B,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,CAAC,MAAM,CAAC;AACrB,YAAA,aAAa,EAAE;AACf,YAAA,MAAM,MAAM,CAAC,WAAW,EAAE;AAE1B,YAAA,OAAO,WAAW;;QAClB,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,KAAK,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;gBAE7E,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;AAC/B,gBAAA,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;;AAE1B,YAAA,OAAO,QAAQ;;AAEnB,KAAC;IAED,OAAO;AACL,QAAA,IAAI,EAAE,MAAM,2BAA2B;QACvC,KAAK;QACL,GAAG;AACH,QAAA,IAAI,EAAE,MAAM,QAAQ,CAAC,MAAM;AAC3B,QAAA,gBAAgB,EAAE,MAAM,iBAAiB;AACzC,QAAA,OAAO,EAAE,IAAI;KACd;AACH,CAAC;;ACjHD,MAAM,iBAAiB,GAAG,MAAqB;IAC7C,MAAM,MAAM,GAAW,EAAE;AAEzB,IAAA,MAAM,KAAK,GAAG,CAAC,IAAU,KAAI;AAC3B,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACnB,KAAC;IAED,MAAM,OAAO,GAAG,MAAK;QACnB,MAAM,CAAC,KAAK,EAAE;AAChB,KAAC;AAED,IAAA,MAAM,MAAM,GAAG,CAAC,IAAU,KAAI;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AAElC,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,YAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;;AAE3B,KAAC;IAED,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1D,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM;IAEhC,OAAO;QACL,KAAK;QACL,OAAO;QACP,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,IAAI;KACL;AACH,CAAC;;AC1BD,MAAM,mBAAmB,GAAG,MAAkB;AAC5C,IAAA,MAAM,IAAI,GAAG,iBAAiB,EAAW;AACzC,IAAA,IAAI,YAAY,GAAG,mBAAmB,CAAC,QAAQ,EAAuB;AAEtE,IAAA,MAAM,KAAK,GAAG,CAAC,EAAW,KAAI;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACd,QAAA,OAAO,EAAE;AACX,KAAC;AAED,IAAA,MAAM,OAAO,GAAG,OAAO,EAAW,KAAI;AACpC,QAAA,IAAI,YAAY,CAAC,SAAS,EAAE;AAC1B,YAAA,MAAM,YAAY;;AAGpB,QAAA,YAAY,GAAG,IAAI,mBAAmB,EAAuB;AAE7D,QAAA,IAAI;YACF,MAAM,EAAE,EAAE;AACV,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;;gBACP;YACR,YAAY,CAAC,OAAO,EAAE;;AAE1B,KAAC;AAED,IAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AAC3B,CAAC;;AC3BD,MAAM,+BAA+B,GACnC,MACA,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAI;IAC1D,MAAM,UAAU,GAAG,MAAK;QAEtB,MAAM,aAAa,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;QAE3F,IAAI,aAAa,EAAE;YACjB,cAAc,CAAC,aAAa,CAAC;;QAK/B,MAAM,mBAAmB,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAElG,QAAA,IAAI,CAAC,YAAY,EAAE,IAAI,mBAAmB,EAAE;AAC1C,YAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;YACpC,cAAc,CAAC,mBAAmB,CAAC;;AAEvC,KAAC;IAED,MAAM,KAAK,GAAGA,aAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;AAElD,IAAA,OAAO,MAAMC,eAAa,CAAC,KAAK,CAAC;AACnC,CAAC;;ACpBH,MAAM,gCAAgC,GAAG,CACvC,OAA4E,EAC5E,OAA8C,KACiB;AAC/D,IAAA,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,KAAK,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;AAC7E,IAAA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAO;AAC1B,IAAA,MAAM,mBAAmB,GAAG,mBAAmB,EAAE;AAEjD,IAAA,MAAM,QAAQ,GAAG,IAAI,KAAK,EAA8B;AACxD,IAAA,IAAI,iBAAiB,GAAG,mBAAmB,CAAC,QAAQ,EAAE;IAEtD,MAAM,mCAAmC,GAAG,MAAK;AAC/C,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;AACvD,KAAC;IAED,MAAM,0CAA0C,GAAG,MAAK;AACtD,QAAA,OAAO,mCAAmC,EAAE,EAAE,WAAW,EAAE,GAAG;AAChE,KAAC;AAED,IAAA,MAAM,QAAQ,GAAG,CAAC,GAAQ,KAAI;AAC5B,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,WAAW,CAAC,GAAG,KAAK,GAAG,CAAC;AACpE,KAAC;AAED,IAAA,MAAM,KAAK,GAAG,CAAC,gBAAgD,KAAI;QACjE,IAAI,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AAC7C,YAAA,OAAO,gBAAgB;;QAGzB,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC;AACzC,QAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAEtE,QAAA,OAAO,gBAAgB;AACzB,KAAC;AAED,IAAA,MAAM,GAAG,GAAG,OAAO,gBAAiD,KAAI;QACtE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;AACvD,YAAA,iBAAiB,GAAG,IAAI,mBAAmB,EAAE;;AAQ/C,QAAA,gBAAgB,GAAG,gBAAgB,IAAI,QAAQ,CAAC,CAAC,CAAC;AAElD,QAAA,MAAM,eAAe,CAAC,gBAAgB,CAAC;AACzC,KAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,OAAuC,KAAI;AACjE,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB;;QAGF,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,WAAW,CAAC,GAAG,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;AAElG,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,YAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;;AAEvC,KAAC;IAED,MAAM,2CAA2C,GAAG,MAAK;AACvD,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC;AACtD,KAAC;AAED,IAAA,MAAM,eAAe,GAAG,OAAO,OAAuC,KAAI;AACxE,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,CAAC,OAAO,CAAC;YAItB,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,0CAA0C,EAAE,EAAE;AAC5E,gBAAA,MAAM,mBAAmB,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;gBACzF,cAAc,CAAC,OAAO,CAAC;AAGvB,gBAAA,IAAI,YAAoD;AACxD,gBAAA,QAAQ,YAAY,GAAG,2CAA2C,EAAE,GAAG;oBACrE,MAAM,OAAO,GAAG,YAAY;AAC5B,oBAAA,MAAM,mBAAmB,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;oBACzF,cAAc,CAAC,OAAO,CAAC;;AAGzB,gBAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBACzB,iBAAiB,CAAC,OAAO,EAAE;;;iBAExB;gBACL,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,WAAW,CAAC,GAAG,KAAK,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;AAElG,gBAAA,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE;AAC5C,oBAAA,OAAO,CAAC,GAAG,CAAC,CAAA,UAAA,EAAa,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAA,CAAE,CAAC;AAC3D,oBAAA,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI;;;AAIpC,YAAA,OAAO,WAAW;;QAClB,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;YAE/C,IAAI,KAAK,EAAE;AACT,gBAAA,KAAK,CAAC,MAAM,GAAG,IAAI;;AAGrB,YAAA,MAAM,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC;;AAE9C,KAAC;AAED,IAAA,IAAI,aAAyB;IAC7B,IAAI,OAAO,EAAE,sBAAsB,EAAE,EAAE,KAAK,CAAC,EAAE;QAC7C,aAAa,GAAG,+BAA+B,EAAgB,CAAC;AAC9D,YAAA,WAAW,EAAE,MAAM,QAAQ;AAC3B,YAAA,cAAc,EAAE,eAAe;AAC/B,YAAA,YAAY,EAAE,MAAM,iBAAiB,CAAC,SAAS;YAC/C,QAAQ,EAAE,OAAO,EAAE,sBAAsB,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;AACpE,SAAA,CAAC;;IAGJ,OAAO;AACL,QAAA,IAAI,EAAE,MAAM,4BAA4B;QACxC,KAAK;QACL,GAAG;AACH,QAAA,IAAI,EAAE,MAAM,QAAQ,CAAC,MAAM;AAC3B,QAAA,gBAAgB,EAAE,MAAM,iBAAiB;AACzC,QAAA,OAAO,EAAE,MAAM,aAAa,IAAI;KACjC;AACH,CAAC;;;;;;;;;;ACpID,EAAA,IAAI,aAAa,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,aAAa,KAAK,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9E,MAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;UACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,cAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;cACpD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC3B;AACA;AACA,MAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;GAC3D;EACD,MAAM,CAAC,cAAc,CAAA,OAAA,EAAU,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7D,EAAA,OAAA,CAAA,IAAA,GAAe,gCAAgC,OAAa,CAAA,EAAA,GAAA,OAAA,CAAA,IAAA,GAAe,OAAoB,CAAA,SAAA,GAAA,OAAA,CAAA,cAAA,GAAyB,oBAAoB,OAAqB,CAAA,UAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,OAAuB,CAAA,YAAA,GAAA,OAAA,CAAA,KAAA,GAAgB,kBAAkB,OAAsB,CAAA,WAAA,GAAA,OAAA,CAAA,SAAA,GAAoB,OAAuB,CAAA,YAAA,GAAA,OAAA,CAAA,iBAAA,GAA4B,KAAK,CAAC;AACjV,EAAA,OAAA,CAAA,QAAA,GAAmB,QAAQ;AAC3B,EAAA,OAAA,CAAA,QAAA,GAAmB,QAAQ;AAC3B,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI;AACnB,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI;AACnB,EAAA,OAAA,CAAA,KAAA,GAAgB,KAAK;AACrB,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS;AAC7B,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS;AAC7B,EAAA,OAAA,CAAA,MAAA,GAAiB,MAAM;AACvB,EAAA,OAAA,CAAA,MAAA,GAAiB,MAAM;AACvB,EAAA,OAAA,CAAA,QAAA,GAAmB,QAAQ;AAC3B,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI;AACnB,EAAA,OAAA,CAAA,GAAA,GAAc,GAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,IAAI,iBAAiB,GAAG,UAAU,CAAC,EAAE;MACjC,OAAO,YAAY,EAAE,QAAQ;AACjC,UAAQ,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACrF,UAAQ,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;UAC7E,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;UACpC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE;AAC1C,UAAQ,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;UACnF,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxE,OAAK,EAAE,EAAE;GACR;AACD,EAAA,OAAA,CAAA,iBAAA,GAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,IAAI,YAAY,GAAG,UAAU,CAAC,EAAE;MAC5B,OAAO,YAAY,EAAE,QAAQ;AACjC,UAAQ,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,OAAK,EAAE,EAAE;GACR;AACD,EAAA,OAAA,CAAA,YAAA,GAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE;MACzB,IAAI,aAAa,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;MAChD,OAAO,YAAY,EAAE,QAAQ;AACjC,UAAQ,MAAM,EAAE,aAAa,EAAE,CAAC,MAAM;UAC9B,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;AAC5C,OAAK,EAAE,EAAE;GACR;AACD,EAAA,OAAA,CAAA,SAAA,GAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,EAAA,IAAI,WAAW,GAAG,UAAU,CAAC,EAAE,EAAE,QAAQ;AACzC,MAAI,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;MAC3E,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE;AACxC,MAAI,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;MAC3E,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC;AACpC,GAAC,EAAE,EAAE;AACL,EAAA,OAAA,CAAA,WAAA,GAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA,EAAA,IAAI,OAAO,GAAG,UAAU,CAAC,EAAE;MACvB,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AACvC,MAAI,OAAO;AACX,UAAQ,GAAG,EAAE,CAAC,CAAC,GAAG;AAClB,UAAQ,GAAG,EAAE,CAAC,CAAC,GAAG;AAClB,UAAQ,GAAG,EAAE,CAAC,CAAC,GAAG;AAClB,UAAQ,IAAI,EAAE,CAAC,CAAC,IAAI;AACpB,UAAQ,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;OAC5E;GACJ;AACD,EAAA,OAAA,CAAA,OAAA,GAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE;MACrB,OAAO,UAAU,CAAC,EAAE;AACxB,UAAQ,OAAO,CAAC,CAAC,CAAC,CAAC;OACd;GACJ;AACD,EAAA,OAAA,CAAA,KAAA,GAAgB,KAAK;AACrB;AACA;AACA;EACA,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,MAAI,OAAO,CAAC;AACZ;AACA;AACA;AACA;AACA,EAAA,OAAA,CAAA,YAAA,GAAuB,QAAQ;AAC/B;AACA;AACA;EACA,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,MAAI,OAAO,YAAY,EAAE,OAAO,CAAC,CAAC,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA;EACA,OAAoB,CAAA,SAAA,GAAA,QAAQ,CAAC,IAAI,CAAC;AAClC;AACA;AACA;AACA;AACA;EACA,OAAqB,CAAA,UAAA,GAAA,QAAQ,CAAC,KAAK,CAAC;AACpC;AACA;AACA;AACA;AACA;EACA,OAAoB,CAAA,SAAA,GAAA,QAAQ,CAAC,IAAI,CAAC;AAClC;AACA;AACA;AACA;AACA;EACA,OAAyB,CAAA,cAAA,GAAA,QAAQ,CAAC,SAAS,CAAC;AAC5C;AACA;AACA;AACA;AACA;EACA,OAAoB,CAAA,SAAA,GAAA,OAAO,CAAC,cAAc;EAC1C,SAAS,IAAI,CAAC,CAAC,EAAE;AACjB,MAAI,OAAO,YAAY;UACf,IAAI,IAAI,GAAG,EAAE;AACrB,UAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;cAC1C,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;AACpC;AACA,UAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,cAAY,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACtC;AACA,UAAQ,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;OAChD;AACL;AACA,EAAA,SAAS,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;MAC9C,QAAQ,SAAS,CAAC,MAAM;AAC5B,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,EAAE;AACrB,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,YAAY;kBACf,OAAO,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;eACvC;AACb,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,YAAY;AAC/B,kBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;eAC3C;AACb,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,YAAY;AAC/B,kBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;eAC/C;AACb,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,YAAY;kBACf,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;eACnD;AACb,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,YAAY;kBACf,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;eACvD;AACb,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,YAAY;kBACf,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;eAC3D;AACb,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,YAAY;AAC/B,kBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;eAC/D;AACb,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,YAAY;AAC/B,kBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;eACnE;AACb;MACI;AACJ;AACA;AACA;AACA;AACA,EAAA,SAAS,KAAK,GAAG;MACb,IAAI,CAAC,GAAG,EAAE;AACd,MAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;UAC1C,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;AAC7B;AACA,MAAI,OAAO,CAAC;AACZ;AACA;AACA;AACA;EACA,SAAS,SAAS,CAAC,CAAC,EAAE;MAClB,OAAO,CAAC,GAAG,CAAC;AAChB;AACA;AACA;AACA;EACA,SAAS,SAAS,CAAC,CAAC,EAAE;MAClB,OAAO,CAAC,GAAG,CAAC;AAChB;AACA;AACA;AACA;EACA,SAAS,MAAM,CAAC,CAAC,EAAE;AACnB,MAAI,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,MAAM,CAAC,CAAC,EAAE;AACnB,MAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACtD;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrB,MAAI,OAAO,YAAY;UACf,IAAI,CAAC,GAAG,EAAE;AAClB,UAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;cAC1C,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;AACjC;AACA,UAAQ,OAAO,CAAC,CAAC,CAAC,CAAC;OACd;AACL;AACA,EAAA,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;MAC7C,QAAQ,SAAS,CAAC,MAAM;AAC5B,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,CAAC;AACpB,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,EAAE,CAAC,CAAC,CAAC;AACxB,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,UAAQ,KAAK,CAAC;cACF,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,UAAQ,KAAK,CAAC;AACd,cAAY,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,UAAQ,KAAK,CAAC;cACF,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,UAAQ,KAAK,CAAC;cACF,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,UAAQ,SAAS;AACjB,cAAY,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;AAClC,cAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;kBACvC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvC;AACA,cAAY,OAAO,GAAG;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,OAAA,CAAA,IAAA,GAAe,MAAM;AACrB;AACA;AACA;EACA,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE;AACtC,EAAA,OAAA,CAAA,EAAA,GAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;EACA,SAAS,GAAG,CAAC,SAAS,EAAE;AACxB,MAAI,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,IAAI,qBAAqB,GAAG,YAAY,EAAE,QAAQ;AAClD,MAAI,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE;AACpE,MAAI,KAAK,EAAE;AACX,GAAC,EAAE,EAAE;AACL,EAAA,OAAA,CAAA,qBAAA,GAAgC,qBAAqB;AACrD;AACA,EAAA,IAAI,IAAI,GAAG,UAAU,KAAK,EAAE,IAAI,EAAE;MAC9B,IAAI,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,GAAG,UAAU,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,GAAG,KAAK;AAC1G,MAAI,OAAO,YAAY;UACf,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AACxC,UAAQ,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;cACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;AACzC;UACQ,OAAO,UAAU,IAAI,EAAE,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;OAC5F;GACJ;AACD,EAAA,OAAA,CAAA,IAAA,GAAe,IAAI,CAAA;;;;;;;AC9WnB,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,CAAuB,qBAAA,CAAA,EAAE,GAAG,CAAC;AAE3D,MAAM,mBAAmB,GAAG,CAAC,GAAQ,KAAI;IACvC,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AACD,MAAM,kBAAkB,GAAG,CAAC,GAAQ,KAAI;IACtC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC;AAErD,IAAA,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC;AACrD,CAAC;AASD,MAAM,kBAAkB,GAAG,CAAC,GAAW,KAAI;AACzC,IAAA,MAAM,QAAQ,GAAG,GAAG,IAAI,GAAG;AAC3B,IAAA,MAAM,QAAQ,GAAG,GAAG,GAAG,WAAW;IAClC,OAAO,CAAA,EAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA,CAAE;AACxF,CAAC;AACD,MAAM,YAAY,GAAG,CAAC,GAAQ,KAAI;IAChC,OAAO,kBAAkB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AAC5C,CAAC;AACD,MAAM,YAAY,GAAG,CAAC,GAAW,KAAS;AACxC,IAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;AAC/D,IAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;AAE/D,IAAA,OAAO,CAAG,EAAA,QAAQ,CAAI,CAAA,EAAA,QAAQ,EAAE;AAClC,CAAC;AACD,MAAM,KAAK,GAAG,CAAC,KAAa,KAAmB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACrE,MAAM,KAAK,GAAG,CAAC,KAAa,KAAS;AACnC,IAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AAChB,QAAA,OAAO,KAAK;;AAGd,IAAA,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAA,CAAE,CAAC;AACrC,CAAC;;ACrCD,IAAK,WAKJ;AALD,CAAA,UAAK,WAAW,EAAA;AACd,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,GAAW;AACX,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAY;AACZ,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,GAAY;AACZ,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EALI,WAAW,KAAX,WAAW,GAKf,EAAA,CAAA,CAAA;AACD,IAAK,KAKJ;AALD,CAAA,UAAK,KAAK,EAAA;AACR,IAAA,KAAA,CAAA,KAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACR,IAAA,KAAA,CAAA,KAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACT,IAAA,KAAA,CAAA,KAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACT,IAAA,KAAA,CAAA,KAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS;AACX,CAAC,EALI,KAAK,KAAL,KAAK,GAKT,EAAA,CAAA,CAAA;AAED,IAAK,YAGJ;AAHD,CAAA,UAAK,YAAY,EAAA;AACf,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,GAAc;AACd,IAAA,YAAA,CAAA,yBAAA,CAAA,GAAA,GAA6B;AAC/B,CAAC,EAHI,YAAY,KAAZ,YAAY,GAGhB,EAAA,CAAA,CAAA;AA2DD,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;AACtD,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;AACpD,MAAM,cAAc,GAAG,CAAC,IAAY,KAA2B,kBAAkB,CAAC,QAAQ,CAAC,IAAoB,CAAC;AAChH,MAAM,iBAAiB,GAAG,CAAC,IAAY,KAAkB;AACvD,IAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,CAAA,cAAA,CAAgB,CAAC;;AAGnC,IAAA,OAAO,IAAI;AACb,CAAC;AACD,MAAM,gBAAgB,GAAG,CAAC,IAAY,KAAiB;AACrD,IAAA,IAAI,iBAAiB,CAAC,QAAQ,CAAC,IAAmB,CAAC,EAAE;AACnD,QAAA,OAAO,IAAmB;;IAG5B,OAAO,WAAW,CAAC,KAAK;AAC1B,CAAC;;ACpFD,MAAM,iCAAiC,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;;ACX9F,MAAM,WAAW,GAAG,CAAC,KAAa,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AAC7F,MAAM,mBAAmB,GAAG,CAAC,OAAe,KAAK,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK;;ACC/F,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM;IAC9B,GAAG,EAAE,CAAC,KAAY,MAAM,MAAM,IAAI,KAAK,CAAC;IACxC,OAAO,EAAE,OAAO,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC;IACrC,QAAQ,EAAE,OAAO,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;IACvC,QAAQ,EAAE,OAAO,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;IACvC,QAAQ,EAAE,OAAO,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC;AACvC,IAAA,KAAK,EAAE,MAAM,MAAM;AACpB,CAAA,CAAC;;ACIF,MAAM,mBAAmB,GAAG,CAAe,IAAY,KAA0C;IAC/F,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAE9B,IAAA,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAA,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAEvD,OAAO;QACL,YAAY,EAAE,YAAY,CAAC,QAAQ;QACnC,WAAW,EAAE,WAAW,CAAC,KAAK;QAC9B,aAAa;QACb,GAAG;QACH,SAAS;KACV;AACH,CAAC;;ACdD,MAAM,oBAAoB,GAAG,CAAe,IAAY,KAA0C;AAChG,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAC3C,IAAA,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1E,IAAA,MAAM,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AAGlF,IAAA,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAIrE,OAAO;QACL,YAAY,EAAE,YAAY,CAAC,QAAQ;QACnC,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,SAAS;QACT,iBAAiB;QACjB,eAAe;KAChB;AACH,CAAC;;ACxBD,MAAM,SAAS,GAAG;AAChB,IAAA,GAAG,EAAE,WAAoB;AACzB,IAAA,GAAG,EAAE,cAAuB;AAC5B,IAAA,GAAG,EAAE,cAAuB;AAC5B,IAAA,GAAG,EAAE,iBAA0B;CAChC;AACD,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,GAAW,KAAI;AAC/C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AACpE,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAA2B;AAE3F,IAAA,MAAM,CAAC,UAAU,KAAK,GAAG,EAAE,qBAAqB,CAAC;AACjD,IAAA,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC;AAE5E,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAE7D,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAE7B,IAAA,OAAO,KAAK;AACd,CAAC;AACD,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,GAAW,KAAI;AACjD,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;AAEvD,IAAA,MAAM,CAAC,UAAU,KAAK,GAAG,EAAE,qBAAqB,CAAC;IAGjD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;IAG9F,MAAM,KAAK,GAAG,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;AAE1E,IAAA,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;AAErB,IAAA,OAAO,KAAK;AACd,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,GAAW,KAAI;AAC/C,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;AAEvD,IAAA,MAAM,CAAC,UAAU,KAAK,GAAG,EAAE,qBAAqB,CAAC;AAEjD,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAEpE,IAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChC,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,GAAW,KAAI;AAChD,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;AAEvD,IAAA,MAAM,CAAC,UAAU,KAAK,GAAG,EAAE,oBAAoB,CAAC;AAEhD,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAEpE,IAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AAChC,CAAC;AAED,MAAM,aAAa,GAAG;AACpB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,KAAK,EAAE,SAAS;CACjB;AAsCD,MAAM,oBAAoB,GAAG,CAAe,YAA8C,KAAI;IAC5F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAA6D;AACxG,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM;QACzD,UAAU;AACV,QAAA,MAAM,EAAE,aAAa,CAAC,UAAwB,CAAC;AAChD,KAAA,CAAC,CAAC;AAGH,IAAA,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,CAAqB,mBAAA,CAAA,CAAC,CAAC;AAEtE,IAAA,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,YAAoB,KAAI;AACtD,QAAA,OAAO,OAAO,CAAC,MAAM,CAAe,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAI;AACrE,YAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;AACxC,gBAAA,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC;AAChC,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,UAAU,EAAE,IAAI;AACjB,aAAA,CAAC;AAEF,YAAA,OAAO,MAAM;SACd,EAAE,EAAkB,CAAC;AACxB,KAAC;IAED,OAAO,CAAC,IAAY,KAA0C;QACzC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI;AAC/C,QAAqB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;AAEhF,QAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC/B,YAAY,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC;QAE3C,OAAO;YACL,YAAY,EAAE,YAAY,CAAC,QAAQ;YACnC,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,MAAM;SACP;AACH,KAAC;AACH,CAAC;;AC9ID,MAAM,eAAe,GAAG,CAAe,UAAmB,MAA4C;IACpG,YAAY,EAAE,YAAY,CAAC,uBAAuB;IAClD,WAAW,EAAE,WAAW,CAAC,KAAK;IAC9B,UAAU;AACX,CAAA,CAAC;AAQF,MAAM,8BAA8B,GAAG,CAAe,IAAY,KAA0C;AAC1G,IAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE;AACjD,QAAA,OAAO,eAAe,CAAC,KAAK,CAAC;;AAG/B,IAAA,OAAO,eAAe,CAAe,IAAI,CAAC;AAC5C,CAAC;;ACZD,MAAM,MAAM,GAAG,CAAe,YAA8C,KAAI;AAC9E,IAAA,MAAMC,sBAAoB,GAAGC,oBAAqB,CAAC,YAAY,CAAC;IAEhE,OAAO,CAAC,OAAe,KAA0C;AAC/D,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvE,QAAQ,YAAY;YAClB,KAAK,YAAY,CAAC,uBAAuB;AACvC,gBAAA,OAAO,8BAA8B,CAAe,OAAO,CAAC;AAC9D,YAAA,KAAK,YAAY,CAAC,QAAQ,EAAE;gBAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC;gBAChE,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3C,gBAAA,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC;gBAErC,QAAQ,IAAI;oBACV,KAAK,WAAW,CAAC,KAAK;AACpB,wBAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC;oBAClC,KAAK,WAAW,CAAC,MAAM;AACrB,wBAAA,OAAOD,sBAAoB,CAAC,IAAI,CAAC;oBACnC,KAAK,WAAW,CAAC,MAAM;AACrB,wBAAA,OAAO,oBAAoB,CAAC,IAAI,CAAC;AACnC,oBAAA;AACE,wBAAA,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;;;AAG5F,YAAA;gBACE,WAAW,CAAC,YAAY,CAAC;;AAE/B,KAAC;AACH,CAAC;;AC7BD,MAAM,yBAAyB,GAAG,CAAC,GAAQ,KAAY;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9B,IAAA,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC;IAEhC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IACvC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC1C,IAAA,CAAC,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;IAClE,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;AAE9B,IAAA,OAAO,CAAC;AACV,CAAC;AAED,MAAM,uBAAuB,GAAG,CAAC,MAAgB,EAAE,sBAAiC,KAAK,MAAK;IAC5F,IAAI,CAAC,MAAM,EAAE;QACX;;AAGF,IAAA,MAAM,YAAY,GAAG,yBAAyB,CAAC,sBAAsB,EAAE,CAAC;AAExE,IAAA,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAC5B,CAAC;;AC7BD,MAAM,gBAAgB,GAAG,CAAyB,gBAAqB,MAAiC;AACtG,IAAA,GAAG,EAAE,gBAAgB;AACrB,IAAA,SAAS,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC;AAC3C,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,aAAa,EAAE,CAAC;AACjB,CAAA,CAAC;AAEF,MAAM,SAAS,GAAG,CAAyB,WAAwB,EAAE,MAAoB,KAAI;IAC3F,WAAW,CAAC,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;AACxD,CAAC;AAED,MAAM,iBAAiB,GAAG,CACxB,aAAqB,EACrB,GAAQ,EACR,SAAe,KACc;IAC7B,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;AACvD,CAAC;;ACOD,MAAM,mBAAmB,GAAG,OAAO;AAEnC,MAAM,uBAAuB,GAAG,OAAqB,MAA8C,KAAI;AACrG,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM;AAC7B,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI;AACxC,IAAA,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,gBAAgB,KAAK,WAAW,GAAG,YAAY,GAAG,KAAK,CAAC,gBAAgB;AACtG,IAAA,IAAI,kBAAkB,GAAG,gBAAgB,CAAe,QAAQ,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM;SAClB,MAAM,CACL,0BAA0B,KAAK,CAAC,QAAQ,CAAY,SAAA,EAAA,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,2CAA2C,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI;AAEtK,SAAA,QAAQ,EAAE;IACb,MAAM,aAAa,GAAGE,MAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IAClD,MAAMC,QAAM,GAAG,CAAC,OAAe,KAAK,aAAa,CAAC,OAAO,CAAC;AAC1D,IAAA,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,gBAAgB,CAAC;AACxF,IAAA,MAAM,KAAK,GAAG,YAAW;QACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;AAExC,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,KAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,MAA4C,KAAI;QACnE,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,KAAK,EAAE;AAC5C,YAAA,kBAAkB,GAAG,iBAAiB,CAAe,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;;aACnG,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,MAAM,EAAE;AACpD,YAAA,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC;;aACvC,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,MAAM,EAAE;AAItD,QAAA,OAAO,MAAM;AACf,KAAC;AAED,IAAA,MAAM,YAAY,GAAG,CAAC,MAA4C,KAAI;AACpE,QAAA,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,uBAAuB,IAAI,MAAM,CAAC,UAAU,EAAE;AACrF,YAAA,kBAAkB,EAAE;;AACf,aAAA,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,MAAM,EAAE;YACrG,MAAM,WAAW,GAAG,MAAK;AAEvB,gBAAA,KAAK,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,GAAG;AAC/C,gBAAA,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC;AAC/D,aAAC;AAED,YAAA,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC;;AAE7C,KAAC;IAED,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,OAAe,KAAI;QACpCC,qBAAI,CAAC,OAAO,EAAED,QAAM,EAAE,WAAW,EAAE,YAAY,CAAC;AAClD,KAAC,CAAC;IAEF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,KAAI;QACjC,MAAM,MAAM,GAAG,KAA+B;AAE9C,QAAA,IACE,CAAC,MAAM,CAAC,IAAI,KAAK,mBAAmB,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB;YAC3E,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAC/C;AACA,YAAA,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC;YACtE,MAAM,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;;aAC9D;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,yBAAyB,CAAC;;AAEnD,KAAC,CAAC;AAEF,IAAA,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AACtB,QAAA,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AACrB,KAAC,CAAC;AACJ,CAAC;;AC3FD,MAAM,wBAAwB,GAAG,OAAO,GAAQ,EAAE,QAAkB,KAAI;AAEtE,IAAA,MAAM,OAAO,CAAC,YAAW;AACvB,QAAA,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,MAAM,CAAoB;;;kCAG/B,QAAQ,CAAA;;AAErC,IAAA,CAAA,CAAC;AAGF,QAAA,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,gBAAgB,EAAE;YACtC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAA,+BAAA,CAAiC,EAAE,CAAC,GAAG,CAAC,CAAC;;AAE9D,KAAC,CAAC;AAGF,IAAA,MAAM,OAAO,CAAC,YAAW;AACvB,QAAA,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,MAAM,CAAoB;;;kCAG5B,QAAQ,CAAA;;AAErC,IAAA,CAAA,CAAC;AAEF,QAAA,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,aAAa,EAAE;YACnC,MAAM,GAAG,CAAC,MAAM,CAAC,CAAA,+BAAA,CAAiC,EAAE,CAAC,GAAG,CAAC,CAAC;;AAE9D,KAAC,CAAC;AACJ,CAAC;;AC6CD,MAAM,sBAAsB,GAAuC;IACjE,SAAS;IACT,SAAS;IACT,iBAAiB;IACjB,gBAAgB;IAChB,SAAS;CACV;AAED,MAAM,mBAAmB,CAAA;AAIJ,IAAA,IAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;IALX,SAAS,GAA+B,IAAI;AAEpD,IAAA,WAAA,CACmB,IAAe,EACf,aAAqB,EACrB,gBAAwB,SAAS,EAAA;QAFjC,IAAI,CAAA,IAAA,GAAJ,IAAI;QACJ,IAAa,CAAA,aAAA,GAAb,aAAa;QACb,IAAa,CAAA,aAAA,GAAb,aAAa;;AAGhC,IAAA,MAAM,IAAI,GAAA;QACR,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAA;;AAEV,2BAAA,EAAA,IAAI,CAAC,aAAa;AAClB,2BAAA,EAAA,IAAI,CAAC,aAAa;AAC1C,IAAA,CAAA,CAA0B;AAE3B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AAEzB,QAAA,OAAO,QAAQ;;IAGjB,MAAM,YAAY,CAAC,IAA2B,EAAA;AAC5C,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;QACpE,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,IAAI,CAExC,CAAA,qDAAA,EAAwD,QAAQ,CAAA,CAAA,CAAG;QACpE,MAAM,UAAU,GAAG,iBAAiB,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,YAAY;QAEtE,MAAM,IAAI,CAAC,IAAI,CAAA;;;;;;;AAOT,QAAA,EAAA,IAAI,CAAC,YAAY,CAAA;AACjB,QAAA,EAAA,IAAI,CAAC,YAAY,CAAA;UACjB,UAAU,CAAA;AACV,QAAA,EAAA,IAAI,CAAC,SAAS;;;KAGnB;AAED,QAAA,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE;;AAG1B,IAAA,MAAM,MAAM,CAAC,YAAoB,EAAE,MAAoB,EAAE,EAAmB,EAAA;AAC1E,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAEtB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC;AACpE,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM;AAC5B,aAAA,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;aACzC,GAAG,CAAC,CAAC,GAAG,KAAK,GAA0B,CAAC;AAE3C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC,SAAS;;AAGvB,QAAA,MAAM,GAAG,GAAG,EAAE,GAAI,EAA2B,GAAG,IAAI,CAAC,IAAI;AACzD,QAAA,MAAM,GAAG,CAAA;;AAED,UAAA,EAAA,GAAG,CAAC,MAAM,EAAE,GAAI,IAAY,CAAC;+BACV,YAAY,CAAA;KACtC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;QAErC,OAAO,IAAI,CAAC,SAAS;;AAGvB,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa;;AAG3B,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AAEtB,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS;QAEjC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;AAChD,YAAA,OAAO,KAAK,CAAC,YAAY,CAAC;;QAG5B,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;;AAG/C,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AAEtB,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS;AAEjC,QAAA,IAAI,MAAM,KAAK,gBAAgB,EAAE;AAC/B,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB;;AAG9C,QAAA,OAAO,CAAC;;AAEX;AAED,MAAM,mBAAmB,CAAA;AACM,IAAA,MAAA;AAA7B,IAAA,WAAA,CAA6B,MAA2B,EAAA;QAA3B,IAAM,CAAA,MAAA,GAAN,MAAM;;AAEnC,IAAA,MAAM,YAAY,CAAC,YAAY,GAAG,SAAS,EAAA;QACzC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CACnC,aAAa,CAAwB;AACnC,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,YAAY;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE;AACtB,SAAA,CAAC,CACH;;AAGH,IAAA,MAAM,WAAW,CAAC,gBAAqB,EAAE,EAAmB,EAAA;AAC1D,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM;QAEhC,MAAM,CAAC,QAAQ,CAAC;AAEhB,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;YAClE;;AAGF,QAAA,IAAI,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;AAC5F,YAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC;YACxC;;AAGF,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CACtB,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,aAAa,CAA6B;AACxC,YAAA,MAAM,EAAE,iBAAiB;YACzB,aAAa,EAAE,IAAI,IAAI,EAAE;YACzB,gBAAgB;AAChB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,sBAAsB,EAAE,CAAC;SAC1B,CAAC,EACF,EAAE,CACH;;AAGH,IAAA,MAAM,oBAAoB,CAAC,aAAkB,EAAE,EAAmB,EAAA;AAChE,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM;QAEhC,MAAM,CAAC,QAAQ,CAAC;AAEhB,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;YAClE;;QAGF,MAAM,sBAAsB,GAC1B,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,iBAAiB,GAAG,CAAC,GAAG,QAAQ,CAAC,sBAAsB,GAAG,CAAC;AAElH,QAAA,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CACtB,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,aAAa,CAA8B;AACzC,YAAA,MAAM,EAAE,gBAAgB;YACxB,aAAa,EAAE,IAAI,IAAI,EAAE;YACzB,aAAa;YACb,sBAAsB;SACvB,CAAC,EACF,EAAE,CACH;;AAGH,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ;;AAG7B,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAEnB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB;;AAGrC,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAEnB