@discomedia/utils 1.0.46 → 1.0.50

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/dist/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sources":["../src/logging.ts","../src/market-hours.ts","../src/market-time.ts","../src/format-tools.ts","../src/types/llm-types.ts","../src/misc-utils.ts","../node_modules/yocto-queue/index.js","../node_modules/p-limit/index.js","../src/polygon.ts","../src/polygon-indices.ts","../node_modules/openai/internal/tslib.mjs","../node_modules/openai/internal/utils/uuid.mjs","../node_modules/openai/internal/errors.mjs","../node_modules/openai/core/error.mjs","../node_modules/openai/internal/utils/values.mjs","../node_modules/openai/internal/utils/sleep.mjs","../node_modules/openai/version.mjs","../node_modules/openai/internal/detect-platform.mjs","../node_modules/openai/internal/shims.mjs","../node_modules/openai/internal/request-options.mjs","../node_modules/openai/internal/qs/formats.mjs","../node_modules/openai/internal/qs/utils.mjs","../node_modules/openai/internal/qs/stringify.mjs","../node_modules/openai/internal/utils/bytes.mjs","../node_modules/openai/internal/decoders/line.mjs","../node_modules/openai/internal/utils/log.mjs","../node_modules/openai/core/streaming.mjs","../node_modules/openai/internal/parse.mjs","../node_modules/openai/core/api-promise.mjs","../node_modules/openai/core/pagination.mjs","../node_modules/openai/internal/uploads.mjs","../node_modules/openai/internal/to-file.mjs","../node_modules/openai/core/resource.mjs","../node_modules/openai/internal/utils/path.mjs","../node_modules/openai/resources/chat/completions/messages.mjs","../node_modules/openai/lib/parser.mjs","../node_modules/openai/lib/chatCompletionUtils.mjs","../node_modules/openai/lib/EventStream.mjs","../node_modules/openai/lib/RunnableFunction.mjs","../node_modules/openai/lib/AbstractChatCompletionRunner.mjs","../node_modules/openai/lib/ChatCompletionRunner.mjs","../node_modules/openai/_vendor/partial-json-parser/parser.mjs","../node_modules/openai/lib/ChatCompletionStream.mjs","../node_modules/openai/lib/ChatCompletionStreamingRunner.mjs","../node_modules/openai/resources/chat/completions/completions.mjs","../node_modules/openai/resources/chat/chat.mjs","../node_modules/openai/internal/headers.mjs","../node_modules/openai/resources/audio/speech.mjs","../node_modules/openai/resources/audio/transcriptions.mjs","../node_modules/openai/resources/audio/translations.mjs","../node_modules/openai/resources/audio/audio.mjs","../node_modules/openai/resources/batches.mjs","../node_modules/openai/resources/beta/assistants.mjs","../node_modules/openai/resources/beta/realtime/sessions.mjs","../node_modules/openai/resources/beta/realtime/transcription-sessions.mjs","../node_modules/openai/resources/beta/realtime/realtime.mjs","../node_modules/openai/resources/beta/chatkit/sessions.mjs","../node_modules/openai/resources/beta/chatkit/threads.mjs","../node_modules/openai/resources/beta/chatkit/chatkit.mjs","../node_modules/openai/resources/beta/threads/messages.mjs","../node_modules/openai/resources/beta/threads/runs/steps.mjs","../node_modules/openai/internal/utils/base64.mjs","../node_modules/openai/internal/utils/env.mjs","../node_modules/openai/lib/AssistantStream.mjs","../node_modules/openai/resources/beta/threads/runs/runs.mjs","../node_modules/openai/resources/beta/threads/threads.mjs","../node_modules/openai/resources/beta/beta.mjs","../node_modules/openai/resources/completions.mjs","../node_modules/openai/resources/containers/files/content.mjs","../node_modules/openai/resources/containers/files/files.mjs","../node_modules/openai/resources/containers/containers.mjs","../node_modules/openai/resources/conversations/items.mjs","../node_modules/openai/resources/conversations/conversations.mjs","../node_modules/openai/resources/embeddings.mjs","../node_modules/openai/resources/evals/runs/output-items.mjs","../node_modules/openai/resources/evals/runs/runs.mjs","../node_modules/openai/resources/evals/evals.mjs","../node_modules/openai/resources/files.mjs","../node_modules/openai/resources/fine-tuning/methods.mjs","../node_modules/openai/resources/fine-tuning/alpha/graders.mjs","../node_modules/openai/resources/fine-tuning/alpha/alpha.mjs","../node_modules/openai/resources/fine-tuning/checkpoints/permissions.mjs","../node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.mjs","../node_modules/openai/resources/fine-tuning/jobs/checkpoints.mjs","../node_modules/openai/resources/fine-tuning/jobs/jobs.mjs","../node_modules/openai/resources/fine-tuning/fine-tuning.mjs","../node_modules/openai/resources/graders/grader-models.mjs","../node_modules/openai/resources/graders/graders.mjs","../node_modules/openai/resources/images.mjs","../node_modules/openai/resources/models.mjs","../node_modules/openai/resources/moderations.mjs","../node_modules/openai/resources/realtime/calls.mjs","../node_modules/openai/resources/realtime/client-secrets.mjs","../node_modules/openai/resources/realtime/realtime.mjs","../node_modules/openai/lib/ResponsesParser.mjs","../node_modules/openai/lib/responses/ResponseStream.mjs","../node_modules/openai/resources/responses/input-items.mjs","../node_modules/openai/resources/responses/input-tokens.mjs","../node_modules/openai/resources/responses/responses.mjs","../node_modules/openai/resources/uploads/parts.mjs","../node_modules/openai/resources/uploads/uploads.mjs","../node_modules/openai/lib/Util.mjs","../node_modules/openai/resources/vector-stores/file-batches.mjs","../node_modules/openai/resources/vector-stores/files.mjs","../node_modules/openai/resources/vector-stores/vector-stores.mjs","../node_modules/openai/resources/videos.mjs","../node_modules/openai/resources/webhooks.mjs","../node_modules/openai/client.mjs","../src/llm-config.ts","../src/json-tools.ts","../src/llm-utils.ts","../src/llm-openai.ts","../src/llm-images.ts","../src/llm-deepseek.ts","../src/llm-openrouter.ts","../src/performance-timer.ts","../src/technical-analysis.ts","../node_modules/ws/lib/constants.js","../node_modules/ws/lib/buffer-util.js","../node_modules/ws/lib/limiter.js","../node_modules/ws/lib/permessage-deflate.js","../node_modules/ws/lib/validation.js","../node_modules/ws/lib/receiver.js","../node_modules/ws/lib/sender.js","../node_modules/ws/lib/event-target.js","../node_modules/ws/lib/extension.js","../node_modules/ws/lib/websocket.js","../node_modules/ws/lib/stream.js","../node_modules/ws/lib/subprotocol.js","../node_modules/ws/lib/websocket-server.js","../node_modules/dotenv/lib/main.js","../node_modules/dotenv/lib/env-options.js","../node_modules/dotenv/lib/cli-options.js","../node_modules/dotenv/config.js","../src/alpaca-market-data-api.ts","../src/alpaca-trading-api.ts","../src/index.ts","../src/test.ts"],"sourcesContent":[null,null,null,null,null,null,"/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tpeek() {\n\t\tif (!this.#head) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.#head.value;\n\n\t\t// TODO: Node.js 18.\n\t\t// return this.#head?.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n\n\t* drain() {\n\t\twhile (this.#head) {\n\t\t\tyield this.dequeue();\n\t\t}\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tvalidateConcurrency(concurrency);\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst resumeNext = () => {\n\t\t// Process the next queued function if we're under the concurrency limit\n\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\tactiveCount++;\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst next = () => {\n\t\tactiveCount--;\n\t\tresumeNext();\n\t};\n\n\tconst run = async (function_, resolve, arguments_) => {\n\t\t// Execute the function and capture the result promise\n\t\tconst result = (async () => function_(...arguments_))();\n\n\t\t// Resolve immediately with the promise (don't wait for completion)\n\t\tresolve(result);\n\n\t\t// Wait for the function to complete (success or failure)\n\t\t// We catch errors here to prevent unhandled rejections,\n\t\t// but the original promise rejection is preserved for the caller\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\t// Decrement active count and process next queued function\n\t\tnext();\n\t};\n\n\tconst enqueue = (function_, resolve, arguments_) => {\n\t\t// Queue the internal resolve function instead of the run function\n\t\t// to preserve the asynchronous execution context.\n\t\tnew Promise(internalResolve => { // eslint-disable-line promise/param-names\n\t\t\tqueue.enqueue(internalResolve);\n\t\t}).then(run.bind(undefined, function_, resolve, arguments_)); // eslint-disable-line promise/prefer-await-to-then\n\n\t\t// Start processing immediately if we haven't reached the concurrency limit\n\t\tif (activeCount < concurrency) {\n\t\t\tresumeNext();\n\t\t}\n\t};\n\n\tconst generator = (function_, ...arguments_) => new Promise(resolve => {\n\t\tenqueue(function_, resolve, arguments_);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue() {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t\tconcurrency: {\n\t\t\tget: () => concurrency,\n\n\t\t\tset(newConcurrency) {\n\t\t\t\tvalidateConcurrency(newConcurrency);\n\t\t\t\tconcurrency = newConcurrency;\n\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t// eslint-disable-next-line no-unmodified-loop-condition\n\t\t\t\t\twhile (activeCount < concurrency && queue.size > 0) {\n\t\t\t\t\t\tresumeNext();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\tmap: {\n\t\t\tasync value(iterable, function_) {\n\t\t\t\tconst promises = Array.from(iterable, (value, index) => this(function_, value, index));\n\t\t\t\treturn Promise.all(promises);\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n\nexport function limitFunction(function_, options) {\n\tconst {concurrency} = options;\n\tconst limit = pLimit(concurrency);\n\n\treturn (...arguments_) => limit(() => function_(...arguments_));\n}\n\nfunction validateConcurrency(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n}\n",null,null,"function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\")\n throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? (f.value = value) : state.set(receiver, value), value;\n}\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport { __classPrivateFieldSet, __classPrivateFieldGet };\n","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * https://stackoverflow.com/a/2117523\n */\nexport let uuid4 = function () {\n const { crypto } = globalThis;\n if (crypto?.randomUUID) {\n uuid4 = crypto.randomUUID.bind(crypto);\n return crypto.randomUUID();\n }\n const u8 = new Uint8Array(1);\n const randomByte = crypto ? () => crypto.getRandomValues(u8)[0] : () => (Math.random() * 0xff) & 0xff;\n return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => (+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16));\n};\n//# sourceMappingURL=uuid.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function isAbortError(err) {\n return (typeof err === 'object' &&\n err !== null &&\n // Spec-compliant fetch implementations\n (('name' in err && err.name === 'AbortError') ||\n // Expo fetch\n ('message' in err && String(err.message).includes('FetchRequestCanceledException'))));\n}\nexport const castToError = (err) => {\n if (err instanceof Error)\n return err;\n if (typeof err === 'object' && err !== null) {\n try {\n if (Object.prototype.toString.call(err) === '[object Error]') {\n // @ts-ignore - not all envs have native support for cause yet\n const error = new Error(err.message, err.cause ? { cause: err.cause } : {});\n if (err.stack)\n error.stack = err.stack;\n // @ts-ignore - not all envs have native support for cause yet\n if (err.cause && !error.cause)\n error.cause = err.cause;\n if (err.name)\n error.name = err.name;\n return error;\n }\n }\n catch { }\n try {\n return new Error(JSON.stringify(err));\n }\n catch { }\n }\n return new Error(err);\n};\n//# sourceMappingURL=errors.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { castToError } from \"../internal/errors.mjs\";\nexport class OpenAIError extends Error {\n}\nexport class APIError extends OpenAIError {\n constructor(status, error, message, headers) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.requestID = headers?.get('x-request-id');\n this.error = error;\n const data = error;\n this.code = data?.['code'];\n this.param = data?.['param'];\n this.type = data?.['type'];\n }\n static makeMessage(status, error, message) {\n const msg = error?.message ?\n typeof error.message === 'string' ?\n error.message\n : JSON.stringify(error.message)\n : error ? JSON.stringify(error)\n : message;\n if (status && msg) {\n return `${status} ${msg}`;\n }\n if (status) {\n return `${status} status code (no body)`;\n }\n if (msg) {\n return msg;\n }\n return '(no status code or body)';\n }\n static generate(status, errorResponse, message, headers) {\n if (!status || !headers) {\n return new APIConnectionError({ message, cause: castToError(errorResponse) });\n }\n const error = errorResponse?.['error'];\n if (status === 400) {\n return new BadRequestError(status, error, message, headers);\n }\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers);\n }\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers);\n }\n if (status === 404) {\n return new NotFoundError(status, error, message, headers);\n }\n if (status === 409) {\n return new ConflictError(status, error, message, headers);\n }\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers);\n }\n if (status === 429) {\n return new RateLimitError(status, error, message, headers);\n }\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers);\n }\n return new APIError(status, error, message, headers);\n }\n}\nexport class APIUserAbortError extends APIError {\n constructor({ message } = {}) {\n super(undefined, undefined, message || 'Request was aborted.', undefined);\n }\n}\nexport class APIConnectionError extends APIError {\n constructor({ message, cause }) {\n super(undefined, undefined, message || 'Connection error.', undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause)\n this.cause = cause;\n }\n}\nexport class APIConnectionTimeoutError extends APIConnectionError {\n constructor({ message } = {}) {\n super({ message: message ?? 'Request timed out.' });\n }\n}\nexport class BadRequestError extends APIError {\n}\nexport class AuthenticationError extends APIError {\n}\nexport class PermissionDeniedError extends APIError {\n}\nexport class NotFoundError extends APIError {\n}\nexport class ConflictError extends APIError {\n}\nexport class UnprocessableEntityError extends APIError {\n}\nexport class RateLimitError extends APIError {\n}\nexport class InternalServerError extends APIError {\n}\nexport class LengthFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the length limit was reached`);\n }\n}\nexport class ContentFilterFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the request was rejected by the content filter`);\n }\n}\nexport class InvalidWebhookSignatureError extends Error {\n constructor(message) {\n super(message);\n }\n}\n//# sourceMappingURL=error.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { OpenAIError } from \"../../core/error.mjs\";\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\nexport const isAbsoluteURL = (url) => {\n return startsWithSchemeRegexp.test(url);\n};\nexport let isArray = (val) => ((isArray = Array.isArray), isArray(val));\nexport let isReadonlyArray = isArray;\n/** Returns an object if the given value isn't an object, otherwise returns as-is */\nexport function maybeObj(x) {\n if (typeof x !== 'object') {\n return {};\n }\n return x ?? {};\n}\n// https://stackoverflow.com/a/34491287\nexport function isEmptyObj(obj) {\n if (!obj)\n return true;\n for (const _k in obj)\n return false;\n return true;\n}\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nexport function hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nexport function isObj(obj) {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexport const ensurePresent = (value) => {\n if (value == null) {\n throw new OpenAIError(`Expected a value to be given but received ${value} instead.`);\n }\n return value;\n};\nexport const validatePositiveInteger = (name, n) => {\n if (typeof n !== 'number' || !Number.isInteger(n)) {\n throw new OpenAIError(`${name} must be an integer`);\n }\n if (n < 0) {\n throw new OpenAIError(`${name} must be a positive integer`);\n }\n return n;\n};\nexport const coerceInteger = (value) => {\n if (typeof value === 'number')\n return Math.round(value);\n if (typeof value === 'string')\n return parseInt(value, 10);\n throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceFloat = (value) => {\n if (typeof value === 'number')\n return value;\n if (typeof value === 'string')\n return parseFloat(value);\n throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceBoolean = (value) => {\n if (typeof value === 'boolean')\n return value;\n if (typeof value === 'string')\n return value === 'true';\n return Boolean(value);\n};\nexport const maybeCoerceInteger = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceInteger(value);\n};\nexport const maybeCoerceFloat = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceFloat(value);\n};\nexport const maybeCoerceBoolean = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceBoolean(value);\n};\nexport const safeJSON = (text) => {\n try {\n return JSON.parse(text);\n }\n catch (err) {\n return undefined;\n }\n};\n//# sourceMappingURL=values.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\n//# sourceMappingURL=sleep.mjs.map","export const VERSION = '6.9.1'; // x-release-please-version\n//# sourceMappingURL=version.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { VERSION } from \"../version.mjs\";\nexport const isRunningInBrowser = () => {\n return (\n // @ts-ignore\n typeof window !== 'undefined' &&\n // @ts-ignore\n typeof window.document !== 'undefined' &&\n // @ts-ignore\n typeof navigator !== 'undefined');\n};\n/**\n * Note this does not detect 'browser'; for that, use getBrowserInfo().\n */\nfunction getDetectedPlatform() {\n if (typeof Deno !== 'undefined' && Deno.build != null) {\n return 'deno';\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return 'edge';\n }\n if (Object.prototype.toString.call(typeof globalThis.process !== 'undefined' ? globalThis.process : 0) === '[object process]') {\n return 'node';\n }\n return 'unknown';\n}\nconst getPlatformProperties = () => {\n const detectedPlatform = getDetectedPlatform();\n if (detectedPlatform === 'deno') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(Deno.build.os),\n 'X-Stainless-Arch': normalizeArch(Deno.build.arch),\n 'X-Stainless-Runtime': 'deno',\n 'X-Stainless-Runtime-Version': typeof Deno.version === 'string' ? Deno.version : Deno.version?.deno ?? 'unknown',\n };\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': `other:${EdgeRuntime}`,\n 'X-Stainless-Runtime': 'edge',\n 'X-Stainless-Runtime-Version': globalThis.process.version,\n };\n }\n // Check if Node.js\n if (detectedPlatform === 'node') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(globalThis.process.platform ?? 'unknown'),\n 'X-Stainless-Arch': normalizeArch(globalThis.process.arch ?? 'unknown'),\n 'X-Stainless-Runtime': 'node',\n 'X-Stainless-Runtime-Version': globalThis.process.version ?? 'unknown',\n };\n }\n const browserInfo = getBrowserInfo();\n if (browserInfo) {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': `browser:${browserInfo.browser}`,\n 'X-Stainless-Runtime-Version': browserInfo.version,\n };\n }\n // TODO add support for Cloudflare workers, etc.\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': 'unknown',\n 'X-Stainless-Runtime-Version': 'unknown',\n };\n};\n// Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts\nfunction getBrowserInfo() {\n if (typeof navigator === 'undefined' || !navigator) {\n return null;\n }\n // NOTE: The order matters here!\n const browserPatterns = [\n { key: 'edge', pattern: /Edge(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /MSIE(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /Trident(?:.*rv\\:(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'chrome', pattern: /Chrome(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'firefox', pattern: /Firefox(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'safari', pattern: /(?:Version\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?(?:\\W+Mobile\\S*)?\\W+Safari/ },\n ];\n // Find the FIRST matching browser\n for (const { key, pattern } of browserPatterns) {\n const match = pattern.exec(navigator.userAgent);\n if (match) {\n const major = match[1] || 0;\n const minor = match[2] || 0;\n const patch = match[3] || 0;\n return { browser: key, version: `${major}.${minor}.${patch}` };\n }\n }\n return null;\n}\nconst normalizeArch = (arch) => {\n // Node docs:\n // - https://nodejs.org/api/process.html#processarch\n // Deno docs:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n if (arch === 'x32')\n return 'x32';\n if (arch === 'x86_64' || arch === 'x64')\n return 'x64';\n if (arch === 'arm')\n return 'arm';\n if (arch === 'aarch64' || arch === 'arm64')\n return 'arm64';\n if (arch)\n return `other:${arch}`;\n return 'unknown';\n};\nconst normalizePlatform = (platform) => {\n // Node platforms:\n // - https://nodejs.org/api/process.html#processplatform\n // Deno platforms:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n // - https://github.com/denoland/deno/issues/14799\n platform = platform.toLowerCase();\n // NOTE: this iOS check is untested and may not work\n // Node does not work natively on IOS, there is a fork at\n // https://github.com/nodejs-mobile/nodejs-mobile\n // however it is unknown at the time of writing how to detect if it is running\n if (platform.includes('ios'))\n return 'iOS';\n if (platform === 'android')\n return 'Android';\n if (platform === 'darwin')\n return 'MacOS';\n if (platform === 'win32')\n return 'Windows';\n if (platform === 'freebsd')\n return 'FreeBSD';\n if (platform === 'openbsd')\n return 'OpenBSD';\n if (platform === 'linux')\n return 'Linux';\n if (platform)\n return `Other:${platform}`;\n return 'Unknown';\n};\nlet _platformHeaders;\nexport const getPlatformHeaders = () => {\n return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));\n};\n//# sourceMappingURL=detect-platform.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function getDefaultFetch() {\n if (typeof fetch !== 'undefined') {\n return fetch;\n }\n throw new Error('`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`');\n}\nexport function makeReadableStream(...args) {\n const ReadableStream = globalThis.ReadableStream;\n if (typeof ReadableStream === 'undefined') {\n // Note: All of the platforms / runtimes we officially support already define\n // `ReadableStream` as a global, so this should only ever be hit on unsupported runtimes.\n throw new Error('`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`');\n }\n return new ReadableStream(...args);\n}\nexport function ReadableStreamFrom(iterable) {\n let iter = Symbol.asyncIterator in iterable ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\n return makeReadableStream({\n start() { },\n async pull(controller) {\n const { done, value } = await iter.next();\n if (done) {\n controller.close();\n }\n else {\n controller.enqueue(value);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n}\n/**\n * Most browsers don't yet have async iterable support for ReadableStream,\n * and Node has a very different way of reading bytes from its \"ReadableStream\".\n *\n * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490\n */\nexport function ReadableStreamToAsyncIterable(stream) {\n if (stream[Symbol.asyncIterator])\n return stream;\n const reader = stream.getReader();\n return {\n async next() {\n try {\n const result = await reader.read();\n if (result?.done)\n reader.releaseLock(); // release lock when stream becomes closed\n return result;\n }\n catch (e) {\n reader.releaseLock(); // release lock when stream becomes errored\n throw e;\n }\n },\n async return() {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n return { done: true, value: undefined };\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n/**\n * Cancels a ReadableStream we don't need to consume.\n * See https://undici.nodejs.org/#/?id=garbage-collection\n */\nexport async function CancelReadableStream(stream) {\n if (stream === null || typeof stream !== 'object')\n return;\n if (stream[Symbol.asyncIterator]) {\n await stream[Symbol.asyncIterator]().return?.();\n return;\n }\n const reader = stream.getReader();\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n}\n//# sourceMappingURL=shims.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const FallbackEncoder = ({ headers, body }) => {\n return {\n bodyHeaders: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify(body),\n };\n};\n//# sourceMappingURL=request-options.mjs.map","export const default_format = 'RFC3986';\nexport const default_formatter = (v) => String(v);\nexport const formatters = {\n RFC1738: (v) => String(v).replace(/%20/g, '+'),\n RFC3986: default_formatter,\n};\nexport const RFC1738 = 'RFC1738';\nexport const RFC3986 = 'RFC3986';\n//# sourceMappingURL=formats.mjs.map","import { RFC1738 } from \"./formats.mjs\";\nimport { isArray } from \"../utils/values.mjs\";\nexport let has = (obj, key) => ((has = Object.hasOwn ?? Function.prototype.call.bind(Object.prototype.hasOwnProperty)),\n has(obj, key));\nconst hex_table = /* @__PURE__ */ (() => {\n const array = [];\n for (let i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n return array;\n})();\nfunction compact_queue(queue) {\n while (queue.length > 1) {\n const item = queue.pop();\n if (!item)\n continue;\n const obj = item.obj[item.prop];\n if (isArray(obj)) {\n const compacted = [];\n for (let j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n // @ts-ignore\n item.obj[item.prop] = compacted;\n }\n }\n}\nfunction array_to_object(source, options) {\n const obj = options && options.plainObjects ? Object.create(null) : {};\n for (let i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n return obj;\n}\nexport function merge(target, source, options = {}) {\n if (!source) {\n return target;\n }\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n }\n else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has(Object.prototype, source)) {\n target[source] = true;\n }\n }\n else {\n return [target, source];\n }\n return target;\n }\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n let mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n // @ts-ignore\n mergeTarget = array_to_object(target, options);\n }\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has(target, i)) {\n const targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n }\n else {\n target.push(item);\n }\n }\n else {\n target[i] = item;\n }\n });\n return target;\n }\n return Object.keys(source).reduce(function (acc, key) {\n const value = source[key];\n if (has(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n }\n else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n}\nexport function assign_single_source(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n}\nexport function decode(str, _, charset) {\n const strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n }\n catch (e) {\n return strWithoutPlus;\n }\n}\nconst limit = 1024;\nexport const encode = (str, _defaultEncoder, charset, _kind, format) => {\n // This code was originally written by Brian White for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n let string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n }\n else if (typeof str !== 'string') {\n string = String(str);\n }\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n let out = '';\n for (let j = 0; j < string.length; j += limit) {\n const segment = string.length >= limit ? string.slice(j, j + limit) : string;\n const arr = [];\n for (let i = 0; i < segment.length; ++i) {\n let c = segment.charCodeAt(i);\n if (c === 0x2d || // -\n c === 0x2e || // .\n c === 0x5f || // _\n c === 0x7e || // ~\n (c >= 0x30 && c <= 0x39) || // 0-9\n (c >= 0x41 && c <= 0x5a) || // a-z\n (c >= 0x61 && c <= 0x7a) || // A-Z\n (format === RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n if (c < 0x80) {\n arr[arr.length] = hex_table[c];\n continue;\n }\n if (c < 0x800) {\n arr[arr.length] = hex_table[0xc0 | (c >> 6)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n if (c < 0xd800 || c >= 0xe000) {\n arr[arr.length] =\n hex_table[0xe0 | (c >> 12)] + hex_table[0x80 | ((c >> 6) & 0x3f)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n i += 1;\n c = 0x10000 + (((c & 0x3ff) << 10) | (segment.charCodeAt(i) & 0x3ff));\n arr[arr.length] =\n hex_table[0xf0 | (c >> 18)] +\n hex_table[0x80 | ((c >> 12) & 0x3f)] +\n hex_table[0x80 | ((c >> 6) & 0x3f)] +\n hex_table[0x80 | (c & 0x3f)];\n }\n out += arr.join('');\n }\n return out;\n};\nexport function compact(value) {\n const queue = [{ obj: { o: value }, prop: 'o' }];\n const refs = [];\n for (let i = 0; i < queue.length; ++i) {\n const item = queue[i];\n // @ts-ignore\n const obj = item.obj[item.prop];\n const keys = Object.keys(obj);\n for (let j = 0; j < keys.length; ++j) {\n const key = keys[j];\n const val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n compact_queue(queue);\n return value;\n}\nexport function is_regexp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nexport function is_buffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n}\nexport function combine(a, b) {\n return [].concat(a, b);\n}\nexport function maybe_map(val, fn) {\n if (isArray(val)) {\n const mapped = [];\n for (let i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n}\n//# sourceMappingURL=utils.mjs.map","import { encode, is_buffer, maybe_map, has } from \"./utils.mjs\";\nimport { default_format, default_formatter, formatters } from \"./formats.mjs\";\nimport { isArray } from \"../utils/values.mjs\";\nconst array_prefix_generators = {\n brackets(prefix) {\n return String(prefix) + '[]';\n },\n comma: 'comma',\n indices(prefix, key) {\n return String(prefix) + '[' + key + ']';\n },\n repeat(prefix) {\n return String(prefix);\n },\n};\nconst push_to_array = function (arr, value_or_array) {\n Array.prototype.push.apply(arr, isArray(value_or_array) ? value_or_array : [value_or_array]);\n};\nlet toISOString;\nconst defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: encode,\n encodeValuesOnly: false,\n format: default_format,\n formatter: default_formatter,\n /** @deprecated */\n indices: false,\n serializeDate(date) {\n return (toISOString ?? (toISOString = Function.prototype.call.bind(Date.prototype.toISOString)))(date);\n },\n skipNulls: false,\n strictNullHandling: false,\n};\nfunction is_non_nullish_primitive(v) {\n return (typeof v === 'string' ||\n typeof v === 'number' ||\n typeof v === 'boolean' ||\n typeof v === 'symbol' ||\n typeof v === 'bigint');\n}\nconst sentinel = {};\nfunction inner_stringify(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {\n let obj = object;\n let tmp_sc = sideChannel;\n let step = 0;\n let find_flag = false;\n while ((tmp_sc = tmp_sc.get(sentinel)) !== void undefined && !find_flag) {\n // Where object last appeared in the ref tree\n const pos = tmp_sc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n }\n else {\n find_flag = true; // Break while\n }\n }\n if (typeof tmp_sc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n }\n else if (obj instanceof Date) {\n obj = serializeDate?.(obj);\n }\n else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = maybe_map(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate?.(value);\n }\n return value;\n });\n }\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ?\n // @ts-expect-error\n encoder(prefix, defaults.encoder, charset, 'key', format)\n : prefix;\n }\n obj = '';\n }\n if (is_non_nullish_primitive(obj) || is_buffer(obj)) {\n if (encoder) {\n const key_value = encodeValuesOnly ? prefix\n // @ts-expect-error\n : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [\n formatter?.(key_value) +\n '=' +\n // @ts-expect-error\n formatter?.(encoder(obj, defaults.encoder, charset, 'value', format)),\n ];\n }\n return [formatter?.(prefix) + '=' + formatter?.(String(obj))];\n }\n const values = [];\n if (typeof obj === 'undefined') {\n return values;\n }\n let obj_keys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n // @ts-expect-error values only\n obj = maybe_map(obj, encoder);\n }\n obj_keys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n }\n else if (isArray(filter)) {\n obj_keys = filter;\n }\n else {\n const keys = Object.keys(obj);\n obj_keys = sort ? keys.sort(sort) : keys;\n }\n const encoded_prefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n const adjusted_prefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encoded_prefix + '[]' : encoded_prefix;\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjusted_prefix + '[]';\n }\n for (let j = 0; j < obj_keys.length; ++j) {\n const key = obj_keys[j];\n const value = \n // @ts-ignore\n typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n if (skipNulls && value === null) {\n continue;\n }\n // @ts-ignore\n const encoded_key = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n const key_prefix = isArray(obj) ?\n typeof generateArrayPrefix === 'function' ?\n generateArrayPrefix(adjusted_prefix, encoded_key)\n : adjusted_prefix\n : adjusted_prefix + (allowDots ? '.' + encoded_key : '[' + encoded_key + ']');\n sideChannel.set(object, step);\n const valueSideChannel = new WeakMap();\n valueSideChannel.set(sentinel, sideChannel);\n push_to_array(values, inner_stringify(value, key_prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, \n // @ts-ignore\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, valueSideChannel));\n }\n return values;\n}\nfunction normalize_stringify_options(opts = defaults) {\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n const charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n let format = default_format;\n if (typeof opts.format !== 'undefined') {\n if (!has(formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n const formatter = formatters[format];\n let filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n let arrayFormat;\n if (opts.arrayFormat && opts.arrayFormat in array_prefix_generators) {\n arrayFormat = opts.arrayFormat;\n }\n else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n }\n else {\n arrayFormat = defaults.arrayFormat;\n }\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n const allowDots = typeof opts.allowDots === 'undefined' ?\n !!opts.encodeDotInKeys === true ?\n true\n : defaults.allowDots\n : !!opts.allowDots;\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n // @ts-ignore\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: !!opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n // @ts-ignore\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n };\n}\nexport function stringify(object, opts = {}) {\n let obj = object;\n const options = normalize_stringify_options(opts);\n let obj_keys;\n let filter;\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n }\n else if (isArray(options.filter)) {\n filter = options.filter;\n obj_keys = filter;\n }\n const keys = [];\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n const generateArrayPrefix = array_prefix_generators[options.arrayFormat];\n const commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n if (!obj_keys) {\n obj_keys = Object.keys(obj);\n }\n if (options.sort) {\n obj_keys.sort(options.sort);\n }\n const sideChannel = new WeakMap();\n for (let i = 0; i < obj_keys.length; ++i) {\n const key = obj_keys[i];\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n push_to_array(keys, inner_stringify(obj[key], key, \n // @ts-expect-error\n generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));\n }\n const joined = keys.join(options.delimiter);\n let prefix = options.addQueryPrefix === true ? '?' : '';\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n }\n else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n return joined.length > 0 ? prefix + joined : '';\n}\n//# sourceMappingURL=stringify.mjs.map","export function concatBytes(buffers) {\n let length = 0;\n for (const buffer of buffers) {\n length += buffer.length;\n }\n const output = new Uint8Array(length);\n let index = 0;\n for (const buffer of buffers) {\n output.set(buffer, index);\n index += buffer.length;\n }\n return output;\n}\nlet encodeUTF8_;\nexport function encodeUTF8(str) {\n let encoder;\n return (encodeUTF8_ ??\n ((encoder = new globalThis.TextEncoder()), (encodeUTF8_ = encoder.encode.bind(encoder))))(str);\n}\nlet decodeUTF8_;\nexport function decodeUTF8(bytes) {\n let decoder;\n return (decodeUTF8_ ??\n ((decoder = new globalThis.TextDecoder()), (decodeUTF8_ = decoder.decode.bind(decoder))))(bytes);\n}\n//# sourceMappingURL=bytes.mjs.map","var _LineDecoder_buffer, _LineDecoder_carriageReturnIndex;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../tslib.mjs\";\nimport { concatBytes, decodeUTF8, encodeUTF8 } from \"../utils/bytes.mjs\";\n/**\n * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally\n * reading lines from text.\n *\n * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258\n */\nexport class LineDecoder {\n constructor() {\n _LineDecoder_buffer.set(this, void 0);\n _LineDecoder_carriageReturnIndex.set(this, void 0);\n __classPrivateFieldSet(this, _LineDecoder_buffer, new Uint8Array(), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n decode(chunk) {\n if (chunk == null) {\n return [];\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n __classPrivateFieldSet(this, _LineDecoder_buffer, concatBytes([__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\"), binaryChunk]), \"f\");\n const lines = [];\n let patternIndex;\n while ((patternIndex = findNewlineIndex(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\"), __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\"))) != null) {\n if (patternIndex.carriage && __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") == null) {\n // skip until we either get a corresponding `\\n`, a new `\\r` or nothing\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, patternIndex.index, \"f\");\n continue;\n }\n // we got double \\r or \\rtext\\n\n if (__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") != null &&\n (patternIndex.index !== __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") + 1 || patternIndex.carriage)) {\n lines.push(decodeUTF8(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(0, __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") - 1)));\n __classPrivateFieldSet(this, _LineDecoder_buffer, __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\")), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n continue;\n }\n const endIndex = __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") !== null ? patternIndex.preceding - 1 : patternIndex.preceding;\n const line = decodeUTF8(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(0, endIndex));\n lines.push(line);\n __classPrivateFieldSet(this, _LineDecoder_buffer, __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(patternIndex.index), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n return lines;\n }\n flush() {\n if (!__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length) {\n return [];\n }\n return this.decode('\\n');\n }\n}\n_LineDecoder_buffer = new WeakMap(), _LineDecoder_carriageReturnIndex = new WeakMap();\n// prettier-ignore\nLineDecoder.NEWLINE_CHARS = new Set(['\\n', '\\r']);\nLineDecoder.NEWLINE_REGEXP = /\\r\\n|[\\n\\r]/g;\n/**\n * This function searches the buffer for the end patterns, (\\r or \\n)\n * and returns an object with the index preceding the matched newline and the\n * index after the newline char. `null` is returned if no new line is found.\n *\n * ```ts\n * findNewLineIndex('abc\\ndef') -> { preceding: 2, index: 3 }\n * ```\n */\nfunction findNewlineIndex(buffer, startIndex) {\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = startIndex ?? 0; i < buffer.length; i++) {\n if (buffer[i] === newline) {\n return { preceding: i, index: i + 1, carriage: false };\n }\n if (buffer[i] === carriage) {\n return { preceding: i, index: i + 1, carriage: true };\n }\n }\n return null;\n}\nexport function findDoubleNewlineIndex(buffer) {\n // This function searches the buffer for the end patterns (\\r\\r, \\n\\n, \\r\\n\\r\\n)\n // and returns the index right after the first occurrence of any pattern,\n // or -1 if none of the patterns are found.\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = 0; i < buffer.length - 1; i++) {\n if (buffer[i] === newline && buffer[i + 1] === newline) {\n // \\n\\n\n return i + 2;\n }\n if (buffer[i] === carriage && buffer[i + 1] === carriage) {\n // \\r\\r\n return i + 2;\n }\n if (buffer[i] === carriage &&\n buffer[i + 1] === newline &&\n i + 3 < buffer.length &&\n buffer[i + 2] === carriage &&\n buffer[i + 3] === newline) {\n // \\r\\n\\r\\n\n return i + 4;\n }\n }\n return -1;\n}\n//# sourceMappingURL=line.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { hasOwn } from \"./values.mjs\";\nconst levelNumbers = {\n off: 0,\n error: 200,\n warn: 300,\n info: 400,\n debug: 500,\n};\nexport const parseLogLevel = (maybeLevel, sourceName, client) => {\n if (!maybeLevel) {\n return undefined;\n }\n if (hasOwn(levelNumbers, maybeLevel)) {\n return maybeLevel;\n }\n loggerFor(client).warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);\n return undefined;\n};\nfunction noop() { }\nfunction makeLogFn(fnLevel, logger, logLevel) {\n if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {\n return noop;\n }\n else {\n // Don't wrap logger functions, we want the stacktrace intact!\n return logger[fnLevel].bind(logger);\n }\n}\nconst noopLogger = {\n error: noop,\n warn: noop,\n info: noop,\n debug: noop,\n};\nlet cachedLoggers = /* @__PURE__ */ new WeakMap();\nexport function loggerFor(client) {\n const logger = client.logger;\n const logLevel = client.logLevel ?? 'off';\n if (!logger) {\n return noopLogger;\n }\n const cachedLogger = cachedLoggers.get(logger);\n if (cachedLogger && cachedLogger[0] === logLevel) {\n return cachedLogger[1];\n }\n const levelLogger = {\n error: makeLogFn('error', logger, logLevel),\n warn: makeLogFn('warn', logger, logLevel),\n info: makeLogFn('info', logger, logLevel),\n debug: makeLogFn('debug', logger, logLevel),\n };\n cachedLoggers.set(logger, [logLevel, levelLogger]);\n return levelLogger;\n}\nexport const formatRequestDetails = (details) => {\n if (details.options) {\n details.options = { ...details.options };\n delete details.options['headers']; // redundant + leaks internals\n }\n if (details.headers) {\n details.headers = Object.fromEntries((details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(([name, value]) => [\n name,\n (name.toLowerCase() === 'authorization' ||\n name.toLowerCase() === 'cookie' ||\n name.toLowerCase() === 'set-cookie') ?\n '***'\n : value,\n ]));\n }\n if ('retryOfRequestLogID' in details) {\n if (details.retryOfRequestLogID) {\n details.retryOf = details.retryOfRequestLogID;\n }\n delete details.retryOfRequestLogID;\n }\n return details;\n};\n//# sourceMappingURL=log.mjs.map","var _Stream_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"./error.mjs\";\nimport { makeReadableStream } from \"../internal/shims.mjs\";\nimport { findDoubleNewlineIndex, LineDecoder } from \"../internal/decoders/line.mjs\";\nimport { ReadableStreamToAsyncIterable } from \"../internal/shims.mjs\";\nimport { isAbortError } from \"../internal/errors.mjs\";\nimport { encodeUTF8 } from \"../internal/utils/bytes.mjs\";\nimport { loggerFor } from \"../internal/utils/log.mjs\";\nimport { APIError } from \"./error.mjs\";\nexport class Stream {\n constructor(iterator, controller, client) {\n this.iterator = iterator;\n _Stream_client.set(this, void 0);\n this.controller = controller;\n __classPrivateFieldSet(this, _Stream_client, client, \"f\");\n }\n static fromSSEResponse(response, controller, client) {\n let consumed = false;\n const logger = client ? loggerFor(client) : console;\n async function* iterator() {\n if (consumed) {\n throw new OpenAIError('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const sse of _iterSSEMessages(response, controller)) {\n if (done)\n continue;\n if (sse.data.startsWith('[DONE]')) {\n done = true;\n continue;\n }\n if (sse.event === null || !sse.event.startsWith('thread.')) {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n logger.error(`Could not parse message into JSON:`, sse.data);\n logger.error(`From chunk:`, sse.raw);\n throw e;\n }\n if (data && data.error) {\n throw new APIError(undefined, data.error, undefined, response.headers);\n }\n yield data;\n }\n else {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n console.error(`Could not parse message into JSON:`, sse.data);\n console.error(`From chunk:`, sse.raw);\n throw e;\n }\n // TODO: Is this where the error should be thrown?\n if (sse.event == 'error') {\n throw new APIError(undefined, data.error, data.message, undefined);\n }\n yield { event: sse.event, data: data };\n }\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e))\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller, client);\n }\n /**\n * Generates a Stream from a newline-separated ReadableStream\n * where each item is a JSON value.\n */\n static fromReadableStream(readableStream, controller, client) {\n let consumed = false;\n async function* iterLines() {\n const lineDecoder = new LineDecoder();\n const iter = ReadableStreamToAsyncIterable(readableStream);\n for await (const chunk of iter) {\n for (const line of lineDecoder.decode(chunk)) {\n yield line;\n }\n }\n for (const line of lineDecoder.flush()) {\n yield line;\n }\n }\n async function* iterator() {\n if (consumed) {\n throw new OpenAIError('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const line of iterLines()) {\n if (done)\n continue;\n if (line)\n yield JSON.parse(line);\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e))\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller, client);\n }\n [(_Stream_client = new WeakMap(), Symbol.asyncIterator)]() {\n return this.iterator();\n }\n /**\n * Splits the stream into two streams which can be\n * independently read from at different speeds.\n */\n tee() {\n const left = [];\n const right = [];\n const iterator = this.iterator();\n const teeIterator = (queue) => {\n return {\n next: () => {\n if (queue.length === 0) {\n const result = iterator.next();\n left.push(result);\n right.push(result);\n }\n return queue.shift();\n },\n };\n };\n return [\n new Stream(() => teeIterator(left), this.controller, __classPrivateFieldGet(this, _Stream_client, \"f\")),\n new Stream(() => teeIterator(right), this.controller, __classPrivateFieldGet(this, _Stream_client, \"f\")),\n ];\n }\n /**\n * Converts this stream to a newline-separated ReadableStream of\n * JSON stringified values in the stream\n * which can be turned back into a Stream with `Stream.fromReadableStream()`.\n */\n toReadableStream() {\n const self = this;\n let iter;\n return makeReadableStream({\n async start() {\n iter = self[Symbol.asyncIterator]();\n },\n async pull(ctrl) {\n try {\n const { value, done } = await iter.next();\n if (done)\n return ctrl.close();\n const bytes = encodeUTF8(JSON.stringify(value) + '\\n');\n ctrl.enqueue(bytes);\n }\n catch (err) {\n ctrl.error(err);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n }\n}\nexport async function* _iterSSEMessages(response, controller) {\n if (!response.body) {\n controller.abort();\n if (typeof globalThis.navigator !== 'undefined' &&\n globalThis.navigator.product === 'ReactNative') {\n throw new OpenAIError(`The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`);\n }\n throw new OpenAIError(`Attempted to iterate over a response with no body`);\n }\n const sseDecoder = new SSEDecoder();\n const lineDecoder = new LineDecoder();\n const iter = ReadableStreamToAsyncIterable(response.body);\n for await (const sseChunk of iterSSEChunks(iter)) {\n for (const line of lineDecoder.decode(sseChunk)) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n }\n for (const line of lineDecoder.flush()) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n}\n/**\n * Given an async iterable iterator, iterates over it and yields full\n * SSE chunks, i.e. yields when a double new-line is encountered.\n */\nasync function* iterSSEChunks(iterator) {\n let data = new Uint8Array();\n for await (const chunk of iterator) {\n if (chunk == null) {\n continue;\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n let newData = new Uint8Array(data.length + binaryChunk.length);\n newData.set(data);\n newData.set(binaryChunk, data.length);\n data = newData;\n let patternIndex;\n while ((patternIndex = findDoubleNewlineIndex(data)) !== -1) {\n yield data.slice(0, patternIndex);\n data = data.slice(patternIndex);\n }\n }\n if (data.length > 0) {\n yield data;\n }\n}\nclass SSEDecoder {\n constructor() {\n this.event = null;\n this.data = [];\n this.chunks = [];\n }\n decode(line) {\n if (line.endsWith('\\r')) {\n line = line.substring(0, line.length - 1);\n }\n if (!line) {\n // empty line and we didn't previously encounter any messages\n if (!this.event && !this.data.length)\n return null;\n const sse = {\n event: this.event,\n data: this.data.join('\\n'),\n raw: this.chunks,\n };\n this.event = null;\n this.data = [];\n this.chunks = [];\n return sse;\n }\n this.chunks.push(line);\n if (line.startsWith(':')) {\n return null;\n }\n let [fieldname, _, value] = partition(line, ':');\n if (value.startsWith(' ')) {\n value = value.substring(1);\n }\n if (fieldname === 'event') {\n this.event = value;\n }\n else if (fieldname === 'data') {\n this.data.push(value);\n }\n return null;\n }\n}\nfunction partition(str, delimiter) {\n const index = str.indexOf(delimiter);\n if (index !== -1) {\n return [str.substring(0, index), delimiter, str.substring(index + delimiter.length)];\n }\n return [str, '', ''];\n}\n//# sourceMappingURL=streaming.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { Stream } from \"../core/streaming.mjs\";\nimport { formatRequestDetails, loggerFor } from \"./utils/log.mjs\";\nexport async function defaultParseResponse(client, props) {\n const { response, requestLogID, retryOfRequestLogID, startTime } = props;\n const body = await (async () => {\n if (props.options.stream) {\n loggerFor(client).debug('response', response.status, response.url, response.headers, response.body);\n // Note: there is an invariant here that isn't represented in the type system\n // that if you set `stream: true` the response type must also be `Stream<T>`\n if (props.options.__streamClass) {\n return props.options.__streamClass.fromSSEResponse(response, props.controller, client);\n }\n return Stream.fromSSEResponse(response, props.controller, client);\n }\n // fetch refuses to read the body when the status code is 204.\n if (response.status === 204) {\n return null;\n }\n if (props.options.__binaryResponse) {\n return response;\n }\n const contentType = response.headers.get('content-type');\n const mediaType = contentType?.split(';')[0]?.trim();\n const isJSON = mediaType?.includes('application/json') || mediaType?.endsWith('+json');\n if (isJSON) {\n const json = await response.json();\n return addRequestID(json, response);\n }\n const text = await response.text();\n return text;\n })();\n loggerFor(client).debug(`[${requestLogID}] response parsed`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n body,\n durationMs: Date.now() - startTime,\n }));\n return body;\n}\nexport function addRequestID(value, response) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return value;\n }\n return Object.defineProperty(value, '_request_id', {\n value: response.headers.get('x-request-id'),\n enumerable: false,\n });\n}\n//# sourceMappingURL=parse.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _APIPromise_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { defaultParseResponse, addRequestID, } from \"../internal/parse.mjs\";\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class APIPromise extends Promise {\n constructor(client, responsePromise, parseResponse = defaultParseResponse) {\n super((resolve) => {\n // this is maybe a bit weird but this has to be a no-op to not implicitly\n // parse the response body; instead .then, .catch, .finally are overridden\n // to parse the response\n resolve(null);\n });\n this.responsePromise = responsePromise;\n this.parseResponse = parseResponse;\n _APIPromise_client.set(this, void 0);\n __classPrivateFieldSet(this, _APIPromise_client, client, \"f\");\n }\n _thenUnwrap(transform) {\n return new APIPromise(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), this.responsePromise, async (client, props) => addRequestID(transform(await this.parseResponse(client, props), props), props.response));\n }\n /**\n * Gets the raw `Response` instance instead of parsing the response\n * data.\n *\n * If you want to parse the response body but still get the `Response`\n * instance, you can use {@link withResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n asResponse() {\n return this.responsePromise.then((p) => p.response);\n }\n /**\n * Gets the parsed response data, the raw `Response` instance and the ID of the request,\n * returned via the X-Request-ID header which is useful for debugging requests and reporting\n * issues to OpenAI.\n *\n * If you just want to get the raw `Response` instance without parsing it,\n * you can use {@link asResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n async withResponse() {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response, request_id: response.headers.get('x-request-id') };\n }\n parse() {\n if (!this.parsedPromise) {\n this.parsedPromise = this.responsePromise.then((data) => this.parseResponse(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), data));\n }\n return this.parsedPromise;\n }\n then(onfulfilled, onrejected) {\n return this.parse().then(onfulfilled, onrejected);\n }\n catch(onrejected) {\n return this.parse().catch(onrejected);\n }\n finally(onfinally) {\n return this.parse().finally(onfinally);\n }\n}\n_APIPromise_client = new WeakMap();\n//# sourceMappingURL=api-promise.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _AbstractPage_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"./error.mjs\";\nimport { defaultParseResponse } from \"../internal/parse.mjs\";\nimport { APIPromise } from \"./api-promise.mjs\";\nimport { maybeObj } from \"../internal/utils/values.mjs\";\nexport class AbstractPage {\n constructor(client, response, body, options) {\n _AbstractPage_client.set(this, void 0);\n __classPrivateFieldSet(this, _AbstractPage_client, client, \"f\");\n this.options = options;\n this.response = response;\n this.body = body;\n }\n hasNextPage() {\n const items = this.getPaginatedItems();\n if (!items.length)\n return false;\n return this.nextPageRequestOptions() != null;\n }\n async getNextPage() {\n const nextOptions = this.nextPageRequestOptions();\n if (!nextOptions) {\n throw new OpenAIError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');\n }\n return await __classPrivateFieldGet(this, _AbstractPage_client, \"f\").requestAPIList(this.constructor, nextOptions);\n }\n async *iterPages() {\n let page = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n async *[(_AbstractPage_client = new WeakMap(), Symbol.asyncIterator)]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\n/**\n * This subclass of Promise will resolve to an instantiated Page once the request completes.\n *\n * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\nexport class PagePromise extends APIPromise {\n constructor(client, request, Page) {\n super(client, request, async (client, props) => new Page(client, props.response, await defaultParseResponse(client, props), props.options));\n }\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nexport class Page extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.object = body.object;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n nextPageRequestOptions() {\n return null;\n }\n}\nexport class CursorPage extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return super.hasNextPage();\n }\n nextPageRequestOptions() {\n const data = this.getPaginatedItems();\n const id = data[data.length - 1]?.id;\n if (!id) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after: id,\n },\n };\n }\n}\nexport class ConversationCursorPage extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n this.last_id = body.last_id || '';\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return super.hasNextPage();\n }\n nextPageRequestOptions() {\n const cursor = this.last_id;\n if (!cursor) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after: cursor,\n },\n };\n }\n}\n//# sourceMappingURL=pagination.mjs.map","import { ReadableStreamFrom } from \"./shims.mjs\";\nexport const checkFileSupport = () => {\n if (typeof File === 'undefined') {\n const { process } = globalThis;\n const isOldNode = typeof process?.versions?.node === 'string' && parseInt(process.versions.node.split('.')) < 20;\n throw new Error('`File` is not defined as a global, which is required for file uploads.' +\n (isOldNode ?\n \" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.\"\n : ''));\n }\n};\n/**\n * Construct a `File` instance. This is used to ensure a helpful error is thrown\n * for environments that don't define a global `File` yet.\n */\nexport function makeFile(fileBits, fileName, options) {\n checkFileSupport();\n return new File(fileBits, fileName ?? 'unknown_file', options);\n}\nexport function getName(value) {\n return (((typeof value === 'object' &&\n value !== null &&\n (('name' in value && value.name && String(value.name)) ||\n ('url' in value && value.url && String(value.url)) ||\n ('filename' in value && value.filename && String(value.filename)) ||\n ('path' in value && value.path && String(value.path)))) ||\n '')\n .split(/[\\\\/]/)\n .pop() || undefined);\n}\nexport const isAsyncIterable = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\n/**\n * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.\n * Otherwise returns the request as is.\n */\nexport const maybeMultipartFormRequestOptions = async (opts, fetch) => {\n if (!hasUploadableValue(opts.body))\n return opts;\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nexport const multipartFormRequestOptions = async (opts, fetch) => {\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nconst supportsFormDataMap = /* @__PURE__ */ new WeakMap();\n/**\n * node-fetch doesn't support the global FormData object in recent node versions. Instead of sending\n * properly-encoded form data, it just stringifies the object, resulting in a request body of \"[object FormData]\".\n * This function detects if the fetch function provided supports the global FormData object to avoid\n * confusing error messages later on.\n */\nfunction supportsFormData(fetchObject) {\n const fetch = typeof fetchObject === 'function' ? fetchObject : fetchObject.fetch;\n const cached = supportsFormDataMap.get(fetch);\n if (cached)\n return cached;\n const promise = (async () => {\n try {\n const FetchResponse = ('Response' in fetch ?\n fetch.Response\n : (await fetch('data:,')).constructor);\n const data = new FormData();\n if (data.toString() === (await new FetchResponse(data).text())) {\n return false;\n }\n return true;\n }\n catch {\n // avoid false negatives\n return true;\n }\n })();\n supportsFormDataMap.set(fetch, promise);\n return promise;\n}\nexport const createForm = async (body, fetch) => {\n if (!(await supportsFormData(fetch))) {\n throw new TypeError('The provided fetch function does not support file uploads with the current global FormData class.');\n }\n const form = new FormData();\n await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));\n return form;\n};\n// We check for Blob not File because Bun.File doesn't inherit from File,\n// but they both inherit from Blob and have a `name` property at runtime.\nconst isNamedBlob = (value) => value instanceof Blob && 'name' in value;\nconst isUploadable = (value) => typeof value === 'object' &&\n value !== null &&\n (value instanceof Response || isAsyncIterable(value) || isNamedBlob(value));\nconst hasUploadableValue = (value) => {\n if (isUploadable(value))\n return true;\n if (Array.isArray(value))\n return value.some(hasUploadableValue);\n if (value && typeof value === 'object') {\n for (const k in value) {\n if (hasUploadableValue(value[k]))\n return true;\n }\n }\n return false;\n};\nconst addFormValue = async (form, key, value) => {\n if (value === undefined)\n return;\n if (value == null) {\n throw new TypeError(`Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`);\n }\n // TODO: make nested formats configurable\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n form.append(key, String(value));\n }\n else if (value instanceof Response) {\n form.append(key, makeFile([await value.blob()], getName(value)));\n }\n else if (isAsyncIterable(value)) {\n form.append(key, makeFile([await new Response(ReadableStreamFrom(value)).blob()], getName(value)));\n }\n else if (isNamedBlob(value)) {\n form.append(key, value, getName(value));\n }\n else if (Array.isArray(value)) {\n await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));\n }\n else if (typeof value === 'object') {\n await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)));\n }\n else {\n throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);\n }\n};\n//# sourceMappingURL=uploads.mjs.map","import { getName, makeFile, isAsyncIterable } from \"./uploads.mjs\";\nimport { checkFileSupport } from \"./uploads.mjs\";\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isBlobLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.size === 'number' &&\n typeof value.type === 'string' &&\n typeof value.text === 'function' &&\n typeof value.slice === 'function' &&\n typeof value.arrayBuffer === 'function';\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isFileLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n isBlobLike(value);\nconst isResponseLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\n/**\n * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats\n * @param value the raw content of the file. Can be an {@link Uploadable}, BlobLikePart, or AsyncIterable of BlobLikeParts\n * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible\n * @param {Object=} options additional properties\n * @param {string=} options.type the MIME type of the content\n * @param {number=} options.lastModified the last modified timestamp\n * @returns a {@link File} with the given properties\n */\nexport async function toFile(value, name, options) {\n checkFileSupport();\n // If it's a promise, resolve it.\n value = await value;\n // If we've been given a `File` we don't need to do anything\n if (isFileLike(value)) {\n if (value instanceof File) {\n return value;\n }\n return makeFile([await value.arrayBuffer()], value.name);\n }\n if (isResponseLike(value)) {\n const blob = await value.blob();\n name || (name = new URL(value.url).pathname.split(/[\\\\/]/).pop());\n return makeFile(await getBytes(blob), name, options);\n }\n const parts = await getBytes(value);\n name || (name = getName(value));\n if (!options?.type) {\n const type = parts.find((part) => typeof part === 'object' && 'type' in part && part.type);\n if (typeof type === 'string') {\n options = { ...options, type };\n }\n }\n return makeFile(parts, name, options);\n}\nasync function getBytes(value) {\n let parts = [];\n if (typeof value === 'string' ||\n ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.\n value instanceof ArrayBuffer) {\n parts.push(value);\n }\n else if (isBlobLike(value)) {\n parts.push(value instanceof Blob ? value : await value.arrayBuffer());\n }\n else if (isAsyncIterable(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(...(await getBytes(chunk))); // TODO, consider validating?\n }\n }\n else {\n const constructor = value?.constructor?.name;\n throw new Error(`Unexpected data type: ${typeof value}${constructor ? `; constructor: ${constructor}` : ''}${propsForError(value)}`);\n }\n return parts;\n}\nfunction propsForError(value) {\n if (typeof value !== 'object' || value === null)\n return '';\n const props = Object.getOwnPropertyNames(value);\n return `; props: [${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\n//# sourceMappingURL=to-file.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport class APIResource {\n constructor(client) {\n this._client = client;\n }\n}\n//# sourceMappingURL=resource.mjs.map","import { OpenAIError } from \"../../core/error.mjs\";\n/**\n * Percent-encode everything that isn't safe to have in a path without encoding safe chars.\n *\n * Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:\n * > unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * > sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n * > pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n */\nexport function encodeURIPath(str) {\n return str.replace(/[^A-Za-z0-9\\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);\n}\nconst EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));\nexport const createPathTagFunction = (pathEncoder = encodeURIPath) => function path(statics, ...params) {\n // If there are no params, no processing is needed.\n if (statics.length === 1)\n return statics[0];\n let postPath = false;\n const invalidSegments = [];\n const path = statics.reduce((previousValue, currentValue, index) => {\n if (/[?#]/.test(currentValue)) {\n postPath = true;\n }\n const value = params[index];\n let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);\n if (index !== params.length &&\n (value == null ||\n (typeof value === 'object' &&\n // handle values from other realms\n value.toString ===\n Object.getPrototypeOf(Object.getPrototypeOf(value.hasOwnProperty ?? EMPTY) ?? EMPTY)\n ?.toString))) {\n encoded = value + '';\n invalidSegments.push({\n start: previousValue.length + currentValue.length,\n length: encoded.length,\n error: `Value of type ${Object.prototype.toString\n .call(value)\n .slice(8, -1)} is not a valid path parameter`,\n });\n }\n return previousValue + currentValue + (index === params.length ? '' : encoded);\n }, '');\n const pathOnly = path.split(/[?#]/, 1)[0];\n const invalidSegmentPattern = /(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)/gi;\n let match;\n // Find all invalid segments\n while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {\n invalidSegments.push({\n start: match.index,\n length: match[0].length,\n error: `Value \"${match[0]}\" can\\'t be safely passed as a path parameter`,\n });\n }\n invalidSegments.sort((a, b) => a.start - b.start);\n if (invalidSegments.length > 0) {\n let lastEnd = 0;\n const underline = invalidSegments.reduce((acc, segment) => {\n const spaces = ' '.repeat(segment.start - lastEnd);\n const arrows = '^'.repeat(segment.length);\n lastEnd = segment.start + segment.length;\n return acc + spaces + arrows;\n }, '');\n throw new OpenAIError(`Path parameters result in path with invalid segments:\\n${invalidSegments\n .map((e) => e.error)\n .join('\\n')}\\n${path}\\n${underline}`);\n }\n return path;\n};\n/**\n * URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.\n */\nexport const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);\n//# sourceMappingURL=path.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Messages extends APIResource {\n /**\n * Get the messages in a stored chat completion. Only Chat Completions that have\n * been created with the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatCompletionStoreMessage of client.chat.completions.messages.list(\n * 'completion_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(completionID, query = {}, options) {\n return this._client.getAPIList(path `/chat/completions/${completionID}/messages`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=messages.mjs.map","import { ContentFilterFinishReasonError, LengthFinishReasonError, OpenAIError } from \"../error.mjs\";\nexport function isChatCompletionFunctionTool(tool) {\n return tool !== undefined && 'function' in tool && tool.function !== undefined;\n}\nexport function makeParseableResponseFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function makeParseableTextFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableResponseFormat(response_format) {\n return response_format?.['$brand'] === 'auto-parseable-response-format';\n}\nexport function makeParseableTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nexport function maybeParseChatCompletion(completion, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...completion,\n choices: completion.choices.map((choice) => {\n assertToolCallsAreChatCompletionFunctionToolCalls(choice.message.tool_calls);\n return {\n ...choice,\n message: {\n ...choice.message,\n parsed: null,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls,\n }\n : undefined),\n },\n };\n }),\n };\n }\n return parseChatCompletion(completion, params);\n}\nexport function parseChatCompletion(completion, params) {\n const choices = completion.choices.map((choice) => {\n if (choice.finish_reason === 'length') {\n throw new LengthFinishReasonError();\n }\n if (choice.finish_reason === 'content_filter') {\n throw new ContentFilterFinishReasonError();\n }\n assertToolCallsAreChatCompletionFunctionToolCalls(choice.message.tool_calls);\n return {\n ...choice,\n message: {\n ...choice.message,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls?.map((toolCall) => parseToolCall(params, toolCall)) ?? undefined,\n }\n : undefined),\n parsed: choice.message.content && !choice.message.refusal ?\n parseResponseFormat(params, choice.message.content)\n : null,\n },\n };\n });\n return { ...completion, choices };\n}\nfunction parseResponseFormat(params, content) {\n if (params.response_format?.type !== 'json_schema') {\n return null;\n }\n if (params.response_format?.type === 'json_schema') {\n if ('$parseRaw' in params.response_format) {\n const response_format = params.response_format;\n return response_format.$parseRaw(content);\n }\n return JSON.parse(content);\n }\n return null;\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = params.tools?.find((inputTool) => isChatCompletionFunctionTool(inputTool) && inputTool.function?.name === toolCall.function.name); // TS doesn't narrow based on isChatCompletionTool\n return {\n ...toolCall,\n function: {\n ...toolCall.function,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCall.function.arguments)\n : null,\n },\n };\n}\nexport function shouldParseToolCall(params, toolCall) {\n if (!params || !('tools' in params) || !params.tools) {\n return false;\n }\n const inputTool = params.tools?.find((inputTool) => isChatCompletionFunctionTool(inputTool) && inputTool.function?.name === toolCall.function.name);\n return (isChatCompletionFunctionTool(inputTool) &&\n (isAutoParsableTool(inputTool) || inputTool?.function.strict || false));\n}\nexport function hasAutoParseableInput(params) {\n if (isAutoParsableResponseFormat(params.response_format)) {\n return true;\n }\n return (params.tools?.some((t) => isAutoParsableTool(t) || (t.type === 'function' && t.function.strict === true)) ?? false);\n}\nexport function assertToolCallsAreChatCompletionFunctionToolCalls(toolCalls) {\n for (const toolCall of toolCalls || []) {\n if (toolCall.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool calls are supported; Received \\`${toolCall.type}\\``);\n }\n }\n}\nexport function validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\n//# sourceMappingURL=parser.mjs.map","export const isAssistantMessage = (message) => {\n return message?.role === 'assistant';\n};\nexport const isToolMessage = (message) => {\n return message?.role === 'tool';\n};\nexport function isPresent(obj) {\n return obj != null;\n}\n//# sourceMappingURL=chatCompletionUtils.mjs.map","var _EventStream_instances, _EventStream_connectedPromise, _EventStream_resolveConnectedPromise, _EventStream_rejectConnectedPromise, _EventStream_endPromise, _EventStream_resolveEndPromise, _EventStream_rejectEndPromise, _EventStream_listeners, _EventStream_ended, _EventStream_errored, _EventStream_aborted, _EventStream_catchingPromiseCreated, _EventStream_handleError;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../error.mjs\";\nexport class EventStream {\n constructor() {\n _EventStream_instances.add(this);\n this.controller = new AbortController();\n _EventStream_connectedPromise.set(this, void 0);\n _EventStream_resolveConnectedPromise.set(this, () => { });\n _EventStream_rejectConnectedPromise.set(this, () => { });\n _EventStream_endPromise.set(this, void 0);\n _EventStream_resolveEndPromise.set(this, () => { });\n _EventStream_rejectEndPromise.set(this, () => { });\n _EventStream_listeners.set(this, {});\n _EventStream_ended.set(this, false);\n _EventStream_errored.set(this, false);\n _EventStream_aborted.set(this, false);\n _EventStream_catchingPromiseCreated.set(this, false);\n __classPrivateFieldSet(this, _EventStream_connectedPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveConnectedPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectConnectedPromise, reject, \"f\");\n }), \"f\");\n __classPrivateFieldSet(this, _EventStream_endPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveEndPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectEndPromise, reject, \"f\");\n }), \"f\");\n // Don't let these promises cause unhandled rejection errors.\n // we will manually cause an unhandled rejection error later\n // if the user hasn't registered any error listener or called\n // any promise-returning method.\n __classPrivateFieldGet(this, _EventStream_connectedPromise, \"f\").catch(() => { });\n __classPrivateFieldGet(this, _EventStream_endPromise, \"f\").catch(() => { });\n }\n _run(executor) {\n // Unfortunately if we call `executor()` immediately we get runtime errors about\n // references to `this` before the `super()` constructor call returns.\n setTimeout(() => {\n executor().then(() => {\n this._emitFinal();\n this._emit('end');\n }, __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_handleError).bind(this));\n }, 0);\n }\n _connected() {\n if (this.ended)\n return;\n __classPrivateFieldGet(this, _EventStream_resolveConnectedPromise, \"f\").call(this);\n this._emit('connect');\n }\n get ended() {\n return __classPrivateFieldGet(this, _EventStream_ended, \"f\");\n }\n get errored() {\n return __classPrivateFieldGet(this, _EventStream_errored, \"f\");\n }\n get aborted() {\n return __classPrivateFieldGet(this, _EventStream_aborted, \"f\");\n }\n abort() {\n this.controller.abort();\n }\n /**\n * Adds the listener function to the end of the listeners array for the event.\n * No checks are made to see if the listener has already been added. Multiple calls passing\n * the same combination of event and listener will result in the listener being added, and\n * called, multiple times.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n on(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener });\n return this;\n }\n /**\n * Removes the specified listener from the listener array for the event.\n * off() will remove, at most, one instance of a listener from the listener array. If any single\n * listener has been added multiple times to the listener array for the specified event, then\n * off() must be called multiple times to remove each instance.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n off(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (!listeners)\n return this;\n const index = listeners.findIndex((l) => l.listener === listener);\n if (index >= 0)\n listeners.splice(index, 1);\n return this;\n }\n /**\n * Adds a one-time listener function for the event. The next time the event is triggered,\n * this listener is removed and then invoked.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n once(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener, once: true });\n return this;\n }\n /**\n * This is similar to `.once()`, but returns a Promise that resolves the next time\n * the event is triggered, instead of calling a listener callback.\n * @returns a Promise that resolves the next time given event is triggered,\n * or rejects if an error is emitted. (If you request the 'error' event,\n * returns a promise that resolves with the error).\n *\n * Example:\n *\n * const message = await stream.emitted('message') // rejects if the stream errors\n */\n emitted(event) {\n return new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n if (event !== 'error')\n this.once('error', reject);\n this.once(event, resolve);\n });\n }\n async done() {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n await __classPrivateFieldGet(this, _EventStream_endPromise, \"f\");\n }\n _emit(event, ...args) {\n // make sure we don't emit any events after end\n if (__classPrivateFieldGet(this, _EventStream_ended, \"f\")) {\n return;\n }\n if (event === 'end') {\n __classPrivateFieldSet(this, _EventStream_ended, true, \"f\");\n __classPrivateFieldGet(this, _EventStream_resolveEndPromise, \"f\").call(this);\n }\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (listeners) {\n __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = listeners.filter((l) => !l.once);\n listeners.forEach(({ listener }) => listener(...args));\n }\n if (event === 'abort') {\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n return;\n }\n if (event === 'error') {\n // NOTE: _emit('error', error) should only be called from #handleError().\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n // Trigger an unhandled rejection if the user hasn't registered any error handlers.\n // If you are seeing stack traces here, make sure to handle errors via either:\n // - runner.on('error', () => ...)\n // - await runner.done()\n // - await runner.finalChatCompletion()\n // - etc.\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n }\n }\n _emitFinal() { }\n}\n_EventStream_connectedPromise = new WeakMap(), _EventStream_resolveConnectedPromise = new WeakMap(), _EventStream_rejectConnectedPromise = new WeakMap(), _EventStream_endPromise = new WeakMap(), _EventStream_resolveEndPromise = new WeakMap(), _EventStream_rejectEndPromise = new WeakMap(), _EventStream_listeners = new WeakMap(), _EventStream_ended = new WeakMap(), _EventStream_errored = new WeakMap(), _EventStream_aborted = new WeakMap(), _EventStream_catchingPromiseCreated = new WeakMap(), _EventStream_instances = new WeakSet(), _EventStream_handleError = function _EventStream_handleError(error) {\n __classPrivateFieldSet(this, _EventStream_errored, true, \"f\");\n if (error instanceof Error && error.name === 'AbortError') {\n error = new APIUserAbortError();\n }\n if (error instanceof APIUserAbortError) {\n __classPrivateFieldSet(this, _EventStream_aborted, true, \"f\");\n return this._emit('abort', error);\n }\n if (error instanceof OpenAIError) {\n return this._emit('error', error);\n }\n if (error instanceof Error) {\n const openAIError = new OpenAIError(error.message);\n // @ts-ignore\n openAIError.cause = error;\n return this._emit('error', openAIError);\n }\n return this._emit('error', new OpenAIError(String(error)));\n};\n//# sourceMappingURL=EventStream.mjs.map","export function isRunnableFunctionWithParse(fn) {\n return typeof fn.parse === 'function';\n}\n/**\n * This is helper class for passing a `function` and `parse` where the `function`\n * argument type matches the `parse` return type.\n */\nexport class ParsingToolFunction {\n constructor(input) {\n this.type = 'function';\n this.function = input;\n }\n}\n//# sourceMappingURL=RunnableFunction.mjs.map","var _AbstractChatCompletionRunner_instances, _AbstractChatCompletionRunner_getFinalContent, _AbstractChatCompletionRunner_getFinalMessage, _AbstractChatCompletionRunner_getFinalFunctionToolCall, _AbstractChatCompletionRunner_getFinalFunctionToolCallResult, _AbstractChatCompletionRunner_calculateTotalUsage, _AbstractChatCompletionRunner_validateParams, _AbstractChatCompletionRunner_stringifyFunctionCallResult;\nimport { __classPrivateFieldGet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"../error.mjs\";\nimport { isAutoParsableTool, parseChatCompletion } from \"../lib/parser.mjs\";\nimport { isAssistantMessage, isToolMessage } from \"./chatCompletionUtils.mjs\";\nimport { EventStream } from \"./EventStream.mjs\";\nimport { isRunnableFunctionWithParse, } from \"./RunnableFunction.mjs\";\nconst DEFAULT_MAX_CHAT_COMPLETIONS = 10;\nexport class AbstractChatCompletionRunner extends EventStream {\n constructor() {\n super(...arguments);\n _AbstractChatCompletionRunner_instances.add(this);\n this._chatCompletions = [];\n this.messages = [];\n }\n _addChatCompletion(chatCompletion) {\n this._chatCompletions.push(chatCompletion);\n this._emit('chatCompletion', chatCompletion);\n const message = chatCompletion.choices[0]?.message;\n if (message)\n this._addMessage(message);\n return chatCompletion;\n }\n _addMessage(message, emit = true) {\n if (!('content' in message))\n message.content = null;\n this.messages.push(message);\n if (emit) {\n this._emit('message', message);\n if (isToolMessage(message) && message.content) {\n // Note, this assumes that {role: 'tool', content: …} is always the result of a call of tool of type=function.\n this._emit('functionToolCallResult', message.content);\n }\n else if (isAssistantMessage(message) && message.tool_calls) {\n for (const tool_call of message.tool_calls) {\n if (tool_call.type === 'function') {\n this._emit('functionToolCall', tool_call.function);\n }\n }\n }\n }\n }\n /**\n * @returns a promise that resolves with the final ChatCompletion, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletion.\n */\n async finalChatCompletion() {\n await this.done();\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (!completion)\n throw new OpenAIError('stream ended without producing a ChatCompletion');\n return completion;\n }\n /**\n * @returns a promise that resolves with the content of the final ChatCompletionMessage, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalContent() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n }\n /**\n * @returns a promise that resolves with the the final assistant ChatCompletionMessage response,\n * or rejects if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalMessage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n }\n /**\n * @returns a promise that resolves with the content of the final FunctionCall, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalFunctionToolCall() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this);\n }\n async finalFunctionToolCallResult() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this);\n }\n async totalUsage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this);\n }\n allChatCompletions() {\n return [...this._chatCompletions];\n }\n _emitFinal() {\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (completion)\n this._emit('finalChatCompletion', completion);\n const finalMessage = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n if (finalMessage)\n this._emit('finalMessage', finalMessage);\n const finalContent = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n if (finalContent)\n this._emit('finalContent', finalContent);\n const finalFunctionCall = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this);\n if (finalFunctionCall)\n this._emit('finalFunctionToolCall', finalFunctionCall);\n const finalFunctionCallResult = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this);\n if (finalFunctionCallResult != null)\n this._emit('finalFunctionToolCallResult', finalFunctionCallResult);\n if (this._chatCompletions.some((c) => c.usage)) {\n this._emit('totalUsage', __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this));\n }\n }\n async _createChatCompletion(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_validateParams).call(this, params);\n const chatCompletion = await client.chat.completions.create({ ...params, stream: false }, { ...options, signal: this.controller.signal });\n this._connected();\n return this._addChatCompletion(parseChatCompletion(chatCompletion, params));\n }\n async _runChatCompletion(client, params, options) {\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n return await this._createChatCompletion(client, params, options);\n }\n async _runTools(client, params, options) {\n const role = 'tool';\n const { tool_choice = 'auto', stream, ...restParams } = params;\n const singleFunctionToCall = typeof tool_choice !== 'string' && tool_choice.type === 'function' && tool_choice?.function?.name;\n const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {};\n // TODO(someday): clean this logic up\n const inputTools = params.tools.map((tool) => {\n if (isAutoParsableTool(tool)) {\n if (!tool.$callback) {\n throw new OpenAIError('Tool given to `.runTools()` that does not have an associated function');\n }\n return {\n type: 'function',\n function: {\n function: tool.$callback,\n name: tool.function.name,\n description: tool.function.description || '',\n parameters: tool.function.parameters,\n parse: tool.$parseRaw,\n strict: true,\n },\n };\n }\n return tool;\n });\n const functionsByName = {};\n for (const f of inputTools) {\n if (f.type === 'function') {\n functionsByName[f.function.name || f.function.function.name] = f.function;\n }\n }\n const tools = 'tools' in params ?\n inputTools.map((t) => t.type === 'function' ?\n {\n type: 'function',\n function: {\n name: t.function.name || t.function.function.name,\n parameters: t.function.parameters,\n description: t.function.description,\n strict: t.function.strict,\n },\n }\n : t)\n : undefined;\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n for (let i = 0; i < maxChatCompletions; ++i) {\n const chatCompletion = await this._createChatCompletion(client, {\n ...restParams,\n tool_choice,\n tools,\n messages: [...this.messages],\n }, options);\n const message = chatCompletion.choices[0]?.message;\n if (!message) {\n throw new OpenAIError(`missing message in ChatCompletion response`);\n }\n if (!message.tool_calls?.length) {\n return;\n }\n for (const tool_call of message.tool_calls) {\n if (tool_call.type !== 'function')\n continue;\n const tool_call_id = tool_call.id;\n const { name, arguments: args } = tool_call.function;\n const fn = functionsByName[name];\n if (!fn) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. Available options are: ${Object.keys(functionsByName)\n .map((name) => JSON.stringify(name))\n .join(', ')}. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n else if (singleFunctionToCall && singleFunctionToCall !== name) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n let parsed;\n try {\n parsed = isRunnableFunctionWithParse(fn) ? await fn.parse(args) : args;\n }\n catch (error) {\n const content = error instanceof Error ? error.message : String(error);\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n // @ts-expect-error it can't rule out `never` type.\n const rawContent = await fn.function(parsed, this);\n const content = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_stringifyFunctionCallResult).call(this, rawContent);\n this._addMessage({ role, tool_call_id, content });\n if (singleFunctionToCall) {\n return;\n }\n }\n }\n return;\n }\n}\n_AbstractChatCompletionRunner_instances = new WeakSet(), _AbstractChatCompletionRunner_getFinalContent = function _AbstractChatCompletionRunner_getFinalContent() {\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this).content ?? null;\n}, _AbstractChatCompletionRunner_getFinalMessage = function _AbstractChatCompletionRunner_getFinalMessage() {\n let i = this.messages.length;\n while (i-- > 0) {\n const message = this.messages[i];\n if (isAssistantMessage(message)) {\n // TODO: support audio here\n const ret = {\n ...message,\n content: message.content ?? null,\n refusal: message.refusal ?? null,\n };\n return ret;\n }\n }\n throw new OpenAIError('stream ended without producing a ChatCompletionMessage with role=assistant');\n}, _AbstractChatCompletionRunner_getFinalFunctionToolCall = function _AbstractChatCompletionRunner_getFinalFunctionToolCall() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if (isAssistantMessage(message) && message?.tool_calls?.length) {\n return message.tool_calls.filter((x) => x.type === 'function').at(-1)?.function;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_getFinalFunctionToolCallResult = function _AbstractChatCompletionRunner_getFinalFunctionToolCallResult() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if (isToolMessage(message) &&\n message.content != null &&\n typeof message.content === 'string' &&\n this.messages.some((x) => x.role === 'assistant' &&\n x.tool_calls?.some((y) => y.type === 'function' && y.id === message.tool_call_id))) {\n return message.content;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_calculateTotalUsage = function _AbstractChatCompletionRunner_calculateTotalUsage() {\n const total = {\n completion_tokens: 0,\n prompt_tokens: 0,\n total_tokens: 0,\n };\n for (const { usage } of this._chatCompletions) {\n if (usage) {\n total.completion_tokens += usage.completion_tokens;\n total.prompt_tokens += usage.prompt_tokens;\n total.total_tokens += usage.total_tokens;\n }\n }\n return total;\n}, _AbstractChatCompletionRunner_validateParams = function _AbstractChatCompletionRunner_validateParams(params) {\n if (params.n != null && params.n > 1) {\n throw new OpenAIError('ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.');\n }\n}, _AbstractChatCompletionRunner_stringifyFunctionCallResult = function _AbstractChatCompletionRunner_stringifyFunctionCallResult(rawContent) {\n return (typeof rawContent === 'string' ? rawContent\n : rawContent === undefined ? 'undefined'\n : JSON.stringify(rawContent));\n};\n//# sourceMappingURL=AbstractChatCompletionRunner.mjs.map","import { AbstractChatCompletionRunner, } from \"./AbstractChatCompletionRunner.mjs\";\nimport { isAssistantMessage } from \"./chatCompletionUtils.mjs\";\nexport class ChatCompletionRunner extends AbstractChatCompletionRunner {\n static runTools(client, params, options) {\n const runner = new ChatCompletionRunner();\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n _addMessage(message, emit = true) {\n super._addMessage(message, emit);\n if (isAssistantMessage(message) && message.content) {\n this._emit('content', message.content);\n }\n }\n}\n//# sourceMappingURL=ChatCompletionRunner.mjs.map","const STR = 0b000000001;\nconst NUM = 0b000000010;\nconst ARR = 0b000000100;\nconst OBJ = 0b000001000;\nconst NULL = 0b000010000;\nconst BOOL = 0b000100000;\nconst NAN = 0b001000000;\nconst INFINITY = 0b010000000;\nconst MINUS_INFINITY = 0b100000000;\nconst INF = INFINITY | MINUS_INFINITY;\nconst SPECIAL = NULL | BOOL | INF | NAN;\nconst ATOM = STR | NUM | SPECIAL;\nconst COLLECTION = ARR | OBJ;\nconst ALL = ATOM | COLLECTION;\nconst Allow = {\n STR,\n NUM,\n ARR,\n OBJ,\n NULL,\n BOOL,\n NAN,\n INFINITY,\n MINUS_INFINITY,\n INF,\n SPECIAL,\n ATOM,\n COLLECTION,\n ALL,\n};\n// The JSON string segment was unable to be parsed completely\nclass PartialJSON extends Error {\n}\nclass MalformedJSON extends Error {\n}\n/**\n * Parse incomplete JSON\n * @param {string} jsonString Partial JSON to be parsed\n * @param {number} allowPartial Specify what types are allowed to be partial, see {@link Allow} for details\n * @returns The parsed JSON\n * @throws {PartialJSON} If the JSON is incomplete (related to the `allow` parameter)\n * @throws {MalformedJSON} If the JSON is malformed\n */\nfunction parseJSON(jsonString, allowPartial = Allow.ALL) {\n if (typeof jsonString !== 'string') {\n throw new TypeError(`expecting str, got ${typeof jsonString}`);\n }\n if (!jsonString.trim()) {\n throw new Error(`${jsonString} is empty`);\n }\n return _parseJSON(jsonString.trim(), allowPartial);\n}\nconst _parseJSON = (jsonString, allow) => {\n const length = jsonString.length;\n let index = 0;\n const markPartialJSON = (msg) => {\n throw new PartialJSON(`${msg} at position ${index}`);\n };\n const throwMalformedError = (msg) => {\n throw new MalformedJSON(`${msg} at position ${index}`);\n };\n const parseAny = () => {\n skipBlank();\n if (index >= length)\n markPartialJSON('Unexpected end of input');\n if (jsonString[index] === '\"')\n return parseStr();\n if (jsonString[index] === '{')\n return parseObj();\n if (jsonString[index] === '[')\n return parseArr();\n if (jsonString.substring(index, index + 4) === 'null' ||\n (Allow.NULL & allow && length - index < 4 && 'null'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return null;\n }\n if (jsonString.substring(index, index + 4) === 'true' ||\n (Allow.BOOL & allow && length - index < 4 && 'true'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return true;\n }\n if (jsonString.substring(index, index + 5) === 'false' ||\n (Allow.BOOL & allow && length - index < 5 && 'false'.startsWith(jsonString.substring(index)))) {\n index += 5;\n return false;\n }\n if (jsonString.substring(index, index + 8) === 'Infinity' ||\n (Allow.INFINITY & allow && length - index < 8 && 'Infinity'.startsWith(jsonString.substring(index)))) {\n index += 8;\n return Infinity;\n }\n if (jsonString.substring(index, index + 9) === '-Infinity' ||\n (Allow.MINUS_INFINITY & allow &&\n 1 < length - index &&\n length - index < 9 &&\n '-Infinity'.startsWith(jsonString.substring(index)))) {\n index += 9;\n return -Infinity;\n }\n if (jsonString.substring(index, index + 3) === 'NaN' ||\n (Allow.NAN & allow && length - index < 3 && 'NaN'.startsWith(jsonString.substring(index)))) {\n index += 3;\n return NaN;\n }\n return parseNum();\n };\n const parseStr = () => {\n const start = index;\n let escape = false;\n index++; // skip initial quote\n while (index < length && (jsonString[index] !== '\"' || (escape && jsonString[index - 1] === '\\\\'))) {\n escape = jsonString[index] === '\\\\' ? !escape : false;\n index++;\n }\n if (jsonString.charAt(index) == '\"') {\n try {\n return JSON.parse(jsonString.substring(start, ++index - Number(escape)));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n else if (Allow.STR & allow) {\n try {\n return JSON.parse(jsonString.substring(start, index - Number(escape)) + '\"');\n }\n catch (e) {\n // SyntaxError: Invalid escape sequence\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('\\\\')) + '\"');\n }\n }\n markPartialJSON('Unterminated string literal');\n };\n const parseObj = () => {\n index++; // skip initial brace\n skipBlank();\n const obj = {};\n try {\n while (jsonString[index] !== '}') {\n skipBlank();\n if (index >= length && Allow.OBJ & allow)\n return obj;\n const key = parseStr();\n skipBlank();\n index++; // skip colon\n try {\n const value = parseAny();\n Object.defineProperty(obj, key, { value, writable: true, enumerable: true, configurable: true });\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n throw e;\n }\n skipBlank();\n if (jsonString[index] === ',')\n index++; // skip comma\n }\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n markPartialJSON(\"Expected '}' at end of object\");\n }\n index++; // skip final brace\n return obj;\n };\n const parseArr = () => {\n index++; // skip initial bracket\n const arr = [];\n try {\n while (jsonString[index] !== ']') {\n arr.push(parseAny());\n skipBlank();\n if (jsonString[index] === ',') {\n index++; // skip comma\n }\n }\n }\n catch (e) {\n if (Allow.ARR & allow) {\n return arr;\n }\n markPartialJSON(\"Expected ']' at end of array\");\n }\n index++; // skip final bracket\n return arr;\n };\n const parseNum = () => {\n if (index === 0) {\n if (jsonString === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString);\n }\n catch (e) {\n if (Allow.NUM & allow) {\n try {\n if ('.' === jsonString[jsonString.length - 1])\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('.')));\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('e')));\n }\n catch (e) { }\n }\n throwMalformedError(String(e));\n }\n }\n const start = index;\n if (jsonString[index] === '-')\n index++;\n while (jsonString[index] && !',]}'.includes(jsonString[index]))\n index++;\n if (index == length && !(Allow.NUM & allow))\n markPartialJSON('Unterminated number literal');\n try {\n return JSON.parse(jsonString.substring(start, index));\n }\n catch (e) {\n if (jsonString.substring(start, index) === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('e')));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n };\n const skipBlank = () => {\n while (index < length && ' \\n\\r\\t'.includes(jsonString[index])) {\n index++;\n }\n };\n return parseAny();\n};\n// using this function with malformed JSON is undefined behavior\nconst partialParse = (input) => parseJSON(input, Allow.ALL ^ Allow.NUM);\nexport { partialParse, PartialJSON, MalformedJSON };\n//# sourceMappingURL=parser.mjs.map","var _ChatCompletionStream_instances, _ChatCompletionStream_params, _ChatCompletionStream_choiceEventStates, _ChatCompletionStream_currentChatCompletionSnapshot, _ChatCompletionStream_beginRequest, _ChatCompletionStream_getChoiceEventState, _ChatCompletionStream_addChunk, _ChatCompletionStream_emitToolCallDoneEvent, _ChatCompletionStream_emitContentDoneEvents, _ChatCompletionStream_endRequest, _ChatCompletionStream_getAutoParseableResponseFormat, _ChatCompletionStream_accumulateChatCompletion;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { partialParse } from \"../_vendor/partial-json-parser/parser.mjs\";\nimport { APIUserAbortError, ContentFilterFinishReasonError, LengthFinishReasonError, OpenAIError, } from \"../error.mjs\";\nimport { hasAutoParseableInput, isAutoParsableResponseFormat, isAutoParsableTool, isChatCompletionFunctionTool, maybeParseChatCompletion, shouldParseToolCall, } from \"../lib/parser.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { AbstractChatCompletionRunner, } from \"./AbstractChatCompletionRunner.mjs\";\nexport class ChatCompletionStream extends AbstractChatCompletionRunner {\n constructor(params) {\n super();\n _ChatCompletionStream_instances.add(this);\n _ChatCompletionStream_params.set(this, void 0);\n _ChatCompletionStream_choiceEventStates.set(this, void 0);\n _ChatCompletionStream_currentChatCompletionSnapshot.set(this, void 0);\n __classPrivateFieldSet(this, _ChatCompletionStream_params, params, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n }\n get currentChatCompletionSnapshot() {\n return __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n }\n /**\n * Intended for use on the frontend, consuming a stream produced with\n * `.toReadableStream()` on the backend.\n *\n * Note that messages sent to the model do not appear in `.on('message')`\n * in this context.\n */\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStream(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static createChatCompletion(client, params, options) {\n const runner = new ChatCompletionStream(params);\n runner._run(() => runner._runChatCompletion(client, { ...params, stream: true }, { ...options, headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' } }));\n return runner;\n }\n async _createChatCompletion(client, params, options) {\n super._createChatCompletion;\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n const stream = await client.chat.completions.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const chunk of stream) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n this._connected();\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n let chatId;\n for await (const chunk of stream) {\n if (chatId && chatId !== chunk.id) {\n // A new request has been made.\n this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n chatId = chunk.id;\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n [(_ChatCompletionStream_params = new WeakMap(), _ChatCompletionStream_choiceEventStates = new WeakMap(), _ChatCompletionStream_currentChatCompletionSnapshot = new WeakMap(), _ChatCompletionStream_instances = new WeakSet(), _ChatCompletionStream_beginRequest = function _ChatCompletionStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n }, _ChatCompletionStream_getChoiceEventState = function _ChatCompletionStream_getChoiceEventState(choice) {\n let state = __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index];\n if (state) {\n return state;\n }\n state = {\n content_done: false,\n refusal_done: false,\n logprobs_content_done: false,\n logprobs_refusal_done: false,\n done_tool_calls: new Set(),\n current_tool_call_index: null,\n };\n __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index] = state;\n return state;\n }, _ChatCompletionStream_addChunk = function _ChatCompletionStream_addChunk(chunk) {\n if (this.ended)\n return;\n const completion = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_accumulateChatCompletion).call(this, chunk);\n this._emit('chunk', chunk, completion);\n for (const choice of chunk.choices) {\n const choiceSnapshot = completion.choices[choice.index];\n if (choice.delta.content != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.content) {\n this._emit('content', choice.delta.content, choiceSnapshot.message.content);\n this._emit('content.delta', {\n delta: choice.delta.content,\n snapshot: choiceSnapshot.message.content,\n parsed: choiceSnapshot.message.parsed,\n });\n }\n if (choice.delta.refusal != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.refusal) {\n this._emit('refusal.delta', {\n delta: choice.delta.refusal,\n snapshot: choiceSnapshot.message.refusal,\n });\n }\n if (choice.logprobs?.content != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.content.delta', {\n content: choice.logprobs?.content,\n snapshot: choiceSnapshot.logprobs?.content ?? [],\n });\n }\n if (choice.logprobs?.refusal != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.refusal.delta', {\n refusal: choice.logprobs?.refusal,\n snapshot: choiceSnapshot.logprobs?.refusal ?? [],\n });\n }\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.finish_reason) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n for (const toolCall of choice.delta.tool_calls ?? []) {\n if (state.current_tool_call_index !== toolCall.index) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n // new tool call started, the previous one is done\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n state.current_tool_call_index = toolCall.index;\n }\n for (const toolCallDelta of choice.delta.tool_calls ?? []) {\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallDelta.index];\n if (!toolCallSnapshot?.type) {\n continue;\n }\n if (toolCallSnapshot?.type === 'function') {\n this._emit('tool_calls.function.arguments.delta', {\n name: toolCallSnapshot.function?.name,\n index: toolCallDelta.index,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: toolCallSnapshot.function.parsed_arguments,\n arguments_delta: toolCallDelta.function?.arguments ?? '',\n });\n }\n else {\n assertNever(toolCallSnapshot?.type);\n }\n }\n }\n }, _ChatCompletionStream_emitToolCallDoneEvent = function _ChatCompletionStream_emitToolCallDoneEvent(choiceSnapshot, toolCallIndex) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (state.done_tool_calls.has(toolCallIndex)) {\n // we've already fired the done event\n return;\n }\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallIndex];\n if (!toolCallSnapshot) {\n throw new Error('no tool call snapshot');\n }\n if (!toolCallSnapshot.type) {\n throw new Error('tool call snapshot missing `type`');\n }\n if (toolCallSnapshot.type === 'function') {\n const inputTool = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.tools?.find((tool) => isChatCompletionFunctionTool(tool) && tool.function.name === toolCallSnapshot.function.name); // TS doesn't narrow based on isChatCompletionTool\n this._emit('tool_calls.function.arguments.done', {\n name: toolCallSnapshot.function.name,\n index: toolCallIndex,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCallSnapshot.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCallSnapshot.function.arguments)\n : null,\n });\n }\n else {\n assertNever(toolCallSnapshot.type);\n }\n }, _ChatCompletionStream_emitContentDoneEvents = function _ChatCompletionStream_emitContentDoneEvents(choiceSnapshot) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.message.content && !state.content_done) {\n state.content_done = true;\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this);\n this._emit('content.done', {\n content: choiceSnapshot.message.content,\n parsed: responseFormat ? responseFormat.$parseRaw(choiceSnapshot.message.content) : null,\n });\n }\n if (choiceSnapshot.message.refusal && !state.refusal_done) {\n state.refusal_done = true;\n this._emit('refusal.done', { refusal: choiceSnapshot.message.refusal });\n }\n if (choiceSnapshot.logprobs?.content && !state.logprobs_content_done) {\n state.logprobs_content_done = true;\n this._emit('logprobs.content.done', { content: choiceSnapshot.logprobs.content });\n }\n if (choiceSnapshot.logprobs?.refusal && !state.logprobs_refusal_done) {\n state.logprobs_refusal_done = true;\n this._emit('logprobs.refusal.done', { refusal: choiceSnapshot.logprobs.refusal });\n }\n }, _ChatCompletionStream_endRequest = function _ChatCompletionStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n if (!snapshot) {\n throw new OpenAIError(`request ended without sending any chunks`);\n }\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n return finalizeChatCompletion(snapshot, __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"));\n }, _ChatCompletionStream_getAutoParseableResponseFormat = function _ChatCompletionStream_getAutoParseableResponseFormat() {\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format;\n if (isAutoParsableResponseFormat(responseFormat)) {\n return responseFormat;\n }\n return null;\n }, _ChatCompletionStream_accumulateChatCompletion = function _ChatCompletionStream_accumulateChatCompletion(chunk) {\n var _a, _b, _c, _d;\n let snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n const { choices, ...rest } = chunk;\n if (!snapshot) {\n snapshot = __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, {\n ...rest,\n choices: [],\n }, \"f\");\n }\n else {\n Object.assign(snapshot, rest);\n }\n for (const { delta, finish_reason, index, logprobs = null, ...other } of chunk.choices) {\n let choice = snapshot.choices[index];\n if (!choice) {\n choice = snapshot.choices[index] = { finish_reason, index, message: {}, logprobs, ...other };\n }\n if (logprobs) {\n if (!choice.logprobs) {\n choice.logprobs = Object.assign({}, logprobs);\n }\n else {\n const { content, refusal, ...rest } = logprobs;\n assertIsEmpty(rest);\n Object.assign(choice.logprobs, rest);\n if (content) {\n (_a = choice.logprobs).content ?? (_a.content = []);\n choice.logprobs.content.push(...content);\n }\n if (refusal) {\n (_b = choice.logprobs).refusal ?? (_b.refusal = []);\n choice.logprobs.refusal.push(...refusal);\n }\n }\n }\n if (finish_reason) {\n choice.finish_reason = finish_reason;\n if (__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\") && hasAutoParseableInput(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"))) {\n if (finish_reason === 'length') {\n throw new LengthFinishReasonError();\n }\n if (finish_reason === 'content_filter') {\n throw new ContentFilterFinishReasonError();\n }\n }\n }\n Object.assign(choice, other);\n if (!delta)\n continue; // Shouldn't happen; just in case.\n const { content, refusal, function_call, role, tool_calls, ...rest } = delta;\n assertIsEmpty(rest);\n Object.assign(choice.message, rest);\n if (refusal) {\n choice.message.refusal = (choice.message.refusal || '') + refusal;\n }\n if (role)\n choice.message.role = role;\n if (function_call) {\n if (!choice.message.function_call) {\n choice.message.function_call = function_call;\n }\n else {\n if (function_call.name)\n choice.message.function_call.name = function_call.name;\n if (function_call.arguments) {\n (_c = choice.message.function_call).arguments ?? (_c.arguments = '');\n choice.message.function_call.arguments += function_call.arguments;\n }\n }\n }\n if (content) {\n choice.message.content = (choice.message.content || '') + content;\n if (!choice.message.refusal && __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this)) {\n choice.message.parsed = partialParse(choice.message.content);\n }\n }\n if (tool_calls) {\n if (!choice.message.tool_calls)\n choice.message.tool_calls = [];\n for (const { index, id, type, function: fn, ...rest } of tool_calls) {\n const tool_call = ((_d = choice.message.tool_calls)[index] ?? (_d[index] = {}));\n Object.assign(tool_call, rest);\n if (id)\n tool_call.id = id;\n if (type)\n tool_call.type = type;\n if (fn)\n tool_call.function ?? (tool_call.function = { name: fn.name ?? '', arguments: '' });\n if (fn?.name)\n tool_call.function.name = fn.name;\n if (fn?.arguments) {\n tool_call.function.arguments += fn.arguments;\n if (shouldParseToolCall(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"), tool_call)) {\n tool_call.function.parsed_arguments = partialParse(tool_call.function.arguments);\n }\n }\n }\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('chunk', (chunk) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(chunk);\n }\n else {\n pushQueue.push(chunk);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n}\nfunction finalizeChatCompletion(snapshot, params) {\n const { id, choices, created, model, system_fingerprint, ...rest } = snapshot;\n const completion = {\n ...rest,\n id,\n choices: choices.map(({ message, finish_reason, index, logprobs, ...choiceRest }) => {\n if (!finish_reason) {\n throw new OpenAIError(`missing finish_reason for choice ${index}`);\n }\n const { content = null, function_call, tool_calls, ...messageRest } = message;\n const role = message.role; // this is what we expect; in theory it could be different which would make our types a slight lie but would be fine.\n if (!role) {\n throw new OpenAIError(`missing role for choice ${index}`);\n }\n if (function_call) {\n const { arguments: args, name } = function_call;\n if (args == null) {\n throw new OpenAIError(`missing function_call.arguments for choice ${index}`);\n }\n if (!name) {\n throw new OpenAIError(`missing function_call.name for choice ${index}`);\n }\n return {\n ...choiceRest,\n message: {\n content,\n function_call: { arguments: args, name },\n role,\n refusal: message.refusal ?? null,\n },\n finish_reason,\n index,\n logprobs,\n };\n }\n if (tool_calls) {\n return {\n ...choiceRest,\n index,\n finish_reason,\n logprobs,\n message: {\n ...messageRest,\n role,\n content,\n refusal: message.refusal ?? null,\n tool_calls: tool_calls.map((tool_call, i) => {\n const { function: fn, type, id, ...toolRest } = tool_call;\n const { arguments: args, name, ...fnRest } = fn || {};\n if (id == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].id\\n${str(snapshot)}`);\n }\n if (type == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].type\\n${str(snapshot)}`);\n }\n if (name == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.name\\n${str(snapshot)}`);\n }\n if (args == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.arguments\\n${str(snapshot)}`);\n }\n return { ...toolRest, id, type, function: { ...fnRest, name, arguments: args } };\n }),\n },\n };\n }\n return {\n ...choiceRest,\n message: { ...messageRest, content, role, refusal: message.refusal ?? null },\n finish_reason,\n index,\n logprobs,\n };\n }),\n created,\n model,\n object: 'chat.completion',\n ...(system_fingerprint ? { system_fingerprint } : {}),\n };\n return maybeParseChatCompletion(completion, params);\n}\nfunction str(x) {\n return JSON.stringify(x);\n}\n/**\n * Ensures the given argument is an empty object, useful for\n * asserting that all known properties on an object have been\n * destructured.\n */\nfunction assertIsEmpty(obj) {\n return;\n}\nfunction assertNever(_x) { }\n//# sourceMappingURL=ChatCompletionStream.mjs.map","import { ChatCompletionStream } from \"./ChatCompletionStream.mjs\";\nexport class ChatCompletionStreamingRunner extends ChatCompletionStream {\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStreamingRunner(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static runTools(client, params, options) {\n const runner = new ChatCompletionStreamingRunner(\n // @ts-expect-error TODO these types are incompatible\n params);\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n}\n//# sourceMappingURL=ChatCompletionStreamingRunner.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as MessagesAPI from \"./messages.mjs\";\nimport { Messages } from \"./messages.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nimport { ChatCompletionRunner } from \"../../../lib/ChatCompletionRunner.mjs\";\nimport { ChatCompletionStreamingRunner } from \"../../../lib/ChatCompletionStreamingRunner.mjs\";\nimport { ChatCompletionStream } from \"../../../lib/ChatCompletionStream.mjs\";\nimport { parseChatCompletion, validateInputTools } from \"../../../lib/parser.mjs\";\nexport class Completions extends APIResource {\n constructor() {\n super(...arguments);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n create(body, options) {\n return this._client.post('/chat/completions', { body, ...options, stream: body.stream ?? false });\n }\n /**\n * Get a stored chat completion. Only Chat Completions that have been created with\n * the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * const chatCompletion =\n * await client.chat.completions.retrieve('completion_id');\n * ```\n */\n retrieve(completionID, options) {\n return this._client.get(path `/chat/completions/${completionID}`, options);\n }\n /**\n * Modify a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be modified. Currently, the only\n * supported modification is to update the `metadata` field.\n *\n * @example\n * ```ts\n * const chatCompletion = await client.chat.completions.update(\n * 'completion_id',\n * { metadata: { foo: 'string' } },\n * );\n * ```\n */\n update(completionID, body, options) {\n return this._client.post(path `/chat/completions/${completionID}`, { body, ...options });\n }\n /**\n * List stored Chat Completions. Only Chat Completions that have been stored with\n * the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatCompletion of client.chat.completions.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/chat/completions', (CursorPage), { query, ...options });\n }\n /**\n * Delete a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be deleted.\n *\n * @example\n * ```ts\n * const chatCompletionDeleted =\n * await client.chat.completions.delete('completion_id');\n * ```\n */\n delete(completionID, options) {\n return this._client.delete(path `/chat/completions/${completionID}`, options);\n }\n parse(body, options) {\n validateInputTools(body.tools);\n return this._client.chat.completions\n .create(body, {\n ...options,\n headers: {\n ...options?.headers,\n 'X-Stainless-Helper-Method': 'chat.completions.parse',\n },\n })\n ._thenUnwrap((completion) => parseChatCompletion(completion, body));\n }\n runTools(body, options) {\n if (body.stream) {\n return ChatCompletionStreamingRunner.runTools(this._client, body, options);\n }\n return ChatCompletionRunner.runTools(this._client, body, options);\n }\n /**\n * Creates a chat completion stream\n */\n stream(body, options) {\n return ChatCompletionStream.createChatCompletion(this._client, body, options);\n }\n}\nexport { ChatCompletionStreamingRunner } from \"../../../lib/ChatCompletionStreamingRunner.mjs\";\nexport { ParsingToolFunction, } from \"../../../lib/RunnableFunction.mjs\";\nexport { ChatCompletionStream } from \"../../../lib/ChatCompletionStream.mjs\";\nexport { ChatCompletionRunner } from \"../../../lib/ChatCompletionRunner.mjs\";\nCompletions.Messages = Messages;\n//# sourceMappingURL=completions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as CompletionsAPI from \"./completions/completions.mjs\";\nimport { Completions, } from \"./completions/completions.mjs\";\nexport class Chat extends APIResource {\n constructor() {\n super(...arguments);\n this.completions = new CompletionsAPI.Completions(this._client);\n }\n}\nChat.Completions = Completions;\n//# sourceMappingURL=chat.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { isReadonlyArray } from \"./utils/values.mjs\";\nconst brand_privateNullableHeaders = /* @__PURE__ */ Symbol('brand.privateNullableHeaders');\nfunction* iterateHeaders(headers) {\n if (!headers)\n return;\n if (brand_privateNullableHeaders in headers) {\n const { values, nulls } = headers;\n yield* values.entries();\n for (const name of nulls) {\n yield [name, null];\n }\n return;\n }\n let shouldClear = false;\n let iter;\n if (headers instanceof Headers) {\n iter = headers.entries();\n }\n else if (isReadonlyArray(headers)) {\n iter = headers;\n }\n else {\n shouldClear = true;\n iter = Object.entries(headers ?? {});\n }\n for (let row of iter) {\n const name = row[0];\n if (typeof name !== 'string')\n throw new TypeError('expected header name to be a string');\n const values = isReadonlyArray(row[1]) ? row[1] : [row[1]];\n let didClear = false;\n for (const value of values) {\n if (value === undefined)\n continue;\n // Objects keys always overwrite older headers, they never append.\n // Yield a null to clear the header before adding the new values.\n if (shouldClear && !didClear) {\n didClear = true;\n yield [name, null];\n }\n yield [name, value];\n }\n }\n}\nexport const buildHeaders = (newHeaders) => {\n const targetHeaders = new Headers();\n const nullHeaders = new Set();\n for (const headers of newHeaders) {\n const seenHeaders = new Set();\n for (const [name, value] of iterateHeaders(headers)) {\n const lowerName = name.toLowerCase();\n if (!seenHeaders.has(lowerName)) {\n targetHeaders.delete(name);\n seenHeaders.add(lowerName);\n }\n if (value === null) {\n targetHeaders.delete(name);\n nullHeaders.add(lowerName);\n }\n else {\n targetHeaders.append(name, value);\n nullHeaders.delete(lowerName);\n }\n }\n }\n return { [brand_privateNullableHeaders]: true, values: targetHeaders, nulls: nullHeaders };\n};\nexport const isEmptyHeaders = (headers) => {\n for (const _ of iterateHeaders(headers))\n return false;\n return true;\n};\n//# sourceMappingURL=headers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nexport class Speech extends APIResource {\n /**\n * Generates audio from the input text.\n *\n * @example\n * ```ts\n * const speech = await client.audio.speech.create({\n * input: 'input',\n * model: 'string',\n * voice: 'ash',\n * });\n *\n * const content = await speech.blob();\n * console.log(content);\n * ```\n */\n create(body, options) {\n return this._client.post('/audio/speech', {\n body,\n ...options,\n headers: buildHeaders([{ Accept: 'application/octet-stream' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=speech.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nexport class Transcriptions extends APIResource {\n create(body, options) {\n return this._client.post('/audio/transcriptions', multipartFormRequestOptions({\n body,\n ...options,\n stream: body.stream ?? false,\n __metadata: { model: body.model },\n }, this._client));\n }\n}\n//# sourceMappingURL=transcriptions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nexport class Translations extends APIResource {\n create(body, options) {\n return this._client.post('/audio/translations', multipartFormRequestOptions({ body, ...options, __metadata: { model: body.model } }, this._client));\n }\n}\n//# sourceMappingURL=translations.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as SpeechAPI from \"./speech.mjs\";\nimport { Speech } from \"./speech.mjs\";\nimport * as TranscriptionsAPI from \"./transcriptions.mjs\";\nimport { Transcriptions, } from \"./transcriptions.mjs\";\nimport * as TranslationsAPI from \"./translations.mjs\";\nimport { Translations, } from \"./translations.mjs\";\nexport class Audio extends APIResource {\n constructor() {\n super(...arguments);\n this.transcriptions = new TranscriptionsAPI.Transcriptions(this._client);\n this.translations = new TranslationsAPI.Translations(this._client);\n this.speech = new SpeechAPI.Speech(this._client);\n }\n}\nAudio.Transcriptions = Transcriptions;\nAudio.Translations = Translations;\nAudio.Speech = Speech;\n//# sourceMappingURL=audio.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { CursorPage } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Batches extends APIResource {\n /**\n * Creates and executes a batch from an uploaded file of requests\n */\n create(body, options) {\n return this._client.post('/batches', { body, ...options });\n }\n /**\n * Retrieves a batch.\n */\n retrieve(batchID, options) {\n return this._client.get(path `/batches/${batchID}`, options);\n }\n /**\n * List your organization's batches.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/batches', (CursorPage), { query, ...options });\n }\n /**\n * Cancels an in-progress batch. The batch will be in status `cancelling` for up to\n * 10 minutes, before changing to `cancelled`, where it will have partial results\n * (if any) available in the output file.\n */\n cancel(batchID, options) {\n return this._client.post(path `/batches/${batchID}/cancel`, options);\n }\n}\n//# sourceMappingURL=batches.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Assistants extends APIResource {\n /**\n * Create an assistant with a model and instructions.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.create({\n * model: 'gpt-4o',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/assistants', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves an assistant.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.retrieve(\n * 'assistant_id',\n * );\n * ```\n */\n retrieve(assistantID, options) {\n return this._client.get(path `/assistants/${assistantID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies an assistant.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.update(\n * 'assistant_id',\n * );\n * ```\n */\n update(assistantID, body, options) {\n return this._client.post(path `/assistants/${assistantID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of assistants.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const assistant of client.beta.assistants.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/assistants', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete an assistant.\n *\n * @example\n * ```ts\n * const assistantDeleted =\n * await client.beta.assistants.delete('assistant_id');\n * ```\n */\n delete(assistantID, options) {\n return this._client.delete(path `/assistants/${assistantID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=assistants.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nexport class Sessions extends APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API. Can be configured with the same session parameters as the\n * `session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n *\n * @example\n * ```ts\n * const session =\n * await client.beta.realtime.sessions.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nexport class TranscriptionSessions extends APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API specifically for realtime transcriptions. Can be configured with\n * the same session parameters as the `transcription_session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n *\n * @example\n * ```ts\n * const transcriptionSession =\n * await client.beta.realtime.transcriptionSessions.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/transcription_sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=transcription-sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as SessionsAPI from \"./sessions.mjs\";\nimport { Sessions, } from \"./sessions.mjs\";\nimport * as TranscriptionSessionsAPI from \"./transcription-sessions.mjs\";\nimport { TranscriptionSessions, } from \"./transcription-sessions.mjs\";\n/**\n * @deprecated Realtime has now launched and is generally available. The old beta API is now deprecated.\n */\nexport class Realtime extends APIResource {\n constructor() {\n super(...arguments);\n this.sessions = new SessionsAPI.Sessions(this._client);\n this.transcriptionSessions = new TranscriptionSessionsAPI.TranscriptionSessions(this._client);\n }\n}\nRealtime.Sessions = Sessions;\nRealtime.TranscriptionSessions = TranscriptionSessions;\n//# sourceMappingURL=realtime.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Sessions extends APIResource {\n /**\n * Create a ChatKit session\n *\n * @example\n * ```ts\n * const chatSession =\n * await client.beta.chatkit.sessions.create({\n * user: 'x',\n * workflow: { id: 'id' },\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/chatkit/sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * Cancel a ChatKit session\n *\n * @example\n * ```ts\n * const chatSession =\n * await client.beta.chatkit.sessions.cancel('cksess_123');\n * ```\n */\n cancel(sessionID, options) {\n return this._client.post(path `/chatkit/sessions/${sessionID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Threads extends APIResource {\n /**\n * Retrieve a ChatKit thread\n *\n * @example\n * ```ts\n * const chatkitThread =\n * await client.beta.chatkit.threads.retrieve('cthr_123');\n * ```\n */\n retrieve(threadID, options) {\n return this._client.get(path `/chatkit/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * List ChatKit threads\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatkitThread of client.beta.chatkit.threads.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/chatkit/threads', (ConversationCursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * Delete a ChatKit thread\n *\n * @example\n * ```ts\n * const thread = await client.beta.chatkit.threads.delete(\n * 'cthr_123',\n * );\n * ```\n */\n delete(threadID, options) {\n return this._client.delete(path `/chatkit/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * List ChatKit thread items\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const thread of client.beta.chatkit.threads.listItems(\n * 'cthr_123',\n * )) {\n * // ...\n * }\n * ```\n */\n listItems(threadID, query = {}, options) {\n return this._client.getAPIList(path `/chatkit/threads/${threadID}/items`, (ConversationCursorPage), { query, ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]) });\n }\n}\n//# sourceMappingURL=threads.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as SessionsAPI from \"./sessions.mjs\";\nimport { Sessions } from \"./sessions.mjs\";\nimport * as ThreadsAPI from \"./threads.mjs\";\nimport { Threads, } from \"./threads.mjs\";\nexport class ChatKit extends APIResource {\n constructor() {\n super(...arguments);\n this.sessions = new SessionsAPI.Sessions(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n}\nChatKit.Sessions = Sessions;\nChatKit.Threads = Threads;\n//# sourceMappingURL=chatkit.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Messages extends APIResource {\n /**\n * Create a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n create(threadID, body, options) {\n return this._client.post(path `/threads/${threadID}/messages`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieve a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(messageID, params, options) {\n const { thread_id } = params;\n return this._client.get(path `/threads/${thread_id}/messages/${messageID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(messageID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/messages/${messageID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of messages for a given thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(threadID, query = {}, options) {\n return this._client.getAPIList(path `/threads/${threadID}/messages`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Deletes a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n delete(messageID, params, options) {\n const { thread_id } = params;\n return this._client.delete(path `/threads/${thread_id}/messages/${messageID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=messages.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Steps extends APIResource {\n /**\n * Retrieves a run step.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(stepID, params, options) {\n const { thread_id, run_id, ...query } = params;\n return this._client.get(path `/threads/${thread_id}/runs/${run_id}/steps/${stepID}`, {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of run steps belonging to a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(runID, params, options) {\n const { thread_id, ...query } = params;\n return this._client.getAPIList(path `/threads/${thread_id}/runs/${runID}/steps`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=steps.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { OpenAIError } from \"../../core/error.mjs\";\nimport { encodeUTF8 } from \"./bytes.mjs\";\nexport const toBase64 = (data) => {\n if (!data)\n return '';\n if (typeof globalThis.Buffer !== 'undefined') {\n return globalThis.Buffer.from(data).toString('base64');\n }\n if (typeof data === 'string') {\n data = encodeUTF8(data);\n }\n if (typeof btoa !== 'undefined') {\n return btoa(String.fromCharCode.apply(null, data));\n }\n throw new OpenAIError('Cannot generate base64 string; Expected `Buffer` or `btoa` to be defined');\n};\nexport const fromBase64 = (str) => {\n if (typeof globalThis.Buffer !== 'undefined') {\n const buf = globalThis.Buffer.from(str, 'base64');\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n if (typeof atob !== 'undefined') {\n const bstr = atob(str);\n const buf = new Uint8Array(bstr.length);\n for (let i = 0; i < bstr.length; i++) {\n buf[i] = bstr.charCodeAt(i);\n }\n return buf;\n }\n throw new OpenAIError('Cannot decode base64 string; Expected `Buffer` or `atob` to be defined');\n};\n/**\n * Converts a Base64 encoded string to a Float32Array.\n * @param base64Str - The Base64 encoded string.\n * @returns An Array of numbers interpreted as Float32 values.\n */\nexport const toFloat32Array = (base64Str) => {\n if (typeof Buffer !== 'undefined') {\n // for Node.js environment\n const buf = Buffer.from(base64Str, 'base64');\n return Array.from(new Float32Array(buf.buffer, buf.byteOffset, buf.length / Float32Array.BYTES_PER_ELEMENT));\n }\n else {\n // for legacy web platform APIs\n const binaryStr = atob(base64Str);\n const len = binaryStr.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryStr.charCodeAt(i);\n }\n return Array.from(new Float32Array(bytes.buffer));\n }\n};\n//# sourceMappingURL=base64.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * Read an environment variable.\n *\n * Trims beginning and trailing whitespace.\n *\n * Will return undefined if the environment variable doesn't exist or cannot be accessed.\n */\nexport const readEnv = (env) => {\n if (typeof globalThis.process !== 'undefined') {\n return globalThis.process.env?.[env]?.trim() ?? undefined;\n }\n if (typeof globalThis.Deno !== 'undefined') {\n return globalThis.Deno.env?.get?.(env)?.trim();\n }\n return undefined;\n};\n//# sourceMappingURL=env.mjs.map","var _AssistantStream_instances, _a, _AssistantStream_events, _AssistantStream_runStepSnapshots, _AssistantStream_messageSnapshots, _AssistantStream_messageSnapshot, _AssistantStream_finalRun, _AssistantStream_currentContentIndex, _AssistantStream_currentContent, _AssistantStream_currentToolCallIndex, _AssistantStream_currentToolCall, _AssistantStream_currentEvent, _AssistantStream_currentRunSnapshot, _AssistantStream_currentRunStepSnapshot, _AssistantStream_addEvent, _AssistantStream_endRequest, _AssistantStream_handleMessage, _AssistantStream_handleRunStep, _AssistantStream_handleEvent, _AssistantStream_accumulateRunStep, _AssistantStream_accumulateMessage, _AssistantStream_accumulateContent, _AssistantStream_handleRun;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../error.mjs\";\nimport { EventStream } from \"./EventStream.mjs\";\nimport { isObj } from \"../internal/utils.mjs\";\nexport class AssistantStream extends EventStream {\n constructor() {\n super(...arguments);\n _AssistantStream_instances.add(this);\n //Track all events in a single list for reference\n _AssistantStream_events.set(this, []);\n //Used to accumulate deltas\n //We are accumulating many types so the value here is not strict\n _AssistantStream_runStepSnapshots.set(this, {});\n _AssistantStream_messageSnapshots.set(this, {});\n _AssistantStream_messageSnapshot.set(this, void 0);\n _AssistantStream_finalRun.set(this, void 0);\n _AssistantStream_currentContentIndex.set(this, void 0);\n _AssistantStream_currentContent.set(this, void 0);\n _AssistantStream_currentToolCallIndex.set(this, void 0);\n _AssistantStream_currentToolCall.set(this, void 0);\n //For current snapshot methods\n _AssistantStream_currentEvent.set(this, void 0);\n _AssistantStream_currentRunSnapshot.set(this, void 0);\n _AssistantStream_currentRunStepSnapshot.set(this, void 0);\n }\n [(_AssistantStream_events = new WeakMap(), _AssistantStream_runStepSnapshots = new WeakMap(), _AssistantStream_messageSnapshots = new WeakMap(), _AssistantStream_messageSnapshot = new WeakMap(), _AssistantStream_finalRun = new WeakMap(), _AssistantStream_currentContentIndex = new WeakMap(), _AssistantStream_currentContent = new WeakMap(), _AssistantStream_currentToolCallIndex = new WeakMap(), _AssistantStream_currentToolCall = new WeakMap(), _AssistantStream_currentEvent = new WeakMap(), _AssistantStream_currentRunSnapshot = new WeakMap(), _AssistantStream_currentRunStepSnapshot = new WeakMap(), _AssistantStream_instances = new WeakSet(), Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n //Catch all for passing along all events\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n static fromReadableStream(stream) {\n const runner = new _a();\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n this._connected();\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n static createToolAssistantStream(runId, runs, params, options) {\n const runner = new _a();\n runner._run(() => runner._runToolAssistantStream(runId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createToolAssistantStream(run, runId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.submitToolOutputs(runId, body, {\n ...options,\n signal: this.controller.signal,\n });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static createThreadAssistantStream(params, thread, options) {\n const runner = new _a();\n runner._run(() => runner._threadAssistantStream(params, thread, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n static createAssistantStream(threadId, runs, params, options) {\n const runner = new _a();\n runner._run(() => runner._runAssistantStream(threadId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n currentEvent() {\n return __classPrivateFieldGet(this, _AssistantStream_currentEvent, \"f\");\n }\n currentRun() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunSnapshot, \"f\");\n }\n currentMessageSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\");\n }\n currentRunStepSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, \"f\");\n }\n async finalRunSteps() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\"));\n }\n async finalMessages() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\"));\n }\n async finalRun() {\n await this.done();\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run was not received.');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n }\n async _createThreadAssistantStream(thread, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await thread.createAndRun(body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n async _createAssistantStream(run, threadId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.create(threadId, body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static accumulateDelta(acc, delta) {\n for (const [key, deltaValue] of Object.entries(delta)) {\n if (!acc.hasOwnProperty(key)) {\n acc[key] = deltaValue;\n continue;\n }\n let accValue = acc[key];\n if (accValue === null || accValue === undefined) {\n acc[key] = deltaValue;\n continue;\n }\n // We don't accumulate these special properties\n if (key === 'index' || key === 'type') {\n acc[key] = deltaValue;\n continue;\n }\n // Type-specific accumulation logic\n if (typeof accValue === 'string' && typeof deltaValue === 'string') {\n accValue += deltaValue;\n }\n else if (typeof accValue === 'number' && typeof deltaValue === 'number') {\n accValue += deltaValue;\n }\n else if (isObj(accValue) && isObj(deltaValue)) {\n accValue = this.accumulateDelta(accValue, deltaValue);\n }\n else if (Array.isArray(accValue) && Array.isArray(deltaValue)) {\n if (accValue.every((x) => typeof x === 'string' || typeof x === 'number')) {\n accValue.push(...deltaValue); // Use spread syntax for efficient addition\n continue;\n }\n for (const deltaEntry of deltaValue) {\n if (!isObj(deltaEntry)) {\n throw new Error(`Expected array delta entry to be an object but got: ${deltaEntry}`);\n }\n const index = deltaEntry['index'];\n if (index == null) {\n console.error(deltaEntry);\n throw new Error('Expected array delta entry to have an `index` property');\n }\n if (typeof index !== 'number') {\n throw new Error(`Expected array delta entry \\`index\\` property to be a number but got ${index}`);\n }\n const accEntry = accValue[index];\n if (accEntry == null) {\n accValue.push(deltaEntry);\n }\n else {\n accValue[index] = this.accumulateDelta(accEntry, deltaEntry);\n }\n }\n continue;\n }\n else {\n throw Error(`Unhandled record type: ${key}, deltaValue: ${deltaValue}, accValue: ${accValue}`);\n }\n acc[key] = accValue;\n }\n return acc;\n }\n _addRun(run) {\n return run;\n }\n async _threadAssistantStream(params, thread, options) {\n return await this._createThreadAssistantStream(thread, params, options);\n }\n async _runAssistantStream(threadId, runs, params, options) {\n return await this._createAssistantStream(runs, threadId, params, options);\n }\n async _runToolAssistantStream(runId, runs, params, options) {\n return await this._createToolAssistantStream(runs, runId, params, options);\n }\n}\n_a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addEvent(event) {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _AssistantStream_currentEvent, event, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleEvent).call(this, event);\n switch (event.event) {\n case 'thread.created':\n //No action on this event.\n break;\n case 'thread.run.created':\n case 'thread.run.queued':\n case 'thread.run.in_progress':\n case 'thread.run.requires_action':\n case 'thread.run.completed':\n case 'thread.run.incomplete':\n case 'thread.run.failed':\n case 'thread.run.cancelling':\n case 'thread.run.cancelled':\n case 'thread.run.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRun).call(this, event);\n break;\n case 'thread.run.step.created':\n case 'thread.run.step.in_progress':\n case 'thread.run.step.delta':\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRunStep).call(this, event);\n break;\n case 'thread.message.created':\n case 'thread.message.in_progress':\n case 'thread.message.delta':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleMessage).call(this, event);\n break;\n case 'error':\n //This is included for completeness, but errors are processed in the SSE event processing so this should not occur\n throw new Error('Encountered an error event in event processing - errors should be processed earlier');\n default:\n assertNever(event);\n }\n}, _AssistantStream_endRequest = function _AssistantStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run has not been received');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n}, _AssistantStream_handleMessage = function _AssistantStream_handleMessage(event) {\n const [accumulatedMessage, newContent] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateMessage).call(this, event, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, accumulatedMessage, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\")[accumulatedMessage.id] = accumulatedMessage;\n for (const content of newContent) {\n const snapshotContent = accumulatedMessage.content[content.index];\n if (snapshotContent?.type == 'text') {\n this._emit('textCreated', snapshotContent.text);\n }\n }\n switch (event.event) {\n case 'thread.message.created':\n this._emit('messageCreated', event.data);\n break;\n case 'thread.message.in_progress':\n break;\n case 'thread.message.delta':\n this._emit('messageDelta', event.data.delta, accumulatedMessage);\n if (event.data.delta.content) {\n for (const content of event.data.delta.content) {\n //If it is text delta, emit a text delta event\n if (content.type == 'text' && content.text) {\n let textDelta = content.text;\n let snapshot = accumulatedMessage.content[content.index];\n if (snapshot && snapshot.type == 'text') {\n this._emit('textDelta', textDelta, snapshot.text);\n }\n else {\n throw Error('The snapshot associated with this text delta is not text or missing');\n }\n }\n if (content.index != __classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")) {\n //See if we have in progress content\n if (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\")) {\n switch (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").type) {\n case 'text':\n this._emit('textDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'image_file':\n this._emit('imageFileDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContentIndex, content.index, \"f\");\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContent, accumulatedMessage.content[content.index], \"f\");\n }\n }\n break;\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //We emit the latest content we were working on on completion (including incomplete)\n if (__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\") !== undefined) {\n const currentContent = event.data.content[__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")];\n if (currentContent) {\n switch (currentContent.type) {\n case 'image_file':\n this._emit('imageFileDone', currentContent.image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'text':\n this._emit('textDone', currentContent.text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n }\n if (__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\")) {\n this._emit('messageDone', event.data);\n }\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, undefined, \"f\");\n }\n}, _AssistantStream_handleRunStep = function _AssistantStream_handleRunStep(event) {\n const accumulatedRunStep = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateRunStep).call(this, event);\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, accumulatedRunStep, \"f\");\n switch (event.event) {\n case 'thread.run.step.created':\n this._emit('runStepCreated', event.data);\n break;\n case 'thread.run.step.delta':\n const delta = event.data.delta;\n if (delta.step_details &&\n delta.step_details.type == 'tool_calls' &&\n delta.step_details.tool_calls &&\n accumulatedRunStep.step_details.type == 'tool_calls') {\n for (const toolCall of delta.step_details.tool_calls) {\n if (toolCall.index == __classPrivateFieldGet(this, _AssistantStream_currentToolCallIndex, \"f\")) {\n this._emit('toolCallDelta', toolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index]);\n }\n else {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n __classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, toolCall.index, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index], \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"))\n this._emit('toolCallCreated', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n }\n }\n this._emit('runStepDelta', event.data.delta, accumulatedRunStep);\n break;\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, undefined, \"f\");\n const details = event.data.step_details;\n if (details.type == 'tool_calls') {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n }\n this._emit('runStepDone', event.data, accumulatedRunStep);\n break;\n case 'thread.run.step.in_progress':\n break;\n }\n}, _AssistantStream_handleEvent = function _AssistantStream_handleEvent(event) {\n __classPrivateFieldGet(this, _AssistantStream_events, \"f\").push(event);\n this._emit('event', event);\n}, _AssistantStream_accumulateRunStep = function _AssistantStream_accumulateRunStep(event) {\n switch (event.event) {\n case 'thread.run.step.created':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n return event.data;\n case 'thread.run.step.delta':\n let snapshot = __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n if (!snapshot) {\n throw Error('Received a RunStepDelta before creation of a snapshot');\n }\n let data = event.data;\n if (data.delta) {\n const accumulated = _a.accumulateDelta(snapshot, data.delta);\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = accumulated;\n }\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n case 'thread.run.step.in_progress':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n break;\n }\n if (__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id])\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n throw new Error('No snapshot available');\n}, _AssistantStream_accumulateMessage = function _AssistantStream_accumulateMessage(event, snapshot) {\n let newContent = [];\n switch (event.event) {\n case 'thread.message.created':\n //On creation the snapshot is just the initial message\n return [event.data, newContent];\n case 'thread.message.delta':\n if (!snapshot) {\n throw Error('Received a delta with no existing snapshot (there should be one from message creation)');\n }\n let data = event.data;\n //If this delta does not have content, nothing to process\n if (data.delta.content) {\n for (const contentElement of data.delta.content) {\n if (contentElement.index in snapshot.content) {\n let currentContent = snapshot.content[contentElement.index];\n snapshot.content[contentElement.index] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateContent).call(this, contentElement, currentContent);\n }\n else {\n snapshot.content[contentElement.index] = contentElement;\n // This is a new element\n newContent.push(contentElement);\n }\n }\n }\n return [snapshot, newContent];\n case 'thread.message.in_progress':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //No changes on other thread events\n if (snapshot) {\n return [snapshot, newContent];\n }\n else {\n throw Error('Received thread message event with no existing snapshot');\n }\n }\n throw Error('Tried to accumulate a non-message event');\n}, _AssistantStream_accumulateContent = function _AssistantStream_accumulateContent(contentElement, currentContent) {\n return _a.accumulateDelta(currentContent, contentElement);\n}, _AssistantStream_handleRun = function _AssistantStream_handleRun(event) {\n __classPrivateFieldSet(this, _AssistantStream_currentRunSnapshot, event.data, \"f\");\n switch (event.event) {\n case 'thread.run.created':\n break;\n case 'thread.run.queued':\n break;\n case 'thread.run.in_progress':\n break;\n case 'thread.run.requires_action':\n case 'thread.run.cancelled':\n case 'thread.run.failed':\n case 'thread.run.completed':\n case 'thread.run.expired':\n case 'thread.run.incomplete':\n __classPrivateFieldSet(this, _AssistantStream_finalRun, event.data, \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n break;\n case 'thread.run.cancelling':\n break;\n }\n};\nfunction assertNever(_x) { }\n//# sourceMappingURL=AssistantStream.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as StepsAPI from \"./steps.mjs\";\nimport { Steps, } from \"./steps.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { AssistantStream } from \"../../../../lib/AssistantStream.mjs\";\nimport { sleep } from \"../../../../internal/utils/sleep.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Runs extends APIResource {\n constructor() {\n super(...arguments);\n this.steps = new StepsAPI.Steps(this._client);\n }\n create(threadID, params, options) {\n const { include, ...body } = params;\n return this._client.post(path `/threads/${threadID}/runs`, {\n query: { include },\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: params.stream ?? false,\n });\n }\n /**\n * Retrieves a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(runID, params, options) {\n const { thread_id } = params;\n return this._client.get(path `/threads/${thread_id}/runs/${runID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(runID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of runs belonging to a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(threadID, query = {}, options) {\n return this._client.getAPIList(path `/threads/${threadID}/runs`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Cancels a run that is `in_progress`.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n cancel(runID, params, options) {\n const { thread_id } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * A helper to create a run an poll for a terminal state. More information on Run\n * lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndPoll(threadId, body, options) {\n const run = await this.create(threadId, body, options);\n return await this.poll(run.id, { thread_id: threadId }, options);\n }\n /**\n * Create a Run stream\n *\n * @deprecated use `stream` instead\n */\n createAndStream(threadId, body, options) {\n return AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n /**\n * A helper to poll a run status until it reaches a terminal state. More\n * information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async poll(runId, params, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const { data: run, response } = await this.retrieve(runId, params, {\n ...options,\n headers: { ...options?.headers, ...headers },\n }).withResponse();\n switch (run.status) {\n //If we are in any sort of intermediate state we poll\n case 'queued':\n case 'in_progress':\n case 'cancelling':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n //We return the run in any terminal state.\n case 'requires_action':\n case 'incomplete':\n case 'cancelled':\n case 'completed':\n case 'failed':\n case 'expired':\n return run;\n }\n }\n }\n /**\n * Create a Run stream\n */\n stream(threadId, body, options) {\n return AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n submitToolOutputs(runID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}/submit_tool_outputs`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: params.stream ?? false,\n });\n }\n /**\n * A helper to submit a tool output to a run and poll for a terminal run state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async submitToolOutputsAndPoll(runId, params, options) {\n const run = await this.submitToolOutputs(runId, params, options);\n return await this.poll(run.id, params, options);\n }\n /**\n * Submit the tool outputs from a previous run and stream the run to a terminal\n * state. More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n submitToolOutputsStream(runId, params, options) {\n return AssistantStream.createToolAssistantStream(runId, this._client.beta.threads.runs, params, options);\n }\n}\nRuns.Steps = Steps;\n//# sourceMappingURL=runs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as MessagesAPI from \"./messages.mjs\";\nimport { Messages, } from \"./messages.mjs\";\nimport * as RunsAPI from \"./runs/runs.mjs\";\nimport { Runs, } from \"./runs/runs.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { AssistantStream } from \"../../../lib/AssistantStream.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Threads extends APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n /**\n * Create a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n create(body = {}, options) {\n return this._client.post('/threads', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(threadID, options) {\n return this._client.get(path `/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(threadID, body, options) {\n return this._client.post(path `/threads/${threadID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n delete(threadID, options) {\n return this._client.delete(path `/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n createAndRun(body, options) {\n return this._client.post('/threads/runs', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: body.stream ?? false,\n });\n }\n /**\n * A helper to create a thread, start a run and then poll for a terminal state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndRunPoll(body, options) {\n const run = await this.createAndRun(body, options);\n return await this.runs.poll(run.id, { thread_id: run.thread_id }, options);\n }\n /**\n * Create a thread and stream the run back\n */\n createAndRunStream(body, options) {\n return AssistantStream.createThreadAssistantStream(body, this._client.beta.threads, options);\n }\n}\nThreads.Runs = Runs;\nThreads.Messages = Messages;\n//# sourceMappingURL=threads.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as AssistantsAPI from \"./assistants.mjs\";\nimport { Assistants, } from \"./assistants.mjs\";\nimport * as RealtimeAPI from \"./realtime/realtime.mjs\";\nimport { Realtime, } from \"./realtime/realtime.mjs\";\nimport * as ChatKitAPI from \"./chatkit/chatkit.mjs\";\nimport { ChatKit } from \"./chatkit/chatkit.mjs\";\nimport * as ThreadsAPI from \"./threads/threads.mjs\";\nimport { Threads, } from \"./threads/threads.mjs\";\nexport class Beta extends APIResource {\n constructor() {\n super(...arguments);\n this.realtime = new RealtimeAPI.Realtime(this._client);\n this.chatkit = new ChatKitAPI.ChatKit(this._client);\n this.assistants = new AssistantsAPI.Assistants(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n}\nBeta.Realtime = Realtime;\nBeta.ChatKit = ChatKit;\nBeta.Assistants = Assistants;\nBeta.Threads = Threads;\n//# sourceMappingURL=beta.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class Completions extends APIResource {\n create(body, options) {\n return this._client.post('/completions', { body, ...options, stream: body.stream ?? false });\n }\n}\n//# sourceMappingURL=completions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Content extends APIResource {\n /**\n * Retrieve Container File Content\n */\n retrieve(fileID, params, options) {\n const { container_id } = params;\n return this._client.get(path `/containers/${container_id}/files/${fileID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=content.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as ContentAPI from \"./content.mjs\";\nimport { Content } from \"./content.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { multipartFormRequestOptions } from \"../../../internal/uploads.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n constructor() {\n super(...arguments);\n this.content = new ContentAPI.Content(this._client);\n }\n /**\n * Create a Container File\n *\n * You can send either a multipart/form-data request with the raw file content, or\n * a JSON request with a file ID.\n */\n create(containerID, body, options) {\n return this._client.post(path `/containers/${containerID}/files`, multipartFormRequestOptions({ body, ...options }, this._client));\n }\n /**\n * Retrieve Container File\n */\n retrieve(fileID, params, options) {\n const { container_id } = params;\n return this._client.get(path `/containers/${container_id}/files/${fileID}`, options);\n }\n /**\n * List Container files\n */\n list(containerID, query = {}, options) {\n return this._client.getAPIList(path `/containers/${containerID}/files`, (CursorPage), {\n query,\n ...options,\n });\n }\n /**\n * Delete Container File\n */\n delete(fileID, params, options) {\n const { container_id } = params;\n return this._client.delete(path `/containers/${container_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\nFiles.Content = Content;\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as FilesAPI from \"./files/files.mjs\";\nimport { Files, } from \"./files/files.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Containers extends APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n }\n /**\n * Create Container\n */\n create(body, options) {\n return this._client.post('/containers', { body, ...options });\n }\n /**\n * Retrieve Container\n */\n retrieve(containerID, options) {\n return this._client.get(path `/containers/${containerID}`, options);\n }\n /**\n * List Containers\n */\n list(query = {}, options) {\n return this._client.getAPIList('/containers', (CursorPage), { query, ...options });\n }\n /**\n * Delete Container\n */\n delete(containerID, options) {\n return this._client.delete(path `/containers/${containerID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\nContainers.Files = Files;\n//# sourceMappingURL=containers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Items extends APIResource {\n /**\n * Create items in a conversation with the given ID.\n */\n create(conversationID, params, options) {\n const { include, ...body } = params;\n return this._client.post(path `/conversations/${conversationID}/items`, {\n query: { include },\n body,\n ...options,\n });\n }\n /**\n * Get a single item from a conversation with the given IDs.\n */\n retrieve(itemID, params, options) {\n const { conversation_id, ...query } = params;\n return this._client.get(path `/conversations/${conversation_id}/items/${itemID}`, { query, ...options });\n }\n /**\n * List all items for a conversation with the given ID.\n */\n list(conversationID, query = {}, options) {\n return this._client.getAPIList(path `/conversations/${conversationID}/items`, (ConversationCursorPage), { query, ...options });\n }\n /**\n * Delete an item from a conversation with the given IDs.\n */\n delete(itemID, params, options) {\n const { conversation_id } = params;\n return this._client.delete(path `/conversations/${conversation_id}/items/${itemID}`, options);\n }\n}\n//# sourceMappingURL=items.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as ItemsAPI from \"./items.mjs\";\nimport { Items, } from \"./items.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Conversations extends APIResource {\n constructor() {\n super(...arguments);\n this.items = new ItemsAPI.Items(this._client);\n }\n /**\n * Create a conversation.\n */\n create(body = {}, options) {\n return this._client.post('/conversations', { body, ...options });\n }\n /**\n * Get a conversation\n */\n retrieve(conversationID, options) {\n return this._client.get(path `/conversations/${conversationID}`, options);\n }\n /**\n * Update a conversation\n */\n update(conversationID, body, options) {\n return this._client.post(path `/conversations/${conversationID}`, { body, ...options });\n }\n /**\n * Delete a conversation. Items in the conversation will not be deleted.\n */\n delete(conversationID, options) {\n return this._client.delete(path `/conversations/${conversationID}`, options);\n }\n}\nConversations.Items = Items;\n//# sourceMappingURL=conversations.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { loggerFor, toFloat32Array } from \"../internal/utils.mjs\";\nexport class Embeddings extends APIResource {\n /**\n * Creates an embedding vector representing the input text.\n *\n * @example\n * ```ts\n * const createEmbeddingResponse =\n * await client.embeddings.create({\n * input: 'The quick brown fox jumped over the lazy dog',\n * model: 'text-embedding-3-small',\n * });\n * ```\n */\n create(body, options) {\n const hasUserProvidedEncodingFormat = !!body.encoding_format;\n // No encoding_format specified, defaulting to base64 for performance reasons\n // See https://github.com/openai/openai-node/pull/1312\n let encoding_format = hasUserProvidedEncodingFormat ? body.encoding_format : 'base64';\n if (hasUserProvidedEncodingFormat) {\n loggerFor(this._client).debug('embeddings/user defined encoding_format:', body.encoding_format);\n }\n const response = this._client.post('/embeddings', {\n body: {\n ...body,\n encoding_format: encoding_format,\n },\n ...options,\n });\n // if the user specified an encoding_format, return the response as-is\n if (hasUserProvidedEncodingFormat) {\n return response;\n }\n // in this stage, we are sure the user did not specify an encoding_format\n // and we defaulted to base64 for performance reasons\n // we are sure then that the response is base64 encoded, let's decode it\n // the returned result will be a float32 array since this is OpenAI API's default encoding\n loggerFor(this._client).debug('embeddings/decoding base64 embeddings from base64');\n return response._thenUnwrap((response) => {\n if (response && response.data) {\n response.data.forEach((embeddingBase64Obj) => {\n const embeddingBase64Str = embeddingBase64Obj.embedding;\n embeddingBase64Obj.embedding = toFloat32Array(embeddingBase64Str);\n });\n }\n return response;\n });\n }\n}\n//# sourceMappingURL=embeddings.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class OutputItems extends APIResource {\n /**\n * Get an evaluation run output item by ID.\n */\n retrieve(outputItemID, params, options) {\n const { eval_id, run_id } = params;\n return this._client.get(path `/evals/${eval_id}/runs/${run_id}/output_items/${outputItemID}`, options);\n }\n /**\n * Get a list of output items for an evaluation run.\n */\n list(runID, params, options) {\n const { eval_id, ...query } = params;\n return this._client.getAPIList(path `/evals/${eval_id}/runs/${runID}/output_items`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=output-items.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as OutputItemsAPI from \"./output-items.mjs\";\nimport { OutputItems, } from \"./output-items.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Runs extends APIResource {\n constructor() {\n super(...arguments);\n this.outputItems = new OutputItemsAPI.OutputItems(this._client);\n }\n /**\n * Kicks off a new run for a given evaluation, specifying the data source, and what\n * model configuration to use to test. The datasource will be validated against the\n * schema specified in the config of the evaluation.\n */\n create(evalID, body, options) {\n return this._client.post(path `/evals/${evalID}/runs`, { body, ...options });\n }\n /**\n * Get an evaluation run by ID.\n */\n retrieve(runID, params, options) {\n const { eval_id } = params;\n return this._client.get(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n /**\n * Get a list of runs for an evaluation.\n */\n list(evalID, query = {}, options) {\n return this._client.getAPIList(path `/evals/${evalID}/runs`, (CursorPage), {\n query,\n ...options,\n });\n }\n /**\n * Delete an eval run.\n */\n delete(runID, params, options) {\n const { eval_id } = params;\n return this._client.delete(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n /**\n * Cancel an ongoing evaluation run.\n */\n cancel(runID, params, options) {\n const { eval_id } = params;\n return this._client.post(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n}\nRuns.OutputItems = OutputItems;\n//# sourceMappingURL=runs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as RunsAPI from \"./runs/runs.mjs\";\nimport { Runs, } from \"./runs/runs.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Evals extends APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n }\n /**\n * Create the structure of an evaluation that can be used to test a model's\n * performance. An evaluation is a set of testing criteria and the config for a\n * data source, which dictates the schema of the data used in the evaluation. After\n * creating an evaluation, you can run it on different models and model parameters.\n * We support several types of graders and datasources. For more information, see\n * the [Evals guide](https://platform.openai.com/docs/guides/evals).\n */\n create(body, options) {\n return this._client.post('/evals', { body, ...options });\n }\n /**\n * Get an evaluation by ID.\n */\n retrieve(evalID, options) {\n return this._client.get(path `/evals/${evalID}`, options);\n }\n /**\n * Update certain properties of an evaluation.\n */\n update(evalID, body, options) {\n return this._client.post(path `/evals/${evalID}`, { body, ...options });\n }\n /**\n * List evaluations for a project.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/evals', (CursorPage), { query, ...options });\n }\n /**\n * Delete an evaluation.\n */\n delete(evalID, options) {\n return this._client.delete(path `/evals/${evalID}`, options);\n }\n}\nEvals.Runs = Runs;\n//# sourceMappingURL=evals.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { CursorPage } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { sleep } from \"../internal/utils/sleep.mjs\";\nimport { APIConnectionTimeoutError } from \"../error.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * Upload a file that can be used across various endpoints. Individual files can be\n * up to 512 MB, and the size of all files uploaded by one organization can be up\n * to 1 TB.\n *\n * - The Assistants API supports files up to 2 million tokens and of specific file\n * types. See the\n * [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools)\n * for details.\n * - The Fine-tuning API only supports `.jsonl` files. The input also has certain\n * required formats for fine-tuning\n * [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input)\n * or\n * [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input)\n * models.\n * - The Batch API only supports `.jsonl` files up to 200 MB in size. The input\n * also has a specific required\n * [format](https://platform.openai.com/docs/api-reference/batch/request-input).\n *\n * Please [contact us](https://help.openai.com/) if you need to increase these\n * storage limits.\n */\n create(body, options) {\n return this._client.post('/files', multipartFormRequestOptions({ body, ...options }, this._client));\n }\n /**\n * Returns information about a specific file.\n */\n retrieve(fileID, options) {\n return this._client.get(path `/files/${fileID}`, options);\n }\n /**\n * Returns a list of files.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/files', (CursorPage), { query, ...options });\n }\n /**\n * Delete a file and remove it from all vector stores.\n */\n delete(fileID, options) {\n return this._client.delete(path `/files/${fileID}`, options);\n }\n /**\n * Returns the contents of the specified file.\n */\n content(fileID, options) {\n return this._client.get(path `/files/${fileID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n /**\n * Waits for the given file to be processed, default timeout is 30 mins.\n */\n async waitForProcessing(id, { pollInterval = 5000, maxWait = 30 * 60 * 1000 } = {}) {\n const TERMINAL_STATES = new Set(['processed', 'error', 'deleted']);\n const start = Date.now();\n let file = await this.retrieve(id);\n while (!file.status || !TERMINAL_STATES.has(file.status)) {\n await sleep(pollInterval);\n file = await this.retrieve(id);\n if (Date.now() - start > maxWait) {\n throw new APIConnectionTimeoutError({\n message: `Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`,\n });\n }\n }\n return file;\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class Methods extends APIResource {\n}\n//# sourceMappingURL=methods.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nexport class Graders extends APIResource {\n /**\n * Run a grader.\n *\n * @example\n * ```ts\n * const response = await client.fineTuning.alpha.graders.run({\n * grader: {\n * input: 'input',\n * name: 'name',\n * operation: 'eq',\n * reference: 'reference',\n * type: 'string_check',\n * },\n * model_sample: 'model_sample',\n * });\n * ```\n */\n run(body, options) {\n return this._client.post('/fine_tuning/alpha/graders/run', { body, ...options });\n }\n /**\n * Validate a grader.\n *\n * @example\n * ```ts\n * const response =\n * await client.fineTuning.alpha.graders.validate({\n * grader: {\n * input: 'input',\n * name: 'name',\n * operation: 'eq',\n * reference: 'reference',\n * type: 'string_check',\n * },\n * });\n * ```\n */\n validate(body, options) {\n return this._client.post('/fine_tuning/alpha/graders/validate', { body, ...options });\n }\n}\n//# sourceMappingURL=graders.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as GradersAPI from \"./graders.mjs\";\nimport { Graders, } from \"./graders.mjs\";\nexport class Alpha extends APIResource {\n constructor() {\n super(...arguments);\n this.graders = new GradersAPI.Graders(this._client);\n }\n}\nAlpha.Graders = Graders;\n//# sourceMappingURL=alpha.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { Page } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Permissions extends APIResource {\n /**\n * **NOTE:** Calling this endpoint requires an [admin API key](../admin-api-keys).\n *\n * This enables organization owners to share fine-tuned models with other projects\n * in their organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const permissionCreateResponse of client.fineTuning.checkpoints.permissions.create(\n * 'ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd',\n * { project_ids: ['string'] },\n * )) {\n * // ...\n * }\n * ```\n */\n create(fineTunedModelCheckpoint, body, options) {\n return this._client.getAPIList(path `/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`, (Page), { body, method: 'post', ...options });\n }\n /**\n * **NOTE:** This endpoint requires an [admin API key](../admin-api-keys).\n *\n * Organization owners can use this endpoint to view all permissions for a\n * fine-tuned model checkpoint.\n *\n * @example\n * ```ts\n * const permission =\n * await client.fineTuning.checkpoints.permissions.retrieve(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n retrieve(fineTunedModelCheckpoint, query = {}, options) {\n return this._client.get(path `/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`, {\n query,\n ...options,\n });\n }\n /**\n * **NOTE:** This endpoint requires an [admin API key](../admin-api-keys).\n *\n * Organization owners can use this endpoint to delete a permission for a\n * fine-tuned model checkpoint.\n *\n * @example\n * ```ts\n * const permission =\n * await client.fineTuning.checkpoints.permissions.delete(\n * 'cp_zc4Q7MP6XxulcVzj4MZdwsAB',\n * {\n * fine_tuned_model_checkpoint:\n * 'ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd',\n * },\n * );\n * ```\n */\n delete(permissionID, params, options) {\n const { fine_tuned_model_checkpoint } = params;\n return this._client.delete(path `/fine_tuning/checkpoints/${fine_tuned_model_checkpoint}/permissions/${permissionID}`, options);\n }\n}\n//# sourceMappingURL=permissions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as PermissionsAPI from \"./permissions.mjs\";\nimport { Permissions, } from \"./permissions.mjs\";\nexport class Checkpoints extends APIResource {\n constructor() {\n super(...arguments);\n this.permissions = new PermissionsAPI.Permissions(this._client);\n }\n}\nCheckpoints.Permissions = Permissions;\n//# sourceMappingURL=checkpoints.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Checkpoints extends APIResource {\n /**\n * List checkpoints for a fine-tuning job.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJobCheckpoint of client.fineTuning.jobs.checkpoints.list(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * )) {\n * // ...\n * }\n * ```\n */\n list(fineTuningJobID, query = {}, options) {\n return this._client.getAPIList(path `/fine_tuning/jobs/${fineTuningJobID}/checkpoints`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=checkpoints.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as CheckpointsAPI from \"./checkpoints.mjs\";\nimport { Checkpoints, } from \"./checkpoints.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Jobs extends APIResource {\n constructor() {\n super(...arguments);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n }\n /**\n * Creates a fine-tuning job which begins the process of creating a new model from\n * a given dataset.\n *\n * Response includes details of the enqueued job including job status and the name\n * of the fine-tuned models once complete.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/model-optimization)\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.create({\n * model: 'gpt-4o-mini',\n * training_file: 'file-abc123',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/fine_tuning/jobs', { body, ...options });\n }\n /**\n * Get info about a fine-tuning job.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/model-optimization)\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.retrieve(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n retrieve(fineTuningJobID, options) {\n return this._client.get(path `/fine_tuning/jobs/${fineTuningJobID}`, options);\n }\n /**\n * List your organization's fine-tuning jobs\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJob of client.fineTuning.jobs.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/fine_tuning/jobs', (CursorPage), { query, ...options });\n }\n /**\n * Immediately cancel a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.cancel(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n cancel(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/cancel`, options);\n }\n /**\n * Get status updates for a fine-tuning job.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJobEvent of client.fineTuning.jobs.listEvents(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * )) {\n * // ...\n * }\n * ```\n */\n listEvents(fineTuningJobID, query = {}, options) {\n return this._client.getAPIList(path `/fine_tuning/jobs/${fineTuningJobID}/events`, (CursorPage), { query, ...options });\n }\n /**\n * Pause a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.pause(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n pause(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/pause`, options);\n }\n /**\n * Resume a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.resume(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n resume(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/resume`, options);\n }\n}\nJobs.Checkpoints = Checkpoints;\n//# sourceMappingURL=jobs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as MethodsAPI from \"./methods.mjs\";\nimport { Methods, } from \"./methods.mjs\";\nimport * as AlphaAPI from \"./alpha/alpha.mjs\";\nimport { Alpha } from \"./alpha/alpha.mjs\";\nimport * as CheckpointsAPI from \"./checkpoints/checkpoints.mjs\";\nimport { Checkpoints } from \"./checkpoints/checkpoints.mjs\";\nimport * as JobsAPI from \"./jobs/jobs.mjs\";\nimport { Jobs, } from \"./jobs/jobs.mjs\";\nexport class FineTuning extends APIResource {\n constructor() {\n super(...arguments);\n this.methods = new MethodsAPI.Methods(this._client);\n this.jobs = new JobsAPI.Jobs(this._client);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n this.alpha = new AlphaAPI.Alpha(this._client);\n }\n}\nFineTuning.Methods = Methods;\nFineTuning.Jobs = Jobs;\nFineTuning.Checkpoints = Checkpoints;\nFineTuning.Alpha = Alpha;\n//# sourceMappingURL=fine-tuning.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class GraderModels extends APIResource {\n}\n//# sourceMappingURL=grader-models.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as GraderModelsAPI from \"./grader-models.mjs\";\nimport { GraderModels, } from \"./grader-models.mjs\";\nexport class Graders extends APIResource {\n constructor() {\n super(...arguments);\n this.graderModels = new GraderModelsAPI.GraderModels(this._client);\n }\n}\nGraders.GraderModels = GraderModels;\n//# sourceMappingURL=graders.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nexport class Images extends APIResource {\n /**\n * Creates a variation of a given image. This endpoint only supports `dall-e-2`.\n *\n * @example\n * ```ts\n * const imagesResponse = await client.images.createVariation({\n * image: fs.createReadStream('otter.png'),\n * });\n * ```\n */\n createVariation(body, options) {\n return this._client.post('/images/variations', multipartFormRequestOptions({ body, ...options }, this._client));\n }\n edit(body, options) {\n return this._client.post('/images/edits', multipartFormRequestOptions({ body, ...options, stream: body.stream ?? false }, this._client));\n }\n generate(body, options) {\n return this._client.post('/images/generations', { body, ...options, stream: body.stream ?? false });\n }\n}\n//# sourceMappingURL=images.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { Page } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Models extends APIResource {\n /**\n * Retrieves a model instance, providing basic information about the model such as\n * the owner and permissioning.\n */\n retrieve(model, options) {\n return this._client.get(path `/models/${model}`, options);\n }\n /**\n * Lists the currently available models, and provides basic information about each\n * one such as the owner and availability.\n */\n list(options) {\n return this._client.getAPIList('/models', (Page), options);\n }\n /**\n * Delete a fine-tuned model. You must have the Owner role in your organization to\n * delete a model.\n */\n delete(model, options) {\n return this._client.delete(path `/models/${model}`, options);\n }\n}\n//# sourceMappingURL=models.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class Moderations extends APIResource {\n /**\n * Classifies if text and/or image inputs are potentially harmful. Learn more in\n * the [moderation guide](https://platform.openai.com/docs/guides/moderation).\n */\n create(body, options) {\n return this._client.post('/moderations', { body, ...options });\n }\n}\n//# sourceMappingURL=moderations.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Calls extends APIResource {\n /**\n * Accept an incoming SIP call and configure the realtime session that will handle\n * it.\n *\n * @example\n * ```ts\n * await client.realtime.calls.accept('call_id', {\n * type: 'realtime',\n * });\n * ```\n */\n accept(callID, body, options) {\n return this._client.post(path `/realtime/calls/${callID}/accept`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * End an active Realtime API call, whether it was initiated over SIP or WebRTC.\n *\n * @example\n * ```ts\n * await client.realtime.calls.hangup('call_id');\n * ```\n */\n hangup(callID, options) {\n return this._client.post(path `/realtime/calls/${callID}/hangup`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * Transfer an active SIP call to a new destination using the SIP REFER verb.\n *\n * @example\n * ```ts\n * await client.realtime.calls.refer('call_id', {\n * target_uri: 'tel:+14155550123',\n * });\n * ```\n */\n refer(callID, body, options) {\n return this._client.post(path `/realtime/calls/${callID}/refer`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * Decline an incoming SIP call by returning a SIP status code to the caller.\n *\n * @example\n * ```ts\n * await client.realtime.calls.reject('call_id');\n * ```\n */\n reject(callID, body = {}, options) {\n return this._client.post(path `/realtime/calls/${callID}/reject`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=calls.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class ClientSecrets extends APIResource {\n /**\n * Create a Realtime client secret with an associated session configuration.\n *\n * @example\n * ```ts\n * const clientSecret =\n * await client.realtime.clientSecrets.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/client_secrets', { body, ...options });\n }\n}\n//# sourceMappingURL=client-secrets.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as CallsAPI from \"./calls.mjs\";\nimport { Calls } from \"./calls.mjs\";\nimport * as ClientSecretsAPI from \"./client-secrets.mjs\";\nimport { ClientSecrets, } from \"./client-secrets.mjs\";\nexport class Realtime extends APIResource {\n constructor() {\n super(...arguments);\n this.clientSecrets = new ClientSecretsAPI.ClientSecrets(this._client);\n this.calls = new CallsAPI.Calls(this._client);\n }\n}\nRealtime.ClientSecrets = ClientSecrets;\nRealtime.Calls = Calls;\n//# sourceMappingURL=realtime.mjs.map","import { OpenAIError } from \"../error.mjs\";\nimport { isAutoParsableResponseFormat } from \"../lib/parser.mjs\";\nexport function maybeParseResponse(response, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...response,\n output_parsed: null,\n output: response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: null,\n };\n }\n if (item.type === 'message') {\n return {\n ...item,\n content: item.content.map((content) => ({\n ...content,\n parsed: null,\n })),\n };\n }\n else {\n return item;\n }\n }),\n };\n }\n return parseResponse(response, params);\n}\nexport function parseResponse(response, params) {\n const output = response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: parseToolCall(params, item),\n };\n }\n if (item.type === 'message') {\n const content = item.content.map((content) => {\n if (content.type === 'output_text') {\n return {\n ...content,\n parsed: parseTextFormat(params, content.text),\n };\n }\n return content;\n });\n return {\n ...item,\n content,\n };\n }\n return item;\n });\n const parsed = Object.assign({}, response, { output });\n if (!Object.getOwnPropertyDescriptor(response, 'output_text')) {\n addOutputText(parsed);\n }\n Object.defineProperty(parsed, 'output_parsed', {\n enumerable: true,\n get() {\n for (const output of parsed.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text' && content.parsed !== null) {\n return content.parsed;\n }\n }\n }\n return null;\n },\n });\n return parsed;\n}\nfunction parseTextFormat(params, content) {\n if (params.text?.format?.type !== 'json_schema') {\n return null;\n }\n if ('$parseRaw' in params.text?.format) {\n const text_format = params.text?.format;\n return text_format.$parseRaw(content);\n }\n return JSON.parse(content);\n}\nexport function hasAutoParseableInput(params) {\n if (isAutoParsableResponseFormat(params.text?.format)) {\n return true;\n }\n return false;\n}\nexport function makeParseableResponseTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nfunction getInputToolByName(input_tools, name) {\n return input_tools.find((tool) => tool.type === 'function' && tool.name === name);\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return {\n ...toolCall,\n ...toolCall,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.arguments)\n : inputTool?.strict ? JSON.parse(toolCall.arguments)\n : null,\n };\n}\nexport function shouldParseToolCall(params, toolCall) {\n if (!params) {\n return false;\n }\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return isAutoParsableTool(inputTool) || inputTool?.strict || false;\n}\nexport function validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\nexport function addOutputText(rsp) {\n const texts = [];\n for (const output of rsp.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text') {\n texts.push(content.text);\n }\n }\n }\n rsp.output_text = texts.join('');\n}\n//# sourceMappingURL=ResponsesParser.mjs.map","var _ResponseStream_instances, _ResponseStream_params, _ResponseStream_currentResponseSnapshot, _ResponseStream_finalResponse, _ResponseStream_beginRequest, _ResponseStream_addEvent, _ResponseStream_endRequest, _ResponseStream_accumulateResponse;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../../internal/tslib.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../../error.mjs\";\nimport { EventStream } from \"../EventStream.mjs\";\nimport { maybeParseResponse } from \"../ResponsesParser.mjs\";\nexport class ResponseStream extends EventStream {\n constructor(params) {\n super();\n _ResponseStream_instances.add(this);\n _ResponseStream_params.set(this, void 0);\n _ResponseStream_currentResponseSnapshot.set(this, void 0);\n _ResponseStream_finalResponse.set(this, void 0);\n __classPrivateFieldSet(this, _ResponseStream_params, params, \"f\");\n }\n static createResponse(client, params, options) {\n const runner = new ResponseStream(params);\n runner._run(() => runner._createOrRetrieveResponse(client, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createOrRetrieveResponse(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_beginRequest).call(this);\n let stream;\n let starting_after = null;\n if ('response_id' in params) {\n stream = await client.responses.retrieve(params.response_id, { stream: true }, { ...options, signal: this.controller.signal, stream: true });\n starting_after = params.starting_after ?? null;\n }\n else {\n stream = await client.responses.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n }\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_addEvent).call(this, event, starting_after);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_endRequest).call(this);\n }\n [(_ResponseStream_params = new WeakMap(), _ResponseStream_currentResponseSnapshot = new WeakMap(), _ResponseStream_finalResponse = new WeakMap(), _ResponseStream_instances = new WeakSet(), _ResponseStream_beginRequest = function _ResponseStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n }, _ResponseStream_addEvent = function _ResponseStream_addEvent(event, starting_after) {\n if (this.ended)\n return;\n const maybeEmit = (name, event) => {\n if (starting_after == null || event.sequence_number > starting_after) {\n this._emit(name, event);\n }\n };\n const response = __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_accumulateResponse).call(this, event);\n maybeEmit('event', event);\n switch (event.type) {\n case 'response.output_text.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n maybeEmit('response.output_text.delta', {\n ...event,\n snapshot: content.text,\n });\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n maybeEmit('response.function_call_arguments.delta', {\n ...event,\n snapshot: output.arguments,\n });\n }\n break;\n }\n default:\n maybeEmit(event.type, event);\n break;\n }\n }, _ResponseStream_endRequest = function _ResponseStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n throw new OpenAIError(`request ended without sending any events`);\n }\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n const parsedResponse = finalizeResponse(snapshot, __classPrivateFieldGet(this, _ResponseStream_params, \"f\"));\n __classPrivateFieldSet(this, _ResponseStream_finalResponse, parsedResponse, \"f\");\n return parsedResponse;\n }, _ResponseStream_accumulateResponse = function _ResponseStream_accumulateResponse(event) {\n let snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n if (event.type !== 'response.created') {\n throw new OpenAIError(`When snapshot hasn't been set yet, expected 'response.created' event, got ${event.type}`);\n }\n snapshot = __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n return snapshot;\n }\n switch (event.type) {\n case 'response.output_item.added': {\n snapshot.output.push(event.item);\n break;\n }\n case 'response.content_part.added': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n const type = output.type;\n const part = event.part;\n if (type === 'message' && part.type !== 'reasoning_text') {\n output.content.push(part);\n }\n else if (type === 'reasoning' && part.type === 'reasoning_text') {\n if (!output.content) {\n output.content = [];\n }\n output.content.push(part);\n }\n break;\n }\n case 'response.output_text.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n content.text += event.delta;\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n output.arguments += event.delta;\n }\n break;\n }\n case 'response.reasoning_text.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'reasoning') {\n const content = output.content?.[event.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'reasoning_text') {\n throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`);\n }\n content.text += event.delta;\n }\n break;\n }\n case 'response.completed': {\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n break;\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((event) => (event ? { value: event, done: false } : { value: undefined, done: true }));\n }\n const event = pushQueue.shift();\n return { value: event, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n /**\n * @returns a promise that resolves with the final Response, or rejects\n * if an error occurred or the stream ended prematurely without producing a REsponse.\n */\n async finalResponse() {\n await this.done();\n const response = __classPrivateFieldGet(this, _ResponseStream_finalResponse, \"f\");\n if (!response)\n throw new OpenAIError('stream ended without producing a ChatCompletion');\n return response;\n }\n}\nfunction finalizeResponse(snapshot, params) {\n return maybeParseResponse(snapshot, params);\n}\n//# sourceMappingURL=ResponseStream.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class InputItems extends APIResource {\n /**\n * Returns a list of input items for a given response.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const responseItem of client.responses.inputItems.list(\n * 'response_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(responseID, query = {}, options) {\n return this._client.getAPIList(path `/responses/${responseID}/input_items`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=input-items.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class InputTokens extends APIResource {\n /**\n * Get input token counts\n *\n * @example\n * ```ts\n * const response = await client.responses.inputTokens.count();\n * ```\n */\n count(body = {}, options) {\n return this._client.post('/responses/input_tokens', { body, ...options });\n }\n}\n//# sourceMappingURL=input-tokens.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { parseResponse, addOutputText, } from \"../../lib/ResponsesParser.mjs\";\nimport { ResponseStream } from \"../../lib/responses/ResponseStream.mjs\";\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as InputItemsAPI from \"./input-items.mjs\";\nimport { InputItems } from \"./input-items.mjs\";\nimport * as InputTokensAPI from \"./input-tokens.mjs\";\nimport { InputTokens } from \"./input-tokens.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Responses extends APIResource {\n constructor() {\n super(...arguments);\n this.inputItems = new InputItemsAPI.InputItems(this._client);\n this.inputTokens = new InputTokensAPI.InputTokens(this._client);\n }\n create(body, options) {\n return this._client.post('/responses', { body, ...options, stream: body.stream ?? false })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n addOutputText(rsp);\n }\n return rsp;\n });\n }\n retrieve(responseID, query = {}, options) {\n return this._client.get(path `/responses/${responseID}`, {\n query,\n ...options,\n stream: query?.stream ?? false,\n })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n addOutputText(rsp);\n }\n return rsp;\n });\n }\n /**\n * Deletes a model response with the given ID.\n *\n * @example\n * ```ts\n * await client.responses.delete(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n delete(responseID, options) {\n return this._client.delete(path `/responses/${responseID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n parse(body, options) {\n return this._client.responses\n .create(body, options)\n ._thenUnwrap((response) => parseResponse(response, body));\n }\n /**\n * Creates a model response stream\n */\n stream(body, options) {\n return ResponseStream.createResponse(this._client, body, options);\n }\n /**\n * Cancels a model response with the given ID. Only responses created with the\n * `background` parameter set to `true` can be cancelled.\n * [Learn more](https://platform.openai.com/docs/guides/background).\n *\n * @example\n * ```ts\n * const response = await client.responses.cancel(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n cancel(responseID, options) {\n return this._client.post(path `/responses/${responseID}/cancel`, options);\n }\n}\nResponses.InputItems = InputItems;\nResponses.InputTokens = InputTokens;\n//# sourceMappingURL=responses.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Parts extends APIResource {\n /**\n * Adds a\n * [Part](https://platform.openai.com/docs/api-reference/uploads/part-object) to an\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object.\n * A Part represents a chunk of bytes from the file you are trying to upload.\n *\n * Each Part can be at most 64 MB, and you can add Parts until you hit the Upload\n * maximum of 8 GB.\n *\n * It is possible to add multiple Parts in parallel. You can decide the intended\n * order of the Parts when you\n * [complete the Upload](https://platform.openai.com/docs/api-reference/uploads/complete).\n */\n create(uploadID, body, options) {\n return this._client.post(path `/uploads/${uploadID}/parts`, multipartFormRequestOptions({ body, ...options }, this._client));\n }\n}\n//# sourceMappingURL=parts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as PartsAPI from \"./parts.mjs\";\nimport { Parts } from \"./parts.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Uploads extends APIResource {\n constructor() {\n super(...arguments);\n this.parts = new PartsAPI.Parts(this._client);\n }\n /**\n * Creates an intermediate\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object\n * that you can add\n * [Parts](https://platform.openai.com/docs/api-reference/uploads/part-object) to.\n * Currently, an Upload can accept at most 8 GB in total and expires after an hour\n * after you create it.\n *\n * Once you complete the Upload, we will create a\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * contains all the parts you uploaded. This File is usable in the rest of our\n * platform as a regular File object.\n *\n * For certain `purpose` values, the correct `mime_type` must be specified. Please\n * refer to documentation for the\n * [supported MIME types for your use case](https://platform.openai.com/docs/assistants/tools/file-search#supported-files).\n *\n * For guidance on the proper filename extensions for each purpose, please follow\n * the documentation on\n * [creating a File](https://platform.openai.com/docs/api-reference/files/create).\n */\n create(body, options) {\n return this._client.post('/uploads', { body, ...options });\n }\n /**\n * Cancels the Upload. No Parts may be added after an Upload is cancelled.\n */\n cancel(uploadID, options) {\n return this._client.post(path `/uploads/${uploadID}/cancel`, options);\n }\n /**\n * Completes the\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object).\n *\n * Within the returned Upload object, there is a nested\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * is ready to use in the rest of the platform.\n *\n * You can specify the order of the Parts by passing in an ordered list of the Part\n * IDs.\n *\n * The number of bytes uploaded upon completion must match the number of bytes\n * initially specified when creating the Upload object. No Parts may be added after\n * an Upload is completed.\n */\n complete(uploadID, body, options) {\n return this._client.post(path `/uploads/${uploadID}/complete`, { body, ...options });\n }\n}\nUploads.Parts = Parts;\n//# sourceMappingURL=uploads.mjs.map","/**\n * Like `Promise.allSettled()` but throws an error if any promises are rejected.\n */\nexport const allSettledWithThrow = async (promises) => {\n const results = await Promise.allSettled(promises);\n const rejected = results.filter((result) => result.status === 'rejected');\n if (rejected.length) {\n for (const result of rejected) {\n console.error(result.reason);\n }\n throw new Error(`${rejected.length} promise(s) failed - see the above errors`);\n }\n // Note: TS was complaining about using `.filter().map()` here for some reason\n const values = [];\n for (const result of results) {\n if (result.status === 'fulfilled') {\n values.push(result.value);\n }\n }\n return values;\n};\n//# sourceMappingURL=Util.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { sleep } from \"../../internal/utils/sleep.mjs\";\nimport { allSettledWithThrow } from \"../../lib/Util.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class FileBatches extends APIResource {\n /**\n * Create a vector store file batch.\n */\n create(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}/file_batches`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store file batch.\n */\n retrieve(batchID, params, options) {\n const { vector_store_id } = params;\n return this._client.get(path `/vector_stores/${vector_store_id}/file_batches/${batchID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Cancel a vector store file batch. This attempts to cancel the processing of\n * files in this batch as soon as possible.\n */\n cancel(batchID, params, options) {\n const { vector_store_id } = params;\n return this._client.post(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Create a vector store batch and poll until all files have been processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const batch = await this.create(vectorStoreId, body);\n return await this.poll(vectorStoreId, batch.id, options);\n }\n /**\n * Returns a list of vector store files in a batch.\n */\n listFiles(batchID, params, options) {\n const { vector_store_id, ...query } = params;\n return this._client.getAPIList(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/files`, (CursorPage), { query, ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]) });\n }\n /**\n * Wait for the given file batch to be processed.\n *\n * Note: this will return even if one of the files failed to process, you need to\n * check batch.file_counts.failed_count to handle this case.\n */\n async poll(vectorStoreID, batchID, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const { data: batch, response } = await this.retrieve(batchID, { vector_store_id: vectorStoreID }, {\n ...options,\n headers,\n }).withResponse();\n switch (batch.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n case 'failed':\n case 'cancelled':\n case 'completed':\n return batch;\n }\n }\n }\n /**\n * Uploads the given files concurrently and then creates a vector store file batch.\n *\n * The concurrency limit is configurable using the `maxConcurrency` parameter.\n */\n async uploadAndPoll(vectorStoreId, { files, fileIds = [] }, options) {\n if (files == null || files.length == 0) {\n throw new Error(`No \\`files\\` provided to process. If you've already uploaded files you should use \\`.createAndPoll()\\` instead`);\n }\n const configuredConcurrency = options?.maxConcurrency ?? 5;\n // We cap the number of workers at the number of files (so we don't start any unnecessary workers)\n const concurrencyLimit = Math.min(configuredConcurrency, files.length);\n const client = this._client;\n const fileIterator = files.values();\n const allFileIds = [...fileIds];\n // This code is based on this design. The libraries don't accommodate our environment limits.\n // https://stackoverflow.com/questions/40639432/what-is-the-best-way-to-limit-concurrency-when-using-es6s-promise-all\n async function processFiles(iterator) {\n for (let item of iterator) {\n const fileObj = await client.files.create({ file: item, purpose: 'assistants' }, options);\n allFileIds.push(fileObj.id);\n }\n }\n // Start workers to process results\n const workers = Array(concurrencyLimit).fill(fileIterator).map(processFiles);\n // Wait for all processing to complete.\n await allSettledWithThrow(workers);\n return await this.createAndPoll(vectorStoreId, {\n file_ids: allFileIds,\n });\n }\n}\n//# sourceMappingURL=file-batches.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage, Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { sleep } from \"../../internal/utils.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * Create a vector store file by attaching a\n * [File](https://platform.openai.com/docs/api-reference/files) to a\n * [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object).\n */\n create(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}/files`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store file.\n */\n retrieve(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.get(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Update attributes on a vector store file.\n */\n update(fileID, params, options) {\n const { vector_store_id, ...body } = params;\n return this._client.post(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of vector store files.\n */\n list(vectorStoreID, query = {}, options) {\n return this._client.getAPIList(path `/vector_stores/${vectorStoreID}/files`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a vector store file. This will remove the file from the vector store but\n * the file itself will not be deleted. To delete the file, use the\n * [delete file](https://platform.openai.com/docs/api-reference/files/delete)\n * endpoint.\n */\n delete(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.delete(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Attach a file to the given vector store and wait for it to be processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const file = await this.create(vectorStoreId, body, options);\n return await this.poll(vectorStoreId, file.id, options);\n }\n /**\n * Wait for the vector store file to finish processing.\n *\n * Note: this will return even if the file failed to process, you need to check\n * file.last_error and file.status to handle these cases\n */\n async poll(vectorStoreID, fileID, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const fileResponse = await this.retrieve(fileID, {\n vector_store_id: vectorStoreID,\n }, { ...options, headers }).withResponse();\n const file = fileResponse.data;\n switch (file.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = fileResponse.response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n case 'failed':\n case 'completed':\n return file;\n }\n }\n }\n /**\n * Upload a file to the `files` API and then attach it to the given vector store.\n *\n * Note the file will be asynchronously processed (you can use the alternative\n * polling helper method to wait for processing to complete).\n */\n async upload(vectorStoreId, file, options) {\n const fileInfo = await this._client.files.create({ file: file, purpose: 'assistants' }, options);\n return this.create(vectorStoreId, { file_id: fileInfo.id }, options);\n }\n /**\n * Add a file to a vector store and poll until processing is complete.\n */\n async uploadAndPoll(vectorStoreId, file, options) {\n const fileInfo = await this.upload(vectorStoreId, file, options);\n return await this.poll(vectorStoreId, fileInfo.id, options);\n }\n /**\n * Retrieve the parsed contents of a vector store file.\n */\n content(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.getAPIList(path `/vector_stores/${vector_store_id}/files/${fileID}/content`, (Page), { ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]) });\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as FileBatchesAPI from \"./file-batches.mjs\";\nimport { FileBatches, } from \"./file-batches.mjs\";\nimport * as FilesAPI from \"./files.mjs\";\nimport { Files, } from \"./files.mjs\";\nimport { CursorPage, Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class VectorStores extends APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n this.fileBatches = new FileBatchesAPI.FileBatches(this._client);\n }\n /**\n * Create a vector store.\n */\n create(body, options) {\n return this._client.post('/vector_stores', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store.\n */\n retrieve(vectorStoreID, options) {\n return this._client.get(path `/vector_stores/${vectorStoreID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a vector store.\n */\n update(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of vector stores.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/vector_stores', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a vector store.\n */\n delete(vectorStoreID, options) {\n return this._client.delete(path `/vector_stores/${vectorStoreID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Search a vector store for relevant chunks based on a query and file attributes\n * filter.\n */\n search(vectorStoreID, body, options) {\n return this._client.getAPIList(path `/vector_stores/${vectorStoreID}/search`, (Page), {\n body,\n method: 'post',\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\nVectorStores.Files = Files;\nVectorStores.FileBatches = FileBatches;\n//# sourceMappingURL=vector-stores.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { ConversationCursorPage } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { maybeMultipartFormRequestOptions } from \"../internal/uploads.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Videos extends APIResource {\n /**\n * Create a video\n */\n create(body, options) {\n return this._client.post('/videos', maybeMultipartFormRequestOptions({ body, ...options }, this._client));\n }\n /**\n * Retrieve a video\n */\n retrieve(videoID, options) {\n return this._client.get(path `/videos/${videoID}`, options);\n }\n /**\n * List videos\n */\n list(query = {}, options) {\n return this._client.getAPIList('/videos', (ConversationCursorPage), { query, ...options });\n }\n /**\n * Delete a video\n */\n delete(videoID, options) {\n return this._client.delete(path `/videos/${videoID}`, options);\n }\n /**\n * Download video content\n */\n downloadContent(videoID, query = {}, options) {\n return this._client.get(path `/videos/${videoID}/content`, {\n query,\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n /**\n * Create a video remix\n */\n remix(videoID, body, options) {\n return this._client.post(path `/videos/${videoID}/remix`, maybeMultipartFormRequestOptions({ body, ...options }, this._client));\n }\n}\n//# sourceMappingURL=videos.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _Webhooks_instances, _Webhooks_validateSecret, _Webhooks_getRequiredHeader;\nimport { __classPrivateFieldGet } from \"../internal/tslib.mjs\";\nimport { InvalidWebhookSignatureError } from \"../error.mjs\";\nimport { APIResource } from \"../core/resource.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nexport class Webhooks extends APIResource {\n constructor() {\n super(...arguments);\n _Webhooks_instances.add(this);\n }\n /**\n * Validates that the given payload was sent by OpenAI and parses the payload.\n */\n async unwrap(payload, headers, secret = this._client.webhookSecret, tolerance = 300) {\n await this.verifySignature(payload, headers, secret, tolerance);\n return JSON.parse(payload);\n }\n /**\n * Validates whether or not the webhook payload was sent by OpenAI.\n *\n * An error will be raised if the webhook payload was not sent by OpenAI.\n *\n * @param payload - The webhook payload\n * @param headers - The webhook headers\n * @param secret - The webhook secret (optional, will use client secret if not provided)\n * @param tolerance - Maximum age of the webhook in seconds (default: 300 = 5 minutes)\n */\n async verifySignature(payload, headers, secret = this._client.webhookSecret, tolerance = 300) {\n if (typeof crypto === 'undefined' ||\n typeof crypto.subtle.importKey !== 'function' ||\n typeof crypto.subtle.verify !== 'function') {\n throw new Error('Webhook signature verification is only supported when the `crypto` global is defined');\n }\n __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_validateSecret).call(this, secret);\n const headersObj = buildHeaders([headers]).values;\n const signatureHeader = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-signature');\n const timestamp = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-timestamp');\n const webhookId = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-id');\n // Validate timestamp to prevent replay attacks\n const timestampSeconds = parseInt(timestamp, 10);\n if (isNaN(timestampSeconds)) {\n throw new InvalidWebhookSignatureError('Invalid webhook timestamp format');\n }\n const nowSeconds = Math.floor(Date.now() / 1000);\n if (nowSeconds - timestampSeconds > tolerance) {\n throw new InvalidWebhookSignatureError('Webhook timestamp is too old');\n }\n if (timestampSeconds > nowSeconds + tolerance) {\n throw new InvalidWebhookSignatureError('Webhook timestamp is too new');\n }\n // Extract signatures from v1,<base64> format\n // The signature header can have multiple values, separated by spaces.\n // Each value is in the format v1,<base64>. We should accept if any match.\n const signatures = signatureHeader\n .split(' ')\n .map((part) => (part.startsWith('v1,') ? part.substring(3) : part));\n // Decode the secret if it starts with whsec_\n const decodedSecret = secret.startsWith('whsec_') ?\n Buffer.from(secret.replace('whsec_', ''), 'base64')\n : Buffer.from(secret, 'utf-8');\n // Create the signed payload: {webhook_id}.{timestamp}.{payload}\n const signedPayload = webhookId ? `${webhookId}.${timestamp}.${payload}` : `${timestamp}.${payload}`;\n // Import the secret as a cryptographic key for HMAC\n const key = await crypto.subtle.importKey('raw', decodedSecret, { name: 'HMAC', hash: 'SHA-256' }, false, ['verify']);\n // Check if any signature matches using timing-safe WebCrypto verify\n for (const signature of signatures) {\n try {\n const signatureBytes = Buffer.from(signature, 'base64');\n const isValid = await crypto.subtle.verify('HMAC', key, signatureBytes, new TextEncoder().encode(signedPayload));\n if (isValid) {\n return; // Valid signature found\n }\n }\n catch {\n // Invalid base64 or signature format, continue to next signature\n continue;\n }\n }\n throw new InvalidWebhookSignatureError('The given webhook signature does not match the expected signature');\n }\n}\n_Webhooks_instances = new WeakSet(), _Webhooks_validateSecret = function _Webhooks_validateSecret(secret) {\n if (typeof secret !== 'string' || secret.length === 0) {\n throw new Error(`The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function`);\n }\n}, _Webhooks_getRequiredHeader = function _Webhooks_getRequiredHeader(headers, name) {\n if (!headers) {\n throw new Error(`Headers are required`);\n }\n const value = headers.get(name);\n if (value === null || value === undefined) {\n throw new Error(`Missing required header: ${name}`);\n }\n return value;\n};\n//# sourceMappingURL=webhooks.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _OpenAI_instances, _a, _OpenAI_encoder, _OpenAI_baseURLOverridden;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"./internal/tslib.mjs\";\nimport { uuid4 } from \"./internal/utils/uuid.mjs\";\nimport { validatePositiveInteger, isAbsoluteURL, safeJSON } from \"./internal/utils/values.mjs\";\nimport { sleep } from \"./internal/utils/sleep.mjs\";\nimport { castToError, isAbortError } from \"./internal/errors.mjs\";\nimport { getPlatformHeaders } from \"./internal/detect-platform.mjs\";\nimport * as Shims from \"./internal/shims.mjs\";\nimport * as Opts from \"./internal/request-options.mjs\";\nimport * as qs from \"./internal/qs/index.mjs\";\nimport { VERSION } from \"./version.mjs\";\nimport * as Errors from \"./core/error.mjs\";\nimport * as Pagination from \"./core/pagination.mjs\";\nimport * as Uploads from \"./core/uploads.mjs\";\nimport * as API from \"./resources/index.mjs\";\nimport { APIPromise } from \"./core/api-promise.mjs\";\nimport { Batches, } from \"./resources/batches.mjs\";\nimport { Completions, } from \"./resources/completions.mjs\";\nimport { Embeddings, } from \"./resources/embeddings.mjs\";\nimport { Files, } from \"./resources/files.mjs\";\nimport { Images, } from \"./resources/images.mjs\";\nimport { Models } from \"./resources/models.mjs\";\nimport { Moderations, } from \"./resources/moderations.mjs\";\nimport { Videos, } from \"./resources/videos.mjs\";\nimport { Webhooks } from \"./resources/webhooks.mjs\";\nimport { Audio } from \"./resources/audio/audio.mjs\";\nimport { Beta } from \"./resources/beta/beta.mjs\";\nimport { Chat } from \"./resources/chat/chat.mjs\";\nimport { Containers, } from \"./resources/containers/containers.mjs\";\nimport { Conversations } from \"./resources/conversations/conversations.mjs\";\nimport { Evals, } from \"./resources/evals/evals.mjs\";\nimport { FineTuning } from \"./resources/fine-tuning/fine-tuning.mjs\";\nimport { Graders } from \"./resources/graders/graders.mjs\";\nimport { Realtime } from \"./resources/realtime/realtime.mjs\";\nimport { Responses } from \"./resources/responses/responses.mjs\";\nimport { Uploads as UploadsAPIUploads, } from \"./resources/uploads/uploads.mjs\";\nimport { VectorStores, } from \"./resources/vector-stores/vector-stores.mjs\";\nimport { isRunningInBrowser } from \"./internal/detect-platform.mjs\";\nimport { buildHeaders } from \"./internal/headers.mjs\";\nimport { readEnv } from \"./internal/utils/env.mjs\";\nimport { formatRequestDetails, loggerFor, parseLogLevel, } from \"./internal/utils/log.mjs\";\nimport { isEmptyObj } from \"./internal/utils/values.mjs\";\n/**\n * API Client for interfacing with the OpenAI API.\n */\nexport class OpenAI {\n /**\n * API Client for interfacing with the OpenAI API.\n *\n * @param {string | undefined} [opts.apiKey=process.env['OPENAI_API_KEY'] ?? undefined]\n * @param {string | null | undefined} [opts.organization=process.env['OPENAI_ORG_ID'] ?? null]\n * @param {string | null | undefined} [opts.project=process.env['OPENAI_PROJECT_ID'] ?? null]\n * @param {string | null | undefined} [opts.webhookSecret=process.env['OPENAI_WEBHOOK_SECRET'] ?? null]\n * @param {string} [opts.baseURL=process.env['OPENAI_BASE_URL'] ?? https://api.openai.com/v1] - Override the default base URL for the API.\n * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.\n * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Record<string, string | undefined>} opts.defaultQuery - Default query parameters to include with every request to the API.\n * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n */\n constructor({ baseURL = readEnv('OPENAI_BASE_URL'), apiKey = readEnv('OPENAI_API_KEY'), organization = readEnv('OPENAI_ORG_ID') ?? null, project = readEnv('OPENAI_PROJECT_ID') ?? null, webhookSecret = readEnv('OPENAI_WEBHOOK_SECRET') ?? null, ...opts } = {}) {\n _OpenAI_instances.add(this);\n _OpenAI_encoder.set(this, void 0);\n this.completions = new API.Completions(this);\n this.chat = new API.Chat(this);\n this.embeddings = new API.Embeddings(this);\n this.files = new API.Files(this);\n this.images = new API.Images(this);\n this.audio = new API.Audio(this);\n this.moderations = new API.Moderations(this);\n this.models = new API.Models(this);\n this.fineTuning = new API.FineTuning(this);\n this.graders = new API.Graders(this);\n this.vectorStores = new API.VectorStores(this);\n this.webhooks = new API.Webhooks(this);\n this.beta = new API.Beta(this);\n this.batches = new API.Batches(this);\n this.uploads = new API.Uploads(this);\n this.responses = new API.Responses(this);\n this.realtime = new API.Realtime(this);\n this.conversations = new API.Conversations(this);\n this.evals = new API.Evals(this);\n this.containers = new API.Containers(this);\n this.videos = new API.Videos(this);\n if (apiKey === undefined) {\n throw new Errors.OpenAIError('Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.');\n }\n const options = {\n apiKey,\n organization,\n project,\n webhookSecret,\n ...opts,\n baseURL: baseURL || `https://api.openai.com/v1`,\n };\n if (!options.dangerouslyAllowBrowser && isRunningInBrowser()) {\n throw new Errors.OpenAIError(\"It looks like you're running in a browser-like environment.\\n\\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\\nIf you understand the risks and have appropriate mitigations in place,\\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\\n\\nnew OpenAI({ apiKey, dangerouslyAllowBrowser: true });\\n\\nhttps://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety\\n\");\n }\n this.baseURL = options.baseURL;\n this.timeout = options.timeout ?? _a.DEFAULT_TIMEOUT /* 10 minutes */;\n this.logger = options.logger ?? console;\n const defaultLogLevel = 'warn';\n // Set default logLevel early so that we can log a warning in parseLogLevel.\n this.logLevel = defaultLogLevel;\n this.logLevel =\n parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??\n parseLogLevel(readEnv('OPENAI_LOG'), \"process.env['OPENAI_LOG']\", this) ??\n defaultLogLevel;\n this.fetchOptions = options.fetchOptions;\n this.maxRetries = options.maxRetries ?? 2;\n this.fetch = options.fetch ?? Shims.getDefaultFetch();\n __classPrivateFieldSet(this, _OpenAI_encoder, Opts.FallbackEncoder, \"f\");\n this._options = options;\n this.apiKey = typeof apiKey === 'string' ? apiKey : 'Missing Key';\n this.organization = organization;\n this.project = project;\n this.webhookSecret = webhookSecret;\n }\n /**\n * Create a new client instance re-using the same options given to the current client with optional overriding.\n */\n withOptions(options) {\n const client = new this.constructor({\n ...this._options,\n baseURL: this.baseURL,\n maxRetries: this.maxRetries,\n timeout: this.timeout,\n logger: this.logger,\n logLevel: this.logLevel,\n fetch: this.fetch,\n fetchOptions: this.fetchOptions,\n apiKey: this.apiKey,\n organization: this.organization,\n project: this.project,\n webhookSecret: this.webhookSecret,\n ...options,\n });\n return client;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n validateHeaders({ values, nulls }) {\n return;\n }\n async authHeaders(opts) {\n return buildHeaders([{ Authorization: `Bearer ${this.apiKey}` }]);\n }\n stringifyQuery(query) {\n return qs.stringify(query, { arrayFormat: 'brackets' });\n }\n getUserAgent() {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\n makeStatusError(status, error, message, headers) {\n return Errors.APIError.generate(status, error, message, headers);\n }\n async _callApiKey() {\n const apiKey = this._options.apiKey;\n if (typeof apiKey !== 'function')\n return false;\n let token;\n try {\n token = await apiKey();\n }\n catch (err) {\n if (err instanceof Errors.OpenAIError)\n throw err;\n throw new Errors.OpenAIError(`Failed to get token from 'apiKey' function: ${err.message}`, \n // @ts-ignore\n { cause: err });\n }\n if (typeof token !== 'string' || !token) {\n throw new Errors.OpenAIError(`Expected 'apiKey' function argument to return a string but it returned ${token}`);\n }\n this.apiKey = token;\n return true;\n }\n buildURL(path, query, defaultBaseURL) {\n const baseURL = (!__classPrivateFieldGet(this, _OpenAI_instances, \"m\", _OpenAI_baseURLOverridden).call(this) && defaultBaseURL) || this.baseURL;\n const url = isAbsoluteURL(path) ?\n new URL(path)\n : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n const defaultQuery = this.defaultQuery();\n if (!isEmptyObj(defaultQuery)) {\n query = { ...defaultQuery, ...query };\n }\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n return url.toString();\n }\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n */\n async prepareOptions(options) {\n await this._callApiKey();\n }\n /**\n * Used as a callback for mutating the given `RequestInit` object.\n *\n * This is useful for cases where you want to add certain headers based off of\n * the request properties, e.g. `method` or `url`.\n */\n async prepareRequest(request, { url, options }) { }\n get(path, opts) {\n return this.methodRequest('get', path, opts);\n }\n post(path, opts) {\n return this.methodRequest('post', path, opts);\n }\n patch(path, opts) {\n return this.methodRequest('patch', path, opts);\n }\n put(path, opts) {\n return this.methodRequest('put', path, opts);\n }\n delete(path, opts) {\n return this.methodRequest('delete', path, opts);\n }\n methodRequest(method, path, opts) {\n return this.request(Promise.resolve(opts).then((opts) => {\n return { method, path, ...opts };\n }));\n }\n request(options, remainingRetries = null) {\n return new APIPromise(this, this.makeRequest(options, remainingRetries, undefined));\n }\n async makeRequest(optionsInput, retriesRemaining, retryOfRequestLogID) {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n await this.prepareOptions(options);\n const { req, url, timeout } = await this.buildRequest(options, {\n retryCount: maxRetries - retriesRemaining,\n });\n await this.prepareRequest(req, { url, options });\n /** Not an API request ID, just for correlating local log entries. */\n const requestLogID = 'log_' + ((Math.random() * (1 << 24)) | 0).toString(16).padStart(6, '0');\n const retryLogStr = retryOfRequestLogID === undefined ? '' : `, retryOf: ${retryOfRequestLogID}`;\n const startTime = Date.now();\n loggerFor(this).debug(`[${requestLogID}] sending request`, formatRequestDetails({\n retryOfRequestLogID,\n method: options.method,\n url,\n options,\n headers: req.headers,\n }));\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError);\n const headersTime = Date.now();\n if (response instanceof globalThis.Error) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n // detect native connection timeout errors\n // deno throws \"TypeError: error sending request for url (https://example/): client error (Connect): tcp connect error: Operation timed out (os error 60): Operation timed out (os error 60)\"\n // undici throws \"TypeError: fetch failed\" with cause \"ConnectTimeoutError: Connect Timeout Error (attempted address: example:443, timeout: 1ms)\"\n // others do not provide enough information to distinguish timeouts from other connection errors\n const isTimeout = isAbortError(response) ||\n /timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : ''));\n if (retriesRemaining) {\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID);\n }\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - error; no more retries left`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (error; no more retries left)`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n if (isTimeout) {\n throw new Errors.APIConnectionTimeoutError();\n }\n throw new Errors.APIConnectionError({ cause: response });\n }\n const specialHeaders = [...response.headers.entries()]\n .filter(([name]) => name === 'x-request-id')\n .map(([name, value]) => ', ' + name + ': ' + JSON.stringify(value))\n .join('');\n const responseInfo = `[${requestLogID}${retryLogStr}${specialHeaders}] ${req.method} ${url} ${response.ok ? 'succeeded' : 'failed'} with status ${response.status} in ${headersTime - startTime}ms`;\n if (!response.ok) {\n const shouldRetry = await this.shouldRetry(response);\n if (retriesRemaining && shouldRetry) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n // We don't need the body of this response.\n await Shims.CancelReadableStream(response.body);\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID, response.headers);\n }\n const retryMessage = shouldRetry ? `error; no more retries left` : `error; not retryable`;\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n const errText = await response.text().catch((err) => castToError(err).message);\n const errJSON = safeJSON(errText);\n const errMessage = errJSON ? undefined : errText;\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n message: errMessage,\n durationMs: Date.now() - startTime,\n }));\n const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers);\n throw err;\n }\n loggerFor(this).info(responseInfo);\n loggerFor(this).debug(`[${requestLogID}] response start`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, { method: 'get', path, ...opts });\n }\n requestAPIList(Page, options) {\n const request = this.makeRequest(options, null, undefined);\n return new Pagination.PagePromise(this, request, Page);\n }\n async fetchWithTimeout(url, init, ms, controller) {\n const { signal, method, ...options } = init || {};\n if (signal)\n signal.addEventListener('abort', () => controller.abort());\n const timeout = setTimeout(() => controller.abort(), ms);\n const isReadableBody = (globalThis.ReadableStream && options.body instanceof globalThis.ReadableStream) ||\n (typeof options.body === 'object' && options.body !== null && Symbol.asyncIterator in options.body);\n const fetchOptions = {\n signal: controller.signal,\n ...(isReadableBody ? { duplex: 'half' } : {}),\n method: 'GET',\n ...options,\n };\n if (method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = method.toUpperCase();\n }\n try {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n return await this.fetch.call(undefined, url, fetchOptions);\n }\n finally {\n clearTimeout(timeout);\n }\n }\n async shouldRetry(response) {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true')\n return true;\n if (shouldRetryHeader === 'false')\n return false;\n // Retry on request timeouts.\n if (response.status === 408)\n return true;\n // Retry on lock timeouts.\n if (response.status === 409)\n return true;\n // Retry on rate limits.\n if (response.status === 429)\n return true;\n // Retry internal errors.\n if (response.status >= 500)\n return true;\n return false;\n }\n async retryRequest(options, retriesRemaining, requestLogID, responseHeaders) {\n let timeoutMillis;\n // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it.\n const retryAfterMillisHeader = responseHeaders?.get('retry-after-ms');\n if (retryAfterMillisHeader) {\n const timeoutMs = parseFloat(retryAfterMillisHeader);\n if (!Number.isNaN(timeoutMs)) {\n timeoutMillis = timeoutMs;\n }\n }\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfterHeader = responseHeaders?.get('retry-after');\n if (retryAfterHeader && !timeoutMillis) {\n const timeoutSeconds = parseFloat(retryAfterHeader);\n if (!Number.isNaN(timeoutSeconds)) {\n timeoutMillis = timeoutSeconds * 1000;\n }\n else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\n }\n // If the API asks us to wait a certain amount of time (and it's a reasonable amount),\n // just do what it says, but otherwise calculate a default\n if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1000)) {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);\n }\n await sleep(timeoutMillis);\n return this.makeRequest(options, retriesRemaining - 1, requestLogID);\n }\n calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n const numRetries = maxRetries - retriesRemaining;\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n return sleepSeconds * jitter * 1000;\n }\n async buildRequest(inputOptions, { retryCount = 0 } = {}) {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL } = options;\n const url = this.buildURL(path, query, defaultBaseURL);\n if ('timeout' in options)\n validatePositiveInteger('timeout', options.timeout);\n options.timeout = options.timeout ?? this.timeout;\n const { bodyHeaders, body } = this.buildBody({ options });\n const reqHeaders = await this.buildHeaders({ options: inputOptions, method, bodyHeaders, retryCount });\n const req = {\n method,\n headers: reqHeaders,\n ...(options.signal && { signal: options.signal }),\n ...(globalThis.ReadableStream &&\n body instanceof globalThis.ReadableStream && { duplex: 'half' }),\n ...(body && { body }),\n ...(this.fetchOptions ?? {}),\n ...(options.fetchOptions ?? {}),\n };\n return { req, url, timeout: options.timeout };\n }\n async buildHeaders({ options, method, bodyHeaders, retryCount, }) {\n let idempotencyHeaders = {};\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey)\n options.idempotencyKey = this.defaultIdempotencyKey();\n idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey;\n }\n const headers = buildHeaders([\n idempotencyHeaders,\n {\n Accept: 'application/json',\n 'User-Agent': this.getUserAgent(),\n 'X-Stainless-Retry-Count': String(retryCount),\n ...(options.timeout ? { 'X-Stainless-Timeout': String(Math.trunc(options.timeout / 1000)) } : {}),\n ...getPlatformHeaders(),\n 'OpenAI-Organization': this.organization,\n 'OpenAI-Project': this.project,\n },\n await this.authHeaders(options),\n this._options.defaultHeaders,\n bodyHeaders,\n options.headers,\n ]);\n this.validateHeaders(headers);\n return headers.values;\n }\n buildBody({ options: { body, headers: rawHeaders } }) {\n if (!body) {\n return { bodyHeaders: undefined, body: undefined };\n }\n const headers = buildHeaders([rawHeaders]);\n if (\n // Pass raw type verbatim\n ArrayBuffer.isView(body) ||\n body instanceof ArrayBuffer ||\n body instanceof DataView ||\n (typeof body === 'string' &&\n // Preserve legacy string encoding behavior for now\n headers.values.has('content-type')) ||\n // `Blob` is superset of `File`\n (globalThis.Blob && body instanceof globalThis.Blob) ||\n // `FormData` -> `multipart/form-data`\n body instanceof FormData ||\n // `URLSearchParams` -> `application/x-www-form-urlencoded`\n body instanceof URLSearchParams ||\n // Send chunked stream (each chunk has own `length`)\n (globalThis.ReadableStream && body instanceof globalThis.ReadableStream)) {\n return { bodyHeaders: undefined, body: body };\n }\n else if (typeof body === 'object' &&\n (Symbol.asyncIterator in body ||\n (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))) {\n return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body) };\n }\n else {\n return __classPrivateFieldGet(this, _OpenAI_encoder, \"f\").call(this, { body, headers });\n }\n }\n}\n_a = OpenAI, _OpenAI_encoder = new WeakMap(), _OpenAI_instances = new WeakSet(), _OpenAI_baseURLOverridden = function _OpenAI_baseURLOverridden() {\n return this.baseURL !== 'https://api.openai.com/v1';\n};\nOpenAI.OpenAI = _a;\nOpenAI.DEFAULT_TIMEOUT = 600000; // 10 minutes\nOpenAI.OpenAIError = Errors.OpenAIError;\nOpenAI.APIError = Errors.APIError;\nOpenAI.APIConnectionError = Errors.APIConnectionError;\nOpenAI.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\nOpenAI.APIUserAbortError = Errors.APIUserAbortError;\nOpenAI.NotFoundError = Errors.NotFoundError;\nOpenAI.ConflictError = Errors.ConflictError;\nOpenAI.RateLimitError = Errors.RateLimitError;\nOpenAI.BadRequestError = Errors.BadRequestError;\nOpenAI.AuthenticationError = Errors.AuthenticationError;\nOpenAI.InternalServerError = Errors.InternalServerError;\nOpenAI.PermissionDeniedError = Errors.PermissionDeniedError;\nOpenAI.UnprocessableEntityError = Errors.UnprocessableEntityError;\nOpenAI.InvalidWebhookSignatureError = Errors.InvalidWebhookSignatureError;\nOpenAI.toFile = Uploads.toFile;\nOpenAI.Completions = Completions;\nOpenAI.Chat = Chat;\nOpenAI.Embeddings = Embeddings;\nOpenAI.Files = Files;\nOpenAI.Images = Images;\nOpenAI.Audio = Audio;\nOpenAI.Moderations = Moderations;\nOpenAI.Models = Models;\nOpenAI.FineTuning = FineTuning;\nOpenAI.Graders = Graders;\nOpenAI.VectorStores = VectorStores;\nOpenAI.Webhooks = Webhooks;\nOpenAI.Beta = Beta;\nOpenAI.Batches = Batches;\nOpenAI.Uploads = UploadsAPIUploads;\nOpenAI.Responses = Responses;\nOpenAI.Realtime = Realtime;\nOpenAI.Conversations = Conversations;\nOpenAI.Evals = Evals;\nOpenAI.Containers = Containers;\nOpenAI.Videos = Videos;\n//# sourceMappingURL=client.mjs.map",null,null,null,null,null,null,null,null,null,"'use strict';\n\nconst BINARY_TYPES = ['nodebuffer', 'arraybuffer', 'fragments'];\nconst hasBlob = typeof Blob !== 'undefined';\n\nif (hasBlob) BINARY_TYPES.push('blob');\n\nmodule.exports = {\n BINARY_TYPES,\n EMPTY_BUFFER: Buffer.alloc(0),\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n hasBlob,\n kForOnEventAttribute: Symbol('kIsForOnEventAttribute'),\n kListener: Symbol('kListener'),\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n NOOP: () => {}\n};\n","'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\nconst FastBuffer = Buffer[Symbol.species];\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) {\n return new FastBuffer(target.buffer, target.byteOffset, offset);\n }\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n for (let i = 0; i < buffer.length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.length === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.length);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = new FastBuffer(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = new FastBuffer(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\nmodule.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n};\n\n/* istanbul ignore else */\nif (!process.env.WS_NO_BUFFER_UTIL) {\n try {\n const bufferUtil = require('bufferutil');\n\n module.exports.mask = function (source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bufferUtil.mask(source, mask, output, offset, length);\n };\n\n module.exports.unmask = function (buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bufferUtil.unmask(buffer, mask);\n };\n } catch (e) {\n // Continue regardless of the error.\n }\n}\n","'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n","'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode } = require('./constants');\n\nconst FastBuffer = Buffer[Symbol.species];\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed if context takeover is disabled\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {(Buffer|String)} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {(Buffer|String)} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) {\n data = new FastBuffer(data.buffer, data.byteOffset, data.length - 4);\n }\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError].code = 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH';\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n\n //\n // The choice to employ `zlib.reset()` over `zlib.close()` is dictated by the\n // fact that in Node.js versions prior to 13.10.0, the callback for\n // `zlib.flush()` is not called if `zlib.close()` is used. Utilizing\n // `zlib.reset()` ensures that either the callback is invoked or an error is\n // emitted.\n //\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n\n if (this[kError]) {\n this[kCallback](this[kError]);\n return;\n }\n\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n","'use strict';\n\nconst { isUtf8 } = require('buffer');\n\nconst { hasBlob } = require('./constants');\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Determines whether a value is a `Blob`.\n *\n * @param {*} value The value to be tested\n * @return {Boolean} `true` if `value` is a `Blob`, else `false`\n * @private\n */\nfunction isBlob(value) {\n return (\n hasBlob &&\n typeof value === 'object' &&\n typeof value.arrayBuffer === 'function' &&\n typeof value.type === 'string' &&\n typeof value.stream === 'function' &&\n (value[Symbol.toStringTag] === 'Blob' ||\n value[Symbol.toStringTag] === 'File')\n );\n}\n\nmodule.exports = {\n isBlob,\n isValidStatusCode,\n isValidUTF8: _isValidUTF8,\n tokenChars\n};\n\nif (isUtf8) {\n module.exports.isValidUTF8 = function (buf) {\n return buf.length < 24 ? _isValidUTF8(buf) : isUtf8(buf);\n };\n} /* istanbul ignore else */ else if (!process.env.WS_NO_UTF_8_VALIDATE) {\n try {\n const isValidUTF8 = require('utf-8-validate');\n\n module.exports.isValidUTF8 = function (buf) {\n return buf.length < 32 ? _isValidUTF8(buf) : isValidUTF8(buf);\n };\n } catch (e) {\n // Continue regardless of the error.\n }\n}\n","'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst FastBuffer = Buffer[Symbol.species];\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\nconst DEFER_EVENT = 6;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {Object} [options] Options object\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {String} [options.binaryType=nodebuffer] The type for binary data\n * @param {Object} [options.extensions] An object containing the negotiated\n * extensions\n * @param {Boolean} [options.isServer=false] Specifies whether to operate in\n * client or server mode\n * @param {Number} [options.maxPayload=0] The maximum allowed message length\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n */\n constructor(options = {}) {\n super();\n\n this._allowSynchronousEvents =\n options.allowSynchronousEvents !== undefined\n ? options.allowSynchronousEvents\n : true;\n this._binaryType = options.binaryType || BINARY_TYPES[0];\n this._extensions = options.extensions || {};\n this._isServer = !!options.isServer;\n this._maxPayload = options.maxPayload | 0;\n this._skipUTF8Validation = !!options.skipUTF8Validation;\n this[kWebSocket] = undefined;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._errored = false;\n this._loop = false;\n this._state = GET_INFO;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = new FastBuffer(\n buf.buffer,\n buf.byteOffset + n,\n buf.length - n\n );\n\n return new FastBuffer(buf.buffer, buf.byteOffset, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = new FastBuffer(\n buf.buffer,\n buf.byteOffset + n,\n buf.length - n\n );\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n this.getInfo(cb);\n break;\n case GET_PAYLOAD_LENGTH_16:\n this.getPayloadLength16(cb);\n break;\n case GET_PAYLOAD_LENGTH_64:\n this.getPayloadLength64(cb);\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n this.getData(cb);\n break;\n case INFLATING:\n case DEFER_EVENT:\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n if (!this._errored) cb();\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @param {Function} cb Callback\n * @private\n */\n getInfo(cb) {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n const error = this.createError(\n RangeError,\n 'RSV2 and RSV3 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_2_3'\n );\n\n cb(error);\n return;\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n if (!this._fragmented) {\n const error = this.createError(\n RangeError,\n 'invalid opcode 0',\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n const error = this.createError(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n const error = this.createError(\n RangeError,\n 'FIN must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_FIN'\n );\n\n cb(error);\n return;\n }\n\n if (compressed) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n if (\n this._payloadLength > 0x7d ||\n (this._opcode === 0x08 && this._payloadLength === 1)\n ) {\n const error = this.createError(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n\n cb(error);\n return;\n }\n } else {\n const error = this.createError(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n const error = this.createError(\n RangeError,\n 'MASK must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_MASK'\n );\n\n cb(error);\n return;\n }\n } else if (this._masked) {\n const error = this.createError(\n RangeError,\n 'MASK must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_MASK'\n );\n\n cb(error);\n return;\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else this.haveLength(cb);\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @param {Function} cb Callback\n * @private\n */\n getPayloadLength16(cb) {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n this.haveLength(cb);\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @param {Function} cb Callback\n * @private\n */\n getPayloadLength64(cb) {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n const error = this.createError(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH'\n );\n\n cb(error);\n return;\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n this.haveLength(cb);\n }\n\n /**\n * Payload length has been read.\n *\n * @param {Function} cb Callback\n * @private\n */\n haveLength(cb) {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n const error = this.createError(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n\n cb(error);\n return;\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n\n if (\n this._masked &&\n (this._mask[0] | this._mask[1] | this._mask[2] | this._mask[3]) !== 0\n ) {\n unmask(data, this._mask);\n }\n }\n\n if (this._opcode > 0x07) {\n this.controlMessage(data, cb);\n return;\n }\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its length is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n this.dataMessage(cb);\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n const error = this.createError(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n\n cb(error);\n return;\n }\n\n this._fragments.push(buf);\n }\n\n this.dataMessage(cb);\n if (this._state === GET_INFO) this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @param {Function} cb Callback\n * @private\n */\n dataMessage(cb) {\n if (!this._fin) {\n this._state = GET_INFO;\n return;\n }\n\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else if (this._binaryType === 'blob') {\n data = new Blob(fragments);\n } else {\n data = fragments;\n }\n\n if (this._allowSynchronousEvents) {\n this.emit('message', data, true);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit('message', data, true);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n const error = this.createError(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n\n cb(error);\n return;\n }\n\n if (this._state === INFLATING || this._allowSynchronousEvents) {\n this.emit('message', buf, false);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit('message', buf, false);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n }\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data, cb) {\n if (this._opcode === 0x08) {\n if (data.length === 0) {\n this._loop = false;\n this.emit('conclude', 1005, EMPTY_BUFFER);\n this.end();\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n const error = this.createError(\n RangeError,\n `invalid status code ${code}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CLOSE_CODE'\n );\n\n cb(error);\n return;\n }\n\n const buf = new FastBuffer(\n data.buffer,\n data.byteOffset + 2,\n data.length - 2\n );\n\n if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n const error = this.createError(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n\n cb(error);\n return;\n }\n\n this._loop = false;\n this.emit('conclude', code, buf);\n this.end();\n }\n\n this._state = GET_INFO;\n return;\n }\n\n if (this._allowSynchronousEvents) {\n this.emit(this._opcode === 0x09 ? 'ping' : 'pong', data);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit(this._opcode === 0x09 ? 'ping' : 'pong', data);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n }\n\n /**\n * Builds an error object.\n *\n * @param {function(new:Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @param {String} errorCode The exposed error code\n * @return {(Error|RangeError)} The error\n * @private\n */\n createError(ErrorCtor, message, prefix, statusCode, errorCode) {\n this._loop = false;\n this._errored = true;\n\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, this.createError);\n err.code = errorCode;\n err[kStatusCode] = statusCode;\n return err;\n }\n}\n\nmodule.exports = Receiver;\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex\" }] */\n\n'use strict';\n\nconst { Duplex } = require('stream');\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER, kWebSocket, NOOP } = require('./constants');\nconst { isBlob, isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst kByteLength = Symbol('kByteLength');\nconst maskBuffer = Buffer.alloc(4);\nconst RANDOM_POOL_SIZE = 8 * 1024;\nlet randomPool;\nlet randomPoolPointer = RANDOM_POOL_SIZE;\n\nconst DEFAULT = 0;\nconst DEFLATING = 1;\nconst GET_BLOB_DATA = 2;\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {Duplex} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Function} [generateMask] The function used to generate the masking\n * key\n */\n constructor(socket, extensions, generateMask) {\n this._extensions = extensions || {};\n\n if (generateMask) {\n this._generateMask = generateMask;\n this._maskBuffer = Buffer.alloc(4);\n }\n\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._queue = [];\n this._state = DEFAULT;\n this.onerror = NOOP;\n this[kWebSocket] = undefined;\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {(Buffer|String)} data The data to frame\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {(Buffer|String)[]} The framed data\n * @public\n */\n static frame(data, options) {\n let mask;\n let merge = false;\n let offset = 2;\n let skipMasking = false;\n\n if (options.mask) {\n mask = options.maskBuffer || maskBuffer;\n\n if (options.generateMask) {\n options.generateMask(mask);\n } else {\n if (randomPoolPointer === RANDOM_POOL_SIZE) {\n /* istanbul ignore else */\n if (randomPool === undefined) {\n //\n // This is lazily initialized because server-sent frames must not\n // be masked so it may never be used.\n //\n randomPool = Buffer.alloc(RANDOM_POOL_SIZE);\n }\n\n randomFillSync(randomPool, 0, RANDOM_POOL_SIZE);\n randomPoolPointer = 0;\n }\n\n mask[0] = randomPool[randomPoolPointer++];\n mask[1] = randomPool[randomPoolPointer++];\n mask[2] = randomPool[randomPoolPointer++];\n mask[3] = randomPool[randomPoolPointer++];\n }\n\n skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0;\n offset = 6;\n }\n\n let dataLength;\n\n if (typeof data === 'string') {\n if (\n (!options.mask || skipMasking) &&\n options[kByteLength] !== undefined\n ) {\n dataLength = options[kByteLength];\n } else {\n data = Buffer.from(data);\n dataLength = data.length;\n }\n } else {\n dataLength = data.length;\n merge = options.mask && options.readOnly && !skipMasking;\n }\n\n let payloadLength = dataLength;\n\n if (dataLength >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (dataLength > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? dataLength + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(dataLength, 2);\n } else if (payloadLength === 127) {\n target[2] = target[3] = 0;\n target.writeUIntBE(dataLength, 4, 6);\n }\n\n if (!options.mask) return [target, data];\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (skipMasking) return [target, data];\n\n if (merge) {\n applyMask(data, mask, target, offset, dataLength);\n return [target];\n }\n\n applyMask(data, mask, data, 0, dataLength);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {(String|Buffer)} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || !data.length) {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n\n if (typeof data === 'string') {\n buf.write(data, 2);\n } else {\n buf.set(data, 2);\n }\n }\n\n const options = {\n [kByteLength]: buf.length,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x08,\n readOnly: false,\n rsv1: false\n };\n\n if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, buf, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(buf, options), cb);\n }\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (byteLength > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n const options = {\n [kByteLength]: byteLength,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x09,\n readOnly,\n rsv1: false\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, false, options, cb]);\n } else {\n this.getBlobData(data, false, options, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(data, options), cb);\n }\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (byteLength > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n const options = {\n [kByteLength]: byteLength,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x0a,\n readOnly,\n rsv1: false\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, false, options, cb]);\n } else {\n this.getBlobData(data, false, options, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(data, options), cb);\n }\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (\n rsv1 &&\n perMessageDeflate &&\n perMessageDeflate.params[\n perMessageDeflate._isServer\n ? 'server_no_context_takeover'\n : 'client_no_context_takeover'\n ]\n ) {\n rsv1 = byteLength >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n const opts = {\n [kByteLength]: byteLength,\n fin: options.fin,\n generateMask: this._generateMask,\n mask: options.mask,\n maskBuffer: this._maskBuffer,\n opcode,\n readOnly,\n rsv1\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, this._compress, opts, cb]);\n } else {\n this.getBlobData(data, this._compress, opts, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, this._compress, opts, cb]);\n } else {\n this.dispatch(data, this._compress, opts, cb);\n }\n }\n\n /**\n * Gets the contents of a blob as binary data.\n *\n * @param {Blob} blob The blob\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * the data\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n getBlobData(blob, compress, options, cb) {\n this._bufferedBytes += options[kByteLength];\n this._state = GET_BLOB_DATA;\n\n blob\n .arrayBuffer()\n .then((arrayBuffer) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while the blob was being read'\n );\n\n //\n // `callCallbacks` is called in the next tick to ensure that errors\n // that might be thrown in the callbacks behave like errors thrown\n // outside the promise chain.\n //\n process.nextTick(callCallbacks, this, err, cb);\n return;\n }\n\n this._bufferedBytes -= options[kByteLength];\n const data = toBuffer(arrayBuffer);\n\n if (!compress) {\n this._state = DEFAULT;\n this.sendFrame(Sender.frame(data, options), cb);\n this.dequeue();\n } else {\n this.dispatch(data, compress, options, cb);\n }\n })\n .catch((err) => {\n //\n // `onError` is called in the next tick for the same reason that\n // `callCallbacks` above is.\n //\n process.nextTick(onError, this, err, cb);\n });\n }\n\n /**\n * Dispatches a message.\n *\n * @param {(Buffer|String)} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += options[kByteLength];\n this._state = DEFLATING;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n callCallbacks(this, err, cb);\n return;\n }\n\n this._bufferedBytes -= options[kByteLength];\n this._state = DEFAULT;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (this._state === DEFAULT && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[3][kByteLength];\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[3][kByteLength];\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {(Buffer | String)[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n\n/**\n * Calls queued callbacks with an error.\n *\n * @param {Sender} sender The `Sender` instance\n * @param {Error} err The error to call the callbacks with\n * @param {Function} [cb] The first callback\n * @private\n */\nfunction callCallbacks(sender, err, cb) {\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < sender._queue.length; i++) {\n const params = sender._queue[i];\n const callback = params[params.length - 1];\n\n if (typeof callback === 'function') callback(err);\n }\n}\n\n/**\n * Handles a `Sender` error.\n *\n * @param {Sender} sender The `Sender` instance\n * @param {Error} err The error\n * @param {Function} [cb] The first pending callback\n * @private\n */\nfunction onError(sender, err, cb) {\n callCallbacks(sender, err, cb);\n sender.onerror(err);\n}\n","'use strict';\n\nconst { kForOnEventAttribute, kListener } = require('./constants');\n\nconst kCode = Symbol('kCode');\nconst kData = Symbol('kData');\nconst kError = Symbol('kError');\nconst kMessage = Symbol('kMessage');\nconst kReason = Symbol('kReason');\nconst kTarget = Symbol('kTarget');\nconst kType = Symbol('kType');\nconst kWasClean = Symbol('kWasClean');\n\n/**\n * Class representing an event.\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @throws {TypeError} If the `type` argument is not specified\n */\n constructor(type) {\n this[kTarget] = null;\n this[kType] = type;\n }\n\n /**\n * @type {*}\n */\n get target() {\n return this[kTarget];\n }\n\n /**\n * @type {String}\n */\n get type() {\n return this[kType];\n }\n}\n\nObject.defineProperty(Event.prototype, 'target', { enumerable: true });\nObject.defineProperty(Event.prototype, 'type', { enumerable: true });\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {Number} [options.code=0] The status code explaining why the\n * connection was closed\n * @param {String} [options.reason=''] A human-readable string explaining why\n * the connection was closed\n * @param {Boolean} [options.wasClean=false] Indicates whether or not the\n * connection was cleanly closed\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kCode] = options.code === undefined ? 0 : options.code;\n this[kReason] = options.reason === undefined ? '' : options.reason;\n this[kWasClean] = options.wasClean === undefined ? false : options.wasClean;\n }\n\n /**\n * @type {Number}\n */\n get code() {\n return this[kCode];\n }\n\n /**\n * @type {String}\n */\n get reason() {\n return this[kReason];\n }\n\n /**\n * @type {Boolean}\n */\n get wasClean() {\n return this[kWasClean];\n }\n}\n\nObject.defineProperty(CloseEvent.prototype, 'code', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'reason', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'wasClean', { enumerable: true });\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {*} [options.error=null] The error that generated this event\n * @param {String} [options.message=''] The error message\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kError] = options.error === undefined ? null : options.error;\n this[kMessage] = options.message === undefined ? '' : options.message;\n }\n\n /**\n * @type {*}\n */\n get error() {\n return this[kError];\n }\n\n /**\n * @type {String}\n */\n get message() {\n return this[kMessage];\n }\n}\n\nObject.defineProperty(ErrorEvent.prototype, 'error', { enumerable: true });\nObject.defineProperty(ErrorEvent.prototype, 'message', { enumerable: true });\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {*} [options.data=null] The message content\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kData] = options.data === undefined ? null : options.data;\n }\n\n /**\n * @type {*}\n */\n get data() {\n return this[kData];\n }\n}\n\nObject.defineProperty(MessageEvent.prototype, 'data', { enumerable: true });\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {(Function|Object)} handler The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, handler, options = {}) {\n for (const listener of this.listeners(type)) {\n if (\n !options[kForOnEventAttribute] &&\n listener[kListener] === handler &&\n !listener[kForOnEventAttribute]\n ) {\n return;\n }\n }\n\n let wrapper;\n\n if (type === 'message') {\n wrapper = function onMessage(data, isBinary) {\n const event = new MessageEvent('message', {\n data: isBinary ? data : data.toString()\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'close') {\n wrapper = function onClose(code, message) {\n const event = new CloseEvent('close', {\n code,\n reason: message.toString(),\n wasClean: this._closeFrameReceived && this._closeFrameSent\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'error') {\n wrapper = function onError(error) {\n const event = new ErrorEvent('error', {\n error,\n message: error.message\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'open') {\n wrapper = function onOpen() {\n const event = new Event('open');\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else {\n return;\n }\n\n wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute];\n wrapper[kListener] = handler;\n\n if (options.once) {\n this.once(type, wrapper);\n } else {\n this.on(type, wrapper);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {(Function|Object)} handler The listener to remove\n * @public\n */\n removeEventListener(type, handler) {\n for (const listener of this.listeners(type)) {\n if (listener[kListener] === handler && !listener[kForOnEventAttribute]) {\n this.removeListener(type, listener);\n break;\n }\n }\n }\n};\n\nmodule.exports = {\n CloseEvent,\n ErrorEvent,\n Event,\n EventTarget,\n MessageEvent\n};\n\n/**\n * Call an event listener\n *\n * @param {(Function|Object)} listener The listener to call\n * @param {*} thisArg The value to use as `this`` when calling the listener\n * @param {Event} event The event to pass to the listener\n * @private\n */\nfunction callListener(listener, thisArg, event) {\n if (typeof listener === 'object' && listener.handleEvent) {\n listener.handleEvent.call(listener, event);\n } else {\n listener.call(thisArg, event);\n }\n}\n","'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let code = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (\n i !== 0 &&\n (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n ) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes || code === 0x20 || code === 0x09) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex|Readable$\", \"caughtErrors\": \"none\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { Duplex, Readable } = require('stream');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst { isBlob } = require('./validation');\n\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kForOnEventAttribute,\n kListener,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst {\n EventTarget: { addEventListener, removeEventListener }\n} = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst closeTimeout = 30 * 1000;\nconst kAborted = Symbol('kAborted');\nconst protocolVersions = [8, 13];\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst subprotocolRegex = /^[!#$%&'*+\\-.0-9A-Z^_`|a-z~]+$/;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = EMPTY_BUFFER;\n this._closeTimer = null;\n this._errorEmitted = false;\n this._extensions = {};\n this._paused = false;\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (protocols === undefined) {\n protocols = [];\n } else if (!Array.isArray(protocols)) {\n if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = [];\n } else {\n protocols = [protocols];\n }\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._autoPong = options.autoPong;\n this._isServer = true;\n }\n }\n\n /**\n * For historical reasons, the custom \"nodebuffer\" type is used by the default\n * instead of \"blob\".\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {Boolean}\n */\n get isPaused() {\n return this._paused;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onclose() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onerror() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onopen() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onmessage() {\n return null;\n }\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Object} options Options object\n * @param {Boolean} [options.allowSynchronousEvents=false] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Number} [options.maxPayload=0] The maximum allowed message size\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @private\n */\n setSocket(socket, head, options) {\n const receiver = new Receiver({\n allowSynchronousEvents: options.allowSynchronousEvents,\n binaryType: this.binaryType,\n extensions: this._extensions,\n isServer: this._isServer,\n maxPayload: options.maxPayload,\n skipUTF8Validation: options.skipUTF8Validation\n });\n\n const sender = new Sender(socket, this._extensions, options.generateMask);\n\n this._receiver = receiver;\n this._sender = sender;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n sender[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n sender.onerror = senderOnError;\n\n //\n // These methods may not be available if `socket` is just a `Duplex`.\n //\n if (socket.setTimeout) socket.setTimeout(0);\n if (socket.setNoDelay) socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {(String|Buffer)} [data] The reason why the connection is\n * closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n abortHandshake(this, this._req, msg);\n return;\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (\n this._closeFrameSent &&\n (this._closeFrameReceived || this._receiver._writableState.errorEmitted)\n ) {\n this._socket.end();\n }\n\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n\n if (\n this._closeFrameReceived ||\n this._receiver._writableState.errorEmitted\n ) {\n this._socket.end();\n }\n });\n\n setCloseTimer(this);\n }\n\n /**\n * Pause the socket.\n *\n * @public\n */\n pause() {\n if (\n this.readyState === WebSocket.CONNECTING ||\n this.readyState === WebSocket.CLOSED\n ) {\n return;\n }\n\n this._paused = true;\n this._socket.pause();\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Resume the socket.\n *\n * @public\n */\n resume() {\n if (\n this.readyState === WebSocket.CONNECTING ||\n this.readyState === WebSocket.CLOSED\n ) {\n return;\n }\n\n this._paused = false;\n if (!this._receiver._writableState.needDrain) this._socket.resume();\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n abortHandshake(this, this._req, msg);\n return;\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'isPaused',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n enumerable: true,\n get() {\n for (const listener of this.listeners(method)) {\n if (listener[kForOnEventAttribute]) return listener[kListener];\n }\n\n return null;\n },\n set(handler) {\n for (const listener of this.listeners(method)) {\n if (listener[kForOnEventAttribute]) {\n this.removeListener(method, listener);\n break;\n }\n }\n\n if (typeof handler !== 'function') return;\n\n this.addEventListener(method, handler, {\n [kForOnEventAttribute]: true\n });\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|URL)} address The URL to which to connect\n * @param {Array} protocols The subprotocols\n * @param {Object} [options] Connection options\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether any\n * of the `'message'`, `'ping'`, and `'pong'` events can be emitted multiple\n * times in the same tick\n * @param {Boolean} [options.autoPong=true] Specifies whether or not to\n * automatically send a pong in response to a ping\n * @param {Function} [options.finishRequest] A function which can be used to\n * customize the headers of each http request before it is sent\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n allowSynchronousEvents: true,\n autoPong: true,\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n skipUTF8Validation: false,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: 'GET',\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n websocket._autoPong = opts.autoPong;\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n } else {\n try {\n parsedUrl = new URL(address);\n } catch (e) {\n throw new SyntaxError(`Invalid URL: ${address}`);\n }\n }\n\n if (parsedUrl.protocol === 'http:') {\n parsedUrl.protocol = 'ws:';\n } else if (parsedUrl.protocol === 'https:') {\n parsedUrl.protocol = 'wss:';\n }\n\n websocket._url = parsedUrl.href;\n\n const isSecure = parsedUrl.protocol === 'wss:';\n const isIpcUrl = parsedUrl.protocol === 'ws+unix:';\n let invalidUrlMessage;\n\n if (parsedUrl.protocol !== 'ws:' && !isSecure && !isIpcUrl) {\n invalidUrlMessage =\n 'The URL\\'s protocol must be one of \"ws:\", \"wss:\", ' +\n '\"http:\", \"https:\", or \"ws+unix:\"';\n } else if (isIpcUrl && !parsedUrl.pathname) {\n invalidUrlMessage = \"The URL's pathname is empty\";\n } else if (parsedUrl.hash) {\n invalidUrlMessage = 'The URL contains a fragment identifier';\n }\n\n if (invalidUrlMessage) {\n const err = new SyntaxError(invalidUrlMessage);\n\n if (websocket._redirects === 0) {\n throw err;\n } else {\n emitErrorAndClose(websocket, err);\n return;\n }\n }\n\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const request = isSecure ? https.request : http.request;\n const protocolSet = new Set();\n let perMessageDeflate;\n\n opts.createConnection =\n opts.createConnection || (isSecure ? tlsConnect : netConnect);\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n ...opts.headers,\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket'\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols.length) {\n for (const protocol of protocols) {\n if (\n typeof protocol !== 'string' ||\n !subprotocolRegex.test(protocol) ||\n protocolSet.has(protocol)\n ) {\n throw new SyntaxError(\n 'An invalid or duplicated subprotocol was specified'\n );\n }\n\n protocolSet.add(protocol);\n }\n\n opts.headers['Sec-WebSocket-Protocol'] = protocols.join(',');\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isIpcUrl) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n let req;\n\n if (opts.followRedirects) {\n if (websocket._redirects === 0) {\n websocket._originalIpc = isIpcUrl;\n websocket._originalSecure = isSecure;\n websocket._originalHostOrSocketPath = isIpcUrl\n ? opts.socketPath\n : parsedUrl.host;\n\n const headers = options && options.headers;\n\n //\n // Shallow copy the user provided options so that headers can be changed\n // without mutating the original object.\n //\n options = { ...options, headers: {} };\n\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n options.headers[key.toLowerCase()] = value;\n }\n }\n } else if (websocket.listenerCount('redirect') === 0) {\n const isSameHost = isIpcUrl\n ? websocket._originalIpc\n ? opts.socketPath === websocket._originalHostOrSocketPath\n : false\n : websocket._originalIpc\n ? false\n : parsedUrl.host === websocket._originalHostOrSocketPath;\n\n if (!isSameHost || (websocket._originalSecure && !isSecure)) {\n //\n // Match curl 7.77.0 behavior and drop the following headers. These\n // headers are also dropped when following a redirect to a subdomain.\n //\n delete opts.headers.authorization;\n delete opts.headers.cookie;\n\n if (!isSameHost) delete opts.headers.host;\n\n opts.auth = undefined;\n }\n }\n\n //\n // Match curl 7.77.0 behavior and make the first `Authorization` header win.\n // If the `Authorization` header is set, then there is nothing to do as it\n // will take precedence.\n //\n if (opts.auth && !options.headers.authorization) {\n options.headers.authorization =\n 'Basic ' + Buffer.from(opts.auth).toString('base64');\n }\n\n req = websocket._req = request(opts);\n\n if (websocket._redirects) {\n //\n // Unlike what is done for the `'upgrade'` event, no early exit is\n // triggered here if the user calls `websocket.close()` or\n // `websocket.terminate()` from a listener of the `'redirect'` event. This\n // is because the user can also call `request.destroy()` with an error\n // before calling `websocket.close()` or `websocket.terminate()` and this\n // would result in an error being emitted on the `request` object with no\n // `'error'` event listeners attached.\n //\n websocket.emit('redirect', websocket.url, req);\n }\n } else {\n req = websocket._req = request(opts);\n }\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req[kAborted]) return;\n\n req = websocket._req = null;\n emitErrorAndClose(websocket, err);\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n let addr;\n\n try {\n addr = new URL(location, address);\n } catch (e) {\n const err = new SyntaxError(`Invalid URL: ${location}`);\n emitErrorAndClose(websocket, err);\n return;\n }\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the\n // `'upgrade'` event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n const upgrade = res.headers.upgrade;\n\n if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') {\n abortHandshake(websocket, socket, 'Invalid Upgrade header');\n return;\n }\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n let protError;\n\n if (serverProt !== undefined) {\n if (!protocolSet.size) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (!protocolSet.has(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n } else if (protocolSet.size) {\n protError = 'Server sent no subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n const secWebSocketExtensions = res.headers['sec-websocket-extensions'];\n\n if (secWebSocketExtensions !== undefined) {\n if (!perMessageDeflate) {\n const message =\n 'Server sent a Sec-WebSocket-Extensions header but no extension ' +\n 'was requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n let extensions;\n\n try {\n extensions = parse(secWebSocketExtensions);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n const extensionNames = Object.keys(extensions);\n\n if (\n extensionNames.length !== 1 ||\n extensionNames[0] !== PerMessageDeflate.extensionName\n ) {\n const message = 'Server indicated an extension that was not requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n try {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n\n websocket.setSocket(socket, head, {\n allowSynchronousEvents: opts.allowSynchronousEvents,\n generateMask: opts.generateMask,\n maxPayload: opts.maxPayload,\n skipUTF8Validation: opts.skipUTF8Validation\n });\n });\n\n if (opts.finishRequest) {\n opts.finishRequest(req, websocket);\n } else {\n req.end();\n }\n}\n\n/**\n * Emit the `'error'` and `'close'` events.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {Error} The error to emit\n * @private\n */\nfunction emitErrorAndClose(websocket, err) {\n websocket._readyState = WebSocket.CLOSING;\n //\n // The following assignment is practically useless and is done only for\n // consistency.\n //\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n websocket.emitClose();\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket|tls.Socket)} stream The request to\n * abort or the socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream[kAborted] = true;\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n process.nextTick(emitErrorAndClose, websocket, err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = isBlob(data) ? data.size : toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n process.nextTick(cb, err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {Buffer} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (websocket._socket[kWebSocket] === undefined) return;\n\n websocket._socket.removeListener('data', socketOnData);\n process.nextTick(resume, websocket._socket);\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n const websocket = this[kWebSocket];\n\n if (!websocket.isPaused) websocket._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n if (websocket._socket[kWebSocket] !== undefined) {\n websocket._socket.removeListener('data', socketOnData);\n\n //\n // On Node.js < 14.0.0 the `'error'` event is emitted synchronously. See\n // https://github.com/websockets/ws/issues/1940.\n //\n process.nextTick(resume, websocket._socket);\n\n websocket.close(err[kStatusCode]);\n }\n\n if (!websocket._errorEmitted) {\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {Buffer|ArrayBuffer|Buffer[])} data The message\n * @param {Boolean} isBinary Specifies whether the message is binary or not\n * @private\n */\nfunction receiverOnMessage(data, isBinary) {\n this[kWebSocket].emit('message', data, isBinary);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n if (websocket._autoPong) websocket.pong(data, !this._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * Resume a readable stream\n *\n * @param {Readable} stream The readable stream\n * @private\n */\nfunction resume(stream) {\n stream.resume();\n}\n\n/**\n * The `Sender` error event handler.\n *\n * @param {Error} The error\n * @private\n */\nfunction senderOnError(err) {\n const websocket = this[kWebSocket];\n\n if (websocket.readyState === WebSocket.CLOSED) return;\n if (websocket.readyState === WebSocket.OPEN) {\n websocket._readyState = WebSocket.CLOSING;\n setCloseTimer(websocket);\n }\n\n //\n // `socket.end()` is used instead of `socket.destroy()` to allow the other\n // peer to finish sending queued data. There is no need to set a timer here\n // because `CLOSING` means that it is already set or not needed.\n //\n this._socket.end();\n\n if (!websocket._errorEmitted) {\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n }\n}\n\n/**\n * Set a timer to destroy the underlying raw socket of a WebSocket.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @private\n */\nfunction setCloseTimer(websocket) {\n websocket._closeTimer = setTimeout(\n websocket._socket.destroy.bind(websocket._socket),\n closeTimeout\n );\n}\n\n/**\n * The listener of the socket `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('data', socketOnData);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n let chunk;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk.\n //\n if (\n !this._readableState.endEmitted &&\n !websocket._closeFrameReceived &&\n !websocket._receiver._writableState.errorEmitted &&\n (chunk = websocket._socket.read()) !== null\n ) {\n websocket._receiver.write(chunk);\n }\n\n websocket._receiver.end();\n\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the socket `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the socket `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the socket `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^WebSocket$\" }] */\n'use strict';\n\nconst WebSocket = require('./websocket');\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {Duplex} stream The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let terminateOnDestroy = true;\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg, isBinary) {\n const data =\n !isBinary && duplex._readableState.objectMode ? msg.toString() : msg;\n\n if (!duplex.push(data)) ws.pause();\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n // Prevent `ws.terminate()` from being called by `duplex._destroy()`.\n //\n // - If the `'error'` event is emitted before the `'open'` event, then\n // `ws.terminate()` is a noop as no socket is assigned.\n // - Otherwise, the error is re-emitted by the listener of the `'error'`\n // event of the `Receiver` object. The listener already closes the\n // connection by calling `ws.close()`. This allows a close frame to be\n // sent to the other peer. If `ws.terminate()` is called right after this,\n // then the close frame might not be sent.\n terminateOnDestroy = false;\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n\n if (terminateOnDestroy) ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (ws.isPaused) ws.resume();\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n","'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Parses the `Sec-WebSocket-Protocol` header into a set of subprotocol names.\n *\n * @param {String} header The field value of the header\n * @return {Set} The subprotocol names\n * @public\n */\nfunction parse(header) {\n const protocols = new Set();\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (i; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (\n i !== 0 &&\n (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n ) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n\n const protocol = header.slice(start, end);\n\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n\n protocols.add(protocol);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n\n if (start === -1 || end !== -1) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n const protocol = header.slice(start, i);\n\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n\n protocols.add(protocol);\n return protocols;\n}\n\nmodule.exports = { parse };\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex$\", \"caughtErrors\": \"none\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst http = require('http');\nconst { Duplex } = require('stream');\nconst { createHash } = require('crypto');\n\nconst extension = require('./extension');\nconst PerMessageDeflate = require('./permessage-deflate');\nconst subprotocol = require('./subprotocol');\nconst WebSocket = require('./websocket');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\nconst RUNNING = 0;\nconst CLOSING = 1;\nconst CLOSED = 2;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {Boolean} [options.autoPong=true] Specifies whether or not to\n * automatically send a pong in response to a ping\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S\n * server to use\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket`\n * class to use. It must be the `WebSocket` class or class that extends it\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n allowSynchronousEvents: true,\n autoPong: true,\n maxPayload: 100 * 1024 * 1024,\n skipUTF8Validation: false,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n WebSocket,\n ...options\n };\n\n if (\n (options.port == null && !options.server && !options.noServer) ||\n (options.port != null && (options.server || options.noServer)) ||\n (options.server && options.noServer)\n ) {\n throw new TypeError(\n 'One and only one of the \"port\", \"server\", or \"noServer\" options ' +\n 'must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = http.createServer((req, res) => {\n const body = http.STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) {\n this.clients = new Set();\n this._shouldEmitClose = false;\n }\n\n this.options = options;\n this._state = RUNNING;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Stop the server from accepting new connections and emit the `'close'` event\n * when all existing connections are closed.\n *\n * @param {Function} [cb] A one-time listener for the `'close'` event\n * @public\n */\n close(cb) {\n if (this._state === CLOSED) {\n if (cb) {\n this.once('close', () => {\n cb(new Error('The server is not running'));\n });\n }\n\n process.nextTick(emitClose, this);\n return;\n }\n\n if (cb) this.once('close', cb);\n\n if (this._state === CLOSING) return;\n this._state = CLOSING;\n\n if (this.options.noServer || this.options.server) {\n if (this._server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n }\n\n if (this.clients) {\n if (!this.clients.size) {\n process.nextTick(emitClose, this);\n } else {\n this._shouldEmitClose = true;\n }\n } else {\n process.nextTick(emitClose, this);\n }\n } else {\n const server = this._server;\n\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // The HTTP/S server was created internally. Close it, and rely on its\n // `'close'` event.\n //\n server.close(() => {\n emitClose(this);\n });\n }\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key = req.headers['sec-websocket-key'];\n const upgrade = req.headers.upgrade;\n const version = +req.headers['sec-websocket-version'];\n\n if (req.method !== 'GET') {\n const message = 'Invalid HTTP method';\n abortHandshakeOrEmitwsClientError(this, req, socket, 405, message);\n return;\n }\n\n if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') {\n const message = 'Invalid Upgrade header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n\n if (key === undefined || !keyRegex.test(key)) {\n const message = 'Missing or invalid Sec-WebSocket-Key header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n\n if (version !== 13 && version !== 8) {\n const message = 'Missing or invalid Sec-WebSocket-Version header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, {\n 'Sec-WebSocket-Version': '13, 8'\n });\n return;\n }\n\n if (!this.shouldHandle(req)) {\n abortHandshake(socket, 400);\n return;\n }\n\n const secWebSocketProtocol = req.headers['sec-websocket-protocol'];\n let protocols = new Set();\n\n if (secWebSocketProtocol !== undefined) {\n try {\n protocols = subprotocol.parse(secWebSocketProtocol);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Protocol header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n }\n\n const secWebSocketExtensions = req.headers['sec-websocket-extensions'];\n const extensions = {};\n\n if (\n this.options.perMessageDeflate &&\n secWebSocketExtensions !== undefined\n ) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = extension.parse(secWebSocketExtensions);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n const message =\n 'Invalid or unacceptable Sec-WebSocket-Extensions header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(\n extensions,\n key,\n protocols,\n req,\n socket,\n head,\n cb\n );\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(extensions, key, protocols, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {Object} extensions The accepted extensions\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Set} protocols The subprotocols\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(extensions, key, protocols, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n if (this._state > RUNNING) return abortHandshake(socket, 503);\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new this.options.WebSocket(null, undefined, this.options);\n\n if (protocols.size) {\n //\n // Optionally call external protocol selection handler.\n //\n const protocol = this.options.handleProtocols\n ? this.options.handleProtocols(protocols, req)\n : protocols.values().next().value;\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = extension.format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, {\n allowSynchronousEvents: this.options.allowSynchronousEvents,\n maxPayload: this.options.maxPayload,\n skipUTF8Validation: this.options.skipUTF8Validation\n });\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => {\n this.clients.delete(ws);\n\n if (this._shouldEmitClose && !this.clients.size) {\n process.nextTick(emitClose, this);\n }\n });\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of <event, listener>\n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.<String, Function>} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server._state = CLOSED;\n server.emit('close');\n}\n\n/**\n * Handle socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {Duplex} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n //\n // The socket is writable unless the user destroyed or ended it before calling\n // `server.handleUpgrade()` or in the `verifyClient` function, which is a user\n // error. Handling this does not make much sense as the worst that can happen\n // is that some of the data written by the user might be discarded due to the\n // call to `socket.end()` below, which triggers an `'error'` event that in\n // turn causes the socket to be destroyed.\n //\n message = message || http.STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.once('finish', socket.destroy);\n\n socket.end(\n `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n}\n\n/**\n * Emit a `'wsClientError'` event on a `WebSocketServer` if there is at least\n * one listener for it, otherwise call `abortHandshake()`.\n *\n * @param {WebSocketServer} server The WebSocket server\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} message The HTTP response body\n * @param {Object} [headers] The HTTP response headers\n * @private\n */\nfunction abortHandshakeOrEmitwsClientError(\n server,\n req,\n socket,\n code,\n message,\n headers\n) {\n if (server.listenerCount('wsClientError')) {\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError);\n\n server.emit('wsClientError', err, socket, req);\n } else {\n abortHandshake(socket, code, message, headers);\n }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\n// Array of tips to display randomly\nconst TIPS = [\n '🔐 encrypt with Dotenvx: https://dotenvx.com',\n '🔐 prevent committing .env to code: https://dotenvx.com/precommit',\n '🔐 prevent building .env in docker: https://dotenvx.com/prebuild',\n '📡 add observability to secrets: https://dotenvx.com/ops',\n '👥 sync secrets across teammates & machines: https://dotenvx.com/ops',\n '🗂️ backup and recover secrets: https://dotenvx.com/ops',\n '✅ audit secrets and track compliance: https://dotenvx.com/ops',\n '🔄 add secrets lifecycle management: https://dotenvx.com/ops',\n '🔑 add access controls to secrets: https://dotenvx.com/ops',\n '🛠️ run anywhere with `dotenvx run -- yourcommand`',\n '⚙️ specify custom .env file path with { path: \\'/custom/path/.env\\' }',\n '⚙️ enable debug logging with { debug: true }',\n '⚙️ override existing env vars with { override: true }',\n '⚙️ suppress all logs with { quiet: true }',\n '⚙️ write to custom object with { processEnv: myObject }',\n '⚙️ load multiple .env files with { path: [\\'.env.local\\', \\'.env\\'] }'\n]\n\n// Get a random tip from the tips array\nfunction _getRandomTip () {\n return TIPS[Math.floor(Math.random() * TIPS.length)]\n}\n\nfunction parseBoolean (value) {\n if (typeof value === 'string') {\n return !['false', '0', 'no', 'off', ''].includes(value.toLowerCase())\n }\n return Boolean(value)\n}\n\nfunction supportsAnsi () {\n return process.stdout.isTTY // && process.env.TERM !== 'dumb'\n}\n\nfunction dim (text) {\n return supportsAnsi() ? `\\x1b[2m${text}\\x1b[0m` : text\n}\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _parseVault (options) {\n options = options || {}\n\n const vaultPath = _vaultPath(options)\n options.path = vaultPath // parse .env.vault\n const result = DotenvModule.configDotenv(options)\n if (!result.parsed) {\n const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n err.code = 'MISSING_DATA'\n throw err\n }\n\n // handle scenario for comma separated keys - for use with key rotation\n // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n const keys = _dotenvKey(options).split(',')\n const length = keys.length\n\n let decrypted\n for (let i = 0; i < length; i++) {\n try {\n // Get full key\n const key = keys[i].trim()\n\n // Get instructions for decrypt\n const attrs = _instructions(result, key)\n\n // Decrypt\n decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n break\n } catch (error) {\n // last key\n if (i + 1 >= length) {\n throw error\n }\n // try next key\n }\n }\n\n // Parse decrypted .env string\n return DotenvModule.parse(decrypted)\n}\n\nfunction _warn (message) {\n console.error(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _log (message) {\n console.log(`[dotenv@${version}] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n // prioritize developer directly setting options.DOTENV_KEY\n if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n return options.DOTENV_KEY\n }\n\n // secondary infra already contains a DOTENV_KEY environment variable\n if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n return process.env.DOTENV_KEY\n }\n\n // fallback to empty string\n return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n // Parse DOTENV_KEY. Format is a URI\n let uri\n try {\n uri = new URL(dotenvKey)\n } catch (error) {\n if (error.code === 'ERR_INVALID_URL') {\n const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n throw error\n }\n\n // Get decrypt key\n const key = uri.password\n if (!key) {\n const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get environment\n const environment = uri.searchParams.get('environment')\n if (!environment) {\n const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get ciphertext payload\n const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n if (!ciphertext) {\n const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n throw err\n }\n\n return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n let possibleVaultPath = null\n\n if (options && options.path && options.path.length > 0) {\n if (Array.isArray(options.path)) {\n for (const filepath of options.path) {\n if (fs.existsSync(filepath)) {\n possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n }\n }\n } else {\n possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n }\n } else {\n possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n }\n\n if (fs.existsSync(possibleVaultPath)) {\n return possibleVaultPath\n }\n\n return null\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n const debug = parseBoolean(process.env.DOTENV_CONFIG_DEBUG || (options && options.debug))\n const quiet = parseBoolean(process.env.DOTENV_CONFIG_QUIET || (options && options.quiet))\n\n if (debug || !quiet) {\n _log('Loading env from encrypted .env.vault')\n }\n\n const parsed = DotenvModule._parseVault(options)\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsed, options)\n\n return { parsed }\n}\n\nfunction configDotenv (options) {\n const dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n let debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || (options && options.debug))\n let quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || (options && options.quiet))\n\n if (options && options.encoding) {\n encoding = options.encoding\n } else {\n if (debug) {\n _debug('No encoding is specified. UTF-8 is used by default')\n }\n }\n\n let optionPaths = [dotenvPath] // default, look for .env\n if (options && options.path) {\n if (!Array.isArray(options.path)) {\n optionPaths = [_resolveHome(options.path)]\n } else {\n optionPaths = [] // reset default\n for (const filepath of options.path) {\n optionPaths.push(_resolveHome(filepath))\n }\n }\n }\n\n // Build the parsed data in a temporary object (because we need to return it). Once we have the final\n // parsed data, we will combine it with process.env (or options.processEnv if provided).\n let lastError\n const parsedAll = {}\n for (const path of optionPaths) {\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n DotenvModule.populate(parsedAll, parsed, options)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${path} ${e.message}`)\n }\n lastError = e\n }\n }\n\n const populated = DotenvModule.populate(processEnv, parsedAll, options)\n\n // handle user settings DOTENV_CONFIG_ options inside .env file(s)\n debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || debug)\n quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || quiet)\n\n if (debug || !quiet) {\n const keysCount = Object.keys(populated).length\n const shortPaths = []\n for (const filePath of optionPaths) {\n try {\n const relative = path.relative(process.cwd(), filePath)\n shortPaths.push(relative)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${filePath} ${e.message}`)\n }\n lastError = e\n }\n }\n\n _log(`injecting env (${keysCount}) from ${shortPaths.join(',')} ${dim(`-- tip: ${_getRandomTip()}`)}`)\n }\n\n if (lastError) {\n return { parsed: parsedAll, error: lastError }\n } else {\n return { parsed: parsedAll }\n }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n // fallback to original dotenv if DOTENV_KEY is not set\n if (_dotenvKey(options).length === 0) {\n return DotenvModule.configDotenv(options)\n }\n\n const vaultPath = _vaultPath(options)\n\n // dotenvKey exists but .env.vault file does not exist\n if (!vaultPath) {\n _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n return DotenvModule.configDotenv(options)\n }\n\n return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n const key = Buffer.from(keyStr.slice(-64), 'hex')\n let ciphertext = Buffer.from(encrypted, 'base64')\n\n const nonce = ciphertext.subarray(0, 12)\n const authTag = ciphertext.subarray(-16)\n ciphertext = ciphertext.subarray(12, -16)\n\n try {\n const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n aesgcm.setAuthTag(authTag)\n return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n } catch (error) {\n const isRange = error instanceof RangeError\n const invalidKeyLength = error.message === 'Invalid key length'\n const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n if (isRange || invalidKeyLength) {\n const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n } else if (decryptionFailed) {\n const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n err.code = 'DECRYPTION_FAILED'\n throw err\n } else {\n throw error\n }\n }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n const populated = {}\n\n if (typeof parsed !== 'object') {\n const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n err.code = 'OBJECT_REQUIRED'\n throw err\n }\n\n // Set process.env\n for (const key of Object.keys(parsed)) {\n if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n if (override === true) {\n processEnv[key] = parsed[key]\n populated[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _debug(`\"${key}\" is already defined and WAS overwritten`)\n } else {\n _debug(`\"${key}\" is already defined and was NOT overwritten`)\n }\n }\n } else {\n processEnv[key] = parsed[key]\n populated[key] = parsed[key]\n }\n }\n\n return populated\n}\n\nconst DotenvModule = {\n configDotenv,\n _configVault,\n _parseVault,\n config,\n decrypt,\n parse,\n populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","// ../config.js accepts options via environment variables\nconst options = {}\n\nif (process.env.DOTENV_CONFIG_ENCODING != null) {\n options.encoding = process.env.DOTENV_CONFIG_ENCODING\n}\n\nif (process.env.DOTENV_CONFIG_PATH != null) {\n options.path = process.env.DOTENV_CONFIG_PATH\n}\n\nif (process.env.DOTENV_CONFIG_QUIET != null) {\n options.quiet = process.env.DOTENV_CONFIG_QUIET\n}\n\nif (process.env.DOTENV_CONFIG_DEBUG != null) {\n options.debug = process.env.DOTENV_CONFIG_DEBUG\n}\n\nif (process.env.DOTENV_CONFIG_OVERRIDE != null) {\n options.override = process.env.DOTENV_CONFIG_OVERRIDE\n}\n\nif (process.env.DOTENV_CONFIG_DOTENV_KEY != null) {\n options.DOTENV_KEY = process.env.DOTENV_CONFIG_DOTENV_KEY\n}\n\nmodule.exports = options\n","const re = /^dotenv_config_(encoding|path|quiet|debug|override|DOTENV_KEY)=(.+)$/\n\nmodule.exports = function optionMatcher (args) {\n const options = args.reduce(function (acc, cur) {\n const matches = cur.match(re)\n if (matches) {\n acc[matches[1]] = matches[2]\n }\n return acc\n }, {})\n\n if (!('quiet' in options)) {\n options.quiet = 'true'\n }\n\n return options\n}\n","(function () {\n require('./lib/main').config(\n Object.assign(\n {},\n require('./lib/env-options'),\n require('./lib/cli-options')(process.argv)\n )\n )\n})()\n",null,null,null,null],"names":["log","isAutoParsableTool","hasAutoParseableInput","parseToolCall","MessagesAPI.Messages","Completions","Messages","CompletionsAPI.Completions","TranscriptionsAPI.Transcriptions","TranslationsAPI.Translations","SpeechAPI.Speech","SessionsAPI.Sessions","TranscriptionSessionsAPI.TranscriptionSessions","Realtime","Sessions","ThreadsAPI.Threads","Threads","_a","StepsAPI.Steps","Runs","RunsAPI.Runs","RealtimeAPI.Realtime","ChatKitAPI.ChatKit","AssistantsAPI.Assistants","ContentAPI.Content","Files","FilesAPI.Files","ItemsAPI.Items","OutputItemsAPI.OutputItems","GradersAPI.Graders","Graders","PermissionsAPI.Permissions","Checkpoints","CheckpointsAPI.Checkpoints","MethodsAPI.Methods","JobsAPI.Jobs","AlphaAPI.Alpha","GraderModelsAPI.GraderModels","ClientSecretsAPI.ClientSecrets","CallsAPI.Calls","parseResponse","InputItemsAPI.InputItems","InputTokensAPI.InputTokens","PartsAPI.Parts","FileBatchesAPI.FileBatches","API.Completions","API.Chat","API.Embeddings","API.Files","API.Images","API.Audio","API.Moderations","API.Models","API.FineTuning","API.Graders","API.VectorStores","API.Webhooks","API.Beta","API.Batches","API.Uploads","API.Responses","API.Realtime","API.Conversations","API.Evals","API.Containers","API.Videos","Errors.OpenAIError","Shims.getDefaultFetch","Opts.FallbackEncoder","qs.stringify","Errors.APIError","Errors.APIUserAbortError","Errors.APIConnectionTimeoutError","Errors.APIConnectionError","Shims.CancelReadableStream","Pagination.PagePromise","Shims.ReadableStreamFrom","Errors.NotFoundError","Errors.ConflictError","Errors.RateLimitError","Errors.BadRequestError","Errors.AuthenticationError","Errors.InternalServerError","Errors.PermissionDeniedError","Errors.UnprocessableEntityError","Errors.InvalidWebhookSignatureError","Uploads.toFile","UploadsAPIUploads","require$$0","bufferUtilModule","bufferUtil","require$$1","require$$2","require$$3","validationModule","require$$4","require$$5","require$$6","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$7","mainModule","baseLog","ft.capFirstLetter","ft.formatCurrency","ft.formatNumber","ft.formatPercentage","ft.dateTimeForGS","polygonIndices.fetchIndicesAggregates","polygonIndices.fetchIndicesPreviousClose","polygonIndices.fetchIndicesDailyOpenClose","polygonIndices.fetchIndicesSnapshot","polygonIndices.fetchUniversalSnapshot","polygonIndices.formatIndicesBarData","llm.makeLLMCall","deepseek.makeDeepseekCall","llmImages.makeImagesCall","openrouter.makeOpenRouterCall","polygon.fetchTickerInfo","polygon.fetchGroupedDaily","polygon.fetchLastTrade","polygon.fetchTrades","polygon.fetchPrices","polygon.analysePolygonPriceData","polygon.formatPriceData","polygon.fetchDailyOpenClose","polygon.getPreviousClose","ta.calculateEMA","ta.calculateMACD","ta.calculateRSI","ta.calculateStochasticOscillator","ta.calculateBollingerBands","ta.calculateSupportAndResistance","ta.calculateFibonacciLevels","mt.convertDateToMarketTimeZone","mt.getStartAndEndDates","mt.getMarketOpenClose","mt.getOpenCloseForTradingDay","mt.getLastFullTradingDate","mt.getNextMarketDay","mt.getPreviousMarketDay","mt.getMarketTimePeriod","mt.getMarketStatus","mt.getNYTimeZone","mt.getTradingDate","mt.getTradingStartAndEndDates","mt.isMarketDay","mt.isWithinMarketHours","mt.countTradingDays","mt.MARKET_TIMES","misc.logIfDebug","misc.fetchWithRetry","misc.validatePolygonApiKey"],"mappings":";;;;;;;;;;;;;;AAEA;;;;;;;;AAQG;AACG,SAAUA,KAAG,CAAC,OAAe,EAAE,OAAA,GAAsB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAA;;AAExF,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE;AACvB,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;AAChF,IAAA,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO;AAChC,IAAA,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;;IAG9B,MAAM,UAAU,GAAG,CAAA,CAAA,EAAI,SAAS,IAAI,OAAO,EAAE,MAAM,GAAG,CAAA,EAAA,EAAK,OAAO,CAAC,MAAM,CAAA,EAAA,CAAI,GAAG,EAAE,CAAA,EAChF,OAAO,GAAG,CAAA,EAAA,EAAK,OAAO,CAAA,EAAA,CAAI,GAAG,EAC/B,CAAA,EAAG,MAAM,GAAG,CAAA,EAAA,EAAK,MAAM,IAAI,GAAG,EAAE,CAAA,EAAG,OAAO,CAAA,CAAE;;AAG5C,IAAA,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO,EAAE;AAC7B,QAAA,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;IAC3B;AAAO,SAAA,IAAI,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE;AACnC,QAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;IAC1B;SAAO;AACL,QAAA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACzB;AACF;;AC/BA;AA6BO,MAAM,cAAc,GAAmB;AAC5C,IAAA,IAAI,EAAE;AACJ,QAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACxC,QAAA,6BAA6B,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACrD,QAAA,uBAAuB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC/C,QAAA,aAAa,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACrC,QAAA,cAAc,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACtC,QAAA,sCAAsC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC9D,QAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC1C,QAAA,WAAW,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACnC,QAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC1C,QAAA,eAAe,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACxC,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACxC,QAAA,2BAA2B,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACnD,QAAA,6BAA6B,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACrD,QAAA,uBAAuB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC/C,QAAA,aAAa,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACrC,QAAA,cAAc,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACtC,QAAA,sCAAsC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC9D,QAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC1C,QAAA,WAAW,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACnC,QAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC1C,QAAA,eAAe,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACxC,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,gBAAgB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACxC,QAAA,6BAA6B,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACrD,QAAA,uBAAuB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC/C,QAAA,aAAa,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACrC,QAAA,cAAc,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACtC,QAAA,sCAAsC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC9D,QAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC1C,QAAA,WAAW,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACnC,QAAA,kBAAkB,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AAC1C,QAAA,eAAe,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;AACxC,KAAA;CACF;AAEM,MAAM,iBAAiB,GAAsB;AAClD,IAAA,IAAI,EAAE;AACJ,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,KAAK,EACH,uOAAuO;AAC1O,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,KAAK,EACH,yOAAyO;AAC5O,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,KAAK,EACH,0OAA0O;AAC7O,SAAA;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,KAAK,EACH,sOAAsO;AACzO,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,KAAK,EACH,yOAAyO;AAC5O,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,KAAK,EACH,4OAA4O;AAC/O,SAAA;AACF,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,KAAK,EACH,uOAAuO;AAC1O,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,KAAK,EACH,yOAAyO;AAC5O,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,KAAK,EACH,2OAA2O;AAC9O,SAAA;AACF,KAAA;CACF;;AC7HD;AACO,MAAM,aAAa,GAAG;AAC3B,IAAA,QAAQ,EAAE,kBAAkB;AAC5B,IAAA,mBAAmB,EAAE,EAAE;AACvB,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,KAAK,EAAE;QACL,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACtC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QACpC,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;QACzC,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;QACrC,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;QACpC,YAAY,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;QACrC,kBAAkB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;AAC5C,KAAA;CACO;AAMV;AACA;;;;AAIG;AACH,SAAS,WAAW,CAAC,IAAU,EAAA;;AAE7B,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;AAClC,IAAA,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAE9B,IAAA,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE;QAC/D,OAAO,aAAa,CAAC,cAAc;IACrC;IACA,OAAO,aAAa,CAAC,mBAAmB;AAC1C;AAEA;AACA;;;;;;;AAOG;AACH,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAa,EAAE,OAAe,EAAE,CAAS,EAAA;IAGnF,IAAI,KAAK,GAAG,CAAC;AACb,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACnD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,CAAC;YAAE;AACtC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE;AAChC,YAAA,KAAK,EAAE;YACP,IAAI,KAAK,KAAK,CAAC;AAAE,gBAAA,OAAO,IAAI;QAC9B;IACF;;AAEA,IAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;AAChD;AAEA;AACA;;;;AAIG;AACH,SAAS,QAAQ,CAAC,IAAU,EAAA;AAC1B,IAAA,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC;;AAEhC,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE;IAChC,MAAM,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AACpD,IAAA,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC;AAC3B;AAEA;AACA;;;;AAIG;AACH,SAAS,UAAU,CAAC,IAAU,EAAA;AAC5B,IAAA,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC;AAChC,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE;IAC/B,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AACpD,IAAA,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC;AAC5B;AAEA;AACA;;;;;AAKG;AACH,SAAS,UAAU,CAAC,IAAU,EAAE,eAA6B,KAAK,EAAA;IAChE,QAAQ,YAAY;AAClB,QAAA,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AAC1C,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,IAAI,CAAC,OAAO,EAAE;AACvB,QAAA,KAAK,KAAK;AACV,QAAA;AACE,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE;;AAE/B;AAEA;AACA;;;;AAIG;AACH,SAAS,cAAc,CAAC,IAAU,EAAA;AAChC,IAAA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;AACvE;AAEA;AACA;;AAEG;AACH,MAAM,cAAc,CAAA;AAClB;;;;AAIG;AACH,IAAA,SAAS,CAAC,IAAU,EAAA;QAClB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE;AACtC,QAAA,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IAC/B;AAEA;;;;AAIG;AACH,IAAA,SAAS,CAAC,IAAU,EAAA;AAClB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;AACtC,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE;AAC/B,QAAA,MAAM,aAAa,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACjG,QAAA,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC;AACzC,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,KAAK;QAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,aAAa,CAAC;IACtF;AAEA;;;;AAIG;AACH,IAAA,eAAe,CAAC,IAAU,EAAA;AACxB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;AACtC,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE;AAC/B,QAAA,MAAM,aAAa,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACjG,QAAA,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC;QAC/C,OAAO,eAAe,IAAI,eAAe,CAAC,aAAa,CAAC,KAAK,SAAS;IACxE;AAEA;;;;AAIG;AACH,IAAA,iBAAiB,CAAC,IAAU,EAAA;AAC1B,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;AACtC,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE;AAC/B,QAAA,MAAM,aAAa,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACjG,QAAA,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAC/C,QAAA,IAAI,eAAe,IAAI,eAAe,CAAC,aAAa,CAAC,EAAE;YACrD,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AACnF,YAAA,OAAO,KAAK,GAAG,EAAE,GAAG,OAAO;QAC7B;AACA,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;AACH,IAAA,WAAW,CAAC,IAAU,EAAA;AACpB,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IACvD;AAEA;;;;AAIG;AACH,IAAA,gBAAgB,CAAC,IAAU,EAAA;AACzB,QAAA,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AACjC,YAAA,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC7D;AACA,QAAA,OAAO,OAAO;IAChB;AAEA;;;;AAIG;AACH,IAAA,oBAAoB,CAAC,IAAU,EAAA;AAC7B,QAAA,IAAI,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AACjC,YAAA,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC7D;AACA,QAAA,OAAO,OAAO;IAChB;AACD;AAED;AACA;;;;AAIG;AACH,SAAS,cAAc,CAAC,IAAU,EAAA;AAChC,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;AACrC,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC7B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;QAC/B,OAAO;AACL,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;SACf;IACH;AACA,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE;AACpC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE;AAClC,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE;;AAG/B,IAAA,SAAS,WAAW,CAAC,IAAY,EAAE,MAAc,EAAA;QAC/C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClE,QAAA,OAAO,UAAU,CAAC,CAAC,CAAC;IACtB;IAEA,IAAI,IAAI,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;IACpG,IAAI,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;IACvG,IAAI,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;IAC7G,IAAI,QAAQ,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;AAE1G,IAAA,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;AAClC,QAAA,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;AACjG,QAAA,QAAQ,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC;IACpH;IAEA,OAAO;AACL,QAAA,UAAU,EAAE,IAAI;QAChB,IAAI;QACJ,KAAK;QACL,OAAO;QACP,QAAQ;KACT;AACH;AAEA;AACA;;;;;AAKG;SACa,mBAAmB,CAAC,IAAU,EAAE,oBAAuC,cAAc,EAAA;AACnG,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;AACrC,IAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,KAAK;AAC7C,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,aAAa,EAAE;IAElE,QAAQ,iBAAiB;QACvB,KAAK,gBAAgB,EAAE;AACrB,YAAA,IAAI,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM;AACrG,YAAA,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;AAClC,gBAAA,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM;YAC/G;AACA,YAAA,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM;AAC7G,YAAA,OAAO,OAAO,IAAI,YAAY,IAAI,OAAO,IAAI,UAAU;QACzD;AACA,QAAA,KAAK,YAAY;AACf,YAAA,OAAO,IAAI;QACb,SAAS;AACP,YAAA,IAAI,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM;AACrG,YAAA,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;AAClC,gBAAA,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;YACjG;AACA,YAAA,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;AACvG,YAAA,OAAO,OAAO,IAAI,YAAY,IAAI,OAAO,IAAI,UAAU;QACzD;;AAEJ;AAEA;AACA;;;;AAIG;AACH,SAAS,0BAA0B,CAAC,WAAA,GAAoB,IAAI,IAAI,EAAE,EAAA;AAChE,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;AACrC,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC;AACpC,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,aAAa,EAAE;AAClE,IAAA,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;AAC5G,IAAA,IAAI,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM;AAC7G,IAAA,IAAI,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE;AACzC,QAAA,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;IACzG;;AAGA,IAAA,IACE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC;AAClC,QAAA,OAAO,GAAG,iBAAiB;SAC1B,OAAO,IAAI,iBAAiB,IAAI,OAAO,GAAG,kBAAkB,CAAC,EAC9D;QACA,MAAM,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,WAAW,CAAC;AAChE,QAAA,IAAI,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM;AAC3G,QAAA,IAAI,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE;AAC3C,YAAA,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;QACvG;AACA,QAAA,MAAM,IAAI,GAAG,aAAa,CAAC,cAAc,EAAE;AAC3C,QAAA,MAAM,KAAK,GAAG,aAAa,CAAC,WAAW,EAAE;AACzC,QAAA,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,EAAE;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;AACnD,QAAA,MAAM,WAAW,GAAG,gBAAgB,GAAG,EAAE;QACzC,OAAO,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF;;AAGA,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE;AACpC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE;AAClC,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC;AACrD,IAAA,MAAM,WAAW,GAAG,kBAAkB,GAAG,EAAE;IAC3C,OAAO,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACvF;AAEA;AACA;;;;;AAKG;AACH,SAAS,gBAAgB,CACvB,IAAU,EACV,oBAAuC,cAAc,EAAA;AAErD,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;AACrC,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,EAAE;AACpC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE;AAClC,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE;AAE/B,IAAA,SAAS,WAAW,CAAC,IAAY,EAAE,MAAc,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAA;QAChE,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACrE,QAAA,OAAO,UAAU,CAAC,CAAC,CAAC;IACtB;AAEA,IAAA,IAAI,KAAW;AACf,IAAA,IAAI,GAAS;IAEb,QAAQ,iBAAiB;AACvB,QAAA,KAAK,gBAAgB;YACnB,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7G,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC;AAC1G,YAAA,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;gBAClC,GAAG,GAAG,WAAW,CACf,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAC3C,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAC7C,EAAE,EACF,GAAG,CACJ;YACH;YACA;AACF,QAAA,KAAK,YAAY;YACf,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC3D;AACF,QAAA;YACE,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YACvG,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC;AAC1G,YAAA,IAAI,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;gBAClC,GAAG,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC;YAC1G;YACA;;AAEJ,IAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;AACvB;AAEA;AACA;;;;;AAKG;AACH,SAAS,wBAAwB,CAAC,OAAa,EAAE,MAAc,EAAA;AAC7D,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;AACrC,IAAA,IAAI,SAAe;IACnB,QAAQ,MAAM;AACZ,QAAA,KAAK,KAAK;AACR,YAAA,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D;AACF,QAAA,KAAK,IAAI;AACP,YAAA,SAAS,GAAG,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC;YAClD;AACF,QAAA,KAAK,IAAI;AACP,YAAA,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACjE;AACF,QAAA,KAAK,IAAI;AACP,YAAA,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACjE;AACF,QAAA,KAAK,IAAI;AACP,YAAA,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAClE;AACF,QAAA,KAAK,IAAI;YACP,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YACzG;AACF,QAAA,KAAK,IAAI;YACP,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YACzG;AACF,QAAA,KAAK,IAAI;YACP,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YACzG;AACF,QAAA,KAAK,IAAI;YACP,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YACzG;AACF,QAAA;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,CAAA,CAAE,CAAC;;;IAGhD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;AACvC,QAAA,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC;IAClD;AACA,IAAA,OAAO,SAAS;AAClB;AAEA;AACA;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,MAAwB,EAAA;AAC1D,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,EAAE,kBAAkB,GAAG,cAAc,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,MAAM;AAEtG,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;AAClD,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;AAErC,IAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC/B,IAAA,IAAI,OAAa;IACjB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC;IACpD,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,EAAE,kBAAkB,CAAC;AAClE,IAAA,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,aAAa,EAAE;AACxE,IAAA,MAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;IAE7G,IAAI,kBAAkB,EAAE;AACtB,QAAA,IAAI,OAAO,GAAG,kBAAkB,EAAE;;YAEhC,MAAM,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC;AACxD,YAAA,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,CAAC;YAC3E,OAAO,GAAG,MAAM;QAClB;aAAO,IAAI,aAAa,EAAE;;YAExB,OAAO,GAAG,GAAG;QACf;aAAO;;AAEL,YAAA,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,CAAC;YACjE,OAAO,GAAG,MAAM;QAClB;IACF;SAAO;;QAEL,MAAM,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC;AACxD,QAAA,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,CAAC;QAC3E,OAAO,GAAG,MAAM;IAClB;;IAGA,MAAM,eAAe,GAAG,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC;AACjE,IAAA,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAEjF,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE;AAC1C,QAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;IACxD;IAEA,OAAO;AACL,QAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC;AACzC,QAAA,GAAG,EAAE,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC;KACvC;AACH;AAEA;AACA;;;;AAIG;AACH,SAAS,mBAAmB,CAAC,IAAA,GAAa,IAAI,IAAI,EAAE,EAAA;AAClD,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;AACrC,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,aAAa,EAAE;IAClE,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;IAC9C,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;AAEtD,IAAA,MAAM,oBAAoB,GAAG,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM;AACrH,IAAA,MAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;AAC7G,IAAA,MAAM,qBAAqB,GACzB,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM;AAE9F,IAAA,IAAI,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM;AAC7G,IAAA,IAAI,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM;IAC7G,IAAI,eAAe,EAAE;AACnB,QAAA,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;QACvG,kBAAkB;AAChB,YAAA,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM;IACpG;AAEA,IAAA,IAAI,MAA8B;AAClC,IAAA,IAAI,UAAsC;AAC1C,IAAA,IAAI,cAAoB;AACxB,IAAA,IAAI,YAA0C;IAE9C,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,GAAG,QAAQ;QACjB,UAAU,GAAG,gBAAgB;QAC7B,YAAY,GAAG,QAAQ;QACvB,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACrD,cAAc,GAAG,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,KAAK;IAC1E;AAAO,SAAA,IAAI,OAAO,GAAG,oBAAoB,EAAE;QACzC,MAAM,GAAG,QAAQ;QACjB,UAAU,GAAG,gBAAgB;QAC7B,YAAY,GAAG,QAAQ;QACvB,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,KAAK;IACjE;AAAO,SAAA,IAAI,OAAO,GAAG,kBAAkB,EAAE;QACvC,MAAM,GAAG,gBAAgB;QACzB,UAAU,GAAG,MAAM;QACnB,YAAY,GAAG,WAAW;QAC1B,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,KAAK;IAC/D;AAAO,SAAA,IAAI,OAAO,GAAG,kBAAkB,EAAE;QACvC,MAAM,GAAG,MAAM;QACf,UAAU,GAAG,gBAAgB;AAC7B,QAAA,YAAY,GAAG,OAAO,GAAG,qBAAqB,GAAG,aAAa,GAAG,eAAe;QAChF,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,GAAG;IAC7D;AAAO,SAAA,IAAI,OAAO,GAAG,kBAAkB,EAAE;QACvC,MAAM,GAAG,gBAAgB;QACzB,UAAU,GAAG,QAAQ;QACrB,YAAY,GAAG,aAAa;QAC5B,cAAc,GAAG,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,GAAG;IAC/D;SAAO;QACL,MAAM,GAAG,QAAQ;QACjB,UAAU,GAAG,gBAAgB;QAC7B,YAAY,GAAG,QAAQ;QACvB,MAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACrD,cAAc,GAAG,gBAAgB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,KAAK;IAC1E;;IAGA,MAAM,wBAAwB,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;IAE1E,OAAO;AACL,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC;QAClC,MAAM;QACN,UAAU;QACV,YAAY;QACZ,cAAc;QACd,wBAAwB;AACxB,QAAA,oBAAoB,EAAE,cAAc,CAAC,cAAc,CAAC;KACrD;AACH;AAEA;AACA;;;;AAIG;AACG,SAAU,kBAAkB,CAAC,OAAA,GAA2B,EAAE,EAAA;IAC9D,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,OAAO;AACrC,IAAA,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B;AAEA;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,MAAA,GAA2B,EAAE,EAAA;IAC/D,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAClD,OAAO;QACL,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK;QACvF,GAAG,EAAE,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;KAC9E;AACH;AAEA;;AAEG;AACH;;;;AAIG;SACa,sBAAsB,CAAC,WAAA,GAAoB,IAAI,IAAI,EAAE,EAAA;AACnE,IAAA,OAAO,0BAA0B,CAAC,WAAW,CAAC;AAChD;AAoBA;;;;AAIG;SACa,gBAAgB,CAAC,EAAE,aAAa,KAA+B,EAAE,EAAA;AAK/E,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;AACrC,IAAA,MAAM,SAAS,GAAG,aAAa,IAAI,IAAI,IAAI,EAAE;;IAG7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC;;AAGrD,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;AACjC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,MAAM,CAAC,cAAc,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CACxG,MAAM,CAAC,UAAU,EAAE,CACpB,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAEpB,OAAO;QACL,IAAI,EAAE,QAAQ;AACd,QAAA,QAAQ;AACR,QAAA,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE;KACtC;AACH;AAEA;;;;AAIG;SACa,oBAAoB,CAAC,EAAE,aAAa,KAA+B,EAAE,EAAA;AACnF,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;AACrC,IAAA,MAAM,SAAS,GAAG,aAAa,IAAI,IAAI,IAAI,EAAE;IAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC;;IAGzD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAClC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,MAAM,CAAC,cAAc,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CACxG,MAAM,CAAC,UAAU,EAAE,CACpB,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;IAEpB,OAAO;AACL,QAAA,IAAI,EAAE,QAAQ;QACd,QAAQ;AACR,QAAA,aAAa,EAAE,QAAQ,CAAC,WAAW,EAAE;KACtC;AACH;AAEA;;;;AAIG;AACH;;;;AAIG;AACG,SAAU,cAAc,CAAC,IAA4B,EAAA;AACzD,IAAA,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AACzG,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC7B,IAAA,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,MAAM,CAC9F,MAAM,CAAC,UAAU,EAAE,CACpB,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;AACtB;AAEA;;;;AAIG;AACG,SAAU,aAAa,CAAC,IAAW,EAAA;IACvC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;AAC9C,IAAA,OAAO,MAAM,KAAK,EAAE,GAAG,QAAQ,GAAG,QAAQ;AAC5C;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACG,SAAU,yBAAyB,CAAC,OAAe,EAAA;;IAEvD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAA,EAAG,OAAO,CAAA,UAAA,CAAY,CAAC;IAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;;IAG1C,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAA,EAAG,OAAO,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAE,CAAC;AAEzD,IAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AACxB,QAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAA,CAAE,CAAC;IACvD;AAEA,IAAA,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5D,IAAA,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;AACnB,QAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAA,CAAE,CAAC;IAC7D;AAEA,IAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;AACxB;AAEA;;;;;;;;;;;;AAYG;AACG,SAAU,2BAA2B,CAAC,IAAU,EAAA;AACpD,IAAA,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB;AAEA;;;;AAIG;AACG,SAAU,eAAe,CAAC,OAAA,GAA2B,EAAE,EAAA;IAC3D,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,OAAO;AACrC,IAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC;AAClC;AAEA;;;;AAIG;AACG,SAAU,WAAW,CAAC,IAAU,EAAA;AACpC,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;AACrC,IAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;AACnC;AAEA;;;;AAIG;AACH;;;;AAIG;AACG,SAAU,0BAA0B,CACxC,OAAA,GAGI,EAAE,EAAA;AAEN,IAAA,MAAM,EAAE,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,OAAO;AAClD,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;;IAGrC,IAAI,YAAY,GAAG,OAAO;AAC1B,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;AAC/B,IAAA,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM;AAC5G,IAAA,MAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM;AAC/G,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE;AAEhE,IAAA,IACE,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;AAC9B,QAAA,OAAO,GAAG,iBAAiB;SAC1B,OAAO,IAAI,iBAAiB,IAAI,OAAO,GAAG,kBAAkB,CAAC,EAC9D;;AAEA,QAAA,YAAY,GAAG,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC;IACvD;SAAO;;QAEL,YAAY,GAAG,OAAO;IACxB;;AAGA,IAAA,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAM;;IAGlE,IAAI,cAAc,GAAG,YAAY;IACjC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AAC7B,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC9B,QAAA,cAAc,GAAG,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC;IAChE;;AAEA,IAAA,IAAI,IAAI,GAAG,CAAC,EAAE;QACZ,cAAc,GAAG,YAAY;AAC7B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AAC7B,YAAA,cAAc,GAAG,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC;QAChE;IACF;AACA,IAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,IAAK;IAEpE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE;AACpD;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;AACG,SAAU,gBAAgB,CAC9B,SAAe,EACf,OAAA,GAAgB,IAAI,IAAI,EAAE,EAAA;AAM1B,IAAA,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE;;IAGrC,IAAI,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE;AAC3C,QAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;IACvD;IAEA,IAAI,YAAY,GAAG,CAAC;;AAGpB,IAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC;AACnC,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;;AAG/B,IAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CACxB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAC5F;;IAGD,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;AAC7C,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;;AAGxC,QAAA,IAAI,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;;AAEpC,YAAA,MAAM,WAAW,GAAG,cAAc,CAAC,UAAU,CAAC;AAE9C,YAAA,IAAI,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE;;AAEnE,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAC1E,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;;AAGvE,gBAAA,IAAI,QAAQ,GAAG,MAAM,EAAE;AACrB,oBAAA,YAAY,IAAI,CAAC,MAAM,GAAG,QAAQ,KAAK,IAAI,GAAG,EAAE,CAAC;gBACnD;YACF;QACF;;QAGA,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAClD;;AAGA,IAAA,MAAM,uBAAuB,GAAG,GAAG,CAAC;AACpC,IAAA,MAAM,IAAI,GAAG,YAAY,GAAG,uBAAuB;AACnD,IAAA,MAAM,KAAK,GAAG,YAAY,GAAG,EAAE;IAC/B,MAAM,OAAO,GAAG,YAAY;IAE5B,OAAO;AACL,QAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI;AACpC,QAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG;AACpC,QAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;KAC7B;AACH;AAEA;AACO,MAAM,YAAY,GAAsB;IAC7C,QAAQ,EAAE,aAAa,CAAC,QAAQ;AAChC,IAAA,GAAG,EAAE;AACH,QAAA,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;AAC3C,QAAA,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;AAC3C,KAAA;AACD,IAAA,aAAa,EAAE;AACb,QAAA,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;AAC5C,QAAA,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;AAC3C,KAAA;AACD,IAAA,0BAA0B,EAAE;AAC1B,QAAA,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;AAC5C,QAAA,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;AAC3C,KAAA;AACD,IAAA,6BAA6B,EAAE;AAC7B,QAAA,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;AAC5C,QAAA,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5C,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;AAC5C,QAAA,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;AAC3C,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;AAC3C,QAAA,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5C,KAAA;CACF;;AC79BD;AAEA;;;;;;;AAOG;AACG,SAAU,cAAc,CAAC,GAAW,EAAA;AACxC,IAAA,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;AAAE,QAAA,OAAO,GAAG;AAC/C,IAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD;AAEA;;;;;;;AAOG;AACG,SAAU,cAAc,CAAC,KAAa,EAAA;AAC1C,IAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AAChB,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACpC,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,QAAQ,EAAE,KAAK;AAChB,KAAA,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAClB;AAEA;;;;;;;AAOG;AACG,SAAU,YAAY,CAAC,KAAa,EAAA;AACxC,IAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AAChB,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AACrD;AAEA;;;;;;;;AAQG;SACa,gBAAgB,CAAC,KAAa,EAAE,gBAAwB,CAAC,EAAA;AACvE,IAAA,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AAChB,QAAA,OAAO,IAAI;IACb;AACA,IAAA,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACpC,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,qBAAqB,EAAE,aAAa;AACrC,KAAA,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAClB;AAEA;;;;;;AAMG;AACG,SAAU,aAAa,CAAC,IAAU,EAAA;AACtC,IAAA,OAAO;SACJ,cAAc,CAAC,OAAO,EAAE;AACvB,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,MAAM,EAAE,KAAK;KACd;AACA,SAAA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AACxB;;AC5CA;;AAEG;AACG,SAAU,iBAAiB,CAAC,KAAa,EAAA;AAC7C,IAAA,MAAM,gBAAgB,GAA+B;QACnD,cAAc;QACd,mBAAmB;QACnB,mBAAmB;QACnB,gBAAgB;QAChB,qBAAqB;QACrB,cAAc;QACd,kBAAkB;QAClB,yBAAyB;QACzB,8BAA8B;QAC9B,2BAA2B;QAC3B,gCAAgC;KACjC;AACD,IAAA,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAwB,CAAC;AAC5D;;;;;;;AC9DA;AAEA;AAKA;;;;;;;;;;;;AAYG;AACI,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,IAAc,EAAE,IAAA,GAAgB,MAAM,KAAI;IACpF,MAAM,MAAM,GAAG,CAAA,QAAA,EAAW,IAAI,CAAC,WAAW,EAAE,GAAG;IAC/C,MAAM,aAAa,GAAG,IAAI,KAAK,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE;IAE7E,QAAQ,IAAI;AACV,QAAA,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;YAC7C;AACF,QAAA,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;YAC5C;AACF,QAAA,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;YAC7C;AACF,QAAA,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;YAC7C;AACF,QAAA,KAAK,MAAM;AACX,QAAA;YACE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;;AAElD,CAAC;AAED;;;;;;;;;AASG;AACH,SAAS,UAAU,CAAC,QAAgB,EAAA;AAClC,IAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;AACxB,QAAA,OAAO,QAAQ;IACjB;IACA,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAClC,IAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,IAAA,EAAO,OAAO,EAAE;AACpC;AAEA;;;;;;;;;;AAUG;AACG,SAAU,iBAAiB,CAAC,GAAW,EAAA;AAC3C,IAAA,IAAI;AACF,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;;AAG9B,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE;AAC3D,YAAA,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;AAClC,gBAAA,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;gBAChC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;YACzC;QACF;AAEA,QAAA,OAAO,SAAS,CAAC,QAAQ,EAAE;IAC7B;AAAE,IAAA,MAAM;;AAEN,QAAA,OAAO,GAAG;IACZ;AACF;AASA;;;;;AAKG;AACH,SAAS,mBAAmB,CAAC,KAAc,EAAE,QAAmB,EAAA;AAC9D,IAAA,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AACrE,IAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,OAAO;IAC7D,IAAI,OAAO,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACvD,QAAA,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,IAAI,EAAE;IACtF;AACA,IAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC;AACnD,QAAA,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;AACzD,QAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;IACvF;AACA,IAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC5E,QAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,yCAAyC,EAAE,MAAM,EAAE,GAAG,EAAE;IAC/F;AACA,IAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;AAC5E,QAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,6CAA6C,EAAE,MAAM,EAAE,GAAG,EAAE;IACnG;AACA,IAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AACpC,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG;AACjE,QAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAA,cAAA,EAAiB,MAAM,CAAA,CAAA,CAAG,EAAE,MAAM,EAAE;IAC7E;AACA,IAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AACpC,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG;AACjE,QAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAA,cAAA,EAAiB,MAAM,CAAA,CAAA,CAAG,EAAE,MAAM,EAAE;IAC7E;AACA,IAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE;AAC7E;AAEA;;;;;;;;;;;AAWG;AACI,eAAe,cAAc,CAClC,GAAW,EACX,OAAA,GAAuB,EAAE,EACzB,OAAA,GAAkB,CAAC,EACnB,iBAAyB,IAAI,EAAA;IAE7B,IAAI,OAAO,GAAG,cAAc;AAE5B,IAAA,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE;AACnD,QAAA,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;AAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;;AAEhB,gBAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;;oBAE3B,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AACtD,oBAAA,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,IAAI;oBAElE,MAAM,IAAI,KAAK,CAAC,CAAA,YAAA,EAAe,QAAQ,CAAC,MAAM,GAAG,UAAU,GAAG,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,CAAC;gBACxF;AACA,gBAAA,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAClD,MAAM,IAAI,KAAK,CAAC,CAAA,cAAA,EAAiB,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;gBACrD;AACA,gBAAA,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBACxC,MAAM,IAAI,KAAK,CAAC,CAAA,YAAA,EAAe,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;gBACnD;AACA,gBAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;;oBAEnD,MAAM,IAAI,KAAK,CAAC,CAAA,cAAA,EAAiB,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;gBACrD;gBACA,MAAM,IAAI,KAAK,CAAC,CAAA,YAAA,EAAe,QAAQ,CAAC,MAAM,CAAA,CAAE,CAAC;YACnD;AACA,YAAA,OAAO,QAAQ;QACnB;QAAE,OAAO,KAAK,EAAE;AACZ,YAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AACvB,gBAAA,MAAM,KAAK;YACb;;AAGJ,YAAA,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC;YAC3C,IAAI,eAAe,GAAG,OAAO;;AAG7B,YAAA,IAAI,YAAY,CAAC,IAAI,KAAK,YAAY,EAAE;;AAEtC,gBAAA,IAAI,YAAY,CAAC,UAAU,EAAE;AAC3B,oBAAA,eAAe,GAAG,YAAY,CAAC,UAAU;gBAC3C;qBAAO;oBACL,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;gBAC3C;YACF;AAAO,iBAAA,IAAI,YAAY,CAAC,IAAI,KAAK,YAAY,EAAE;;AAE7C,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAA,yBAAA,EAA4B,iBAAiB,CAAC,GAAG,CAAC,CAAA,EAAA,EAAK,YAAY,CAAC,MAAM,EAAE,EAAE;AAC1F,oBAAA,aAAa,EAAE,OAAO;oBACtB,SAAS,EAAE,YAAY,CAAC,IAAI;oBAC5B,UAAU,EAAE,YAAY,CAAC,MAAM;AAC/B,oBAAA,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC;AAC3B,oBAAA,MAAM,EAAE,gBAAgB;AACxB,oBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,iBAAA,CAAC;AACF,gBAAA,MAAM,KAAK;YACb;AAAO,iBAAA,IAAI,YAAY,CAAC,IAAI,KAAK,cAAc,EAAE;;AAE/C,gBAAA,OAAO,CAAC,KAAK,CAAC,CAAA,iBAAA,EAAoB,iBAAiB,CAAC,GAAG,CAAC,CAAA,EAAA,EAAK,YAAY,CAAC,MAAM,EAAE,EAAE;AAClF,oBAAA,aAAa,EAAE,OAAO;oBACtB,SAAS,EAAE,YAAY,CAAC,IAAI;oBAC5B,UAAU,EAAE,YAAY,CAAC,MAAM;AAC/B,oBAAA,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC;AAC3B,oBAAA,MAAM,EAAE,gBAAgB;AACxB,oBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,iBAAA,CAAC;AACF,gBAAA,MAAM,KAAK;YACb;;AAGA,YAAA,OAAO,CAAC,IAAI,CACV,iBAAiB,OAAO,CAAA,IAAA,EAAO,OAAO,CAAA,KAAA,EAAQ,iBAAiB,CAAC,GAAG,CAAC,YAClE,YAAY,CAAC,MACf,CAAA,cAAA,EAAiB,eAAe,OAAO,EACvC;AACE,gBAAA,aAAa,EAAE,OAAO;AACtB,gBAAA,YAAY,EAAE,OAAO;gBACrB,SAAS,EAAE,YAAY,CAAC,IAAI;gBAC5B,UAAU,EAAE,YAAY,CAAC,MAAM;AAC/B,gBAAA,UAAU,EAAE,eAAe;AAC3B,gBAAA,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC;AAC3B,gBAAA,MAAM,EAAE,gBAAgB;AACxB,gBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,aAAA,CACF;AAED,YAAA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AACpE,YAAA,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QACzC;IACF;AACA,IAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AAC5D;AAEA;;;;AAIG;AACI,eAAe,qBAAqB,CAAC,MAAc,EAAA;AACxD,IAAA,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAA,8CAAA,EAAiD,MAAM,CAAA,QAAA,CAAU,CAAC;AAC/F,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;QAC1D;AACA,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;QAClE;QACA,OAAO,QAAQ,CAAC,EAAE;IACpB;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,wBAAwB;AACtF,QAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,YAAY,CAAC;AACpE,QAAA,OAAO,KAAK;IACd;AACF;;ACvQA;AACA;AACA;AACA;;AAEA,MAAM,IAAI,CAAC;AACX,CAAC,KAAK;AACN,CAAC,IAAI;;AAEL,CAAC,WAAW,CAAC,KAAK,EAAE;AACpB,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;AACpB,CAAC;AACD;;AAEe,MAAM,KAAK,CAAC;AAC3B,CAAC,KAAK;AACN,CAAC,KAAK;AACN,CAAC,KAAK;;AAEN,CAAC,WAAW,GAAG;AACf,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,CAAC;;AAED,CAAC,OAAO,CAAC,KAAK,EAAE;AAChB,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;;AAE9B,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAClB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI;AACzB,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;AACpB,EAAE,CAAC,MAAM;AACT,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;AACpB,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI;AACpB,EAAE;;AAEF,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,CAAC;;AAED,CAAC,OAAO,GAAG;AACX,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK;AAC5B,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,GAAG;AACH,EAAE;;AAEF,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;AAC9B,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,EAAE,OAAO,OAAO,CAAC,KAAK;AACtB,CAAC;;AAED,CAAC,IAAI,GAAG;AACR,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACnB,GAAG;AACH,EAAE;;AAEF,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK;;AAEzB;AACA;AACA,CAAC;;AAED,CAAC,KAAK,GAAG;AACT,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS;AACxB,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS;AACxB,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;AAChB,CAAC;;AAED,CAAC,IAAI,IAAI,GAAG;AACZ,EAAE,OAAO,IAAI,CAAC,KAAK;AACnB,CAAC;;AAED,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG;AACvB,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK;;AAE1B,EAAE,OAAO,OAAO,EAAE;AAClB,GAAG,MAAM,OAAO,CAAC,KAAK;AACtB,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI;AACzB,EAAE;AACF,CAAC;;AAED,CAAC,EAAE,KAAK,GAAG;AACX,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE;AACrB,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;AACvB,EAAE;AACF,CAAC;AACD;;ACjFe,SAAS,MAAM,CAAC,WAAW,EAAE;AAC5C,CAAC,mBAAmB,CAAC,WAAW,CAAC;;AAEjC,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE;AAC1B,CAAC,IAAI,WAAW,GAAG,CAAC;;AAEpB,CAAC,MAAM,UAAU,GAAG,MAAM;AAC1B;AACA,EAAE,IAAI,WAAW,GAAG,WAAW,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;AACnD,GAAG,WAAW,EAAE;AAChB,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE;AACpB,EAAE;AACF,CAAC,CAAC;;AAEF,CAAC,MAAM,IAAI,GAAG,MAAM;AACpB,EAAE,WAAW,EAAE;AACf,EAAE,UAAU,EAAE;AACd,CAAC,CAAC;;AAEF,CAAC,MAAM,GAAG,GAAG,OAAO,SAAS,EAAE,OAAO,EAAE,UAAU,KAAK;AACvD;AACA,EAAE,MAAM,MAAM,GAAG,CAAC,YAAY,SAAS,CAAC,GAAG,UAAU,CAAC,GAAG;;AAEzD;AACA,EAAE,OAAO,CAAC,MAAM,CAAC;;AAEjB;AACA;AACA;AACA,EAAE,IAAI;AACN,GAAG,MAAM,MAAM;AACf,EAAE,CAAC,CAAC,MAAM,CAAC;;AAEX;AACA,EAAE,IAAI,EAAE;AACR,CAAC,CAAC;;AAEF,CAAC,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,KAAK;AACrD;AACA;AACA,EAAE,IAAI,OAAO,CAAC,eAAe,IAAI;AACjC,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;AACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;;AAE/D;AACA,EAAE,IAAI,WAAW,GAAG,WAAW,EAAE;AACjC,GAAG,UAAU,EAAE;AACf,EAAE;AACF,CAAC,CAAC;;AAEF,CAAC,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,GAAG,UAAU,KAAK,IAAI,OAAO,CAAC,OAAO,IAAI;AACxE,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC;AACzC,CAAC,CAAC,CAAC;;AAEH,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE;AACpC,EAAE,WAAW,EAAE;AACf,GAAG,GAAG,EAAE,MAAM,WAAW;AACzB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,GAAG,GAAG,EAAE,MAAM,KAAK,CAAC,IAAI;AACxB,GAAG;AACH,EAAE,UAAU,EAAE;AACd,GAAG,KAAK,GAAG;AACX,IAAI,KAAK,CAAC,KAAK,EAAE;AACjB,GAAG,CAAC;AACJ,GAAG;AACH,EAAE,WAAW,EAAE;AACf,GAAG,GAAG,EAAE,MAAM,WAAW;;AAEzB,GAAG,GAAG,CAAC,cAAc,EAAE;AACvB,IAAI,mBAAmB,CAAC,cAAc,CAAC;AACvC,IAAI,WAAW,GAAG,cAAc;;AAEhC,IAAI,cAAc,CAAC,MAAM;AACzB;AACA,KAAK,OAAO,WAAW,GAAG,WAAW,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;AACzD,MAAM,UAAU,EAAE;AAClB,KAAK;AACL,IAAI,CAAC,CAAC;AACN,GAAG,CAAC;AACJ,GAAG;AACH,EAAE,GAAG,EAAE;AACP,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE;AACpC,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1F,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAChC,GAAG,CAAC;AACJ,GAAG;AACH,EAAE,CAAC;;AAEH,CAAC,OAAO,SAAS;AACjB;;AASA,SAAS,mBAAmB,CAAC,WAAW,EAAE;AAC1C,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,WAAW,KAAK,MAAM,CAAC,iBAAiB,KAAK,WAAW,GAAG,CAAC,CAAC,EAAE;AACxG,EAAE,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC;AAC5E,CAAC;AACD;;ACzGA;;AAEoF;AAepF;AACA,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe;AAEnD;AACA,MAAM,yBAAyB,GAAG,GAAG;AAErC,MAAM,YAAY,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAEtD;AACA;;;;;;AAMG;AAEI,MAAM,eAAe,GAAG,OAC7B,MAAc,EACd,OAA6B,KACQ;IACrC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE;AACxC,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IACA,MAAM,OAAO,GAAG,CAAA,4CAAA,EAA+C,kBAAkB,CAAC,MAAM,CAAC,EAAE;AAC3F,IAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;AACjC,QAAA,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,eAAgB;AAC5C,KAAA,CAAC;AAEF,IAAA,OAAO,YAAY,CAAC,YAAW;AAC7B,QAAA,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,CAAA,EAAG,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AACrF,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;;AAGlC,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;AAC/B,gBAAA,OAAO,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAA,CAAE,CAAC;AAC3C,gBAAA,OAAO,IAAI;YACb;;AAGA,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;YAC5B,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;YACvD;;AAGA,YAAA,MAAM,cAAc,GAAG;gBACrB,QAAQ;gBACR,eAAe;gBACf,QAAQ;gBACR,QAAQ;gBACR,MAAM;gBACN,kBAAkB;gBAClB,QAAQ;gBACR,MAAM;aACP;AAED,YAAA,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE;AAClC,gBAAA,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;AAChC,oBAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,KAAK,CAAA,CAAE,CAAC;gBAC7E;YACF;;AAGA,YAAA,IAAI,OAAO,CAAC,8BAA8B,KAAK,SAAS,EAAE;AACxD,gBAAA,OAAO,CAAC,8BAA8B,GAAG,IAAI;YAC/C;YAEA,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,aAAa,EAAE,OAAO,CAAC,aAAa;AACpC,gBAAA,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,0BAA0B;gBAC9D,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;AACtB,gBAAA,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;gBACnC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,8BAA8B,EAAE,OAAO,CAAC,8BAA8B;aAClD;QACxB;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,wBAAwB;AACtF,YAAA,MAAM,iBAAiB,GAAG,CAAA,+BAAA,EAAkC,MAAM,EAAE;YAEpE,OAAO,CAAC,KAAK,CAAC,CAAA,EAAG,iBAAiB,CAAA,EAAA,EAAK,YAAY,EAAE,EAAE;gBACrD,MAAM;AACN,gBAAA,SAAS,EACP,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3D,sBAAE;AACF,sBAAE,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC/D,0BAAE;AACF,0BAAE,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe;AAClE,8BAAE;AACF,8BAAE,SAAS;gBACf,GAAG,EAAE,iBAAiB,CAAC,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;AACzD,gBAAA,MAAM,EAAE,4BAA4B;AACpC,gBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,aAAA,CAAC;YAEF,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,iBAAiB,CAAA,EAAA,EAAK,YAAY,CAAA,CAAE,CAAC;QAC1D;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;AAED;AACA;;;;;;AAMG;AAEI,MAAM,cAAc,GAAG,OAAO,MAAc,EAAE,OAA6B,KAA2B;IAC3G,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE;AACxC,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IACA,MAAM,OAAO,GAAG,CAAA,qCAAA,EAAwC,kBAAkB,CAAC,MAAM,CAAC,EAAE;AACpF,IAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;AACjC,QAAA,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,eAAgB;AAC5C,KAAA,CAAC;AAEF,IAAA,OAAO,YAAY,CAAC,YAAW;AAC7B,QAAA,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,CAAA,EAAG,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AACrF,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;YAElC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACzC,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAC,MAAM,IAAI,YAAY,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA,CAAE,CAAC;YAC7F;AAEA,YAAA,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO;AACvD,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACzF,gBAAA,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;YACpE;YAEA,OAAO;gBACL,KAAK;gBACL,GAAG;AACH,gBAAA,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;aAChC;QACnB;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,wBAAwB;AACtF,YAAA,MAAM,iBAAiB,GAAG,CAAA,8BAAA,EAAiC,MAAM,EAAE;YAEnE,OAAO,CAAC,KAAK,CAAC,CAAA,EAAG,iBAAiB,CAAA,EAAA,EAAK,YAAY,EAAE,EAAE;gBACrD,MAAM;AACN,gBAAA,SAAS,EACP,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3D,sBAAE;AACF,sBAAE,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC/D,0BAAE;AACF,0BAAE,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe;AAClE,8BAAE;AACF,8BAAE,SAAS;gBACf,GAAG,EAAE,iBAAiB,CAAC,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;AACzD,gBAAA,MAAM,EAAE,2BAA2B;AACnC,gBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,aAAA,CAAC;YAEF,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,iBAAiB,CAAA,EAAA,EAAK,YAAY,CAAA,CAAE,CAAC;QAC1D;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;AAED;AACA;;;;;;;;;;;;AAYG;AAEI,MAAM,WAAW,GAAG,OACzB,MAOC,EACD,OAA6B,KACE;IAC/B,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE;AACxC,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IACA,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,MAAM;AAEhG,IAAA,MAAM,OAAO,GAAG,CAAA,sCAAA,EAAyC,kBAAkB,CACzE,MAAM,CACP,CAAA,OAAA,EAAU,UAAU,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,GAAG,EAAE;AAEnD,IAAA,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC;AACpC,QAAA,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,eAAgB;AAC3C,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;AACxB,KAAA,CAAC;AAEF,IAAA,OAAO,YAAY,CAAC,YAAW;AAC7B,QAAA,IAAI;YACF,IAAI,UAAU,GAA0B,EAAE;YAC1C,IAAI,OAAO,GAAG,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,SAAS,CAAC,QAAQ,EAAE,CAAA,CAAE;YAElD,OAAO,OAAO,EAAE;;AAEd,gBAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AAC3D,gBAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,gBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;oBACxB,MAAM,IAAI,KAAK,CAAC,CAAA,sCAAA,EAAyC,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;gBACzE;AAEA,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;oBAChB,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC/C;;gBAGA,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAC,QAAQ,WAAW,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,GAAG,EAAE;YAChG;YAEA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,KAA0B,MAAM;AACrD,gBAAA,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE;AAC9C,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,GAAG,EAAE,SAAS;AACd,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,MAAM,EAAE,SAAS;AACjB,oBAAA,MAAM,EAAE,SAAS;AACjB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,YAAY,EAAE,OAAO;AACrB,oBAAA,SAAS,EAAE,KAAK;iBACjB,CAAC;gBACF,SAAS,EAAE,KAAK,CAAC,CAAC;gBAClB,IAAI,EAAE,KAAK,CAAC,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,CAAC;gBACb,GAAG,EAAE,KAAK,CAAC,CAAC;gBACZ,KAAK,EAAE,KAAK,CAAC,CAAC;gBACd,GAAG,EAAE,KAAK,CAAC,CAAC;gBACZ,IAAI,EAAE,KAAK,CAAC,EAAE;gBACd,MAAM,EAAE,KAAK,CAAC,CAAC;AAChB,aAAA,CAAC,CAAuB;QAC3B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,wBAAwB;AACtF,YAAA,MAAM,iBAAiB,GAAG,CAAA,8BAAA,EAAiC,MAAM,EAAE;YAEnE,OAAO,CAAC,KAAK,CAAC,CAAA,EAAG,iBAAiB,CAAA,EAAA,EAAK,YAAY,EAAE,EAAE;gBACrD,MAAM;AACN,gBAAA,SAAS,EACP,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3D,sBAAE;AACF,sBAAE,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC/D,0BAAE;AACF,0BAAE,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe;AAClE,8BAAE;AACF,8BAAE,SAAS;AACf,gBAAA,MAAM,EAAE,wBAAwB;AAChC,gBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,aAAA,CAAC;YAEF,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,iBAAiB,CAAA,EAAA,EAAK,YAAY,CAAA,CAAE,CAAC;QAC1D;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;AAED;;;;AAIG;AAEG,SAAU,uBAAuB,CAAC,SAA6B,EAAA;IACnE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,QAAA,OAAO,uCAAuC;IAChD;;IAGA,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM;AAC3C,QAAA,GAAG,KAAK;AACR,QAAA,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3B,KAAA,CAAC,CAAC;;IAGH,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;IAG9D,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;AACpC,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI;;IAG7B,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE;;IAGpF,MAAM,SAAS,GAAG;SACf,KAAK,CAAC,CAAC;AACP,SAAA,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC;AAC3F,IAAA,MAAM,WAAW,GACf,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAK,GAAG,GAAG,QAAQ,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;;AAGtG,IAAA,MAAM,MAAM,GAAG;;qCAEoB,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;mCACrE,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;AACzE,yBAAA,EAAA,SAAS,CAAC,MAAM;AACS,kDAAA,EAAA,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;GACvE;AAED,IAAA,OAAO,MAAM,CAAC,IAAI,EAAE;AACtB;AAIA;;;;;;;;AAQG;AAEI,MAAM,iBAAiB,GAAG,OAC/B,IAAY,EACZ,OAIC,KACuC;IACxC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE;AACxC,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;IAC/C;AAEA,IAAA,MAAM,OAAO,GAAG,CAAA,+DAAA,EAAkE,IAAI,EAAE;AACxF,IAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;AACjC,QAAA,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,eAAgB;AAC3C,QAAA,QAAQ,EAAE,OAAO,EAAE,QAAQ,KAAK,KAAK,GAAG,MAAM,GAAG,OAAO;QACxD,WAAW,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO;AACpD,KAAA,CAAC;AAEF,IAAA,OAAO,YAAY,CAAC,YAAW;AAC7B,QAAA,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,CAAA,EAAG,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AACrF,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,CAAA,sCAAA,EAAyC,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;YACzE;YAEA,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAA2B,MAAM;oBAC1D,MAAM,EAAE,MAAM,CAAC,CAAC;oBAChB,SAAS,EAAE,MAAM,CAAC,CAAC;oBACnB,IAAI,EAAE,MAAM,CAAC,CAAC;oBACd,IAAI,EAAE,MAAM,CAAC,CAAC;oBACd,GAAG,EAAE,MAAM,CAAC,CAAC;oBACb,KAAK,EAAE,MAAM,CAAC,CAAC;oBACf,GAAG,EAAE,MAAM,CAAC,CAAC;oBACb,IAAI,EAAE,MAAM,CAAC,EAAE;oBACf,MAAM,EAAE,MAAM,CAAC,CAAC;AACjB,iBAAA,CAAC,CAAC;aAC2B;QAClC;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,wBAAwB;AACtF,YAAA,MAAM,iBAAiB,GAAG,CAAA,sCAAA,EAAyC,IAAI,EAAE;YAEzE,OAAO,CAAC,KAAK,CAAC,CAAA,EAAG,iBAAiB,CAAA,EAAA,EAAK,YAAY,EAAE,EAAE;gBACrD,IAAI;AACJ,gBAAA,SAAS,EACP,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3D,sBAAE;AACF,sBAAE,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC/D,0BAAE;AACF,0BAAE,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe;AAClE,8BAAE;AACF,8BAAE,SAAS;gBACf,GAAG,EAAE,iBAAiB,CAAC,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;AACzD,gBAAA,MAAM,EAAE,8BAA8B;AACtC,gBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,aAAA,CAAC;YAEF,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,iBAAiB,CAAA,EAAA,EAAK,YAAY,CAAA,CAAE,CAAC;QAC1D;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;AAED;;;;AAIG;AAEG,SAAU,eAAe,CAAC,SAA6B,EAAA;AAC3D,IAAA,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,yBAAyB;AAE1E,IAAA,OAAO;AACJ,SAAA,GAAG,CAAC,CAAC,CAAC,KAAI;;AAET,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI;QAEtF,OAAO;YACL,OAAO;AACP,YAAA,CAAA,GAAA,EAAM,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAE;AAC9B,YAAA,CAAA,GAAA,EAAM,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAE;AAC9B,YAAA,CAAA,GAAA,EAAM,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA,CAAE;AAC7B,YAAA,CAAA,GAAA,EAAM,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA,CAAE;YAC/B,CAAA,KAAA,EAAQ,CAAC,CAAC,GAAG,CAAA,CAAE;AAChB,SAAA,CAAC,IAAI,CAAC,KAAK,CAAC;AACf,IAAA,CAAC;SACA,IAAI,CAAC,IAAI,CAAC;AACf;AAEO,MAAM,mBAAmB,GAAG;AACjC;;;;;;;;AAQG;AAEH,MAAc,EACd,OAAa,IAAI,IAAI,EAAE,EACvB,OAGC,KACiC;IAClC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE;AACxC,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;IAC/C;AAEA,IAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,CAAA,qCAAA,EAAwC,kBAAkB,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,aAAa,CAAA,CAAE;AACrG,IAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;AACjC,QAAA,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,eAAgB;QAC3C,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ,EAAE;AACjD,KAAA,CAAC;AAEF,IAAA,OAAO,YAAY,CAAC,YAAW;QAC7B,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,CAAA,EAAG,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;AACrF,QAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,CAAA,0CAAA,EAA6C,MAAM,CAAA,EAAA,EAAK,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;QACxF;AAEA,QAAA,OAAO,IAAI;AACb,IAAA,CAAC,CAAC;AACJ,CAAC;AAID;;;;;AAKG;AAEI,eAAe,gBAAgB,CACpC,MAAc,EACd,aAAoB,EACpB,OAA6B,EAAA;AAE7B,IAAA,MAAM,YAAY,GAAG,sBAAsB,CAAC,aAAa,CAAC;IAC1D,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC;IAC9E,IAAI,CAAC,aAAa,EAAE;AAClB,QAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,MAAM,CAAA,CAAE,CAAC;IACnE;IACA,OAAO;QACL,KAAK,EAAE,aAAa,CAAC,KAAK;AAC1B,QAAA,IAAI,EAAE,YAAY;KACnB;AACH;AAEA;;;;;;;;;;;;;;AAcG;AAEI,MAAM,WAAW,GAAG,OACzB,MAAc,EACd,OAUC,KACiC;IAClC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE;AACxC,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IAEA,MAAM,OAAO,GAAG,CAAA,iCAAA,EAAoC,kBAAkB,CAAC,MAAM,CAAC,EAAE;AAChF,IAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;AACjC,QAAA,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,eAAgB;AAC5C,KAAA,CAAC;;IAGF,IAAI,OAAO,EAAE,SAAS;AAAE,QAAA,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IAChF,IAAI,OAAO,EAAE,WAAW;AAAE,QAAA,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IACvF,IAAI,OAAO,EAAE,YAAY;AAAE,QAAA,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC1F,IAAI,OAAO,EAAE,WAAW;AAAE,QAAA,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IACvF,IAAI,OAAO,EAAE,YAAY;AAAE,QAAA,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC1F,IAAI,OAAO,EAAE,KAAK;QAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;IACzD,IAAI,OAAO,EAAE,KAAK;AAAE,QAAA,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACpE,IAAI,OAAO,EAAE,IAAI;QAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;AAEtD,IAAA,OAAO,YAAY,CAAC,YAAW;QAC7B,MAAM,GAAG,GAAG,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,MAAM,CAAC,QAAQ,EAAE,CAAA,CAAE;AAC7C,QAAA,IAAI;YACF,OAAO,CAAC,GAAG,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAA,MAAA,EAAS,GAAG,CAAA,CAAE,CAAC;AAChE,YAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;YACvD,MAAM,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiD;AAEpF,YAAA,IAAI,SAAS,IAAI,IAAI,EAAE;;gBAErB,MAAM,IAAI,KAAK,CAAC,CAAA,mBAAA,EAAsB,IAAI,CAAC,OAAO,CAAA,CAAE,CAAC;YACvD;AAEA,YAAA,OAAO,IAAI;QACb;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,wBAAwB;AACtF,YAAA,MAAM,iBAAiB,GAAG,CAAA,0BAAA,EAA6B,MAAM,EAAE;YAE/D,OAAO,CAAC,KAAK,CAAC,CAAA,EAAG,iBAAiB,CAAA,EAAA,EAAK,YAAY,EAAE,EAAE;gBACrD,MAAM;AACN,gBAAA,SAAS,EACP,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC3D,sBAAE;AACF,sBAAE,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY;AAC/D,0BAAE;AACF,0BAAE,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe;AAClE,8BAAE;AACF,8BAAE,SAAS;AACf,gBAAA,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC;AAC3B,gBAAA,MAAM,EAAE,wBAAwB;AAChC,gBAAA,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,aAAA,CAAC;YAEF,MAAM,IAAI,KAAK,CAAC,CAAA,EAAG,iBAAiB,CAAA,EAAA,EAAK,YAAY,CAAA,CAAE,CAAC;QAC1D;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;;ACplBD;;;;AAIG;AAcH;AACA,MAAM,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,GAA6B;AAExE;AACA,MAAM,iCAAiC,GAAG,CAAC;AAC3C,MAAM,mBAAmB,GAAG,MAAM,CAAC,iCAAiC,CAAC;AAErE;AACA,MAAM,oBAAoB,GAAG,wBAAwB;AAErD;;;;AAIG;AACH,MAAM,cAAc,GAAG,CAAC,MAAe,KAAY;AACjD,IAAA,MAAM,GAAG,GAAG,MAAM,IAAI,sBAAsB;IAC5C,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;IACvD;AACA,IAAA,OAAO,GAAG;AACZ,CAAC;AAED;;;;;;;AAOG;AACI,MAAM,sBAAsB,GAAG,OACpC,MAAsC,EACtC,OAA6B,KACgB;IAC7C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;AAE9C,IAAA,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM;IAErF,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,CAAA,EAAG,oBAAoB,CAAA,gBAAA,EAAmB,kBAAkB,CAC1D,aAAa,CACd,CAAA,OAAA,EAAU,UAAU,IAAI,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAClD;AAED,IAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;AACzC,IAAA,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;IAEpC,IAAI,IAAI,EAAE;AACR,QAAA,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IAClC;IAEA,IAAI,KAAK,EAAE;QACT,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/C;AAEA,IAAA,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE;AAEnC,IAAA,OAAO,mBAAmB,CAAC,YAAW;AACpC,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;AACjE,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,CAAA,mBAAA,EAAsB,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;YACrD;AAEA,YAAA,OAAO,IAAwC;QACjD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC;AAC1D,YAAA,MAAM,KAAK;QACb;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;AAOG;AACI,MAAM,yBAAyB,GAAG,OACvC,aAAqB,EACrB,OAA6B,KACe;IAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;AAE9C,IAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA,EAAG,oBAAoB,CAAA,gBAAA,EAAmB,kBAAkB,CAAC,aAAa,CAAC,CAAA,KAAA,CAAO,CAAC;AAEvG,IAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;AACzC,IAAA,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;AAEpC,IAAA,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE;AAEnC,IAAA,OAAO,mBAAmB,CAAC,YAAW;AACpC,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;AACjE,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,CAAA,mBAAA,EAAsB,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;YACrD;AAEA,YAAA,OAAO,IAAuC;QAChD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC;AAC9D,YAAA,MAAM,KAAK;QACb;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;AAQG;AACI,MAAM,0BAA0B,GAAG,OACxC,aAAqB,EACrB,IAAY,EACZ,OAA6B,KACoB;IACjD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;AAE9C,IAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,oBAAoB,CAAA,eAAA,EAAkB,kBAAkB,CAAC,aAAa,CAAC,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC;AAEzG,IAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;AACzC,IAAA,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;AAEpC,IAAA,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE;AAEnC,IAAA,OAAO,mBAAmB,CAAC,YAAW;AACpC,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;AACjE,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,CAAA,mBAAA,EAAsB,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;YACrD;AAEA,YAAA,OAAO,IAA4C;QACrD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC;AAChE,YAAA,MAAM,KAAK;QACb;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;AAOG;AACI,MAAM,oBAAoB,GAAG,OAClC,MAAqC,EACrC,OAA6B,KACc;IAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;IAE9C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA,EAAG,oBAAoB,CAAA,oBAAA,CAAsB,CAAC;AAElE,IAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;AACzC,IAAA,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;AAEpC,IAAA,IAAI,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;AAC3B,QAAA,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/D;AAEA,IAAA,IAAI,MAAM,EAAE,KAAK,EAAE;QACjB,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;IAC3C;AAEA,IAAA,IAAI,MAAM,EAAE,KAAK,EAAE;AACjB,QAAA,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACtD;AAEA,IAAA,IAAI,MAAM,EAAE,IAAI,EAAE;QAChB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;IACzC;AAEA,IAAA,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE;AAEnC,IAAA,OAAO,mBAAmB,CAAC,YAAW;AACpC,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;AACjE,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,CAAA,mBAAA,EAAsB,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;YACrD;AAEA,YAAA,OAAO,IAAsC;QAC/C;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC;AACxD,YAAA,MAAM,KAAK;QACb;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;AAWG;AACI,MAAM,sBAAsB,GAAG,OACpC,OAAiB,EACjB,OAMC,KACe;IAChB,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;IAE9C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA,EAAG,oBAAoB,CAAA,YAAA,CAAc,CAAC;AAE1D,IAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;AACzC,IAAA,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;AAEpC,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAA,WAAW,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD;AAEA,IAAA,IAAI,OAAO,EAAE,IAAI,EAAE;QACjB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;IAC1C;AAEA,IAAA,IAAI,OAAO,EAAE,KAAK,EAAE;QAClB,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,IAAI,OAAO,EAAE,KAAK,EAAE;AAClB,QAAA,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACvD;AAEA,IAAA,IAAI,OAAO,EAAE,IAAI,EAAE;QACjB,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;IAC1C;AAEA,IAAA,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE;AAEnC,IAAA,OAAO,mBAAmB,CAAC,YAAW;AACpC,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;AACjE,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAElC,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,CAAA,mBAAA,EAAsB,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;YACrD;AAEA,YAAA,OAAO,IAAI;QACb;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC;AAC1D,YAAA,MAAM,KAAK;QACb;AACF,IAAA,CAAC,CAAC;AACJ,CAAC;AAED;;;;;AAKG;AACI,MAAM,oBAAoB,GAAG,CAClC,IAAsC,KAQnC;IACH,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;QAC9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,OAAO;AACL,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,GAAG,EAAE,GAAG,CAAC,CAAC;YACV,KAAK,EAAE,GAAG,CAAC,CAAC;YACZ,SAAS,EAAE,GAAG,CAAC,CAAC;SACjB;AACH,IAAA,CAAC,CAAC;AACJ,CAAC;;AChUD,SAAS,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;AAKjE,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,IAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACrF,QAAQ,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC;AACtG,IAAI,OAAwE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,KAAK;AAC7G;AACA,SAAS,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE;AAC1D,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;AAC1B,QAAQ,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC;AAC5E,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACrF,QAAQ,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC;AACvG,IAAI,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACjG;;ACfA;AACA;AACA;AACA;AACO,IAAI,KAAK,GAAG,YAAY;AAC/B,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU;AACjC,IAAI,IAAI,MAAM,EAAE,UAAU,EAAE;AAC5B,QAAQ,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9C,QAAQ,OAAO,MAAM,CAAC,UAAU,EAAE;AAClC,IAAI;AACJ,IAAI,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;AAChC,IAAI,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,IAAI;AACzG,IAAI,OAAO,sCAAsC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjI,CAAC;;ACbD;AACO,SAAS,YAAY,CAAC,GAAG,EAAE;AAClC,IAAI,QAAQ,OAAO,GAAG,KAAK,QAAQ;AACnC,QAAQ,GAAG,KAAK,IAAI;AACpB;AACA,SAAS,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;AACpD;AACA,aAAa,SAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CAAC;AAChG;AACO,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK;AACpC,IAAI,IAAI,GAAG,YAAY,KAAK;AAC5B,QAAQ,OAAO,GAAG;AAClB,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AACjD,QAAQ,IAAI;AACZ,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,gBAAgB,EAAE;AAC1E;AACA,gBAAgB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;AAC3F,gBAAgB,IAAI,GAAG,CAAC,KAAK;AAC7B,oBAAoB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;AAC3C;AACA,gBAAgB,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK;AAC7C,oBAAoB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;AAC3C,gBAAgB,IAAI,GAAG,CAAC,IAAI;AAC5B,oBAAoB,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI;AACzC,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,EAAE;AAChB,QAAQ,IAAI;AACZ,YAAY,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACjD,QAAQ;AACR,QAAQ,MAAM,EAAE;AAChB,IAAI;AACJ,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC;AACzB,CAAC;;AClCD;AAEO,MAAM,WAAW,SAAS,KAAK,CAAC;AACvC;AACO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AACjD,QAAQ,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC;AACrD,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,QAAQ,MAAM,IAAI,GAAG,KAAK;AAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAClC,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC;AACpC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAClC,IAAI;AACJ,IAAI,OAAO,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;AAC/C,QAAQ,MAAM,GAAG,GAAG,KAAK,EAAE,OAAO;AAClC,YAAY,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AAC7C,gBAAgB,KAAK,CAAC;AACtB,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO;AAC9C,cAAc,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK;AAC1C,kBAAkB,OAAO;AACzB,QAAQ,IAAI,MAAM,IAAI,GAAG,EAAE;AAC3B,YAAY,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrC,QAAQ;AACR,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,OAAO,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC;AACpD,QAAQ;AACR,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,OAAO,GAAG;AACtB,QAAQ;AACR,QAAQ,OAAO,0BAA0B;AACzC,IAAI;AACJ,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE;AAC7D,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;AACjC,YAAY,OAAO,IAAI,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;AACzF,QAAQ;AACR,QAAQ,MAAM,KAAK,GAAG,aAAa,GAAG,OAAO,CAAC;AAC9C,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACvE,QAAQ;AACR,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAC3E,QAAQ;AACR,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAC7E,QAAQ;AACR,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACrE,QAAQ;AACR,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACrE,QAAQ;AACR,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,wBAAwB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAChF,QAAQ;AACR,QAAQ,IAAI,MAAM,KAAK,GAAG,EAAE;AAC5B,YAAY,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACtE,QAAQ;AACR,QAAQ,IAAI,MAAM,IAAI,GAAG,EAAE;AAC3B,YAAY,OAAO,IAAI,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAC3E,QAAQ;AACR,QAAQ,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5D,IAAI;AACJ;AACO,MAAM,iBAAiB,SAAS,QAAQ,CAAC;AAChD,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;AAClC,QAAQ,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,IAAI,sBAAsB,EAAE,SAAS,CAAC;AACjF,IAAI;AACJ;AACO,MAAM,kBAAkB,SAAS,QAAQ,CAAC;AACjD,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;AACpC,QAAQ,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,IAAI,mBAAmB,EAAE,SAAS,CAAC;AAC9E;AACA;AACA,QAAQ,IAAI,KAAK;AACjB,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK;AAC9B,IAAI;AACJ;AACO,MAAM,yBAAyB,SAAS,kBAAkB,CAAC;AAClE,IAAI,WAAW,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;AAClC,QAAQ,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,CAAC;AAC3D,IAAI;AACJ;AACO,MAAM,eAAe,SAAS,QAAQ,CAAC;AAC9C;AACO,MAAM,mBAAmB,SAAS,QAAQ,CAAC;AAClD;AACO,MAAM,qBAAqB,SAAS,QAAQ,CAAC;AACpD;AACO,MAAM,aAAa,SAAS,QAAQ,CAAC;AAC5C;AACO,MAAM,aAAa,SAAS,QAAQ,CAAC;AAC5C;AACO,MAAM,wBAAwB,SAAS,QAAQ,CAAC;AACvD;AACO,MAAM,cAAc,SAAS,QAAQ,CAAC;AAC7C;AACO,MAAM,mBAAmB,SAAS,QAAQ,CAAC;AAClD;AACO,MAAM,uBAAuB,SAAS,WAAW,CAAC;AACzD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,CAAC,gEAAgE,CAAC,CAAC;AACjF,IAAI;AACJ;AACO,MAAM,8BAA8B,SAAS,WAAW,CAAC;AAChE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,CAAC,kFAAkF,CAAC,CAAC;AACnG,IAAI;AACJ;AACO,MAAM,4BAA4B,SAAS,KAAK,CAAC;AACxD,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,KAAK,CAAC,OAAO,CAAC;AACtB,IAAI;AACJ;;ACnHA;AAEA;AACA,MAAM,sBAAsB,GAAG,sBAAsB;AAC9C,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK;AACtC,IAAI,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C,CAAC;AACM,IAAI,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAChE,IAAI,eAAe,GAAG,OAAO;AACpC;AACO,SAAS,QAAQ,CAAC,CAAC,EAAE;AAC5B,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC/B,QAAQ,OAAO,EAAE;AACjB,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB;AACA;AACO,SAAS,UAAU,CAAC,GAAG,EAAE;AAChC,IAAI,IAAI,CAAC,GAAG;AACZ,QAAQ,OAAO,IAAI;AACnB,IAAI,KAAK,MAAM,EAAE,IAAI,GAAG;AACxB,QAAQ,OAAO,KAAK;AACpB,IAAI,OAAO,IAAI;AACf;AACA;AACO,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;AACjC,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;AACzD;AACO,SAAS,KAAK,CAAC,GAAG,EAAE;AAC3B,IAAI,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACxE;AAOO,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK;AACpD,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;AACvD,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC3D,IAAI;AACJ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;AACf,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACnE,IAAI;AACJ,IAAI,OAAO,CAAC;AACZ,CAAC;AAwCM,MAAM,QAAQ,GAAG,CAAC,IAAI,KAAK;AAClC,IAAI,IAAI;AACR,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/B,IAAI;AACJ,IAAI,OAAO,GAAG,EAAE;AAChB,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,CAAC;;AC5FD;AACO,MAAM,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;;ACDvE,MAAM,OAAO,GAAG,OAAO,CAAC;;ACA/B;AAEO,MAAM,kBAAkB,GAAG,MAAM;AACxC,IAAI;AACJ;AACA,IAAI,OAAO,MAAM,KAAK,WAAW;AACjC;AACA,QAAQ,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW;AAC9C;AACA,QAAQ,OAAO,SAAS,KAAK,WAAW;AACxC,CAAC;AACD;AACA;AACA;AACA,SAAS,mBAAmB,GAAG;AAC/B,IAAI,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;AAC3D,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;AAC5C,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,OAAO,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,kBAAkB,EAAE;AACnI,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,OAAO,SAAS;AACpB;AACA,MAAM,qBAAqB,GAAG,MAAM;AACpC,IAAI,MAAM,gBAAgB,GAAG,mBAAmB,EAAE;AAClD,IAAI,IAAI,gBAAgB,KAAK,MAAM,EAAE;AACrC,QAAQ,OAAO;AACf,YAAY,kBAAkB,EAAE,IAAI;AACpC,YAAY,6BAA6B,EAAE,OAAO;AAClD,YAAY,gBAAgB,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9D,YAAY,kBAAkB,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9D,YAAY,qBAAqB,EAAE,MAAM;AACzC,YAAY,6BAA6B,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS;AAC5H,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;AAC5C,QAAQ,OAAO;AACf,YAAY,kBAAkB,EAAE,IAAI;AACpC,YAAY,6BAA6B,EAAE,OAAO;AAClD,YAAY,gBAAgB,EAAE,SAAS;AACvC,YAAY,kBAAkB,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACtD,YAAY,qBAAqB,EAAE,MAAM;AACzC,YAAY,6BAA6B,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO;AACrE,SAAS;AACT,IAAI;AACJ;AACA,IAAI,IAAI,gBAAgB,KAAK,MAAM,EAAE;AACrC,QAAQ,OAAO;AACf,YAAY,kBAAkB,EAAE,IAAI;AACpC,YAAY,6BAA6B,EAAE,OAAO;AAClD,YAAY,gBAAgB,EAAE,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;AACzF,YAAY,kBAAkB,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;AACnF,YAAY,qBAAqB,EAAE,MAAM;AACzC,YAAY,6BAA6B,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,SAAS;AAClF,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,WAAW,GAAG,cAAc,EAAE;AACxC,IAAI,IAAI,WAAW,EAAE;AACrB,QAAQ,OAAO;AACf,YAAY,kBAAkB,EAAE,IAAI;AACpC,YAAY,6BAA6B,EAAE,OAAO;AAClD,YAAY,gBAAgB,EAAE,SAAS;AACvC,YAAY,kBAAkB,EAAE,SAAS;AACzC,YAAY,qBAAqB,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;AACnE,YAAY,6BAA6B,EAAE,WAAW,CAAC,OAAO;AAC9D,SAAS;AACT,IAAI;AACJ;AACA,IAAI,OAAO;AACX,QAAQ,kBAAkB,EAAE,IAAI;AAChC,QAAQ,6BAA6B,EAAE,OAAO;AAC9C,QAAQ,gBAAgB,EAAE,SAAS;AACnC,QAAQ,kBAAkB,EAAE,SAAS;AACrC,QAAQ,qBAAqB,EAAE,SAAS;AACxC,QAAQ,6BAA6B,EAAE,SAAS;AAChD,KAAK;AACL,CAAC;AACD;AACA,SAAS,cAAc,GAAG;AAC1B,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,CAAC,SAAS,EAAE;AACxD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA,IAAI,MAAM,eAAe,GAAG;AAC5B,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,sCAAsC,EAAE;AACxE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,sCAAsC,EAAE;AACtE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,4CAA4C,EAAE;AAC5E,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,wCAAwC,EAAE;AAC5E,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,yCAAyC,EAAE;AAC9E,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,mEAAmE,EAAE;AACvG,KAAK;AACL;AACA,IAAI,KAAK,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,eAAe,EAAE;AACpD,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AACvD,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,YAAY,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;AAC1E,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,IAAI;AACf;AACA,MAAM,aAAa,GAAG,CAAC,IAAI,KAAK;AAChC;AACA;AACA;AACA;AACA,IAAI,IAAI,IAAI,KAAK,KAAK;AACtB,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK;AAC3C,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI,IAAI,KAAK,KAAK;AACtB,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO;AAC9C,QAAQ,OAAO,OAAO;AACtB,IAAI,IAAI,IAAI;AACZ,QAAQ,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9B,IAAI,OAAO,SAAS;AACpB,CAAC;AACD,MAAM,iBAAiB,GAAG,CAAC,QAAQ,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE;AACrC;AACA;AACA;AACA;AACA,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChC,QAAQ,OAAO,KAAK;AACpB,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,QAAQ,OAAO,SAAS;AACxB,IAAI,IAAI,QAAQ,KAAK,QAAQ;AAC7B,QAAQ,OAAO,OAAO;AACtB,IAAI,IAAI,QAAQ,KAAK,OAAO;AAC5B,QAAQ,OAAO,SAAS;AACxB,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,QAAQ,OAAO,SAAS;AACxB,IAAI,IAAI,QAAQ,KAAK,SAAS;AAC9B,QAAQ,OAAO,SAAS;AACxB,IAAI,IAAI,QAAQ,KAAK,OAAO;AAC5B,QAAQ,OAAO,OAAO;AACtB,IAAI,IAAI,QAAQ;AAChB,QAAQ,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAClC,IAAI,OAAO,SAAS;AACpB,CAAC;AACD,IAAI,gBAAgB;AACb,MAAM,kBAAkB,GAAG,MAAM;AACxC,IAAI,QAAQ,gBAAgB,KAAK,gBAAgB,GAAG,qBAAqB,EAAE,CAAC;AAC5E,CAAC;;AC3JD;AACO,SAAS,eAAe,GAAG;AAClC,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AACtC,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,MAAM,IAAI,KAAK,CAAC,mJAAmJ,CAAC;AACxK;AACO,SAAS,kBAAkB,CAAC,GAAG,IAAI,EAAE;AAC5C,IAAI,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc;AACpD,IAAI,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;AAC/C;AACA;AACA,QAAQ,MAAM,IAAI,KAAK,CAAC,yHAAyH,CAAC;AAClJ,IAAI;AACJ,IAAI,OAAO,IAAI,cAAc,CAAC,GAAG,IAAI,CAAC;AACtC;AACO,SAAS,kBAAkB,CAAC,QAAQ,EAAE;AAC7C,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,aAAa,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AAChH,IAAI,OAAO,kBAAkB,CAAC;AAC9B,QAAQ,KAAK,GAAG,EAAE,CAAC;AACnB,QAAQ,MAAM,IAAI,CAAC,UAAU,EAAE;AAC/B,YAAY,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;AACrD,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,UAAU,CAAC,KAAK,EAAE;AAClC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;AACzC,YAAY;AACZ,QAAQ,CAAC;AACT,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,MAAM,IAAI,CAAC,MAAM,IAAI;AACjC,QAAQ,CAAC;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,6BAA6B,CAAC,MAAM,EAAE;AACtD,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;AACpC,QAAQ,OAAO,MAAM;AACrB,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE;AACrC,IAAI,OAAO;AACX,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,IAAI;AAChB,gBAAgB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE;AAClD,gBAAgB,IAAI,MAAM,EAAE,IAAI;AAChC,oBAAoB,MAAM,CAAC,WAAW,EAAE,CAAC;AACzC,gBAAgB,OAAO,MAAM;AAC7B,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,MAAM,CAAC,WAAW,EAAE,CAAC;AACrC,gBAAgB,MAAM,CAAC;AACvB,YAAY;AACZ,QAAQ,CAAC;AACT,QAAQ,MAAM,MAAM,GAAG;AACvB,YAAY,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE;AACjD,YAAY,MAAM,CAAC,WAAW,EAAE;AAChC,YAAY,MAAM,aAAa;AAC/B,YAAY,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;AACnD,QAAQ,CAAC;AACT,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG;AACjC,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACO,eAAe,oBAAoB,CAAC,MAAM,EAAE;AACnD,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;AACrD,QAAQ;AACR,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;AACtC,QAAQ,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,IAAI;AACvD,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE;AACrC,IAAI,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE;AACzC,IAAI,MAAM,CAAC,WAAW,EAAE;AACxB,IAAI,MAAM,aAAa;AACvB;;ACnFA;AACO,MAAM,eAAe,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK;AACtD,IAAI,OAAO;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,cAAc,EAAE,kBAAkB;AAC9C,SAAS;AACT,QAAQ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAClC,KAAK;AACL,CAAC;;ACRM,MAAM,cAAc,GAAG,SAAS;AAChC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;AAC1C,MAAM,UAAU,GAAG;AAC1B,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AAClD,IAAI,OAAO,EAAE,iBAAiB;AAC9B,CAAC;AACM,MAAM,OAAO,GAAG,SAAS;;ACJzB,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACrH,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClB,MAAM,SAAS,mBAAmB,CAAC,MAAM;AACzC,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;AAClC,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9E,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB,CAAC,GAAG;AAsGJ,MAAM,KAAK,GAAG,IAAI;AACX,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK;AACxE;AACA;AACA,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG,GAAG;AACpB,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACjC,QAAQ,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;AACpD,IAAI;AACJ,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACtC,QAAQ,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;AAC5B,IAAI;AACJ,IAAI,IAAI,OAAO,KAAK,YAAY,EAAE;AAClC,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE;AACvE,YAAY,OAAO,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;AAC/D,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,GAAG,GAAG,EAAE;AAChB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE;AACnD,QAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM;AACpF,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AACjD,YAAY,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AACzC,YAAY,IAAI,CAAC,KAAK,IAAI;AAC1B,gBAAgB,CAAC,KAAK,IAAI;AAC1B,gBAAgB,CAAC,KAAK,IAAI;AAC1B,gBAAgB,CAAC,KAAK,IAAI;AAC1B,iBAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACxC,iBAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACxC,iBAAiB,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AACxC,iBAAiB,MAAM,KAAK,OAAO,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;AAClE,cAAc;AACd,gBAAgB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,GAAG,IAAI,EAAE;AAC1B,gBAAgB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AAC9C,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,GAAG,KAAK,EAAE;AAC3B,gBAAgB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3F,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE;AAC3C,gBAAgB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AAC/B,oBAAoB,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACpH,gBAAgB;AAChB,YAAY;AACZ,YAAY,CAAC,IAAI,CAAC;AAClB,YAAY,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AACjF,YAAY,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3B,gBAAgB,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3C,oBAAoB,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;AACxD,oBAAoB,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;AACvD,oBAAoB,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAChD,QAAQ;AACR,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3B,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,CAAC;AAwBM,SAAS,SAAS,CAAC,GAAG,EAAE;AAC/B,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzC,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC3F;AAIO,SAAS,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE;AACnC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,QAAQ,MAAM,MAAM,GAAG,EAAE;AACzB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAChD,YAAY,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,QAAQ;AACR,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC;AAClB;;ACpNA,MAAM,uBAAuB,GAAG;AAChC,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;AACpC,IAAI,CAAC;AACL,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAC/C,IAAI,CAAC;AACL,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC;AAC7B,IAAI,CAAC;AACL,CAAC;AACD,MAAM,aAAa,GAAG,UAAU,GAAG,EAAE,cAAc,EAAE;AACrD,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,CAAC,cAAc,CAAC,CAAC;AAChG,CAAC;AACD,IAAI,WAAW;AACf,MAAM,QAAQ,GAAG;AACjB,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,gBAAgB,EAAE,KAAK;AAC3B,IAAI,WAAW,EAAE,SAAS;AAC1B,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,eAAe,EAAE,KAAK;AAC1B,IAAI,SAAS,EAAE,GAAG;AAClB,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,eAAe,EAAE,KAAK;AAC1B,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,gBAAgB,EAAE,KAAK;AAC3B,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,SAAS,EAAE,iBAAiB;AAChC;AACA,IAAI,OAAO,EAAE,KAAK;AAClB,IAAI,aAAa,CAAC,IAAI,EAAE;AACxB,QAAQ,OAAO,CAAC,WAAW,KAAK,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC;AAC9G,IAAI,CAAC;AACL,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,kBAAkB,EAAE,KAAK;AAC7B,CAAC;AACD,SAAS,wBAAwB,CAAC,CAAC,EAAE;AACrC,IAAI,QAAQ,OAAO,CAAC,KAAK,QAAQ;AACjC,QAAQ,OAAO,CAAC,KAAK,QAAQ;AAC7B,QAAQ,OAAO,CAAC,KAAK,SAAS;AAC9B,QAAQ,OAAO,CAAC,KAAK,QAAQ;AAC7B,QAAQ,OAAO,CAAC,KAAK,QAAQ;AAC7B;AACA,MAAM,QAAQ,GAAG,EAAE;AACnB,SAAS,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAE;AAC5P,IAAI,IAAI,GAAG,GAAG,MAAM;AACpB,IAAI,IAAI,MAAM,GAAG,WAAW;AAC5B,IAAI,IAAI,IAAI,GAAG,CAAC;AAChB,IAAI,IAAI,SAAS,GAAG,KAAK;AACzB,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,SAAS,EAAE;AAC7E;AACA,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AACtC,QAAQ,IAAI,IAAI,CAAC;AACjB,QAAQ,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;AACxC,YAAY,IAAI,GAAG,KAAK,IAAI,EAAE;AAC9B,gBAAgB,MAAM,IAAI,UAAU,CAAC,qBAAqB,CAAC;AAC3D,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,SAAS,GAAG,IAAI,CAAC;AACjC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE;AACzD,YAAY,IAAI,GAAG,CAAC;AACpB,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AACtC,QAAQ,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;AACjC,IAAI;AACJ,SAAS,IAAI,GAAG,YAAY,IAAI,EAAE;AAClC,QAAQ,GAAG,GAAG,aAAa,GAAG,GAAG,CAAC;AAClC,IAAI;AACJ,SAAS,IAAI,mBAAmB,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AAC9D,QAAQ,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,UAAU,KAAK,EAAE;AAC9C,YAAY,IAAI,KAAK,YAAY,IAAI,EAAE;AACvC,gBAAgB,OAAO,aAAa,GAAG,KAAK,CAAC;AAC7C,YAAY;AACZ,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE;AACtB,QAAQ,IAAI,kBAAkB,EAAE;AAChC,YAAY,OAAO,OAAO,IAAI,CAAC,gBAAgB;AAC/C;AACA,gBAAgB,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;AACxE,kBAAkB,MAAM;AACxB,QAAQ;AACR,QAAQ,GAAG,GAAG,EAAE;AAChB,IAAI;AACJ,IAAI,IAAI,wBAAwB,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;AACzD,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,MAAM,SAAS,GAAG,gBAAgB,GAAG;AACjD;AACA,kBAAkB,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC;AAC3E,YAAY,OAAO;AACnB,gBAAgB,SAAS,GAAG,SAAS,CAAC;AACtC,oBAAoB,GAAG;AACvB;AACA,oBAAoB,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACzF,aAAa;AACb,QAAQ;AACR,QAAQ,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;AACpC,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,IAAI,QAAQ;AAChB,IAAI,IAAI,mBAAmB,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AACzD;AACA,QAAQ,IAAI,gBAAgB,IAAI,OAAO,EAAE;AACzC;AACA,YAAY,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;AACzC,QAAQ;AACR,QAAQ,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;AACvF,IAAI;AACJ,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAC9B,QAAQ,QAAQ,GAAG,MAAM;AACzB,IAAI;AACJ,SAAS;AACT,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,QAAQ,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AAChD,IAAI;AACJ,IAAI,MAAM,cAAc,GAAG,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AAClG,IAAI,MAAM,eAAe,GAAG,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,cAAc,GAAG,IAAI,GAAG,cAAc;AACvH,IAAI,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9D,QAAQ,OAAO,eAAe,GAAG,IAAI;AACrC,IAAI;AACJ,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC/B,QAAQ,MAAM,KAAK;AACnB;AACA,QAAQ,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,WAAW,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;AAC1F,QAAQ,IAAI,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AACzC,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,MAAM,WAAW,GAAG,SAAS,IAAI,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG;AAC1F,QAAQ,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;AACvC,YAAY,OAAO,mBAAmB,KAAK,UAAU;AACrD,gBAAgB,mBAAmB,CAAC,eAAe,EAAE,WAAW;AAChE,kBAAkB;AAClB,cAAc,eAAe,IAAI,SAAS,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,CAAC;AACzF,QAAQ,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AACrC,QAAQ,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAE;AAC9C,QAAQ,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC;AACnD,QAAQ,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe;AACtK;AACA,QAAQ,mBAAmB,KAAK,OAAO,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;AACtM,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,2BAA2B,CAAC,IAAI,GAAG,QAAQ,EAAE;AACtD,IAAI,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,EAAE;AACpG,QAAQ,MAAM,IAAI,SAAS,CAAC,wEAAwE,CAAC;AACrG,IAAI;AACJ,IAAI,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;AAClG,QAAQ,MAAM,IAAI,SAAS,CAAC,uEAAuE,CAAC;AACpG,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;AAC5G,QAAQ,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC;AAC5D,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;AACpD,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,EAAE;AAC1G,QAAQ,MAAM,IAAI,SAAS,CAAC,mEAAmE,CAAC;AAChG,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG,cAAc;AAC/B,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;AAC5C,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;AAC3C,YAAY,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC;AAClE,QAAQ;AACR,QAAQ,MAAM,GAAG,IAAI,CAAC,MAAM;AAC5B,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC;AACxC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM;AAChC,IAAI,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACnE,QAAQ,MAAM,GAAG,IAAI,CAAC,MAAM;AAC5B,IAAI;AACJ,IAAI,IAAI,WAAW;AACnB,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,IAAI,uBAAuB,EAAE;AACzE,QAAQ,WAAW,GAAG,IAAI,CAAC,WAAW;AACtC,IAAI;AACJ,SAAS,IAAI,SAAS,IAAI,IAAI,EAAE;AAChC,QAAQ,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,QAAQ;AACzD,IAAI;AACJ,SAAS;AACT,QAAQ,WAAW,GAAG,QAAQ,CAAC,WAAW;AAC1C,IAAI;AACJ,IAAI,IAAI,gBAAgB,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,SAAS,EAAE;AAC9E,QAAQ,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC;AAC5E,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,WAAW;AAC3D,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,KAAK,IAAI;AACvC,YAAY;AACZ,cAAc,QAAQ,CAAC;AACvB,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS;AAC1B,IAAI,OAAO;AACX,QAAQ,cAAc,EAAE,OAAO,IAAI,CAAC,cAAc,KAAK,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc;AAChH;AACA,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,gBAAgB,EAAE,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB;AAC1H,QAAQ,WAAW,EAAE,WAAW;AAChC,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,eAAe,EAAE,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe;AACpH,QAAQ,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc;AAC7C,QAAQ,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,WAAW,GAAG,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AAC9F,QAAQ,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AAChF,QAAQ,eAAe,EAAE,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe;AACpH,QAAQ,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO;AACrF,QAAQ,gBAAgB,EAAE,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS,GAAG,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB;AACxH,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,MAAM,EAAE,MAAM;AACtB,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,aAAa,EAAE,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa;AAC7G,QAAQ,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS;AAC5F;AACA,QAAQ,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI;AAChE,QAAQ,kBAAkB,EAAE,OAAO,IAAI,CAAC,kBAAkB,KAAK,SAAS,GAAG,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB;AAChI,KAAK;AACL;AACO,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE;AAC7C,IAAI,IAAI,GAAG,GAAG,MAAM;AACpB,IAAI,MAAM,OAAO,GAAG,2BAA2B,CAAC,IAAI,CAAC;AACrD,IAAI,IAAI,QAAQ;AAChB,IAAI,IAAI,MAAM;AACd,IAAI,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;AAC9C,QAAQ,MAAM,GAAG,OAAO,CAAC,MAAM;AAC/B,QAAQ,GAAG,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;AAC7B,IAAI;AACJ,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACtC,QAAQ,MAAM,GAAG,OAAO,CAAC,MAAM;AAC/B,QAAQ,QAAQ,GAAG,MAAM;AACzB,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG,EAAE;AACnB,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AACjD,QAAQ,OAAO,EAAE;AACjB,IAAI;AACJ,IAAI,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,OAAO,CAAC,WAAW,CAAC;AAC5E,IAAI,MAAM,cAAc,GAAG,mBAAmB,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc;AACpF,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,IAAI;AACJ,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;AACtB,QAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACnC,IAAI;AACJ,IAAI,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE;AACrC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC9C,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC/B,QAAQ,IAAI,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;AACpD,YAAY;AACZ,QAAQ;AACR,QAAQ,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG;AACzD;AACA,QAAQ,mBAAmB,EAAE,cAAc,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAC3V,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC/C,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,cAAc,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE;AAC3D,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE;AACjC,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,YAAY,EAAE;AAC9C;AACA,YAAY,MAAM,IAAI,sBAAsB;AAC5C,QAAQ;AACR,aAAa;AACb;AACA,YAAY,MAAM,IAAI,iBAAiB;AACvC,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,EAAE;AACnD;;AChRO,SAAS,WAAW,CAAC,OAAO,EAAE;AACrC,IAAI,IAAI,MAAM,GAAG,CAAC;AAClB,IAAI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAClC,QAAQ,MAAM,IAAI,MAAM,CAAC,MAAM;AAC/B,IAAI;AACJ,IAAI,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AACzC,IAAI,IAAI,KAAK,GAAG,CAAC;AACjB,IAAI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAClC,QAAQ,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;AACjC,QAAQ,KAAK,IAAI,MAAM,CAAC,MAAM;AAC9B,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB;AACA,IAAI,WAAW;AACR,SAAS,UAAU,CAAC,GAAG,EAAE;AAChC,IAAI,IAAI,OAAO;AACf,IAAI,OAAO,CAAC,WAAW;AACvB,SAAS,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACtG;AACA,IAAI,WAAW;AACR,SAAS,UAAU,CAAC,KAAK,EAAE;AAClC,IAAI,IAAI,OAAO;AACf,IAAI,OAAO,CAAC,WAAW;AACvB,SAAS,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACxG;;ACxBA,IAAI,mBAAmB,EAAE,gCAAgC;AAGzD;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,GAAG;AAClB,QAAQ,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7C,QAAQ,gCAAgC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1D,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,UAAU,EAAO,CAAC;AAChF,QAAQ,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,IAAS,CAAC;AACjF,IAAI;AACJ,IAAI,MAAM,CAAC,KAAK,EAAE;AAClB,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE;AAC3B,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG,KAAK,YAAY,WAAW,GAAG,IAAI,UAAU,CAAC,KAAK;AAC/E,cAAc,OAAO,KAAK,KAAK,QAAQ,GAAG,UAAU,CAAC,KAAK;AAC1D,kBAAkB,KAAK;AACvB,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,CAAM,CAAC;AAClJ,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,YAAY;AACxB,QAAQ,OAAO,CAAC,YAAY,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;AACvL,YAAY,IAAI,YAAY,CAAC,QAAQ,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;AACtH;AACA,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,YAAY,CAAC,KAAU,CAAC;AACvG,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,IAAI,IAAI;AAC3F,iBAAiB,YAAY,CAAC,KAAK,KAAK,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE;AAC3I,gBAAgB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnL,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAM,CAAC;AAC5M,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,IAAS,CAAC;AACzF,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,YAAY,CAAC,SAAS,GAAG,CAAC,GAAG,YAAY,CAAC,SAAS;AAC/J,YAAY,MAAM,IAAI,GAAG,UAAU,CAAC,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjH,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,YAAY,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAM,CAAC;AACvJ,YAAY,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,IAAS,CAAC;AACrF,QAAQ;AACR,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE;AAC5E,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,IAAI;AACJ;AACA,mBAAmB,GAAG,IAAI,OAAO,EAAE,EAAE,gCAAgC,GAAG,IAAI,OAAO,EAAE;AACrF;AACA,WAAW,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,WAAW,CAAC,cAAc,GAAG,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE;AAC9C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC;AACzB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1D,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;AACnC,YAAY,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;AAClE,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACpC,YAAY,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;AACjE,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,IAAI;AACf;AACO,SAAS,sBAAsB,CAAC,MAAM,EAAE;AAC/C;AACA;AACA;AACA,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC;AACzB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE;AAChE;AACA,YAAY,OAAO,CAAC,GAAG,CAAC;AACxB,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;AAClE;AACA,YAAY,OAAO,CAAC,GAAG,CAAC;AACxB,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ;AAClC,YAAY,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO;AACrC,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM;AACjC,YAAY,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ;AACtC,YAAY,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE;AACvC;AACA,YAAY,OAAO,CAAC,GAAG,CAAC;AACxB,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,EAAE;AACb;;AC1GA;AAEA,MAAM,YAAY,GAAG;AACrB,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,KAAK,EAAE,GAAG;AACd,IAAI,IAAI,EAAE,GAAG;AACb,IAAI,IAAI,EAAE,GAAG;AACb,IAAI,KAAK,EAAE,GAAG;AACd,CAAC;AACM,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,KAAK;AACjE,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE;AAC1C,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAClJ,IAAI,OAAO,SAAS;AACpB,CAAC;AACD,SAAS,IAAI,GAAG,EAAE;AAClB,SAAS,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC9C,IAAI,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE;AACnE,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,SAAS;AACT;AACA,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C,IAAI;AACJ;AACA,MAAM,UAAU,GAAG;AACnB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,KAAK,EAAE,IAAI;AACf,CAAC;AACD,IAAI,aAAa,mBAAmB,IAAI,OAAO,EAAE;AAC1C,SAAS,SAAS,CAAC,MAAM,EAAE;AAClC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;AAChC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK;AAC7C,IAAI,IAAI,CAAC,MAAM,EAAE;AACjB,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;AAClD,IAAI,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACtD,QAAQ,OAAO,YAAY,CAAC,CAAC,CAAC;AAC9B,IAAI;AACJ,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;AACnD,QAAQ,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;AACjD,QAAQ,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;AACjD,QAAQ,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;AACnD,KAAK;AACL,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACtD,IAAI,OAAO,WAAW;AACtB;AACO,MAAM,oBAAoB,GAAG,CAAC,OAAO,KAAK;AACjD,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;AAChD,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;AACzB,QAAQ,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,YAAY,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK;AAClK,YAAY,IAAI;AAChB,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,eAAe;AACnD,gBAAgB,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ;AAC/C,gBAAgB,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY;AACnD,gBAAgB;AAChB,kBAAkB,KAAK;AACvB,SAAS,CAAC,CAAC;AACX,IAAI;AACJ,IAAI,IAAI,qBAAqB,IAAI,OAAO,EAAE;AAC1C,QAAQ,IAAI,OAAO,CAAC,mBAAmB,EAAE;AACzC,YAAY,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,mBAAmB;AACzD,QAAQ;AACR,QAAQ,OAAO,OAAO,CAAC,mBAAmB;AAC1C,IAAI;AACJ,IAAI,OAAO,OAAO;AAClB,CAAC;;AC7ED,IAAI,cAAc;AAUX,MAAM,MAAM,CAAC;AACpB,IAAI,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;AAC9C,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAW,CAAC;AACjE,IAAI;AACJ,IAAI,OAAO,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;AACzD,QAAQ,IAAI,QAAQ,GAAG,KAAK;AAC5B,QAAQ,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO;AAC3D,QAAQ,gBAAgB,QAAQ,GAAG;AACnC,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,MAAM,IAAI,WAAW,CAAC,0EAA0E,CAAC;AACjH,YAAY;AACZ,YAAY,QAAQ,GAAG,IAAI;AAC3B,YAAY,IAAI,IAAI,GAAG,KAAK;AAC5B,YAAY,IAAI;AAChB,gBAAgB,WAAW,MAAM,GAAG,IAAI,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE;AAChF,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB;AACxB,oBAAoB,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACvD,wBAAwB,IAAI,GAAG,IAAI;AACnC,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAChF,wBAAwB,IAAI,IAAI;AAChC,wBAAwB,IAAI;AAC5B,4BAA4B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACvD,wBAAwB;AACxB,wBAAwB,OAAO,CAAC,EAAE;AAClC,4BAA4B,MAAM,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;AACxF,4BAA4B,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAChE,4BAA4B,MAAM,CAAC;AACnC,wBAAwB;AACxB,wBAAwB,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AAChD,4BAA4B,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC;AAClG,wBAAwB;AACxB,wBAAwB,MAAM,IAAI;AAClC,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,IAAI,IAAI;AAChC,wBAAwB,IAAI;AAC5B,4BAA4B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACvD,wBAAwB;AACxB,wBAAwB,OAAO,CAAC,EAAE;AAClC,4BAA4B,OAAO,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;AACzF,4BAA4B,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AACjE,4BAA4B,MAAM,CAAC;AACnC,wBAAwB;AACxB;AACA,wBAAwB,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,EAAE;AAClD,4BAA4B,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;AAC9F,wBAAwB;AACxB,wBAAwB,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9D,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,GAAG,IAAI;AAC3B,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB;AACA,gBAAgB,IAAI,YAAY,CAAC,CAAC,CAAC;AACnC,oBAAoB;AACpB,gBAAgB,MAAM,CAAC;AACvB,YAAY;AACZ,oBAAoB;AACpB;AACA,gBAAgB,IAAI,CAAC,IAAI;AACzB,oBAAoB,UAAU,CAAC,KAAK,EAAE;AACtC,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;AACvD,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,OAAO,kBAAkB,CAAC,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE;AAClE,QAAQ,IAAI,QAAQ,GAAG,KAAK;AAC5B,QAAQ,gBAAgB,SAAS,GAAG;AACpC,YAAY,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE;AACjD,YAAY,MAAM,IAAI,GAAG,6BAA6B,CAAC,cAAc,CAAC;AACtE,YAAY,WAAW,MAAM,KAAK,IAAI,IAAI,EAAE;AAC5C,gBAAgB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC9D,oBAAoB,MAAM,IAAI;AAC9B,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE;AACpD,gBAAgB,MAAM,IAAI;AAC1B,YAAY;AACZ,QAAQ;AACR,QAAQ,gBAAgB,QAAQ,GAAG;AACnC,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,MAAM,IAAI,WAAW,CAAC,0EAA0E,CAAC;AACjH,YAAY;AACZ,YAAY,QAAQ,GAAG,IAAI;AAC3B,YAAY,IAAI,IAAI,GAAG,KAAK;AAC5B,YAAY,IAAI;AAChB,gBAAgB,WAAW,MAAM,IAAI,IAAI,SAAS,EAAE,EAAE;AACtD,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB;AACxB,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9C,gBAAgB;AAChB,gBAAgB,IAAI,GAAG,IAAI;AAC3B,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB;AACA,gBAAgB,IAAI,YAAY,CAAC,CAAC,CAAC;AACnC,oBAAoB;AACpB,gBAAgB,MAAM,CAAC;AACvB,YAAY;AACZ,oBAAoB;AACpB;AACA,gBAAgB,IAAI,CAAC,IAAI;AACzB,oBAAoB,UAAU,CAAC,KAAK,EAAE;AACtC,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;AACvD,IAAI;AACJ,IAAI,EAAE,cAAc,GAAG,IAAI,OAAO,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG;AAC/D,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE;AAC9B,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,GAAG,GAAG;AACV,QAAQ,MAAM,IAAI,GAAG,EAAE;AACvB,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAQ,MAAM,WAAW,GAAG,CAAC,KAAK,KAAK;AACvC,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,MAAM;AAC5B,oBAAoB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,wBAAwB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE;AACtD,wBAAwB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACzC,wBAAwB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1C,oBAAoB;AACpB,oBAAoB,OAAO,KAAK,CAAC,KAAK,EAAE;AACxC,gBAAgB,CAAC;AACjB,aAAa;AACb,QAAQ,CAAC;AACT,QAAQ,OAAO;AACf,YAAY,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;AACnH,YAAY,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;AACpH,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,IAAI,GAAG,IAAI;AACzB,QAAQ,IAAI,IAAI;AAChB,QAAQ,OAAO,kBAAkB,CAAC;AAClC,YAAY,MAAM,KAAK,GAAG;AAC1B,gBAAgB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;AACnD,YAAY,CAAC;AACb,YAAY,MAAM,IAAI,CAAC,IAAI,EAAE;AAC7B,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE;AAC7D,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB,OAAO,IAAI,CAAC,KAAK,EAAE;AAC3C,oBAAoB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC1E,oBAAoB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACvC,gBAAgB;AAChB,gBAAgB,OAAO,GAAG,EAAE;AAC5B,oBAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACnC,gBAAgB;AAChB,YAAY,CAAC;AACb,YAAY,MAAM,MAAM,GAAG;AAC3B,gBAAgB,MAAM,IAAI,CAAC,MAAM,IAAI;AACrC,YAAY,CAAC;AACb,SAAS,CAAC;AACV,IAAI;AACJ;AACO,gBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACxB,QAAQ,UAAU,CAAC,KAAK,EAAE;AAC1B,QAAQ,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW;AACvD,YAAY,UAAU,CAAC,SAAS,CAAC,OAAO,KAAK,aAAa,EAAE;AAC5D,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,8JAA8J,CAAC,CAAC;AACnM,QAAQ;AACR,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,iDAAiD,CAAC,CAAC;AAClF,IAAI;AACJ,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE;AACvC,IAAI,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE;AACzC,IAAI,MAAM,IAAI,GAAG,6BAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC7D,IAAI,WAAW,MAAM,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE;AACtD,QAAQ,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AACzD,YAAY,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/C,YAAY,IAAI,GAAG;AACnB,gBAAgB,MAAM,GAAG;AACzB,QAAQ;AACR,IAAI;AACJ,IAAI,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE;AAC5C,QAAQ,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;AAC3C,QAAQ,IAAI,GAAG;AACf,YAAY,MAAM,GAAG;AACrB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa,CAAC,QAAQ,EAAE;AACxC,IAAI,IAAI,IAAI,GAAG,IAAI,UAAU,EAAE;AAC/B,IAAI,WAAW,MAAM,KAAK,IAAI,QAAQ,EAAE;AACxC,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE;AAC3B,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG,KAAK,YAAY,WAAW,GAAG,IAAI,UAAU,CAAC,KAAK;AAC/E,cAAc,OAAO,KAAK,KAAK,QAAQ,GAAG,UAAU,CAAC,KAAK;AAC1D,kBAAkB,KAAK;AACvB,QAAQ,IAAI,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;AACtE,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAQ,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;AAC7C,QAAQ,IAAI,GAAG,OAAO;AACtB,QAAQ,IAAI,YAAY;AACxB,QAAQ,OAAO,CAAC,YAAY,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AACrE,YAAY,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;AAC7C,YAAY,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC3C,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,QAAQ,MAAM,IAAI;AAClB,IAAI;AACJ;AACA,MAAM,UAAU,CAAC;AACjB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;AACzB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACjC,YAAY,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACrD,QAAQ;AACR,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;AAChD,gBAAgB,OAAO,IAAI;AAC3B,YAAY,MAAM,GAAG,GAAG;AACxB,gBAAgB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjC,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1C,gBAAgB,GAAG,EAAE,IAAI,CAAC,MAAM;AAChC,aAAa;AACb,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI;AAC7B,YAAY,IAAI,CAAC,IAAI,GAAG,EAAE;AAC1B,YAAY,IAAI,CAAC,MAAM,GAAG,EAAE;AAC5B,YAAY,OAAO,GAAG;AACtB,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAClC,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;AACxD,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACnC,YAAY,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACtC,QAAQ;AACR,QAAQ,IAAI,SAAS,KAAK,OAAO,EAAE;AACnC,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK;AAC9B,QAAQ;AACR,aAAa,IAAI,SAAS,KAAK,MAAM,EAAE;AACvC,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACjC,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE;AACnC,IAAI,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;AACxC,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACtB,QAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAC5F,IAAI;AACJ,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;AACxB;;AC9RA;AAGO,eAAe,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC1D,IAAI,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,KAAK;AAC5E,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY;AACpC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;AAClC,YAAY,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC/G;AACA;AACA,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE;AAC7C,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC;AACtG,YAAY;AACZ,YAAY,OAAO,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC;AAC7E,QAAQ;AACR;AACA,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AACrC,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE;AAC5C,YAAY,OAAO,QAAQ;AAC3B,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAChE,QAAQ,MAAM,SAAS,GAAG,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;AAC5D,QAAQ,MAAM,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC,IAAI,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC;AAC9F,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAC9C,YAAY,OAAO,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/C,QAAQ;AACR,QAAQ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAC1C,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC,GAAG;AACR,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;AACtF,QAAQ,mBAAmB;AAC3B,QAAQ,GAAG,EAAE,QAAQ,CAAC,GAAG;AACzB,QAAQ,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC/B,QAAQ,IAAI;AACZ,QAAQ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AAC1C,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,IAAI;AACf;AACO,SAAS,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC9C,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrE,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE;AACvD,QAAQ,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACnD,QAAQ,UAAU,EAAE,KAAK;AACzB,KAAK,CAAC;AACN;;ACjDA;AACA,IAAI,kBAAkB;AAGtB;AACA;AACA;AACA;AACO,MAAM,UAAU,SAAS,OAAO,CAAC;AACxC,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,GAAG,oBAAoB,EAAE;AAC/E,QAAQ,KAAK,CAAC,CAAC,OAAO,KAAK;AAC3B;AACA;AACA;AACA,YAAY,OAAO,CAAC,IAAI,CAAC;AACzB,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,QAAQ,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC5C,QAAQ,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAW,CAAC;AACrE,IAAI;AACJ,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B,QAAQ,OAAO,IAAI,UAAU,CAAC,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC5N,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AAC3D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACrF,QAAQ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;AACnF,IAAI;AACJ,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACjC,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AACrJ,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,aAAa;AACjC,IAAI;AACJ,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;AACzD,IAAI;AACJ,IAAI,KAAK,CAAC,UAAU,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;AAC7C,IAAI;AACJ,IAAI,OAAO,CAAC,SAAS,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;AAC9C,IAAI;AACJ;AACA,kBAAkB,GAAG,IAAI,OAAO,EAAE;;ACtElC;AACA,IAAI,oBAAoB;AAMjB,MAAM,YAAY,CAAC;AAC1B,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACjD,QAAQ,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC9C,QAAQ,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAW,CAAC;AACvE,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC9C,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;AACzB,YAAY,OAAO,KAAK;AACxB,QAAQ,OAAO,IAAI,CAAC,sBAAsB,EAAE,IAAI,IAAI;AACpD,IAAI;AACJ,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,EAAE;AACzD,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,MAAM,IAAI,WAAW,CAAC,uFAAuF,CAAC;AAC1H,QAAQ;AACR,QAAQ,OAAO,MAAM,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;AAC1H,IAAI;AACJ,IAAI,OAAO,SAAS,GAAG;AACvB,QAAQ,IAAI,IAAI,GAAG,IAAI;AACvB,QAAQ,MAAM,IAAI;AAClB,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE;AACnC,YAAY,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;AAC3C,YAAY,MAAM,IAAI;AACtB,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,oBAAoB,GAAG,IAAI,OAAO,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG;AAC5E,QAAQ,WAAW,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACnD,YAAY,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AACzD,gBAAgB,MAAM,IAAI;AAC1B,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,WAAW,SAAS,UAAU,CAAC;AAC5C,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACvC,QAAQ,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACnJ,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,MAAM,CAAC,aAAa,CAAC,GAAG;AACpC,QAAQ,MAAM,IAAI,GAAG,MAAM,IAAI;AAC/B,QAAQ,WAAW,MAAM,IAAI,IAAI,IAAI,EAAE;AACvC,YAAY,MAAM,IAAI;AACtB,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACO,MAAM,IAAI,SAAS,YAAY,CAAC;AACvC,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACjD,QAAQ,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;AAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE;AACnC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACjC,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE;AAC9B,IAAI;AACJ,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACO,MAAM,UAAU,SAAS,YAAY,CAAC;AAC7C,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACjD,QAAQ,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;AAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE;AACnC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AAC9C,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE;AAC9B,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACrC,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,OAAO,KAAK,CAAC,WAAW,EAAE;AAClC,IAAI;AACJ,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC7C,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE;AAC5C,QAAQ,IAAI,CAAC,EAAE,EAAE;AACjB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO;AACf,YAAY,GAAG,IAAI,CAAC,OAAO;AAC3B,YAAY,KAAK,EAAE;AACnB,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/C,gBAAgB,KAAK,EAAE,EAAE;AACzB,aAAa;AACb,SAAS;AACT,IAAI;AACJ;AACO,MAAM,sBAAsB,SAAS,YAAY,CAAC;AACzD,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACjD,QAAQ,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;AAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE;AACnC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK;AAC9C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE;AACzC,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE;AAC9B,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;AACrC,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,OAAO,KAAK,CAAC,WAAW,EAAE;AAClC,IAAI;AACJ,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;AACnC,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO;AACf,YAAY,GAAG,IAAI,CAAC,OAAO;AAC3B,YAAY,KAAK,EAAE;AACnB,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/C,gBAAgB,KAAK,EAAE,MAAM;AAC7B,aAAa;AACb,SAAS;AACT,IAAI;AACJ;;ACjJO,MAAM,gBAAgB,GAAG,MAAM;AACtC,IAAI,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;AACrC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU;AACtC,QAAQ,MAAM,SAAS,GAAG,OAAO,OAAO,EAAE,QAAQ,EAAE,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;AACxH,QAAQ,MAAM,IAAI,KAAK,CAAC,wEAAwE;AAChG,aAAa,SAAS;AACtB,gBAAgB;AAChB,kBAAkB,EAAE,CAAC,CAAC;AACtB,IAAI;AACJ,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE;AACtD,IAAI,gBAAgB,EAAE;AACtB,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,cAAc,EAAE,OAAO,CAAC;AAClE;AACO,SAAS,OAAO,CAAC,KAAK,EAAE;AAC/B,IAAI,QAAQ,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;AACvC,QAAQ,KAAK,KAAK,IAAI;AACtB,SAAS,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7D,aAAa,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,aAAa,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC7E,aAAa,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,QAAQ,EAAE;AACV,SAAS,KAAK,CAAC,OAAO;AACtB,SAAS,GAAG,EAAE,IAAI,SAAS;AAC3B;AACO,MAAM,eAAe,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU;AACzI;AACA;AACA;AACA;AACO,MAAM,gCAAgC,GAAG,OAAO,IAAI,EAAE,KAAK,KAAK;AACvE,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,QAAQ,OAAO,IAAI;AACnB,IAAI,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAChE,CAAC;AACM,MAAM,2BAA2B,GAAG,OAAO,IAAI,EAAE,KAAK,KAAK;AAClE,IAAI,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAChE,CAAC;AACD,MAAM,mBAAmB,mBAAmB,IAAI,OAAO,EAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,WAAW,EAAE;AACvC,IAAI,MAAM,KAAK,GAAG,OAAO,WAAW,KAAK,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,KAAK;AACrF,IAAI,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;AACjD,IAAI,IAAI,MAAM;AACd,QAAQ,OAAO,MAAM;AACrB,IAAI,MAAM,OAAO,GAAG,CAAC,YAAY;AACjC,QAAQ,IAAI;AACZ,YAAY,MAAM,aAAa,IAAI,UAAU,IAAI,KAAK;AACtD,gBAAgB,KAAK,CAAC;AACtB,kBAAkB,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;AACtD,YAAY,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE;AACvC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;AAC5E,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM;AACd;AACA,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI,CAAC,GAAG;AACR,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC;AAC3C,IAAI,OAAO,OAAO;AAClB;AACO,MAAM,UAAU,GAAG,OAAO,IAAI,EAAE,KAAK,KAAK;AACjD,IAAI,IAAI,EAAE,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1C,QAAQ,MAAM,IAAI,SAAS,CAAC,mGAAmG,CAAC;AAChI,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE;AAC/B,IAAI,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACvG,IAAI,OAAO,IAAI;AACf,CAAC;AACD;AACA;AACA,MAAM,WAAW,GAAG,CAAC,KAAK,KAAK,KAAK,YAAY,IAAI,IAAI,MAAM,IAAI,KAAK;AACvE,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ;AACzD,IAAI,KAAK,KAAK,IAAI;AAClB,KAAK,KAAK,YAAY,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AAC/E,MAAM,kBAAkB,GAAG,CAAC,KAAK,KAAK;AACtC,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAQ,OAAO,IAAI;AACnB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5B,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAC7C,IAAI,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC5C,QAAQ,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AAC/B,YAAY,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5C,gBAAgB,OAAO,IAAI;AAC3B,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB,CAAC;AACD,MAAM,YAAY,GAAG,OAAO,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK;AACjD,IAAI,IAAI,KAAK,KAAK,SAAS;AAC3B,QAAQ;AACR,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;AACvB,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,2DAA2D,CAAC,CAAC;AACnH,IAAI;AACJ;AACA,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AAC9F,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACvC,IAAI;AACJ,SAAS,IAAI,KAAK,YAAY,QAAQ,EAAE;AACxC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACxE,IAAI;AACJ,SAAS,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE;AACrC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1G,IAAI;AACJ,SAAS,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;AACjC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/C,IAAI;AACJ,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACnC,QAAQ,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACtF,IAAI;AACJ,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACxC,QAAQ,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnH,IAAI;AACJ,SAAS;AACT,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,qGAAqG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpJ,IAAI;AACJ,CAAC;;AC/HD;AACA;AACA;AACA,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI;AAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;AAC7B,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AAClC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AAClC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;AACpC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU;AACrC,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU;AAC3C;AACA;AACA;AACA,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI;AAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ;AAC7B,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AAClC,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ;AAC1C,IAAI,UAAU,CAAC,KAAK,CAAC;AACrB,MAAM,cAAc,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI;AAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;AAC7B,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;AACjC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAe,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;AACnD,IAAI,gBAAgB,EAAE;AACtB;AACA,IAAI,KAAK,GAAG,MAAM,KAAK;AACvB;AACA,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;AAC3B,QAAQ,IAAI,KAAK,YAAY,IAAI,EAAE;AACnC,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,OAAO,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;AAChE,IAAI;AACJ,IAAI,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;AAC/B,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE;AACvC,QAAQ,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;AACzE,QAAQ,OAAO,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;AAC5D,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;AACvC,IAAI,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;AACxB,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;AAClG,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACtC,YAAY,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE;AAC1C,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC;AACzC;AACA,eAAe,QAAQ,CAAC,KAAK,EAAE;AAC/B,IAAI,IAAI,KAAK,GAAG,EAAE;AAClB,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;AACjC,QAAQ,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;AACjC,QAAQ,KAAK,YAAY,WAAW,EAAE;AACtC,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACzB,IAAI;AACJ,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;AAChC,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,YAAY,IAAI,GAAG,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;AAC7E,IAAI;AACJ,SAAS,IAAI,eAAe,CAAC,KAAK,CAAC;AACnC,MAAM;AACN,QAAQ,WAAW,MAAM,KAAK,IAAI,KAAK,EAAE;AACzC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,QAAQ;AACR,IAAI;AACJ,SAAS;AACT,QAAQ,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,EAAE,IAAI;AACpD,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,sBAAsB,EAAE,OAAO,KAAK,CAAC,EAAE,WAAW,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5I,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;AACnD,QAAQ,OAAO,EAAE;AACjB,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC;AACnD,IAAI,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE;;ACtFA;AACO,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,IAAI;AACJ;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,CAAC,GAAG,EAAE;AACnC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,kCAAkC,EAAE,kBAAkB,CAAC;AAC9E;AACA,MAAM,KAAK,mBAAmB,MAAM,CAAC,MAAM,iBAAiB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzE,MAAM,qBAAqB,GAAG,CAAC,WAAW,GAAG,aAAa,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE;AACxG;AACA,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AAC5B,QAAQ,OAAO,OAAO,CAAC,CAAC,CAAC;AACzB,IAAI,IAAI,QAAQ,GAAG,KAAK;AACxB,IAAI,MAAM,eAAe,GAAG,EAAE;AAC9B,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,KAAK;AACxE,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACvC,YAAY,QAAQ,GAAG,IAAI;AAC3B,QAAQ;AACR,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACnC,QAAQ,IAAI,OAAO,GAAG,CAAC,QAAQ,GAAG,kBAAkB,GAAG,WAAW,EAAE,EAAE,GAAG,KAAK,CAAC;AAC/E,QAAQ,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM;AACnC,aAAa,KAAK,IAAI,IAAI;AAC1B,iBAAiB,OAAO,KAAK,KAAK,QAAQ;AAC1C;AACA,oBAAoB,KAAK,CAAC,QAAQ;AAClC,wBAAwB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK;AAC3G,8BAA8B,QAAQ,CAAC,CAAC,EAAE;AAC1C,YAAY,OAAO,GAAG,KAAK,GAAG,EAAE;AAChC,YAAY,eAAe,CAAC,IAAI,CAAC;AACjC,gBAAgB,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM;AACjE,gBAAgB,MAAM,EAAE,OAAO,CAAC,MAAM;AACtC,gBAAgB,KAAK,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC;AACzD,qBAAqB,IAAI,CAAC,KAAK;AAC/B,qBAAqB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,8BAA8B,CAAC;AACjE,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,OAAO,aAAa,GAAG,YAAY,IAAI,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC;AACtF,IAAI,CAAC,EAAE,EAAE,CAAC;AACV,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,IAAI,MAAM,qBAAqB,GAAG,oCAAoC;AACtE,IAAI,IAAI,KAAK;AACb;AACA,IAAI,OAAO,CAAC,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE;AACpE,QAAQ,eAAe,CAAC,IAAI,CAAC;AAC7B,YAAY,KAAK,EAAE,KAAK,CAAC,KAAK;AAC9B,YAAY,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;AACnC,YAAY,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC;AACpF,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AACrD,IAAI,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,QAAQ,IAAI,OAAO,GAAG,CAAC;AACvB,QAAQ,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK;AACnE,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;AAC9D,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;AACrD,YAAY,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM;AACpD,YAAY,OAAO,GAAG,GAAG,MAAM,GAAG,MAAM;AACxC,QAAQ,CAAC,EAAE,EAAE,CAAC;AACd,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,uDAAuD,EAAE;AACxF,aAAa,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK;AAC/B,aAAa,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;AACjD,IAAI;AACJ,IAAI,OAAO,IAAI;AACf,CAAC;AACD;AACA;AACA;AACO,MAAM,IAAI,mBAAmB,qBAAqB,CAAC,aAAa,CAAC;;ACxExE;iBAIO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC5C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9H,IAAI;AACJ;;ACrBO,SAAS,4BAA4B,CAAC,IAAI,EAAE;AACnD,IAAI,OAAO,IAAI,KAAK,SAAS,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;AAClF;AA6BO,SAAS,4BAA4B,CAAC,eAAe,EAAE;AAC9D,IAAI,OAAO,eAAe,GAAG,QAAQ,CAAC,KAAK,gCAAgC;AAC3E;AAmBO,SAASC,oBAAkB,CAAC,IAAI,EAAE;AACzC,IAAI,OAAO,IAAI,GAAG,QAAQ,CAAC,KAAK,qBAAqB;AACrD;AACO,SAAS,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE;AAC7D,IAAI,IAAI,CAAC,MAAM,IAAI,CAACC,uBAAqB,CAAC,MAAM,CAAC,EAAE;AACnD,QAAQ,OAAO;AACf,YAAY,GAAG,UAAU;AACzB,YAAY,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACxD,gBAAgB,iDAAiD,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;AAC5F,gBAAgB,OAAO;AACvB,oBAAoB,GAAG,MAAM;AAC7B,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,GAAG,MAAM,CAAC,OAAO;AACzC,wBAAwB,MAAM,EAAE,IAAI;AACpC,wBAAwB,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU;AACrD,4BAA4B;AAC5B,gCAAgC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;AACrE;AACA,8BAA8B,SAAS,CAAC;AACxC,qBAAqB;AACrB,iBAAiB;AACjB,YAAY,CAAC,CAAC;AACd,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC;AAClD;AACO,SAAS,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE;AACxD,IAAI,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AACvD,QAAQ,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE;AAC/C,YAAY,MAAM,IAAI,uBAAuB,EAAE;AAC/C,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,aAAa,KAAK,gBAAgB,EAAE;AACvD,YAAY,MAAM,IAAI,8BAA8B,EAAE;AACtD,QAAQ;AACR,QAAQ,iDAAiD,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;AACpF,QAAQ,OAAO;AACf,YAAY,GAAG,MAAM;AACrB,YAAY,OAAO,EAAE;AACrB,gBAAgB,GAAG,MAAM,CAAC,OAAO;AACjC,gBAAgB,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU;AAC7C,oBAAoB;AACpB,wBAAwB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,KAAKC,eAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,SAAS;AAC9H;AACA,sBAAsB,SAAS,CAAC;AAChC,gBAAgB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;AACzE,oBAAoB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;AACtE,sBAAsB,IAAI;AAC1B,aAAa;AACb,SAAS;AACT,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE;AACrC;AACA,SAAS,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE;AAC9C,IAAI,IAAI,MAAM,CAAC,eAAe,EAAE,IAAI,KAAK,aAAa,EAAE;AACxD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI,MAAM,CAAC,eAAe,EAAE,IAAI,KAAK,aAAa,EAAE;AACxD,QAAQ,IAAI,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE;AACnD,YAAY,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe;AAC1D,YAAY,OAAO,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC;AACrD,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAClC,IAAI;AACJ,IAAI,OAAO,IAAI;AACf;AACA,SAASA,eAAa,CAAC,MAAM,EAAE,QAAQ,EAAE;AACzC,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,KAAK,4BAA4B,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxJ,IAAI,OAAO;AACX,QAAQ,GAAG,QAAQ;AACnB,QAAQ,QAAQ,EAAE;AAClB,YAAY,GAAG,QAAQ,CAAC,QAAQ;AAChC,YAAY,gBAAgB,EAAEF,oBAAkB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS;AAC7G,kBAAkB,SAAS,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS;AACrF,sBAAsB,IAAI;AAC1B,SAAS;AACT,KAAK;AACL;AACO,SAAS,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE;AACtD,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAC1D,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,KAAK,4BAA4B,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;AACvJ,IAAI,QAAQ,4BAA4B,CAAC,SAAS,CAAC;AACnD,SAASA,oBAAkB,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC;AAC9E;AACO,SAASC,uBAAqB,CAAC,MAAM,EAAE;AAC9C,IAAI,IAAI,4BAA4B,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;AAC9D,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,QAAQ,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAKD,oBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK;AAC9H;AACO,SAAS,iDAAiD,CAAC,SAAS,EAAE;AAC7E,IAAI,KAAK,MAAM,QAAQ,IAAI,SAAS,IAAI,EAAE,EAAE;AAC5C,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE;AAC1C,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,iEAAiE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxH,QAAQ;AACR,IAAI;AACJ;AACO,SAAS,kBAAkB,CAAC,KAAK,EAAE;AAC1C,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE;AACpC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;AACtC,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,wEAAwE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3H,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE;AAC3C,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;AAC1J,QAAQ;AACR,IAAI;AACJ;;AChKO,MAAM,kBAAkB,GAAG,CAAC,OAAO,KAAK;AAC/C,IAAI,OAAO,OAAO,EAAE,IAAI,KAAK,WAAW;AACxC,CAAC;AACM,MAAM,aAAa,GAAG,CAAC,OAAO,KAAK;AAC1C,IAAI,OAAO,OAAO,EAAE,IAAI,KAAK,MAAM;AACnC,CAAC;;ACLD,IAAI,sBAAsB,EAAE,6BAA6B,EAAE,oCAAoC,EAAE,mCAAmC,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mCAAmC,EAAE,wBAAwB;AAG5W,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,GAAG;AAClB,QAAQ,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,EAAE;AAC/C,QAAQ,6BAA6B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACvD,QAAQ,oCAAoC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACjE,QAAQ,mCAAmC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAChE,QAAQ,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACjD,QAAQ,8BAA8B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3D,QAAQ,6BAA6B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1D,QAAQ,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AAC5C,QAAQ,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3C,QAAQ,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AAC7C,QAAQ,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AAC7C,QAAQ,mCAAmC,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5D,QAAQ,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AACrG,YAAY,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,OAAO,EAAE,GAAG,CAAC;AAC5F,YAAY,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,MAAM,EAAE,GAAG,CAAC;AAC1F,QAAQ,CAAC,CAAM,CAAC;AAChB,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,EAAE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC/F,YAAY,sBAAsB,CAAC,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,GAAG,CAAC;AACtF,YAAY,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,MAAM,EAAE,GAAG,CAAC;AACpF,QAAQ,CAAC,CAAM,CAAC;AAChB;AACA;AACA;AACA;AACA,QAAQ,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AACzF,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AACnF,IAAI;AACJ,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB;AACA;AACA,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM;AAClC,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACjC,YAAY,CAAC,EAAE,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9G,QAAQ,CAAC,EAAE,CAAC,CAAC;AACb,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY;AACZ,QAAQ,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1F,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;AAC7B,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,CAAC;AACpE,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,CAAC;AACtE,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,CAAC;AACtE,IAAI;AACJ,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AAC/B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE;AACxB,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACrK,QAAQ,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;AACpC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE;AACzB,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AAC1F,QAAQ,IAAI,CAAC,SAAS;AACtB,YAAY,OAAO,IAAI;AACvB,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACzE,QAAQ,IAAI,KAAK,IAAI,CAAC;AACtB,YAAY,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACtC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE;AAC1B,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AACrK,QAAQ,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAChD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAChD,YAAY,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,IAAS,CAAC;AACxF,YAAY,IAAI,KAAK,KAAK,OAAO;AACjC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;AAC1C,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;AACrC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,IAAS,CAAC;AACpF,QAAQ,MAAM,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,EAAE,GAAG,CAAC;AACxE,IAAI;AACJ,IAAI,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE;AAC1B;AACA,QAAQ,IAAI,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,CAAC,EAAE;AACnE,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE;AAC7B,YAAY,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAS,CAAC;AACvE,YAAY,sBAAsB,CAAC,IAAI,EAAE,8BAA8B,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACxF,QAAQ;AACR,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AAC1F,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/G,YAAY,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;AAClE,QAAQ;AACR,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE;AAC/B,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AAC/G,gBAAgB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC,YAAY;AACZ,YAAY,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACpG,YAAY,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC9F,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7B,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE;AAC/B;AACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACjC,YAAY,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC,YAAY;AACZ,YAAY,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACpG,YAAY,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC9F,YAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7B,QAAQ;AACR,IAAI;AACJ,IAAI,UAAU,GAAG,EAAE;AACnB;AACA,6BAA6B,GAAG,IAAI,OAAO,EAAE,EAAE,oCAAoC,GAAG,IAAI,OAAO,EAAE,EAAE,mCAAmC,GAAG,IAAI,OAAO,EAAE,EAAE,uBAAuB,GAAG,IAAI,OAAO,EAAE,EAAE,8BAA8B,GAAG,IAAI,OAAO,EAAE,EAAE,6BAA6B,GAAG,IAAI,OAAO,EAAE,EAAE,sBAAsB,GAAG,IAAI,OAAO,EAAE,EAAE,kBAAkB,GAAG,IAAI,OAAO,EAAE,EAAE,oBAAoB,GAAG,IAAI,OAAO,EAAE,EAAE,oBAAoB,GAAG,IAAI,OAAO,EAAE,EAAE,mCAAmC,GAAG,IAAI,OAAO,EAAE,EAAE,sBAAsB,GAAG,IAAI,OAAO,EAAE,EAAE,wBAAwB,GAAG,SAAS,wBAAwB,CAAC,KAAK,EAAE;AAC3lB,IAAI,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAS,CAAC;AACjE,IAAI,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;AAC/D,QAAQ,KAAK,GAAG,IAAI,iBAAiB,EAAE;AACvC,IAAI;AACJ,IAAI,IAAI,KAAK,YAAY,iBAAiB,EAAE;AAC5C,QAAQ,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAS,CAAC;AACrE,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;AACzC,IAAI;AACJ,IAAI,IAAI,KAAK,YAAY,WAAW,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;AACzC,IAAI;AACJ,IAAI,IAAI,KAAK,YAAY,KAAK,EAAE;AAChC,QAAQ,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;AAC1D;AACA,QAAQ,WAAW,CAAC,KAAK,GAAG,KAAK;AACjC,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC;AAC/C,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,CAAC;;ACxLM,SAAS,2BAA2B,CAAC,EAAE,EAAE;AAChD,IAAI,OAAO,OAAO,EAAE,CAAC,KAAK,KAAK,UAAU;AACzC;;ACFA,IAAI,uCAAuC,EAAE,6CAA6C,EAAE,6CAA6C,EAAE,sDAAsD,EAAE,4DAA4D,EAAE,iDAAiD,EAAE,4CAA4C,EAAE,yDAAyD;AAO3Z,MAAM,4BAA4B,GAAG,EAAE;AAChC,MAAM,4BAA4B,SAAS,WAAW,CAAC;AAC9D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,uCAAuC,CAAC,GAAG,CAAC,IAAI,CAAC;AACzD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAClC,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;AAC1B,IAAI;AACJ,IAAI,kBAAkB,CAAC,cAAc,EAAE;AACvC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,cAAc,CAAC;AACpD,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO;AAC1D,QAAQ,IAAI,OAAO;AACnB,YAAY,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACrC,QAAQ,OAAO,cAAc;AAC7B,IAAI;AACJ,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE;AACtC,QAAQ,IAAI,EAAE,SAAS,IAAI,OAAO,CAAC;AACnC,YAAY,OAAO,CAAC,OAAO,GAAG,IAAI;AAClC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC;AAC1C,YAAY,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;AAC3D;AACA,gBAAgB,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,OAAO,CAAC,OAAO,CAAC;AACrE,YAAY;AACZ,iBAAiB,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE;AACxE,gBAAgB,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE;AAC5D,oBAAoB,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,EAAE;AACvD,wBAAwB,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,SAAS,CAAC,QAAQ,CAAC;AAC1E,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,mBAAmB,GAAG;AAChC,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,UAAU;AACvB,YAAY,MAAM,IAAI,WAAW,CAAC,iDAAiD,CAAC;AACpF,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACnJ,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACnJ,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,qBAAqB,GAAG;AAClC,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,sDAAsD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5J,IAAI;AACJ,IAAI,MAAM,2BAA2B,GAAG;AACxC,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,4DAA4D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAClK,IAAI;AACJ,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,iDAAiD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACvJ,IAAI;AACJ,IAAI,kBAAkB,GAAG;AACzB,QAAQ,OAAO,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACzC,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AAClF,QAAQ,IAAI,UAAU;AACtB,YAAY,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,UAAU,CAAC;AACzD,QAAQ,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACjK,QAAQ,IAAI,YAAY;AACxB,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,CAAC;AACpD,QAAQ,MAAM,YAAY,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACjK,QAAQ,IAAI,YAAY;AACxB,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,CAAC;AACpD,QAAQ,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,sDAAsD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/K,QAAQ,IAAI,iBAAiB;AAC7B,YAAY,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,iBAAiB,CAAC;AAClE,QAAQ,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,4DAA4D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3L,QAAQ,IAAI,uBAAuB,IAAI,IAAI;AAC3C,YAAY,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,uBAAuB,CAAC;AAC9E,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AACxD,YAAY,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,iDAAiD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9K,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACzD,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E,QAAQ;AACR,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,4CAA4C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;AACnJ,QAAQ,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACjJ,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACnF,IAAI;AACJ,IAAI,MAAM,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtD,QAAQ,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE;AAC/C,YAAY,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;AAC5C,QAAQ;AACR,QAAQ,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACxE,IAAI;AACJ,IAAI,MAAM,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAC7C,QAAQ,MAAM,IAAI,GAAG,MAAM;AAC3B,QAAQ,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM;AACtE,QAAQ,MAAM,oBAAoB,GAAG,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,UAAU,IAAI,WAAW,EAAE,QAAQ,EAAE,IAAI;AACtI,QAAQ,MAAM,EAAE,kBAAkB,GAAG,4BAA4B,EAAE,GAAG,OAAO,IAAI,EAAE;AACnF;AACA,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACtD,YAAY,IAAIA,oBAAkB,CAAC,IAAI,CAAC,EAAE;AAC1C,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACrC,oBAAoB,MAAM,IAAI,WAAW,CAAC,uEAAuE,CAAC;AAClH,gBAAgB;AAChB,gBAAgB,OAAO;AACvB,oBAAoB,IAAI,EAAE,UAAU;AACpC,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,QAAQ,EAAE,IAAI,CAAC,SAAS;AAChD,wBAAwB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;AAChD,wBAAwB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE;AACpE,wBAAwB,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;AAC5D,wBAAwB,KAAK,EAAE,IAAI,CAAC,SAAS;AAC7C,wBAAwB,MAAM,EAAE,IAAI;AACpC,qBAAqB;AACrB,iBAAiB;AACjB,YAAY;AACZ,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,eAAe,GAAG,EAAE;AAClC,QAAQ,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;AACpC,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE;AACvC,gBAAgB,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ;AACzF,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,KAAK,GAAG,OAAO,IAAI,MAAM;AACvC,YAAY,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU;AACvD,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,UAAU;AACpC,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;AACzE,wBAAwB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU;AACzD,wBAAwB,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW;AAC3D,wBAAwB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;AACjD,qBAAqB;AACrB;AACA,kBAAkB,CAAC;AACnB,cAAc,SAAS;AACvB,QAAQ,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE;AAC/C,YAAY,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;AAC5C,QAAQ;AACR,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,CAAC,EAAE;AACrD,YAAY,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;AAC5E,gBAAgB,GAAG,UAAU;AAC7B,gBAAgB,WAAW;AAC3B,gBAAgB,KAAK;AACrB,gBAAgB,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC5C,aAAa,EAAE,OAAO,CAAC;AACvB,YAAY,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO;AAC9D,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B,gBAAgB,MAAM,IAAI,WAAW,CAAC,CAAC,0CAA0C,CAAC,CAAC;AACnF,YAAY;AACZ,YAAY,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE;AAC7C,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE;AACxD,gBAAgB,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU;AACjD,oBAAoB;AACpB,gBAAgB,MAAM,YAAY,GAAG,SAAS,CAAC,EAAE;AACjD,gBAAgB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,QAAQ;AACpE,gBAAgB,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC;AAChD,gBAAgB,IAAI,CAAC,EAAE,EAAE;AACzB,oBAAoB,MAAM,OAAO,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe;AACrI,yBAAyB,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3D,yBAAyB,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC;AACvD,oBAAoB,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACrE,oBAAoB;AACpB,gBAAgB;AAChB,qBAAqB,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,IAAI,EAAE;AAChF,oBAAoB,MAAM,OAAO,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,4BAA4B,CAAC;AACrJ,oBAAoB,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACrE,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,MAAM;AAC1B,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,GAAG,2BAA2B,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI;AAC1F,gBAAgB;AAChB,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1F,oBAAoB,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACrE,oBAAoB;AACpB,gBAAgB;AAChB;AACA,gBAAgB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;AAClE,gBAAgB,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,yDAAyD,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;AAC5L,gBAAgB,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACjE,gBAAgB,IAAI,oBAAoB,EAAE;AAC1C,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ;AACR,IAAI;AACJ;AACA,uCAAuC,GAAG,IAAI,OAAO,EAAE,EAAE,6CAA6C,GAAG,SAAS,6CAA6C,GAAG;AAClK,IAAI,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI;AAC/J,CAAC,EAAE,6CAA6C,GAAG,SAAS,6CAA6C,GAAG;AAC5G,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;AAChC,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;AACpB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE;AACzC;AACA,YAAY,MAAM,GAAG,GAAG;AACxB,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;AAChD,gBAAgB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;AAChD,aAAa;AACb,YAAY,OAAO,GAAG;AACtB,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,IAAI,WAAW,CAAC,4EAA4E,CAAC;AACvG,CAAC,EAAE,sDAAsD,GAAG,SAAS,sDAAsD,GAAG;AAC9H,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACxD,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE;AACxE,YAAY,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ;AAC3F,QAAQ;AACR,IAAI;AACJ,IAAI;AACJ,CAAC,EAAE,4DAA4D,GAAG,SAAS,4DAA4D,GAAG;AAC1I,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACxD,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxC,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC;AAClC,YAAY,OAAO,CAAC,OAAO,IAAI,IAAI;AACnC,YAAY,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;AAC/C,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,WAAW;AAC5D,gBAAgB,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE;AACpG,YAAY,OAAO,OAAO,CAAC,OAAO;AAClC,QAAQ;AACR,IAAI;AACJ,IAAI;AACJ,CAAC,EAAE,iDAAiD,GAAG,SAAS,iDAAiD,GAAG;AACpH,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,iBAAiB,EAAE,CAAC;AAC5B,QAAQ,aAAa,EAAE,CAAC;AACxB,QAAQ,YAAY,EAAE,CAAC;AACvB,KAAK;AACL,IAAI,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACnD,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,iBAAiB;AAC9D,YAAY,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa;AACtD,YAAY,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY;AACpD,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB,CAAC,EAAE,4CAA4C,GAAG,SAAS,4CAA4C,CAAC,MAAM,EAAE;AAChH,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE;AAC1C,QAAQ,MAAM,IAAI,WAAW,CAAC,8HAA8H,CAAC;AAC7J,IAAI;AACJ,CAAC,EAAE,yDAAyD,GAAG,SAAS,yDAAyD,CAAC,UAAU,EAAE;AAC9I,IAAI,QAAQ,OAAO,UAAU,KAAK,QAAQ,GAAG;AAC7C,UAAU,UAAU,KAAK,SAAS,GAAG;AACrC,cAAc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AACxC,CAAC;;AC3RM,MAAM,oBAAoB,SAAS,4BAA4B,CAAC;AACvE,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAC7C,QAAQ,MAAM,MAAM,GAAG,IAAI,oBAAoB,EAAE;AACjD,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,UAAU,EAAE;AACrF,SAAS;AACT,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACjE,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE;AACtC,QAAQ,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;AACxC,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE;AAC5D,YAAY,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC;AAClD,QAAQ;AACR,IAAI;AACJ;;AClBA,MAAM,GAAG,GAAG,WAAW;AACvB,MAAM,GAAG,GAAG,WAAW;AACvB,MAAM,GAAG,GAAG,WAAW;AACvB,MAAM,GAAG,GAAG,WAAW;AACvB,MAAM,IAAI,GAAG,WAAW;AACxB,MAAM,IAAI,GAAG,WAAW;AACxB,MAAM,GAAG,GAAG,WAAW;AACvB,MAAM,QAAQ,GAAG,WAAW;AAC5B,MAAM,cAAc,GAAG,WAAW;AAClC,MAAM,GAAG,GAAG,QAAQ,GAAG,cAAc;AACrC,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG;AACvC,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO;AAChC,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG;AAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,UAAU;AAC7B,MAAM,KAAK,GAAG;AACd,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,GAAG;AACP,IAAI,QAAQ;AACZ,IAAI,cAAc;AAClB,IAAI,GAAG;AACP,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,GAAG;AACP,CAAC;AACD;AACA,MAAM,WAAW,SAAS,KAAK,CAAC;AAChC;AACA,MAAM,aAAa,SAAS,KAAK,CAAC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,UAAU,EAAE,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE;AACzD,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACxC,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,mBAAmB,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC;AACtE,IAAI;AACJ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE;AAC5B,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;AACjD,IAAI;AACJ,IAAI,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC;AACtD;AACA,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,KAAK,KAAK;AAC1C,IAAI,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM;AACpC,IAAI,IAAI,KAAK,GAAG,CAAC;AACjB,IAAI,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK;AACrC,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5D,IAAI,CAAC;AACL,IAAI,MAAM,mBAAmB,GAAG,CAAC,GAAG,KAAK;AACzC,QAAQ,MAAM,IAAI,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,IAAI,CAAC;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,QAAQ,SAAS,EAAE;AACnB,QAAQ,IAAI,KAAK,IAAI,MAAM;AAC3B,YAAY,eAAe,CAAC,yBAAyB,CAAC;AACtD,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG;AACrC,YAAY,OAAO,QAAQ,EAAE;AAC7B,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG;AACrC,YAAY,OAAO,QAAQ,EAAE;AAC7B,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG;AACrC,YAAY,OAAO,QAAQ,EAAE;AAC7B,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,MAAM;AAC7D,aAAa,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1G,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,MAAM;AAC7D,aAAa,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC1G,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,OAAO;AAC9D,aAAa,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC3G,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,UAAU;AACjE,aAAa,KAAK,CAAC,QAAQ,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAClH,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,QAAQ;AAC3B,QAAQ;AACR,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,WAAW;AAClE,aAAa,KAAK,CAAC,cAAc,GAAG,KAAK;AACzC,gBAAgB,CAAC,GAAG,MAAM,GAAG,KAAK;AAClC,gBAAgB,MAAM,GAAG,KAAK,GAAG,CAAC;AAClC,gBAAgB,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACtE,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,CAAC,QAAQ;AAC5B,QAAQ;AACR,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK;AAC5D,aAAa,KAAK,CAAC,GAAG,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACxG,YAAY,KAAK,IAAI,CAAC;AACtB,YAAY,OAAO,GAAG;AACtB,QAAQ;AACR,QAAQ,OAAO,QAAQ,EAAE;AACzB,IAAI,CAAC;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,QAAQ,MAAM,KAAK,GAAG,KAAK;AAC3B,QAAQ,IAAI,MAAM,GAAG,KAAK;AAC1B,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,OAAO,KAAK,GAAG,MAAM,KAAK,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,MAAM,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE;AAC5G,YAAY,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK;AACjE,YAAY,KAAK,EAAE;AACnB,QAAQ;AACR,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE;AAC7C,YAAY,IAAI;AAChB,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACxF,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C,YAAY;AACZ,QAAQ;AACR,aAAa,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,EAAE;AACpC,YAAY,IAAI;AAChB,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;AAC5F,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB;AACA,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;AAClG,YAAY;AACZ,QAAQ;AACR,QAAQ,eAAe,CAAC,6BAA6B,CAAC;AACtD,IAAI,CAAC;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,SAAS,EAAE;AACnB,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,IAAI;AACZ,YAAY,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AAC9C,gBAAgB,SAAS,EAAE;AAC3B,gBAAgB,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK;AACxD,oBAAoB,OAAO,GAAG;AAC9B,gBAAgB,MAAM,GAAG,GAAG,QAAQ,EAAE;AACtC,gBAAgB,SAAS,EAAE;AAC3B,gBAAgB,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC5C,oBAAoB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACpH,gBAAgB;AAChB,gBAAgB,OAAO,CAAC,EAAE;AAC1B,oBAAoB,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK;AACzC,wBAAwB,OAAO,GAAG;AAClC;AACA,wBAAwB,MAAM,CAAC;AAC/B,gBAAgB;AAChB,gBAAgB,SAAS,EAAE;AAC3B,gBAAgB,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG;AAC7C,oBAAoB,KAAK,EAAE,CAAC;AAC5B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK;AACjC,gBAAgB,OAAO,GAAG;AAC1B;AACA,gBAAgB,eAAe,CAAC,+BAA+B,CAAC;AAChE,QAAQ;AACR,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,OAAO,GAAG;AAClB,IAAI,CAAC;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,IAAI;AACZ,YAAY,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AAC9C,gBAAgB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpC,gBAAgB,SAAS,EAAE;AAC3B,gBAAgB,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;AAC/C,oBAAoB,KAAK,EAAE,CAAC;AAC5B,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,EAAE;AACnC,gBAAgB,OAAO,GAAG;AAC1B,YAAY;AACZ,YAAY,eAAe,CAAC,8BAA8B,CAAC;AAC3D,QAAQ;AACR,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,OAAO,GAAG;AAClB,IAAI,CAAC;AACL,IAAI,MAAM,QAAQ,GAAG,MAAM;AAC3B,QAAQ,IAAI,KAAK,KAAK,CAAC,EAAE;AACzB,YAAY,IAAI,UAAU,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK;AACvD,gBAAgB,eAAe,CAAC,sBAAsB,CAAC;AACvD,YAAY,IAAI;AAChB,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC7C,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,EAAE;AACvC,oBAAoB,IAAI;AACxB,wBAAwB,IAAI,GAAG,KAAK,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACrE,4BAA4B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AACnG,wBAAwB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/F,oBAAoB;AACpB,oBAAoB,OAAO,CAAC,EAAE,EAAE;AAChC,gBAAgB;AAChB,gBAAgB,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,KAAK,GAAG,KAAK;AAC3B,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG;AACrC,YAAY,KAAK,EAAE;AACnB,QAAQ,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACtE,YAAY,KAAK,EAAE;AACnB,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;AACnD,YAAY,eAAe,CAAC,6BAA6B,CAAC;AAC1D,QAAQ,IAAI;AACZ,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACjE,QAAQ;AACR,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK;AAC/E,gBAAgB,eAAe,CAAC,sBAAsB,CAAC;AACvD,YAAY,IAAI;AAChB,gBAAgB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3F,YAAY;AACZ,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C,YAAY;AACZ,QAAQ;AACR,IAAI,CAAC;AACL,IAAI,MAAM,SAAS,GAAG,MAAM;AAC5B,QAAQ,OAAO,KAAK,GAAG,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;AACxE,YAAY,KAAK,EAAE;AACnB,QAAQ;AACR,IAAI,CAAC;AACL,IAAI,OAAO,QAAQ,EAAE;AACrB,CAAC;AACD;AACA,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;;AC9OvE,IAAI,+BAA+B,EAAE,4BAA4B,EAAE,uCAAuC,EAAE,mDAAmD,EAAE,kCAAkC,EAAE,yCAAyC,EAAE,8BAA8B,EAAE,2CAA2C,EAAE,2CAA2C,EAAE,gCAAgC,EAAE,oDAAoD,EAAE,8CAA8C;AAOze,MAAM,oBAAoB,SAAS,4BAA4B,CAAC;AACvE,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,EAAE;AACf,QAAQ,+BAA+B,CAAC,GAAG,CAAC,IAAI,CAAC;AACjD,QAAQ,4BAA4B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACtD,QAAQ,uCAAuC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACjE,QAAQ,mDAAmD,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7E,QAAQ,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,MAAW,CAAC;AAC/E,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,EAAO,CAAC;AACtF,IAAI;AACJ,IAAI,IAAI,6BAA6B,GAAG;AACxC,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE,GAAG,CAAC;AACrG,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,kBAAkB,CAAC,MAAM,EAAE;AACtC,QAAQ,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC;AACrD,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC7D,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,OAAO,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACzD,QAAQ,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC;AACvD,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClL,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACzD,QAAQ,KAAK,CAAC,qBAAqB;AACnC,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E,QAAQ;AACR,QAAQ,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACzH,QAAQ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACxI,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAChI,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvJ,IAAI;AACJ,IAAI,MAAM,mBAAmB,CAAC,cAAc,EAAE,OAAO,EAAE;AACvD,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E,QAAQ;AACR,QAAQ,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACzH,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC;AACjF,QAAQ,IAAI,MAAM;AAClB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,IAAI,MAAM,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,EAAE;AAC/C;AACA,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxJ,YAAY;AACZ,YAAY,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAChI,YAAY,MAAM,GAAG,KAAK,CAAC,EAAE;AAC7B,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvJ,IAAI;AACJ,IAAI,EAAE,4BAA4B,GAAG,IAAI,OAAO,EAAE,EAAE,uCAAuC,GAAG,IAAI,OAAO,EAAE,EAAE,mDAAmD,GAAG,IAAI,OAAO,EAAE,EAAE,+BAA+B,GAAG,IAAI,OAAO,EAAE,EAAE,kCAAkC,GAAG,SAAS,kCAAkC,GAAG;AACtT,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY;AACZ,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE,SAAc,CAAC;AACzG,IAAI,CAAC,EAAE,yCAAyC,GAAG,SAAS,yCAAyC,CAAC,MAAM,EAAE;AAC9G,QAAQ,IAAI,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5G,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,KAAK,GAAG;AAChB,YAAY,YAAY,EAAE,KAAK;AAC/B,YAAY,YAAY,EAAE,KAAK;AAC/B,YAAY,qBAAqB,EAAE,KAAK;AACxC,YAAY,qBAAqB,EAAE,KAAK;AACxC,YAAY,eAAe,EAAE,IAAI,GAAG,EAAE;AACtC,YAAY,uBAAuB,EAAE,IAAI;AACzC,SAAS;AACT,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK;AACxG,QAAQ,OAAO,KAAK;AACpB,IAAI,CAAC,EAAE,8BAA8B,GAAG,SAAS,8BAA8B,CAAC,KAAK,EAAE;AACvF,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY;AACZ,QAAQ,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,8CAA8C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC/J,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC;AAC9C,QAAQ,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;AAC5C,YAAY,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACnE,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;AAC5C,gBAAgB,cAAc,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW;AAC5D,gBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE;AACjD,gBAAgB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3F,gBAAgB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AAC5C,oBAAoB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;AAC/C,oBAAoB,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AAC5D,oBAAoB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM;AACzD,iBAAiB,CAAC;AAClB,YAAY;AACZ,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;AAC5C,gBAAgB,cAAc,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW;AAC5D,gBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE;AACjD,gBAAgB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AAC5C,oBAAoB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;AAC/C,oBAAoB,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AAC5D,iBAAiB,CAAC;AAClB,YAAY;AACZ,YAAY,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE;AAClG,gBAAgB,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE;AACrD,oBAAoB,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO;AACrD,oBAAoB,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE;AACpE,iBAAiB,CAAC;AAClB,YAAY;AACZ,YAAY,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE;AAClG,gBAAgB,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE;AACrD,oBAAoB,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO;AACrD,oBAAoB,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE;AACpE,iBAAiB,CAAC;AAClB,YAAY;AACZ,YAAY,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,yCAAyC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAClK,YAAY,IAAI,cAAc,CAAC,aAAa,EAAE;AAC9C,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,2CAA2C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAC1J,gBAAgB,IAAI,KAAK,CAAC,uBAAuB,IAAI,IAAI,EAAE;AAC3D,oBAAoB,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,2CAA2C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,uBAAuB,CAAC;AAC7L,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE;AAClE,gBAAgB,IAAI,KAAK,CAAC,uBAAuB,KAAK,QAAQ,CAAC,KAAK,EAAE;AACtE,oBAAoB,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,2CAA2C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAC9J;AACA,oBAAoB,IAAI,KAAK,CAAC,uBAAuB,IAAI,IAAI,EAAE;AAC/D,wBAAwB,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,2CAA2C,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,uBAAuB,CAAC;AACjM,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,KAAK;AAC9D,YAAY;AACZ,YAAY,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE;AACvE,gBAAgB,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC;AACjG,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE;AAC7C,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,gBAAgB,EAAE,IAAI,KAAK,UAAU,EAAE;AAC3D,oBAAoB,IAAI,CAAC,KAAK,CAAC,qCAAqC,EAAE;AACtE,wBAAwB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,IAAI;AAC7D,wBAAwB,KAAK,EAAE,aAAa,CAAC,KAAK;AAClD,wBAAwB,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS;AACtE,wBAAwB,gBAAgB,EAAE,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB;AACpF,wBAAwB,eAAe,EAAE,aAAa,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE;AAChF,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC;AACvD,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,IAAI,CAAC,EAAE,2CAA2C,GAAG,SAAS,2CAA2C,CAAC,cAAc,EAAE,aAAa,EAAE;AACzI,QAAQ,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,yCAAyC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAC9J,QAAQ,IAAI,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;AACtD;AACA,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,GAAG,aAAa,CAAC;AACnF,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,YAAY,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;AACpD,QAAQ;AACR,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AACpC,YAAY,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;AAChE,QAAQ;AACR,QAAQ,IAAI,gBAAgB,CAAC,IAAI,KAAK,UAAU,EAAE;AAClD,YAAY,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,4BAA4B,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAClN,YAAY,IAAI,CAAC,KAAK,CAAC,oCAAoC,EAAE;AAC7D,gBAAgB,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI;AACpD,gBAAgB,KAAK,EAAE,aAAa;AACpC,gBAAgB,SAAS,EAAE,gBAAgB,CAAC,QAAQ,CAAC,SAAS;AAC9D,gBAAgB,gBAAgB,EAAEA,oBAAkB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS;AACzH,sBAAsB,SAAS,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS;AACjG,0BAA0B,IAAI;AAC9B,aAAa,CAAC;AACd,QAAQ;AACR,aAAa;AACb,YAAY,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC9C,QAAQ;AACR,IAAI,CAAC,EAAE,2CAA2C,GAAG,SAAS,2CAA2C,CAAC,cAAc,EAAE;AAC1H,QAAQ,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,yCAAyC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;AAC9J,QAAQ,IAAI,cAAc,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AACnE,YAAY,KAAK,CAAC,YAAY,GAAG,IAAI;AACrC,YAAY,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,oDAAoD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACtK,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;AACvC,gBAAgB,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AACvD,gBAAgB,MAAM,EAAE,cAAc,GAAG,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;AACxG,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,IAAI,cAAc,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;AACnE,YAAY,KAAK,CAAC,YAAY,GAAG,IAAI;AACrC,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACnF,QAAQ;AACR,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;AAC9E,YAAY,KAAK,CAAC,qBAAqB,GAAG,IAAI;AAC9C,YAAY,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC7F,QAAQ;AACR,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;AAC9E,YAAY,KAAK,CAAC,qBAAqB,GAAG,IAAI;AAC9C,YAAY,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC7F,QAAQ;AACR,IAAI,CAAC,EAAE,gCAAgC,GAAG,SAAS,gCAAgC,GAAG;AACtF,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,uCAAuC,CAAC,CAAC;AAC5E,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE,GAAG,CAAC;AAC/G,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,wCAAwC,CAAC,CAAC;AAC7E,QAAQ;AACR,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE,SAAc,CAAC;AACzG,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,EAAO,CAAC;AACtF,QAAQ,OAAO,sBAAsB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,CAAC;AAChH,IAAI,CAAC,EAAE,oDAAoD,GAAG,SAAS,oDAAoD,GAAG;AAC9H,QAAQ,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,EAAE,eAAe;AAC/G,QAAQ,IAAI,4BAA4B,CAAC,cAAc,CAAC,EAAE;AAC1D,YAAY,OAAO,cAAc;AACjC,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC,EAAE,8CAA8C,GAAG,SAAS,8CAA8C,CAAC,KAAK,EAAE;AACvH,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1B,QAAQ,IAAI,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE,GAAG,CAAC;AAC7G,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAC1C,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,mDAAmD,EAAE;AACzG,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,OAAO,EAAE,EAAE;AAC3B,aAAkB,CAAC;AACnB,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;AACzC,QAAQ;AACR,QAAQ,KAAK,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE;AAChG,YAAY,IAAI,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;AAChD,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAgB,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE;AAC5G,YAAY;AACZ,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACtC,oBAAoB,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC;AACjE,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ;AAElE,oBAAoB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC;AACxD,oBAAoB,IAAI,OAAO,EAAE;AACjC,wBAAwB,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,KAAK,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;AAC3E,wBAAwB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAChE,oBAAoB;AACpB,oBAAoB,IAAI,OAAO,EAAE;AACjC,wBAAwB,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,KAAK,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;AAC3E,wBAAwB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AAChE,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,aAAa,EAAE;AAC/B,gBAAgB,MAAM,CAAC,aAAa,GAAG,aAAa;AACpD,gBAAgB,IAAI,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,IAAIC,uBAAqB,CAAC,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/K,oBAAoB,IAAI,aAAa,KAAK,QAAQ,EAAE;AACpD,wBAAwB,MAAM,IAAI,uBAAuB,EAAE;AAC3D,oBAAoB;AACpB,oBAAoB,IAAI,aAAa,KAAK,gBAAgB,EAAE;AAC5D,wBAAwB,MAAM,IAAI,8BAA8B,EAAE;AAClE,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;AACxC,YAAY,IAAI,CAAC,KAAK;AACtB,gBAAgB,SAAS;AACzB,YAAY,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAExF,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;AAC/C,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,IAAI,OAAO;AACjF,YAAY;AACZ,YAAY,IAAI,IAAI;AACpB,gBAAgB,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI;AAC1C,YAAY,IAAI,aAAa,EAAE;AAC/B,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE;AACnD,oBAAoB,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,aAAa;AAChE,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,IAAI,aAAa,CAAC,IAAI;AAC1C,wBAAwB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;AAC9E,oBAAoB,IAAI,aAAa,CAAC,SAAS,EAAE;AACjD,wBAAwB,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,KAAK,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;AAC5F,wBAAwB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS;AACzF,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,IAAI,OAAO;AACjF,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,oDAAoD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACpL,oBAAoB,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;AAChF,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU;AAC9C,oBAAoB,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAClD,gBAAgB,KAAK,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,UAAU,EAAE;AACrF,oBAAoB,MAAM,SAAS,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;AACnG,oBAAoB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AAClD,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,SAAS,CAAC,EAAE,GAAG,EAAE;AACzC,oBAAoB,IAAI,IAAI;AAC5B,wBAAwB,SAAS,CAAC,IAAI,GAAG,IAAI;AAC7C,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AAC3G,oBAAoB,IAAI,EAAE,EAAE,IAAI;AAChC,wBAAwB,SAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI;AACzD,oBAAoB,IAAI,EAAE,EAAE,SAAS,EAAE;AACvC,wBAAwB,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS;AACpE,wBAAwB,IAAI,mBAAmB,CAAC,sBAAsB,CAAC,IAAI,EAAE,4BAA4B,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE;AAC7H,4BAA4B,SAAS,CAAC,QAAQ,CAAC,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC5G,wBAAwB;AACxB,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,QAAQ;AACvB,IAAI,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG;AAChC,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,IAAI,IAAI,GAAG,KAAK;AACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK;AACpC,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE;AAC5C,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AACrC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM;AAC7B,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACzC,YAAY;AACZ,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC,YAAY;AACZ,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC,YAAY;AACZ,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,YAAY;AAC9B,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACvC,oBAAoB,IAAI,IAAI,EAAE;AAC9B,wBAAwB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/D,oBAAoB;AACpB,oBAAoB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5L,gBAAgB;AAChB,gBAAgB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;AAC/C,gBAAgB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;AACpD,YAAY,CAAC;AACb,YAAY,MAAM,EAAE,YAAY;AAChC,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AACvD,YAAY,CAAC;AACb,SAAS;AACT,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;AACzF,QAAQ,OAAO,MAAM,CAAC,gBAAgB,EAAE;AACxC,IAAI;AACJ;AACA,SAAS,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE;AAClD,IAAI,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ;AACjF,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,GAAG,IAAI;AACf,QAAQ,EAAE;AACV,QAAQ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,KAAK;AAC7F,YAAY,IAAI,CAAC,aAAa,EAAE;AAChC,gBAAgB,MAAM,IAAI,WAAW,CAAC,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC,CAAC;AAClF,YAAY;AACZ,YAAY,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO;AACzF,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACtC,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB,gBAAgB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC,CAAC;AACzE,YAAY;AACZ,YAAY,IAAI,aAAa,EAAE;AAC/B,gBAAgB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa;AAC/D,gBAAgB,IAAI,IAAI,IAAI,IAAI,EAAE;AAClC,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC,CAAC;AAChG,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3F,gBAAgB;AAChB,gBAAgB,OAAO;AACvB,oBAAoB,GAAG,UAAU;AACjC,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,OAAO;AAC/B,wBAAwB,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AAChE,wBAAwB,IAAI;AAC5B,wBAAwB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;AACxD,qBAAqB;AACrB,oBAAoB,aAAa;AACjC,oBAAoB,KAAK;AACzB,oBAAoB,QAAQ;AAC5B,iBAAiB;AACjB,YAAY;AACZ,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,OAAO;AACvB,oBAAoB,GAAG,UAAU;AACjC,oBAAoB,KAAK;AACzB,oBAAoB,aAAa;AACjC,oBAAoB,QAAQ;AAC5B,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,GAAG,WAAW;AACtC,wBAAwB,IAAI;AAC5B,wBAAwB,OAAO;AAC/B,wBAAwB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;AACxD,wBAAwB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK;AACrE,4BAA4B,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,SAAS;AACrF,4BAA4B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;AACjF,4BAA4B,IAAI,EAAE,IAAI,IAAI,EAAE;AAC5C,gCAAgC,MAAM,IAAI,WAAW,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxH,4BAA4B;AAC5B,4BAA4B,IAAI,IAAI,IAAI,IAAI,EAAE;AAC9C,gCAAgC,MAAM,IAAI,WAAW,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1H,4BAA4B;AAC5B,4BAA4B,IAAI,IAAI,IAAI,IAAI,EAAE;AAC9C,gCAAgC,MAAM,IAAI,WAAW,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,iBAAiB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnI,4BAA4B;AAC5B,4BAA4B,IAAI,IAAI,IAAI,IAAI,EAAE;AAC9C,gCAAgC,MAAM,IAAI,WAAW,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,sBAAsB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxI,4BAA4B;AAC5B,4BAA4B,OAAO,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;AAC5G,wBAAwB,CAAC,CAAC;AAC1B,qBAAqB;AACrB,iBAAiB;AACjB,YAAY;AACZ,YAAY,OAAO;AACnB,gBAAgB,GAAG,UAAU;AAC7B,gBAAgB,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE;AAC5F,gBAAgB,aAAa;AAC7B,gBAAgB,KAAK;AACrB,gBAAgB,QAAQ;AACxB,aAAa;AACb,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO;AACf,QAAQ,KAAK;AACb,QAAQ,MAAM,EAAE,iBAAiB;AACjC,QAAQ,IAAI,kBAAkB,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC;AAC7D,KAAK;AACL,IAAI,OAAO,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC;AACvD;AACA,SAAS,GAAG,CAAC,CAAC,EAAE;AAChB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC5B;AASA,SAAS,WAAW,CAAC,EAAE,EAAE,EAAE;;ACtepB,MAAM,6BAA6B,SAAS,oBAAoB,CAAC;AACxE,IAAI,OAAO,kBAAkB,CAAC,MAAM,EAAE;AACtC,QAAQ,MAAM,MAAM,GAAG,IAAI,6BAA6B,CAAC,IAAI,CAAC;AAC9D,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC7D,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAC7C,QAAQ,MAAM,MAAM,GAAG,IAAI,6BAA6B;AACxD;AACA,QAAQ,MAAM,CAAC;AACf,QAAQ,MAAM,IAAI,GAAG;AACrB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,UAAU,EAAE;AACrF,SAAS;AACT,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACjE,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ;;AClBA;oBAUO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIE,UAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;AACzG,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;AAClF,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAChG,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAChG,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;AACrF,IAAI;AACJ,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AACzB,QAAQ,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACjC,aAAa,MAAM,CAAC,IAAI,EAAE;AAC1B,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE;AACrB,gBAAgB,GAAG,OAAO,EAAE,OAAO;AACnC,gBAAgB,2BAA2B,EAAE,wBAAwB;AACrE,aAAa;AACb,SAAS;AACT,aAAa,WAAW,CAAC,CAAC,UAAU,KAAK,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC/E,IAAI;AACJ,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;AAC5B,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY,OAAO,6BAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;AACtF,QAAQ;AACR,QAAQ,OAAO,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;AACzE,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,oBAAoB,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;AACrF,IAAI;AACJ;AAKAC,aAAW,CAAC,QAAQ,GAAGC,UAAQ;;ACxG/B;AAIO,MAAM,IAAI,SAAS,WAAW,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,aAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE,IAAI;AACJ;AACA,IAAI,CAAC,WAAW,GAAGF,aAAW;;ACV9B;AAEA,MAAM,4BAA4B,mBAAmB,MAAM,CAAC,8BAA8B,CAAC;AAC3F,UAAU,cAAc,CAAC,OAAO,EAAE;AAClC,IAAI,IAAI,CAAC,OAAO;AAChB,QAAQ;AACR,IAAI,IAAI,4BAA4B,IAAI,OAAO,EAAE;AACjD,QAAQ,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO;AACzC,QAAQ,OAAO,MAAM,CAAC,OAAO,EAAE;AAC/B,QAAQ,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAClC,YAAY,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9B,QAAQ;AACR,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,WAAW,GAAG,KAAK;AAC3B,IAAI,IAAI,IAAI;AACZ,IAAI,IAAI,OAAO,YAAY,OAAO,EAAE;AACpC,QAAQ,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE;AACvC,QAAQ,IAAI,GAAG,OAAO;AACtB,IAAI;AACJ,SAAS;AACT,QAAQ,WAAW,GAAG,IAAI;AAC1B,QAAQ,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC5C,IAAI;AACJ,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;AAC1B,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AAC3B,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;AACpC,YAAY,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC;AACtE,QAAQ,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE,QAAQ,IAAI,QAAQ,GAAG,KAAK;AAC5B,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AACpC,YAAY,IAAI,KAAK,KAAK,SAAS;AACnC,gBAAgB;AAChB;AACA;AACA,YAAY,IAAI,WAAW,IAAI,CAAC,QAAQ,EAAE;AAC1C,gBAAgB,QAAQ,GAAG,IAAI;AAC/B,gBAAgB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;AAClC,YAAY;AACZ,YAAY,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;AAC/B,QAAQ;AACR,IAAI;AACJ;AACO,MAAM,YAAY,GAAG,CAAC,UAAU,KAAK;AAC5C,IAAI,MAAM,aAAa,GAAG,IAAI,OAAO,EAAE;AACvC,IAAI,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE;AACjC,IAAI,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE;AACtC,QAAQ,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE;AACrC,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;AAC7D,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE;AAChD,YAAY,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AAC7C,gBAAgB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1C,gBAAgB,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1C,YAAY;AACZ,YAAY,IAAI,KAAK,KAAK,IAAI,EAAE;AAChC,gBAAgB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1C,gBAAgB,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1C,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;AACjD,gBAAgB,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;AAC7C,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,EAAE,CAAC,4BAA4B,GAAG,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE;AAC9F,CAAC;;ACnED;AAGO,MAAM,MAAM,SAAS,WAAW,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE;AAClD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7F,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS,CAAC;AACV,IAAI;AACJ;;AC3BA;AAGO,MAAM,cAAc,SAAS,WAAW,CAAC;AAChD,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;AACtF,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AACxC,YAAY,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAC7C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB,IAAI;AACJ;;ACZA;AAGO,MAAM,YAAY,SAAS,WAAW,CAAC;AAC9C,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3J,IAAI;AACJ;;ACPA;AAQO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAIG,cAAgC,CAAC,IAAI,CAAC,OAAO,CAAC;AAChF,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAIC,YAA4B,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1E,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIC,MAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;AACxD,IAAI;AACJ;AACA,KAAK,CAAC,cAAc,GAAG,cAAc;AACrC,KAAK,CAAC,YAAY,GAAG,YAAY;AACjC,KAAK,CAAC,MAAM,GAAG,MAAM;;AClBrB;AAIO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAClE,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;AACpE,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACvF,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;AAC5E,IAAI;AACJ;;AC/BA;AAKO,MAAM,UAAU,SAAS,WAAW,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;AAChD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAE;AACnE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAE;AACpE,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,GAAG,UAAU,GAAG;AACpE,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAE;AACtE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;;ACzFA;iBAGO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE;AACvD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;;AC1BA;AAGO,MAAM,qBAAqB,SAAS,WAAW,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE;AACrE,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;;AC1BA;AAMA;AACA;AACA;iBACO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIC,UAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAIC,qBAA8C,CAAC,IAAI,CAAC,OAAO,CAAC;AACrG,IAAI;AACJ;AACAC,UAAQ,CAAC,QAAQ,GAAGC,UAAQ;AAC5BD,UAAQ,CAAC,qBAAqB,GAAG,qBAAqB;;ACjBtD;AAIO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACtD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3F,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE;AAC/E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3F,SAAS,CAAC;AACV,IAAI;AACJ;;ACvCA;gBAKO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,EAAE;AACrE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3F,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,GAAG,sBAAsB,GAAG;AACrF,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3F,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,EAAE;AACxE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3F,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC7C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,sBAAsB,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;AACnN,IAAI;AACJ;;ACvEA;AAMO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIF,QAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAII,SAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D,IAAI;AACJ;AACA,OAAO,CAAC,QAAQ,GAAG,QAAQ;AAC3B,OAAO,CAAC,OAAO,GAAGC,SAAO;;ACdzB;AAKA;AACA;AACA;AACO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;AACvE,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;AACzC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE;AACpF,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;AACvC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AAC7C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE;AACrF,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,UAAU,GAAG;AAC3F,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;AACvC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE;AACvF,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;;ACtEA;AAKA;AACA;AACA;AACO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM;AACtD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;AAC7F,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACjC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM;AAC9C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG;AACvG,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;;ACnCA;AAgCA;AACA;AACA;AACA;AACA;AACO,MAAM,cAAc,GAAG,CAAC,SAAS,KAAK;AAC7C,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACvC;AACA,QAAQ,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;AACpD,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AACpH,IAAI;AACJ,SAAS;AACT;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACzC,QAAQ,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM;AACpC,QAAQ,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;AACzC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACtC,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9C,QAAQ;AACR,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACzD,IAAI;AACJ,CAAC;;ACrDD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK;AAChC,IAAI,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,WAAW,EAAE;AACnD,QAAQ,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS;AACjE,IAAI;AACJ,IAAI,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE;AAChD,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE;AACtD,IAAI;AACJ,IAAI,OAAO,SAAS;AACpB,CAAC;;AChBD,IAAI,0BAA0B,EAAEC,IAAE,EAAE,uBAAuB,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,yBAAyB,EAAE,oCAAoC,EAAE,+BAA+B,EAAE,qCAAqC,EAAE,gCAAgC,EAAE,6BAA6B,EAAE,mCAAmC,EAAE,uCAAuC,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,0BAA0B;AAMltB,MAAM,eAAe,SAAS,WAAW,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5C;AACA,QAAQ,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AAC7C;AACA;AACA,QAAQ,iCAAiC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AACvD,QAAQ,iCAAiC,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;AACvD,QAAQ,gCAAgC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1D,QAAQ,yBAAyB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACnD,QAAQ,oCAAoC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC9D,QAAQ,+BAA+B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACzD,QAAQ,qCAAqC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC/D,QAAQ,gCAAgC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1D;AACA,QAAQ,6BAA6B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACvD,QAAQ,mCAAmC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAC7D,QAAQ,uCAAuC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACjE,IAAI;AACJ,IAAI,EAAE,uBAAuB,GAAG,IAAI,OAAO,EAAE,EAAE,iCAAiC,GAAG,IAAI,OAAO,EAAE,EAAE,iCAAiC,GAAG,IAAI,OAAO,EAAE,EAAE,gCAAgC,GAAG,IAAI,OAAO,EAAE,EAAE,yBAAyB,GAAG,IAAI,OAAO,EAAE,EAAE,oCAAoC,GAAG,IAAI,OAAO,EAAE,EAAE,+BAA+B,GAAG,IAAI,OAAO,EAAE,EAAE,qCAAqC,GAAG,IAAI,OAAO,EAAE,EAAE,gCAAgC,GAAG,IAAI,OAAO,EAAE,EAAE,6BAA6B,GAAG,IAAI,OAAO,EAAE,EAAE,mCAAmC,GAAG,IAAI,OAAO,EAAE,EAAE,uCAAuC,GAAG,IAAI,OAAO,EAAE,EAAE,0BAA0B,GAAG,IAAI,OAAO,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG;AACpqB,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,IAAI,IAAI,GAAG,KAAK;AACxB;AACA,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK;AACpC,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE;AAC5C,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AACrC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM;AAC7B,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACzC,YAAY;AACZ,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC,YAAY;AACZ,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC,YAAY;AACZ,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,YAAY;AAC9B,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACvC,oBAAoB,IAAI,IAAI,EAAE;AAC9B,wBAAwB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/D,oBAAoB;AACpB,oBAAoB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5L,gBAAgB;AAChB,gBAAgB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;AAC/C,gBAAgB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;AACpD,YAAY,CAAC;AACb,YAAY,MAAM,EAAE,YAAY;AAChC,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AACvD,YAAY,CAAC;AACb,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,kBAAkB,CAAC,MAAM,EAAE;AACtC,QAAQ,MAAM,MAAM,GAAG,IAAIA,IAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC7D,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,MAAM,mBAAmB,CAAC,cAAc,EAAE,OAAO,EAAE;AACvD,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E,QAAQ;AACR,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC;AACjF,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACtH,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClI,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;AACzF,QAAQ,OAAO,MAAM,CAAC,gBAAgB,EAAE;AACxC,IAAI;AACJ,IAAI,OAAO,yBAAyB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;AACnE,QAAQ,MAAM,MAAM,GAAG,IAAIA,IAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;AAC9E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE;AACnF,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,MAAM,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AAClE,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E,QAAQ;AACR,QAAQ,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AAChD,QAAQ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE;AAChE,YAAY,GAAG,OAAO;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;AAC1C,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACtH,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClI,IAAI;AACJ,IAAI,OAAO,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAChE,QAAQ,MAAM,MAAM,GAAG,IAAIA,IAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE;AACxE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE;AACnF,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,OAAO,qBAAqB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;AAClE,QAAQ,MAAM,MAAM,GAAG,IAAIA,IAAE,EAAE;AAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;AAC7E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE;AACnF,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC;AAC/E,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,GAAG,CAAC;AACrF,IAAI;AACJ,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC;AAClF,IAAI;AACJ,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,CAAC;AACzF,IAAI;AACJ,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC;AAClG,IAAI;AACJ,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,OAAO,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC;AAClG,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC;AACzE,YAAY,MAAM,KAAK,CAAC,6BAA6B,CAAC;AACtD,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC;AAC3E,IAAI;AACJ,IAAI,MAAM,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAChE,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E,QAAQ;AACR,QAAQ,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AAChD,QAAQ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACtG,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACtH,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClI,IAAI;AACJ,IAAI,MAAM,sBAAsB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;AACjE,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E,QAAQ;AACR,QAAQ,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;AAChD,QAAQ,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACvG,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACtH,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClI,IAAI;AACJ,IAAI,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE;AACvC,QAAQ,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/D,YAAY,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC1C,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU;AACrC,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC;AACnC,YAAY,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC7D,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU;AACrC,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,EAAE;AACnD,gBAAgB,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU;AACrC,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAChF,gBAAgB,QAAQ,IAAI,UAAU;AACtC,YAAY;AACZ,iBAAiB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACrF,gBAAgB,QAAQ,IAAI,UAAU;AACtC,YAAY;AACZ,iBAAiB,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE;AAC3D,gBAAgB,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC;AACrE,YAAY;AACZ,iBAAiB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC3E,gBAAgB,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE;AAC3F,oBAAoB,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;AACjD,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE;AACrD,oBAAoB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AAC5C,wBAAwB,MAAM,IAAI,KAAK,CAAC,CAAC,oDAAoD,EAAE,UAAU,CAAC,CAAC,CAAC;AAC5G,oBAAoB;AACpB,oBAAoB,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC;AACrD,oBAAoB,IAAI,KAAK,IAAI,IAAI,EAAE;AACvC,wBAAwB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;AACjD,wBAAwB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;AACjG,oBAAoB;AACpB,oBAAoB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnD,wBAAwB,MAAM,IAAI,KAAK,CAAC,CAAC,qEAAqE,EAAE,KAAK,CAAC,CAAC,CAAC;AACxH,oBAAoB;AACpB,oBAAoB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;AACpD,oBAAoB,IAAI,QAAQ,IAAI,IAAI,EAAE;AAC1C,wBAAwB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AACjD,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC;AACpF,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB;AAChB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,MAAM,KAAK,CAAC,CAAC,uBAAuB,EAAE,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9G,YAAY;AACZ,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ;AAC/B,QAAQ;AACR,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAC1D,QAAQ,OAAO,MAAM,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AAC/E,IAAI;AACJ,IAAI,MAAM,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;AAC/D,QAAQ,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;AACjF,IAAI;AACJ,IAAI,MAAM,uBAAuB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;AAChE,QAAQ,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAClF,IAAI;AACJ;AACAA,IAAE,GAAG,eAAe,EAAE,yBAAyB,GAAG,SAAS,yBAAyB,CAAC,KAAK,EAAE;AAC5F,IAAI,IAAI,IAAI,CAAC,KAAK;AAClB,QAAQ;AACR,IAAI,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,KAAU,CAAC;AAC3E,IAAI,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACjH,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,gBAAgB;AAC7B;AACA,YAAY;AACZ,QAAQ,KAAK,oBAAoB;AACjC,QAAQ,KAAK,mBAAmB;AAChC,QAAQ,KAAK,wBAAwB;AACrC,QAAQ,KAAK,4BAA4B;AACzC,QAAQ,KAAK,sBAAsB;AACnC,QAAQ,KAAK,uBAAuB;AACpC,QAAQ,KAAK,mBAAmB;AAChC,QAAQ,KAAK,uBAAuB;AACpC,QAAQ,KAAK,sBAAsB;AACnC,QAAQ,KAAK,oBAAoB;AACjC,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AACvH,YAAY;AACZ,QAAQ,KAAK,yBAAyB;AACtC,QAAQ,KAAK,6BAA6B;AAC1C,QAAQ,KAAK,uBAAuB;AACpC,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,wBAAwB;AACrC,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,yBAAyB;AACtC,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3H,YAAY;AACZ,QAAQ,KAAK,wBAAwB;AACrC,QAAQ,KAAK,4BAA4B;AACzC,QAAQ,KAAK,sBAAsB;AACnC,QAAQ,KAAK,0BAA0B;AACvC,QAAQ,KAAK,2BAA2B;AACxC,YAAY,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3H,YAAY;AACZ,QAAQ,KAAK,OAAO;AACpB;AACA,YAAY,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC;AAGlH;AACA,CAAC,EAAE,2BAA2B,GAAG,SAAS,2BAA2B,GAAG;AACxE,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,QAAQ,MAAM,IAAI,WAAW,CAAC,CAAC,uCAAuC,CAAC,CAAC;AACxE,IAAI;AACJ,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC;AACrE,QAAQ,MAAM,KAAK,CAAC,iCAAiC,CAAC;AACtD,IAAI,OAAO,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,CAAC;AACvE,CAAC,EAAE,8BAA8B,GAAG,SAAS,8BAA8B,CAAC,KAAK,EAAE;AACnF,IAAI,MAAM,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAG,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AACrO,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,kBAAuB,CAAC;AAC3F,IAAI,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,kBAAkB;AACpH,IAAI,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE;AACtC,QAAQ,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AACzE,QAAQ,IAAI,eAAe,EAAE,IAAI,IAAI,MAAM,EAAE;AAC7C,YAAY,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC;AAC3D,QAAQ;AACR,IAAI;AACJ,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,wBAAwB;AACrC,YAAY,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC;AACpD,YAAY;AACZ,QAAQ,KAAK,4BAA4B;AACzC,YAAY;AACZ,QAAQ,KAAK,sBAAsB;AACnC,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC;AAC5E,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAC1C,gBAAgB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAChE;AACA,oBAAoB,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE;AAChE,wBAAwB,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI;AACpD,wBAAwB,IAAI,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AAChF,wBAAwB,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,MAAM,EAAE;AACjE,4BAA4B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC7E,wBAAwB;AACxB,6BAA6B;AAC7B,4BAA4B,MAAM,KAAK,CAAC,qEAAqE,CAAC;AAC9G,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,IAAI,OAAO,CAAC,KAAK,IAAI,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,GAAG,CAAC,EAAE;AAClH;AACA,wBAAwB,IAAI,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,EAAE;AAChG,4BAA4B,QAAQ,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC,IAAI;AAC3G,gCAAgC,KAAK,MAAM;AAC3C,oCAAoC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AACxM,oCAAoC;AACpC,gCAAgC,KAAK,YAAY;AACjD,oCAAoC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AACnN,oCAAoC;AACpC;AACA,wBAAwB;AACxB,wBAAwB,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,OAAO,CAAC,KAAU,CAAC;AAC9G,oBAAoB;AACpB,oBAAoB,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAM,CAAC;AACjI,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,QAAQ,KAAK,0BAA0B;AACvC,QAAQ,KAAK,2BAA2B;AACxC;AACA,YAAY,IAAI,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,GAAG,CAAC,KAAK,SAAS,EAAE;AACvG,gBAAgB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,oCAAoC,EAAE,GAAG,CAAC,CAAC;AAClI,gBAAgB,IAAI,cAAc,EAAE;AACpC,oBAAoB,QAAQ,cAAc,CAAC,IAAI;AAC/C,wBAAwB,KAAK,YAAY;AACzC,4BAA4B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,UAAU,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AACvJ,4BAA4B;AAC5B,wBAAwB,KAAK,MAAM;AACnC,4BAA4B,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC5I,4BAA4B;AAC5B;AACA,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,EAAE;AACrF,gBAAgB,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC;AACrD,YAAY;AACZ,YAAY,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,SAAc,CAAC;AAC1F;AACA,CAAC,EAAE,8BAA8B,GAAG,SAAS,8BAA8B,CAAC,KAAK,EAAE;AACnF,IAAI,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAClJ,IAAI,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,kBAAuB,CAAC;AAClG,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,yBAAyB;AACtC,YAAY,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC;AACpD,YAAY;AACZ,QAAQ,KAAK,uBAAuB;AACpC,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK;AAC1C,YAAY,IAAI,KAAK,CAAC,YAAY;AAClC,gBAAgB,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI,YAAY;AACvD,gBAAgB,KAAK,CAAC,YAAY,CAAC,UAAU;AAC7C,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,IAAI,IAAI,YAAY,EAAE;AACtE,gBAAgB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE;AACtE,oBAAoB,IAAI,QAAQ,CAAC,KAAK,IAAI,sBAAsB,CAAC,IAAI,EAAE,qCAAqC,EAAE,GAAG,CAAC,EAAE;AACpH,wBAAwB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,kBAAkB,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzH,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,EAAE;AACjG,4BAA4B,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC3H,wBAAwB;AACxB,wBAAwB,sBAAsB,CAAC,IAAI,EAAE,qCAAqC,EAAE,QAAQ,CAAC,KAAU,CAAC;AAChH,wBAAwB,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,kBAAkB,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAM,CAAC;AACvJ,wBAAwB,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC;AAC/F,4BAA4B,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC9H,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC;AAC5E,YAAY;AACZ,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,wBAAwB;AACrC,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,yBAAyB;AACtC,YAAY,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,SAAc,CAAC;AACjG,YAAY,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY;AACnD,YAAY,IAAI,OAAO,CAAC,IAAI,IAAI,YAAY,EAAE;AAC9C,gBAAgB,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,EAAE;AACzF,oBAAoB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AACnH,oBAAoB,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,SAAc,CAAC;AAClG,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,kBAAkB,CAAC;AACrE,YAAY;AAGZ;AACA,CAAC,EAAE,4BAA4B,GAAG,SAAS,4BAA4B,CAAC,KAAK,EAAE;AAC/E,IAAI,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1E,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;AAC9B,CAAC,EAAE,kCAAkC,GAAG,SAAS,kCAAkC,CAAC,KAAK,EAAE;AAC3F,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,yBAAyB;AACtC,YAAY,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI;AAC5G,YAAY,OAAO,KAAK,CAAC,IAAI;AAC7B,QAAQ,KAAK,uBAAuB;AACpC,YAAY,IAAI,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9G,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAgB,MAAM,KAAK,CAAC,uDAAuD,CAAC;AACpF,YAAY;AACZ,YAAY,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI;AACjC,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,MAAM,WAAW,GAAGA,IAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC;AAC5E,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,WAAW;AACjH,YAAY;AACZ,YAAY,OAAO,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACtG,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,wBAAwB;AACrC,QAAQ,KAAK,2BAA2B;AACxC,QAAQ,KAAK,yBAAyB;AACtC,QAAQ,KAAK,6BAA6B;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI;AAC5G,YAAY;AACZ;AACA,IAAI,IAAI,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3F,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,iCAAiC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAClG,IAAI,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;AAC5C,CAAC,EAAE,kCAAkC,GAAG,SAAS,kCAAkC,CAAC,KAAK,EAAE,QAAQ,EAAE;AACrG,IAAI,IAAI,UAAU,GAAG,EAAE;AACvB,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,wBAAwB;AACrC;AACA,YAAY,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC;AAC3C,QAAQ,KAAK,sBAAsB;AACnC,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAgB,MAAM,KAAK,CAAC,wFAAwF,CAAC;AACrH,YAAY;AACZ,YAAY,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI;AACjC;AACA,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpC,gBAAgB,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACjE,oBAAoB,IAAI,cAAc,CAAC,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClE,wBAAwB,IAAI,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;AACnF,wBAAwB,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC;AAC7M,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,cAAc;AAC/E;AACA,wBAAwB,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;AACvD,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;AACzC,QAAQ,KAAK,4BAA4B;AACzC,QAAQ,KAAK,0BAA0B;AACvC,QAAQ,KAAK,2BAA2B;AACxC;AACA,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC7C,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,MAAM,KAAK,CAAC,yDAAyD,CAAC;AACtF,YAAY;AACZ;AACA,IAAI,MAAM,KAAK,CAAC,yCAAyC,CAAC;AAC1D,CAAC,EAAE,kCAAkC,GAAG,SAAS,kCAAkC,CAAC,cAAc,EAAE,cAAc,EAAE;AACpH,IAAI,OAAOA,IAAE,CAAC,eAAe,CAAC,cAAc,EAAE,cAAc,CAAC;AAC7D,CAAC,EAAE,0BAA0B,GAAG,SAAS,0BAA0B,CAAC,KAAK,EAAE;AAC3E,IAAI,sBAAsB,CAAC,IAAI,EAAE,mCAAmC,EAAE,KAAK,CAAC,IAAS,CAAC;AACtF,IAAI,QAAQ,KAAK,CAAC,KAAK;AACvB,QAAQ,KAAK,oBAAoB;AACjC,YAAY;AACZ,QAAQ,KAAK,mBAAmB;AAChC,YAAY;AACZ,QAAQ,KAAK,wBAAwB;AACrC,YAAY;AACZ,QAAQ,KAAK,4BAA4B;AACzC,QAAQ,KAAK,sBAAsB;AACnC,QAAQ,KAAK,mBAAmB;AAChC,QAAQ,KAAK,sBAAsB;AACnC,QAAQ,KAAK,oBAAoB;AACjC,QAAQ,KAAK,uBAAuB;AACpC,YAAY,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,KAAK,CAAC,IAAS,CAAC;AACpF,YAAY,IAAI,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,EAAE;AACrF,gBAAgB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC/G,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,gCAAgC,EAAE,SAAc,CAAC;AAC9F,YAAY;AACZ,YAAY;AAGZ;AACA,CAAC;;ACliBD;AASA;AACA;AACA;aACO,MAAM,IAAI,SAAS,WAAW,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD,IAAI;AACJ,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AAC3C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnE,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE;AAC9B,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,YAAY,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;AAC1C,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACrC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;AAC5E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACnC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AAC7C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;AAC7E,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,GAAG;AACvF,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACnC,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;AACpF,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACjD,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC;AAC9D,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC;AACxE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AAC7C,QAAQ,OAAO,eAAe,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;AAC7G,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACvC,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC;AACrC,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY;AACZ,gBAAgB,yBAAyB,EAAE,MAAM;AACjD,gBAAgB,kCAAkC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,SAAS;AACpG,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE;AAC/E,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;AAC5D,aAAa,CAAC,CAAC,YAAY,EAAE;AAC7B,YAAY,QAAQ,GAAG,CAAC,MAAM;AAC9B;AACA,gBAAgB,KAAK,QAAQ;AAC7B,gBAAgB,KAAK,aAAa;AAClC,gBAAgB,KAAK,YAAY;AACjC,oBAAoB,IAAI,aAAa,GAAG,IAAI;AAC5C,oBAAoB,IAAI,OAAO,EAAE,cAAc,EAAE;AACjD,wBAAwB,aAAa,GAAG,OAAO,CAAC,cAAc;AAC9D,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;AAC3F,wBAAwB,IAAI,cAAc,EAAE;AAC5C,4BAA4B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC;AAC7E,4BAA4B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AAC1D,gCAAgC,aAAa,GAAG,gBAAgB;AAChE,4BAA4B;AAC5B,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,MAAM,KAAK,CAAC,aAAa,CAAC;AAC9C,oBAAoB;AACpB;AACA,gBAAgB,KAAK,iBAAiB;AACtC,gBAAgB,KAAK,YAAY;AACjC,gBAAgB,KAAK,WAAW;AAChC,gBAAgB,KAAK,WAAW;AAChC,gBAAgB,KAAK,QAAQ;AAC7B,gBAAgB,KAAK,SAAS;AAC9B,oBAAoB,OAAO,GAAG;AAC9B;AACA,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,eAAe,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;AAC7G,IAAI;AACJ,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AAC9C,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AAC7C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,oBAAoB,CAAC,EAAE;AACjG,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,YAAY,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;AAC1C,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AAC3D,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AACxE,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC;AACvD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACpD,QAAQ,OAAO,eAAe,CAAC,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;AAChH,IAAI;AACJ;AACAC,MAAI,CAAC,KAAK,GAAG,KAAK;;AC/KlB;AASA;AACA;AACA;AACO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAIC,MAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAClD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIhB,QAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE;AAC7C,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AAC7D,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AAC9D,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AAChE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE;AAClD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AACxC,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1C,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;AAC1D,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC;AAClF,IAAI;AACJ;AACA;AACA;AACA,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;AACtC,QAAQ,OAAO,eAAe,CAAC,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AACpG,IAAI;AACJ;AACA,OAAO,CAAC,IAAI,GAAGe,MAAI;AACnB,OAAO,CAAC,QAAQ,GAAG,QAAQ;;ACzF3B;AAUO,MAAM,IAAI,SAAS,WAAW,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIE,UAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIC,OAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAIC,UAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;AACpE,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIR,OAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D,IAAI;AACJ;AACA,IAAI,CAAC,QAAQ,GAAGF,UAAQ;AACxB,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,IAAI,CAAC,UAAU,GAAG,UAAU;AAC5B,IAAI,CAAC,OAAO,GAAG,OAAO;;ACtBtB;AAEO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;AACpG,IAAI;AACJ;;ACNA;AAIO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;AAC5F,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACvF,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS,CAAC;AACV,IAAI;AACJ;;AChBA;cAQO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIW,OAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1I,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AAC5F,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC3C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG;AAC9F,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACpC,QAAQ,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;AACvF,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV,IAAI;AACJ;AACAC,OAAK,CAAC,OAAO,GAAG,OAAO;;ACjDvB;AAOO,MAAM,UAAU,SAAS,WAAW,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,OAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACrE,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC;AAC3E,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAC1F,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAE;AACtE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV,IAAI;AACJ;AACA,UAAU,CAAC,KAAK,GAAGD,OAAK;;ACxCxB;AAIO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE;AAC5C,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AAC3C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE;AAChF,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE;AAC9B,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM;AACpD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAChH,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,sBAAsB,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACtI,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACpC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AACrG,IAAI;AACJ;;ACpCA;AAKO,MAAM,aAAa,SAAS,WAAW,CAAC;AAC/C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIE,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACxE,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC;AACjF,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/F,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC;AACpF,IAAI;AACJ;AACA,aAAa,CAAC,KAAK,GAAG,KAAK;;ACnC3B;AAGO,MAAM,UAAU,SAAS,WAAW,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,MAAM,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe;AACpE;AACA;AACA,QAAQ,IAAI,eAAe,GAAG,6BAA6B,GAAG,IAAI,CAAC,eAAe,GAAG,QAAQ;AAC7F,QAAQ,IAAI,6BAA6B,EAAE;AAC3C,YAAY,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,0CAA0C,EAAE,IAAI,CAAC,eAAe,CAAC;AAC3G,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;AAC1D,YAAY,IAAI,EAAE;AAClB,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,eAAe,EAAE,eAAe;AAChD,aAAa;AACb,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,6BAA6B,EAAE;AAC3C,YAAY,OAAO,QAAQ;AAC3B,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,mDAAmD,CAAC;AAC1F,QAAQ,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,KAAK;AAClD,YAAY,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC3C,gBAAgB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,kBAAkB,KAAK;AAC9D,oBAAoB,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,SAAS;AAC3E,oBAAoB,kBAAkB,CAAC,SAAS,GAAG,cAAc,CAAC,kBAAkB,CAAC;AACrF,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,YAAY,OAAO,QAAQ;AAC3B,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;;AClDA;AAIO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA,IAAI,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE;AAC5C,QAAQ,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;AAC9G,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACjC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM;AAC5C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAChI,IAAI;AACJ;;ACnBA;AAMO,MAAM,IAAI,SAAS,WAAW,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACpF,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACrC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AAChF,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,GAAG;AACnF,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACnC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AACnF,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACnC,QAAQ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AACjF,IAAI;AACJ;AACA,IAAI,CAAC,WAAW,GAAG,WAAW;;AClD9B;AAMO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAIR,IAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAClD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAChE,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AACjE,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/E,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACrF,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AACpE,IAAI;AACJ;AACA,KAAK,CAAC,IAAI,GAAG,IAAI;;AC/CjB;cAQO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3G,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AACjE,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACrF,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC;AACpE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;AACjE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACvF,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AACxF,QAAQ,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC1E,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AAChC,QAAQ,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1C,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAClE,YAAY,MAAM,KAAK,CAAC,YAAY,CAAC;AACrC,YAAY,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1C,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,EAAE;AAC9C,gBAAgB,MAAM,IAAI,yBAAyB,CAAC;AACpD,oBAAoB,OAAO,EAAE,CAAC,8BAA8B,EAAE,EAAE,CAAC,4BAA4B,EAAE,OAAO,CAAC,cAAc,CAAC;AACtH,iBAAiB,CAAC;AAClB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;;AChFA;AAEO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC;;ACHA;gBAEO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACxF,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7F,IAAI;AACJ;;AC3CA;AAIO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIS,SAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D,IAAI;AACJ;AACA,KAAK,CAAC,OAAO,GAAGC,SAAO;;ACVvB;AAIO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,wBAAwB,EAAE,IAAI,EAAE,OAAO,EAAE;AACpD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,YAAY,CAAC,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;AAC7J,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,wBAAwB,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC5D,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,wBAAwB,CAAC,YAAY,CAAC,EAAE;AACzG,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE;AAC1C,QAAQ,MAAM,EAAE,2BAA2B,EAAE,GAAG,MAAM;AACtD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,2BAA2B,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;AACvI,IAAI;AACJ;;ACnEA;oBAIO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE,IAAI;AACJ;AACAC,aAAW,CAAC,WAAW,GAAG,WAAW;;ACVrC;AAIO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC/C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACpI,IAAI;AACJ;;ACrBA;AAMO,MAAM,IAAI,SAAS,WAAW,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC3E,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,eAAe,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC;AACrF,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAChG,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;AAC7F,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,eAAe,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AACrD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAC/H,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,eAAe,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;AAC5F,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;AAC7F,IAAI;AACJ;AACA,IAAI,CAAC,WAAW,GAAG,WAAW;;ACpH9B;AAUO,MAAM,UAAU,SAAS,WAAW,CAAC;AAC5C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIC,OAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3D,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAIC,IAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAClD,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIF,aAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIG,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD,IAAI;AACJ;AACA,UAAU,CAAC,OAAO,GAAG,OAAO;AAC5B,UAAU,CAAC,IAAI,GAAG,IAAI;AACtB,UAAU,CAAC,WAAW,GAAGJ,aAAW;AACpC,UAAU,CAAC,KAAK,GAAG,KAAK;;ACtBxB;AAEO,MAAM,YAAY,SAAS,WAAW,CAAC;AAC9C;;ACHA;AAIO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAIK,YAA4B,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1E,IAAI;AACJ;AACA,OAAO,CAAC,YAAY,GAAG,YAAY;;ACVnC;AAGO,MAAM,MAAM,SAAS,WAAW,CAAC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACvH,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAChJ,IAAI;AACJ,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;AAC3G,IAAI;AACJ;;ACvBA;AAIO,MAAM,MAAM,SAAS,WAAW,CAAC;AACxC;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC;AAClE,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE;AAC3B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AACpE,IAAI;AACJ;;AC1BA;AAEO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACtE,IAAI;AACJ;;ACVA;AAIO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;AAC1E,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;AAC1E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;AACzE,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE;AACvC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;AAC1E,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV,IAAI;AACJ;;ACrEA;AAEO,MAAM,aAAa,SAAS,WAAW,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAClF,IAAI;AACJ;;ACfA;AAMO,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAIC,aAA8B,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7E,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD,IAAI;AACJ;AACA,QAAQ,CAAC,aAAa,GAAG,aAAa;AACtC,QAAQ,CAAC,KAAK,GAAG,KAAK;;ACZf,SAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE;AACrD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE;AACnD,QAAQ,OAAO;AACf,YAAY,GAAG,QAAQ;AACvB,YAAY,aAAa,EAAE,IAAI;AAC/B,YAAY,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AAClD,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;AACnD,oBAAoB,OAAO;AAC3B,wBAAwB,GAAG,IAAI;AAC/B,wBAAwB,gBAAgB,EAAE,IAAI;AAC9C,qBAAqB;AACrB,gBAAgB;AAChB,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AAC7C,oBAAoB,OAAO;AAC3B,wBAAwB,GAAG,IAAI;AAC/B,wBAAwB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,MAAM;AAChE,4BAA4B,GAAG,OAAO;AACtC,4BAA4B,MAAM,EAAE,IAAI;AACxC,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB;AACrB,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,OAAO,IAAI;AAC/B,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,SAAS;AACT,IAAI;AACJ,IAAI,OAAOC,eAAa,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC1C;AACO,SAASA,eAAa,CAAC,QAAQ,EAAE,MAAM,EAAE;AAChD,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACjD,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;AAC3C,YAAY,OAAO;AACnB,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,gBAAgB,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;AAC7D,aAAa;AACb,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;AACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AAC1D,gBAAgB,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;AACpD,oBAAoB,OAAO;AAC3B,wBAAwB,GAAG,OAAO;AAClC,wBAAwB,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;AACrE,qBAAqB;AACrB,gBAAgB;AAChB,gBAAgB,OAAO,OAAO;AAC9B,YAAY,CAAC,CAAC;AACd,YAAY,OAAO;AACnB,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,OAAO;AACvB,aAAa;AACb,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI,CAAC,CAAC;AACN,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC;AAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;AACnE,QAAQ,aAAa,CAAC,MAAM,CAAC;AAC7B,IAAI;AACJ,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;AACnD,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,GAAG,GAAG;AACd,YAAY,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AAChD,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC/C,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE;AACtD,oBAAoB,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;AACnF,wBAAwB,OAAO,OAAO,CAAC,MAAM;AAC7C,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC;AACT,KAAK,CAAC;AACN,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE;AAC1C,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;AACrD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE;AAC5C,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM;AAC/C,QAAQ,OAAO,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC;AAC7C,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9B;AACO,SAAS,qBAAqB,CAAC,MAAM,EAAE;AAC9C,IAAI,IAAI,4BAA4B,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;AAC3D,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB;AAmBO,SAAS,kBAAkB,CAAC,IAAI,EAAE;AACzC,IAAI,OAAO,IAAI,GAAG,QAAQ,CAAC,KAAK,qBAAqB;AACrD;AACA,SAAS,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE;AAC/C,IAAI,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;AACrF;AACA,SAAS,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE;AACzC,IAAI,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC;AAC3E,IAAI,OAAO;AACX,QAAQ,GAAG,QAAQ;AACnB,QAAQ,GAAG,QAAQ;AACnB,QAAQ,gBAAgB,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS;AAChG,cAAc,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS;AAC/D,kBAAkB,IAAI;AACtB,KAAK;AACL;AAkBO,SAAS,aAAa,CAAC,GAAG,EAAE;AACnC,IAAI,MAAM,KAAK,GAAG,EAAE;AACpB,IAAI,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE;AACrC,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AACvC,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE;AAC9C,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;AAChD,gBAAgB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AACxC,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACpC;;AC9JA,IAAI,yBAAyB,EAAE,sBAAsB,EAAE,uCAAuC,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,kCAAkC;AAK9O,MAAM,cAAc,SAAS,WAAW,CAAC;AAChD,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,EAAE;AACf,QAAQ,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3C,QAAQ,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AAChD,QAAQ,uCAAuC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACjE,QAAQ,6BAA6B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACvD,QAAQ,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,MAAW,CAAC;AACzE,IAAI;AACJ,IAAI,OAAO,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACnD,QAAQ,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC;AACjD,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE;AAC3E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE;AACnF,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,MAAM,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAC7D,QAAQ,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AACtC,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,MAAM,CAAC,OAAO;AAC9B,gBAAgB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvC,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3E,QAAQ;AACR,QAAQ,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7G,QAAQ,IAAI,MAAM;AAClB,QAAQ,IAAI,cAAc,GAAG,IAAI;AACjC,QAAQ,IAAI,aAAa,IAAI,MAAM,EAAE;AACrC,YAAY,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACxJ,YAAY,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI;AAC1D,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AAC/H,QAAQ;AACR,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1C,YAAY,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC;AACpI,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/C,YAAY,MAAM,IAAI,iBAAiB,EAAE;AACzC,QAAQ;AACR,QAAQ,OAAO,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAClH,IAAI;AACJ,IAAI,EAAE,sBAAsB,GAAG,IAAI,OAAO,EAAE,EAAE,uCAAuC,GAAG,IAAI,OAAO,EAAE,EAAE,6BAA6B,GAAG,IAAI,OAAO,EAAE,EAAE,yBAAyB,GAAG,IAAI,OAAO,EAAE,EAAE,4BAA4B,GAAG,SAAS,4BAA4B,GAAG;AACxQ,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY;AACZ,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,SAAc,CAAC;AAC7F,IAAI,CAAC,EAAE,wBAAwB,GAAG,SAAS,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE;AAC3F,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY;AACZ,QAAQ,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AAC3C,YAAY,IAAI,cAAc,IAAI,IAAI,IAAI,KAAK,CAAC,eAAe,GAAG,cAAc,EAAE;AAClF,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;AACvC,YAAY;AACZ,QAAQ,CAAC;AACT,QAAQ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,kCAAkC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3I,QAAQ,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;AACjC,QAAQ,QAAQ,KAAK,CAAC,IAAI;AAC1B,YAAY,KAAK,4BAA4B,EAAE;AAC/C,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F,gBAAgB;AAChB,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC/C,oBAAoB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;AACvE,oBAAoB,IAAI,CAAC,OAAO,EAAE;AAClC,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,yBAAyB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AAChG,oBAAoB;AACpB,oBAAoB,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;AACxD,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,0CAA0C,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1G,oBAAoB;AACpB,oBAAoB,SAAS,CAAC,4BAA4B,EAAE;AAC5D,wBAAwB,GAAG,KAAK;AAChC,wBAAwB,QAAQ,EAAE,OAAO,CAAC,IAAI;AAC9C,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,wCAAwC,EAAE;AAC3D,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F,gBAAgB;AAChB,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE;AACrD,oBAAoB,SAAS,CAAC,wCAAwC,EAAE;AACxE,wBAAwB,GAAG,KAAK;AAChC,wBAAwB,QAAQ,EAAE,MAAM,CAAC,SAAS;AAClD,qBAAqB,CAAC;AACtB,gBAAgB;AAChB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,gBAAgB,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5C,gBAAgB;AAChB;AACA,IAAI,CAAC,EAAE,0BAA0B,GAAG,SAAS,0BAA0B,GAAG;AAC1E,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,uCAAuC,CAAC,CAAC;AAC5E,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,CAAC;AACnG,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,MAAM,IAAI,WAAW,CAAC,CAAC,wCAAwC,CAAC,CAAC;AAC7E,QAAQ;AACR,QAAQ,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,SAAc,CAAC;AAC7F,QAAQ,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC;AACpH,QAAQ,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,cAAmB,CAAC;AACxF,QAAQ,OAAO,cAAc;AAC7B,IAAI,CAAC,EAAE,kCAAkC,GAAG,SAAS,kCAAkC,CAAC,KAAK,EAAE;AAC/F,QAAQ,IAAI,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,GAAG,CAAC;AACjG,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE;AACnD,gBAAgB,MAAM,IAAI,WAAW,CAAC,CAAC,0EAA0E,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChI,YAAY;AACZ,YAAY,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,KAAK,CAAC,QAAa,CAAC;AACjH,YAAY,OAAO,QAAQ;AAC3B,QAAQ;AACR,QAAQ,QAAQ,KAAK,CAAC,IAAI;AAC1B,YAAY,KAAK,4BAA4B,EAAE;AAC/C,gBAAgB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAChD,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,6BAA6B,EAAE;AAChD,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F,gBAAgB;AAChB,gBAAgB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AACxC,gBAAgB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI;AACvC,gBAAgB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAC1E,oBAAoB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,gBAAgB;AAChB,qBAAqB,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;AACjF,oBAAoB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACzC,wBAAwB,MAAM,CAAC,OAAO,GAAG,EAAE;AAC3C,oBAAoB;AACpB,oBAAoB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,gBAAgB;AAChB,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,4BAA4B,EAAE;AAC/C,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F,gBAAgB;AAChB,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC/C,oBAAoB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;AACvE,oBAAoB,IAAI,CAAC,OAAO,EAAE;AAClC,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,yBAAyB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AAChG,oBAAoB;AACpB,oBAAoB,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE;AACxD,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,0CAA0C,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1G,oBAAoB;AACpB,oBAAoB,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AAC/C,gBAAgB;AAChB,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,wCAAwC,EAAE;AAC3D,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F,gBAAgB;AAChB,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE;AACrD,oBAAoB,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK;AACnD,gBAAgB;AAChB,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,+BAA+B,EAAE;AAClD,gBAAgB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;AAClE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,oBAAoB,MAAM,IAAI,WAAW,CAAC,CAAC,wBAAwB,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1F,gBAAgB;AAChB,gBAAgB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE;AACjD,oBAAoB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC;AACzE,oBAAoB,IAAI,CAAC,OAAO,EAAE;AAClC,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,yBAAyB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AAChG,oBAAoB;AACpB,oBAAoB,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAC3D,wBAAwB,MAAM,IAAI,WAAW,CAAC,CAAC,6CAA6C,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7G,oBAAoB;AACpB,oBAAoB,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK;AAC/C,gBAAgB;AAChB,gBAAgB;AAChB,YAAY;AACZ,YAAY,KAAK,oBAAoB,EAAE;AACvC,gBAAgB,sBAAsB,CAAC,IAAI,EAAE,uCAAuC,EAAE,KAAK,CAAC,QAAa,CAAC;AAC1G,gBAAgB;AAChB,YAAY;AACZ;AACA,QAAQ,OAAO,QAAQ;AACvB,IAAI,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG;AAChC,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,IAAI,IAAI,GAAG,KAAK;AACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAK;AACpC,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE;AAC5C,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AACrC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM;AAC7B,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AACzC,YAAY;AACZ,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC,YAAY;AACZ,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClC,YAAY,IAAI,GAAG,IAAI;AACvB,YAAY,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE;AAC5C,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAClC,YAAY;AACZ,YAAY,SAAS,CAAC,MAAM,GAAG,CAAC;AAChC,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,YAAY;AAC9B,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACvC,oBAAoB,IAAI,IAAI,EAAE;AAC9B,wBAAwB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/D,oBAAoB;AACpB,oBAAoB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5L,gBAAgB;AAChB,gBAAgB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE;AAC/C,gBAAgB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;AACpD,YAAY,CAAC;AACb,YAAY,MAAM,EAAE,YAAY;AAChC,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AACvD,YAAY,CAAC;AACb,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,MAAM,IAAI,CAAC,IAAI,EAAE;AACzB,QAAQ,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC;AACzF,QAAQ,IAAI,CAAC,QAAQ;AACrB,YAAY,MAAM,IAAI,WAAW,CAAC,iDAAiD,CAAC;AACpF,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ;AACA,SAAS,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE;AAC5C,IAAI,OAAO,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC/C;;ACnQA;AAIO,MAAM,UAAU,SAAS,WAAW,CAAC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AACxH,IAAI;AACJ;;ACrBA;AAEO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACjF,IAAI;AACJ;;ACdA;AAUO,MAAM,SAAS,SAAS,WAAW,CAAC;AAC3C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAIC,UAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;AACpE,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK;AACxH,YAAY,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE;AAC9D,gBAAgB,aAAa,CAAC,GAAG,CAAC;AAClC,YAAY;AACZ,YAAY,OAAO,GAAG;AACtB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,CAAC,UAAU,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,EAAE;AACjE,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK;AAC1C,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK;AAChC,YAAY,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE;AAC9D,gBAAgB,aAAa,CAAC,GAAG,CAAC;AAClC,YAAY;AACZ,YAAY,OAAO,GAAG;AACtB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,EAAE;AACpE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC;AAC5B,aAAa,MAAM,CAAC,IAAI,EAAE,OAAO;AACjC,aAAa,WAAW,CAAC,CAAC,QAAQ,KAAKF,eAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACrE,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;AACzE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;AACjF,IAAI;AACJ;AACA,SAAS,CAAC,UAAU,GAAG,UAAU;AACjC,SAAS,CAAC,WAAW,GAAG,WAAW;;AChFnC;AAIO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACpI,IAAI;AACJ;;ACrBA;AAKO,MAAM,OAAO,SAAS,WAAW,CAAC;AACzC,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIG,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAClE,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;AAC7E,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC5F,IAAI;AACJ;AACA,OAAO,CAAC,KAAK,GAAG,KAAK;;AC3DrB;AACA;AACA;AACO,MAAM,mBAAmB,GAAG,OAAO,QAAQ,KAAK;AACvD,IAAI,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;AACtD,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC;AAC7E,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE;AACzB,QAAQ,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;AACvC,YAAY,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AACxC,QAAQ;AACR,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;AACtF,IAAI;AACJ;AACA,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAClC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE;AAC3C,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,MAAM;AACjB,CAAC;;ACpBD;AAOO,MAAM,WAAW,SAAS,WAAW,CAAC;AAC7C;AACA;AACA;AACA,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACzC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,aAAa,CAAC,EAAE;AACtF,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AACvC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE;AAClG,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AACrC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;AAC1G,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACtD,QAAQ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;AAC5D,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC;AAChE,IAAI;AACJ;AACA;AACA;AACA,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AACxC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM;AACpD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;AAClO,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE;AAChD,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC;AACrC,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY;AACZ,gBAAgB,yBAAyB,EAAE,MAAM;AACjD,gBAAgB,kCAAkC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,SAAS;AACpG,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE;AAC/G,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,OAAO;AACvB,aAAa,CAAC,CAAC,YAAY,EAAE;AAC7B,YAAY,QAAQ,KAAK,CAAC,MAAM;AAChC,gBAAgB,KAAK,aAAa;AAClC,oBAAoB,IAAI,aAAa,GAAG,IAAI;AAC5C,oBAAoB,IAAI,OAAO,EAAE,cAAc,EAAE;AACjD,wBAAwB,aAAa,GAAG,OAAO,CAAC,cAAc;AAC9D,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;AAC3F,wBAAwB,IAAI,cAAc,EAAE;AAC5C,4BAA4B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC;AAC7E,4BAA4B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AAC1D,gCAAgC,aAAa,GAAG,gBAAgB;AAChE,4BAA4B;AAC5B,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,MAAM,KAAK,CAAC,aAAa,CAAC;AAC9C,oBAAoB;AACpB,gBAAgB,KAAK,QAAQ;AAC7B,gBAAgB,KAAK,WAAW;AAChC,gBAAgB,KAAK,WAAW;AAChC,oBAAoB,OAAO,KAAK;AAChC;AACA,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE;AACzE,QAAQ,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAChD,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,8GAA8G,CAAC,CAAC;AAC7I,QAAQ;AACR,QAAQ,MAAM,qBAAqB,GAAG,OAAO,EAAE,cAAc,IAAI,CAAC;AAClE;AACA,QAAQ,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC;AAC9E,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;AACnC,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE;AAC3C,QAAQ,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC;AACvC;AACA;AACA,QAAQ,eAAe,YAAY,CAAC,QAAQ,EAAE;AAC9C,YAAY,KAAK,IAAI,IAAI,IAAI,QAAQ,EAAE;AACvC,gBAAgB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC;AACzG,gBAAgB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3C,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;AACpF;AACA,QAAQ,MAAM,mBAAmB,CAAC,OAAO,CAAC;AAC1C,QAAQ,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;AACvD,YAAY,QAAQ,EAAE,UAAU;AAChC,SAAS,CAAC;AACV,IAAI;AACJ;;AC/HA;AAMO,MAAM,KAAK,SAAS,WAAW,CAAC;AACvC;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACzC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE;AAC/E,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACtC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;AAC1F,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACpC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;AACnD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;AAC3F,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC7C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG;AACnG,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACpC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE;AAC7F,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACtD,QAAQ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC;AACpE,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;AAC/D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE;AAC/C,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC;AACrC,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY;AACZ,gBAAgB,yBAAyB,EAAE,MAAM;AACjD,gBAAgB,kCAAkC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,SAAS;AACpG,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC7D,gBAAgB,eAAe,EAAE,aAAa;AAC9C,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE;AACtD,YAAY,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI;AAC1C,YAAY,QAAQ,IAAI,CAAC,MAAM;AAC/B,gBAAgB,KAAK,aAAa;AAClC,oBAAoB,IAAI,aAAa,GAAG,IAAI;AAC5C,oBAAoB,IAAI,OAAO,EAAE,cAAc,EAAE;AACjD,wBAAwB,aAAa,GAAG,OAAO,CAAC,cAAc;AAC9D,oBAAoB;AACpB,yBAAyB;AACzB,wBAAwB,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;AACxG,wBAAwB,IAAI,cAAc,EAAE;AAC5C,4BAA4B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC;AAC7E,4BAA4B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE;AAC1D,gCAAgC,aAAa,GAAG,gBAAgB;AAChE,4BAA4B;AAC5B,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,MAAM,KAAK,CAAC,aAAa,CAAC;AAC9C,oBAAoB;AACpB,gBAAgB,KAAK,QAAQ;AAC7B,gBAAgB,KAAK,WAAW;AAChC,oBAAoB,OAAO,IAAI;AAC/B;AACA,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AAC/C,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC;AACxG,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC;AAC5E,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACtD,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC;AACxE,QAAQ,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;AACnE,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AACrC,QAAQ,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM;AAC1C,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;AAC/M,IAAI;AACJ;;ACxIA;AASO,MAAM,YAAY,SAAS,WAAW,CAAC;AAC9C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIjB,KAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AACrD,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIkB,WAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;AACvE,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACnD,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,EAAE;AACxE,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACzC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,EAAE;AACzE,YAAY,IAAI;AAChB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,GAAG,UAAU,GAAG;AACvE,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,EAAE;AAC3E,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;AACzC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG;AAC9F,YAAY,IAAI;AAChB,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzF,SAAS,CAAC;AACV,IAAI;AACJ;AACA,YAAY,CAAC,KAAK,GAAG,KAAK;AAC1B,YAAY,CAAC,WAAW,GAAG,WAAW;;AC7EtC;AAMO,MAAM,MAAM,SAAS,WAAW,CAAC;AACxC;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,gCAAgC,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACjH,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;AACnE,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,GAAG,sBAAsB,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;AAClG,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC;AACtE,IAAI;AACJ;AACA;AACA;AACA,IAAI,eAAe,CAAC,OAAO,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE;AAClD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;AACnE,YAAY,KAAK;AACjB,YAAY,GAAG,OAAO;AACtB,YAAY,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACvF,YAAY,gBAAgB,EAAE,IAAI;AAClC,SAAS,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAClC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,gCAAgC,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACvI,IAAI;AACJ;;AChDA;AACA,IAAI,mBAAmB,EAAE,wBAAwB,EAAE,2BAA2B;AAKvE,MAAM,QAAQ,SAAS,WAAW,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;AACrC,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,GAAG,GAAG,EAAE;AACzF,QAAQ,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;AACvE,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAClC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,GAAG,GAAG,EAAE;AAClG,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW;AACzC,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,UAAU;AACzD,YAAY,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;AACxD,YAAY,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC;AACnH,QAAQ;AACR,QAAQ,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;AAC3G,QAAQ,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;AACzD,QAAQ,MAAM,eAAe,GAAG,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,mBAAmB,CAAC;AAC/J,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,mBAAmB,CAAC;AACzJ,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC;AAClJ;AACA,QAAQ,MAAM,gBAAgB,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;AACxD,QAAQ,IAAI,KAAK,CAAC,gBAAgB,CAAC,EAAE;AACrC,YAAY,MAAM,IAAI,4BAA4B,CAAC,kCAAkC,CAAC;AACtF,QAAQ;AACR,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACxD,QAAQ,IAAI,UAAU,GAAG,gBAAgB,GAAG,SAAS,EAAE;AACvD,YAAY,MAAM,IAAI,4BAA4B,CAAC,8BAA8B,CAAC;AAClF,QAAQ;AACR,QAAQ,IAAI,gBAAgB,GAAG,UAAU,GAAG,SAAS,EAAE;AACvD,YAAY,MAAM,IAAI,4BAA4B,CAAC,8BAA8B,CAAC;AAClF,QAAQ;AACR;AACA;AACA;AACA,QAAQ,MAAM,UAAU,GAAG;AAC3B,aAAa,KAAK,CAAC,GAAG;AACtB,aAAa,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/E;AACA,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;AACzD,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,QAAQ;AAC9D,cAAc,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;AAC1C;AACA,QAAQ,MAAM,aAAa,GAAG,SAAS,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5G;AACA,QAAQ,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC7H;AACA,QAAQ,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAC5C,YAAY,IAAI;AAChB,gBAAgB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;AACvE,gBAAgB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAChI,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,OAAO;AAC3B,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM;AAClB;AACA,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,IAAI,4BAA4B,CAAC,mEAAmE,CAAC;AACnH,IAAI;AACJ;AACA,mBAAmB,GAAG,IAAI,OAAO,EAAE,EAAE,wBAAwB,GAAG,SAAS,wBAAwB,CAAC,MAAM,EAAE;AAC1G,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3D,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,iKAAiK,CAAC,CAAC;AAC5L,IAAI;AACJ,CAAC,EAAE,2BAA2B,GAAG,SAAS,2BAA2B,CAAC,OAAO,EAAE,IAAI,EAAE;AACrF,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAC/C,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AAC/C,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3D,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB,CAAC;;AC/FD;AACA,IAAI,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE,yBAAyB;AA0CrE;AACA;AACA;AACO,MAAM,MAAM,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AACvQ,QAAQ,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,QAAQ,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACzC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAAe,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAIC,IAAQ,CAAC,IAAI,CAAC;AACtC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAIC,UAAc,CAAC,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,OAAS,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIC,MAAU,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,KAAS,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAIC,WAAe,CAAC,IAAI,CAAC;AACpD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIC,MAAU,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAIC,UAAc,CAAC,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIC,OAAW,CAAC,IAAI,CAAC;AAC5C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAIC,YAAgB,CAAC,IAAI,CAAC;AACtD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIC,QAAY,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAIC,IAAQ,CAAC,IAAI,CAAC;AACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIC,OAAW,CAAC,IAAI,CAAC;AAC5C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAIC,OAAW,CAAC,IAAI,CAAC;AAC5C,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAIC,SAAa,CAAC,IAAI,CAAC;AAChD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAIC,QAAY,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAIC,aAAiB,CAAC,IAAI,CAAC;AACxD,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAIC,KAAS,CAAC,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAIC,UAAc,CAAC,IAAI,CAAC;AAClD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIC,MAAU,CAAC,IAAI,CAAC;AAC1C,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE;AAClC,YAAY,MAAM,IAAIC,WAAkB,CAAC,iGAAiG,CAAC;AAC3I,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,MAAM;AAClB,YAAY,YAAY;AACxB,YAAY,OAAO;AACnB,YAAY,aAAa;AACzB,YAAY,GAAG,IAAI;AACnB,YAAY,OAAO,EAAE,OAAO,IAAI,CAAC,yBAAyB,CAAC;AAC3D,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,kBAAkB,EAAE,EAAE;AACtE,YAAY,MAAM,IAAIA,WAAkB,CAAC,obAAob,CAAC;AAC9d,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;AACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,eAAe;AAC5D,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO;AAC/C,QAAQ,MAAM,eAAe,GAAG,MAAM;AACtC;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,eAAe;AACvC,QAAQ,IAAI,CAAC,QAAQ;AACrB,YAAY,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,EAAE,IAAI,CAAC;AAC3E,gBAAgB,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,2BAA2B,EAAE,IAAI,CAAC;AACvF,gBAAgB,eAAe;AAC/B,QAAQ,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY;AAChD,QAAQ,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC;AACjD,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAIC,eAAqB,EAAE;AAC7D,QAAQ,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAEC,eAAyB,CAAC;AAChF,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO;AAC/B,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,aAAa;AACzE,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,IAAI;AACJ;AACA;AACA;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC;AAC5C,YAAY,GAAG,IAAI,CAAC,QAAQ;AAC5B,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO;AACjC,YAAY,UAAU,EAAE,IAAI,CAAC,UAAU;AACvC,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO;AACjC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO;AACjC,YAAY,aAAa,EAAE,IAAI,CAAC,aAAa;AAC7C,YAAY,GAAG,OAAO;AACtB,SAAS,CAAC;AACV,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY;AACzC,IAAI;AACJ,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;AACvC,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE;AAC5B,QAAQ,OAAO,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AACzE,IAAI;AACJ,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,OAAOC,SAAY,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC/D,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvD,IAAI;AACJ,IAAI,qBAAqB,GAAG;AAC5B,QAAQ,OAAO,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC;AAChD,IAAI;AACJ,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AACrD,QAAQ,OAAOC,QAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;AACxE,IAAI;AACJ,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC3C,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU;AACxC,YAAY,OAAO,KAAK;AACxB,QAAQ,IAAI,KAAK;AACjB,QAAQ,IAAI;AACZ,YAAY,KAAK,GAAG,MAAM,MAAM,EAAE;AAClC,QAAQ;AACR,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,IAAI,GAAG,YAAYJ,WAAkB;AACjD,gBAAgB,MAAM,GAAG;AACzB,YAAY,MAAM,IAAIA,WAAkB,CAAC,CAAC,4CAA4C,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;AACrG;AACA,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAC3B,QAAQ;AACR,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;AACjD,YAAY,MAAM,IAAIA,WAAkB,CAAC,CAAC,uEAAuE,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3H,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE;AAC1C,QAAQ,MAAM,OAAO,GAAG,CAAC,CAAC,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,cAAc,KAAK,IAAI,CAAC,OAAO;AACvJ,QAAQ,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC;AACvC,YAAY,IAAI,GAAG,CAAC,IAAI;AACxB,cAAc,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACvG,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;AAChD,QAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;AACvC,YAAY,KAAK,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,EAAE;AACjD,QAAQ;AACR,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzE,YAAY,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AACnD,QAAQ;AACR,QAAQ,OAAO,GAAG,CAAC,QAAQ,EAAE;AAC7B,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,OAAO,EAAE;AAClC,QAAQ,MAAM,IAAI,CAAC,WAAW,EAAE;AAChC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;AACtD,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;AACpD,IAAI;AACJ,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;AACrD,IAAI;AACJ,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AACtD,IAAI;AACJ,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;AACpD,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE;AACvB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;AACvD,IAAI;AACJ,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;AACtC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACjE,YAAY,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE;AAC5C,QAAQ,CAAC,CAAC,CAAC;AACX,IAAI;AACJ,IAAI,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,EAAE;AAC9C,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;AAC3F,IAAI;AACJ,IAAI,MAAM,WAAW,CAAC,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE;AAC3E,QAAQ,MAAM,OAAO,GAAG,MAAM,YAAY;AAC1C,QAAQ,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;AAChE,QAAQ,IAAI,gBAAgB,IAAI,IAAI,EAAE;AACtC,YAAY,gBAAgB,GAAG,UAAU;AACzC,QAAQ;AACR,QAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AAC1C,QAAQ,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACvE,YAAY,UAAU,EAAE,UAAU,GAAG,gBAAgB;AACrD,SAAS,CAAC;AACV,QAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACxD;AACA,QAAQ,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACrG,QAAQ,MAAM,WAAW,GAAG,mBAAmB,KAAK,SAAS,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;AACxG,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AACpC,QAAQ,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;AACxF,YAAY,mBAAmB;AAC/B,YAAY,MAAM,EAAE,OAAO,CAAC,MAAM;AAClC,YAAY,GAAG;AACf,YAAY,OAAO;AACnB,YAAY,OAAO,EAAE,GAAG,CAAC,OAAO;AAChC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AACrC,YAAY,MAAM,IAAIK,iBAAwB,EAAE;AAChD,QAAQ;AACR,QAAQ,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AAChD,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;AACtG,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE;AACtC,QAAQ,IAAI,QAAQ,YAAY,UAAU,CAAC,KAAK,EAAE;AAClD,YAAY,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,mBAAmB,CAAC;AACnF,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AACzC,gBAAgB,MAAM,IAAIA,iBAAwB,EAAE;AACpD,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC;AACpD,gBAAgB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,YAAY,IAAI,gBAAgB,EAAE;AAClC,gBAAgB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AAC5H,gBAAgB,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC;AACnJ,oBAAoB,mBAAmB;AACvC,oBAAoB,GAAG;AACvB,oBAAoB,UAAU,EAAE,WAAW,GAAG,SAAS;AACvD,oBAAoB,OAAO,EAAE,QAAQ,CAAC,OAAO;AAC7C,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,IAAI,YAAY,CAAC;AACxG,YAAY;AACZ,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,8BAA8B,CAAC,CAAC;AACpI,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,aAAa,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC,8BAA8B,CAAC,EAAE,oBAAoB,CAAC;AAC3J,gBAAgB,mBAAmB;AACnC,gBAAgB,GAAG;AACnB,gBAAgB,UAAU,EAAE,WAAW,GAAG,SAAS;AACnD,gBAAgB,OAAO,EAAE,QAAQ,CAAC,OAAO;AACzC,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,SAAS,EAAE;AAC3B,gBAAgB,MAAM,IAAIC,yBAAgC,EAAE;AAC5D,YAAY;AACZ,YAAY,MAAM,IAAIC,kBAAyB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACpE,QAAQ;AACR,QAAQ,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;AAC7D,aAAa,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,cAAc;AACvD,aAAa,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC9E,aAAa,IAAI,CAAC,EAAE,CAAC;AACrB,QAAQ,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,GAAG,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;AAC3M,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAC1B,YAAY,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAChE,YAAY,IAAI,gBAAgB,IAAI,WAAW,EAAE;AACjD,gBAAgB,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,mBAAmB,CAAC;AACvF;AACA,gBAAgB,MAAMC,oBAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC/D,gBAAgB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AACzE,gBAAgB,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC;AACjH,oBAAoB,mBAAmB;AACvC,oBAAoB,GAAG,EAAE,QAAQ,CAAC,GAAG;AACrC,oBAAoB,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC3C,oBAAoB,OAAO,EAAE,QAAQ,CAAC,OAAO;AAC7C,oBAAoB,UAAU,EAAE,WAAW,GAAG,SAAS;AACvD,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,IAAI,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC;AAC1H,YAAY;AACZ,YAAY,MAAM,YAAY,GAAG,WAAW,GAAG,CAAC,2BAA2B,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACrG,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;AACrE,YAAY,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AAC1F,YAAY,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;AAC7C,YAAY,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO;AAC5D,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC;AAC7G,gBAAgB,mBAAmB;AACnC,gBAAgB,GAAG,EAAE,QAAQ,CAAC,GAAG;AACjC,gBAAgB,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvC,gBAAgB,OAAO,EAAE,QAAQ,CAAC,OAAO;AACzC,gBAAgB,OAAO,EAAE,UAAU;AACnC,gBAAgB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AAClD,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC;AACpG,YAAY,MAAM,GAAG;AACrB,QAAQ;AACR,QAAQ,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,QAAQ,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;AACvF,YAAY,mBAAmB;AAC/B,YAAY,GAAG,EAAE,QAAQ,CAAC,GAAG;AAC7B,YAAY,MAAM,EAAE,QAAQ,CAAC,MAAM;AACnC,YAAY,OAAO,EAAE,QAAQ,CAAC,OAAO;AACrC,YAAY,UAAU,EAAE,WAAW,GAAG,SAAS;AAC/C,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE;AAC9F,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;AAC1E,IAAI;AACJ,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;AAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC;AAClE,QAAQ,OAAO,IAAIC,WAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;AAC9D,IAAI;AACJ,IAAI,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE;AACtD,QAAQ,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE;AACzD,QAAQ,IAAI,MAAM;AAClB,YAAY,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;AACtE,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;AAChE,QAAQ,MAAM,cAAc,GAAG,CAAC,UAAU,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,YAAY,UAAU,CAAC,cAAc;AAC9G,aAAa,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;AAC/G,QAAQ,MAAM,YAAY,GAAG;AAC7B,YAAY,MAAM,EAAE,UAAU,CAAC,MAAM;AACrC,YAAY,IAAI,cAAc,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzD,YAAY,MAAM,EAAE,KAAK;AACzB,YAAY,GAAG,OAAO;AACtB,SAAS;AACT,QAAQ,IAAI,MAAM,EAAE;AACpB;AACA;AACA,YAAY,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE;AACtD,QAAQ;AACR,QAAQ,IAAI;AACZ;AACA,YAAY,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC;AACtE,QAAQ;AACR,gBAAgB;AAChB,YAAY,YAAY,CAAC,OAAO,CAAC;AACjC,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,WAAW,CAAC,QAAQ,EAAE;AAChC;AACA,QAAQ,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACxE;AACA,QAAQ,IAAI,iBAAiB,KAAK,MAAM;AACxC,YAAY,OAAO,IAAI;AACvB,QAAQ,IAAI,iBAAiB,KAAK,OAAO;AACzC,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;AACnC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;AACnC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;AACnC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;AAClC,YAAY,OAAO,IAAI;AACvB,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,MAAM,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE;AACjF,QAAQ,IAAI,aAAa;AACzB;AACA,QAAQ,MAAM,sBAAsB,GAAG,eAAe,EAAE,GAAG,CAAC,gBAAgB,CAAC;AAC7E,QAAQ,IAAI,sBAAsB,EAAE;AACpC,YAAY,MAAM,SAAS,GAAG,UAAU,CAAC,sBAAsB,CAAC;AAChE,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;AAC1C,gBAAgB,aAAa,GAAG,SAAS;AACzC,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,MAAM,gBAAgB,GAAG,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC;AACpE,QAAQ,IAAI,gBAAgB,IAAI,CAAC,aAAa,EAAE;AAChD,YAAY,MAAM,cAAc,GAAG,UAAU,CAAC,gBAAgB,CAAC;AAC/D,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;AAC/C,gBAAgB,aAAa,GAAG,cAAc,GAAG,IAAI;AACrD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;AACzE,YAAY;AACZ,QAAQ;AACR;AACA;AACA,QAAQ,IAAI,EAAE,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE;AACjF,YAAY,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;AACpE,YAAY,aAAa,GAAG,IAAI,CAAC,kCAAkC,CAAC,gBAAgB,EAAE,UAAU,CAAC;AACjG,QAAQ;AACR,QAAQ,MAAM,KAAK,CAAC,aAAa,CAAC;AAClC,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,CAAC,EAAE,YAAY,CAAC;AAC5E,IAAI;AACJ,IAAI,kCAAkC,CAAC,gBAAgB,EAAE,UAAU,EAAE;AACrE,QAAQ,MAAM,iBAAiB,GAAG,GAAG;AACrC,QAAQ,MAAM,aAAa,GAAG,GAAG;AACjC,QAAQ,MAAM,UAAU,GAAG,UAAU,GAAG,gBAAgB;AACxD;AACA,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC;AACjG;AACA,QAAQ,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI;AAC/C,QAAQ,OAAO,YAAY,GAAG,MAAM,GAAG,IAAI;AAC3C,IAAI;AACJ,IAAI,MAAM,YAAY,CAAC,YAAY,EAAE,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;AAC9D,QAAQ,MAAM,OAAO,GAAG,EAAE,GAAG,YAAY,EAAE;AAC3C,QAAQ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO;AAC/D,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC;AAC9D,QAAQ,IAAI,SAAS,IAAI,OAAO;AAChC,YAAY,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC;AAC/D,QAAQ,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;AACzD,QAAQ,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;AACjE,QAAQ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC9G,QAAQ,MAAM,GAAG,GAAG;AACpB,YAAY,MAAM;AAClB,YAAY,OAAO,EAAE,UAAU;AAC/B,YAAY,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AAC7D,YAAY,IAAI,UAAU,CAAC,cAAc;AACzC,gBAAgB,IAAI,YAAY,UAAU,CAAC,cAAc,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAChF,YAAY,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;AACjC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;AACxC,YAAY,IAAI,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;AAC3C,SAAS;AACT,QAAQ,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;AACrD,IAAI;AACJ,IAAI,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,GAAG,EAAE;AACtE,QAAQ,IAAI,kBAAkB,GAAG,EAAE;AACnC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,IAAI,MAAM,KAAK,KAAK,EAAE;AACxD,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc;AACvC,gBAAgB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,EAAE;AACrE,YAAY,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,cAAc;AAC/E,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC;AACrC,YAAY,kBAAkB;AAC9B,YAAY;AACZ,gBAAgB,MAAM,EAAE,kBAAkB;AAC1C,gBAAgB,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AACjD,gBAAgB,yBAAyB,EAAE,MAAM,CAAC,UAAU,CAAC;AAC7D,gBAAgB,IAAI,OAAO,CAAC,OAAO,GAAG,EAAE,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;AACjH,gBAAgB,GAAG,kBAAkB,EAAE;AACvC,gBAAgB,qBAAqB,EAAE,IAAI,CAAC,YAAY;AACxD,gBAAgB,gBAAgB,EAAE,IAAI,CAAC,OAAO;AAC9C,aAAa;AACb,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AAC3C,YAAY,IAAI,CAAC,QAAQ,CAAC,cAAc;AACxC,YAAY,WAAW;AACvB,YAAY,OAAO,CAAC,OAAO;AAC3B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;AACrC,QAAQ,OAAO,OAAO,CAAC,MAAM;AAC7B,IAAI;AACJ,IAAI,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;AAC1D,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;AAC9D,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;AAClD,QAAQ;AACR;AACA,QAAQ,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AAChC,YAAY,IAAI,YAAY,WAAW;AACvC,YAAY,IAAI,YAAY,QAAQ;AACpC,aAAa,OAAO,IAAI,KAAK,QAAQ;AACrC;AACA,gBAAgB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACnD;AACA,aAAa,UAAU,CAAC,IAAI,IAAI,IAAI,YAAY,UAAU,CAAC,IAAI,CAAC;AAChE;AACA,YAAY,IAAI,YAAY,QAAQ;AACpC;AACA,YAAY,IAAI,YAAY,eAAe;AAC3C;AACA,aAAa,UAAU,CAAC,cAAc,IAAI,IAAI,YAAY,UAAU,CAAC,cAAc,CAAC,EAAE;AACtF,YAAY,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;AACzD,QAAQ;AACR,aAAa,IAAI,OAAO,IAAI,KAAK,QAAQ;AACzC,aAAa,MAAM,CAAC,aAAa,IAAI,IAAI;AACzC,iBAAiB,MAAM,CAAC,QAAQ,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,EAAE;AACjG,YAAY,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAEC,kBAAwB,CAAC,IAAI,CAAC,EAAE;AACnF,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACnG,QAAQ;AACR,IAAI;AACJ;AACA,EAAE,GAAG,MAAM,EAAE,eAAe,GAAG,IAAI,OAAO,EAAE,EAAE,iBAAiB,GAAG,IAAI,OAAO,EAAE,EAAE,yBAAyB,GAAG,SAAS,yBAAyB,GAAG;AAClJ,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,2BAA2B;AACvD,CAAC;AACD,MAAM,CAAC,MAAM,GAAG,EAAE;AAClB,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC;AAChC,MAAM,CAAC,WAAW,GAAGV,WAAkB;AACvC,MAAM,CAAC,QAAQ,GAAGI,QAAe;AACjC,MAAM,CAAC,kBAAkB,GAAGG,kBAAyB;AACrD,MAAM,CAAC,yBAAyB,GAAGD,yBAAgC;AACnE,MAAM,CAAC,iBAAiB,GAAGD,iBAAwB;AACnD,MAAM,CAAC,aAAa,GAAGM,aAAoB;AAC3C,MAAM,CAAC,aAAa,GAAGC,aAAoB;AAC3C,MAAM,CAAC,cAAc,GAAGC,cAAqB;AAC7C,MAAM,CAAC,eAAe,GAAGC,eAAsB;AAC/C,MAAM,CAAC,mBAAmB,GAAGC,mBAA0B;AACvD,MAAM,CAAC,mBAAmB,GAAGC,mBAA0B;AACvD,MAAM,CAAC,qBAAqB,GAAGC,qBAA4B;AAC3D,MAAM,CAAC,wBAAwB,GAAGC,wBAA+B;AACjE,MAAM,CAAC,4BAA4B,GAAGC,4BAAmC;AACzE,MAAM,CAAC,MAAM,GAAGC,MAAc;AAC9B,MAAM,CAAC,WAAW,GAAG,WAAW;AAChC,MAAM,CAAC,IAAI,GAAG,IAAI;AAClB,MAAM,CAAC,UAAU,GAAG,UAAU;AAC9B,MAAM,CAAC,KAAK,GAAG7D,OAAK;AACpB,MAAM,CAAC,MAAM,GAAG,MAAM;AACtB,MAAM,CAAC,KAAK,GAAG,KAAK;AACpB,MAAM,CAAC,WAAW,GAAG,WAAW;AAChC,MAAM,CAAC,MAAM,GAAG,MAAM;AACtB,MAAM,CAAC,UAAU,GAAG,UAAU;AAC9B,MAAM,CAAC,OAAO,GAAG,OAAO;AACxB,MAAM,CAAC,YAAY,GAAG,YAAY;AAClC,MAAM,CAAC,QAAQ,GAAG,QAAQ;AAC1B,MAAM,CAAC,IAAI,GAAG,IAAI;AAClB,MAAM,CAAC,OAAO,GAAG,OAAO;AACxB,MAAM,CAAC,OAAO,GAAG8D,OAAiB;AAClC,MAAM,CAAC,SAAS,GAAG,SAAS;AAC5B,MAAM,CAAC,QAAQ,GAAG,QAAQ;AAC1B,MAAM,CAAC,aAAa,GAAG,aAAa;AACpC,MAAM,CAAC,KAAK,GAAG,KAAK;AACpB,MAAM,CAAC,UAAU,GAAG,UAAU;AAC9B,MAAM,CAAC,MAAM,GAAG,MAAM;;AC7iBtB;AAEO,MAAM,aAAa,GAAG,cAAc;AAkB3C;AACO,MAAM,gBAAgB,GAAiB;AAC5C,IAAA,QAAQ,EAAE;QACR,SAAS,EAAE,GAAG,GAAG,SAAS;QAC1B,UAAU,EAAE,EAAE,GAAG,SAAS;AAC3B,KAAA;AACD,IAAA,aAAa,EAAE;QACb,SAAS,EAAE,IAAI,GAAG,SAAS;QAC3B,UAAU,EAAE,GAAG,GAAG,SAAS;AAC5B,KAAA;AACD,IAAA,SAAS,EAAE;QACT,SAAS,EAAE,GAAG,GAAG,SAAS;QAC1B,UAAU,EAAE,GAAG,GAAG,SAAS;AAC5B,KAAA;AACD,IAAA,IAAI,EAAE;QACJ,SAAS,EAAE,EAAE,GAAG,SAAS;QACzB,UAAU,EAAE,EAAE,GAAG,SAAS;AAC3B,KAAA;AACD,IAAA,SAAS,EAAE;QACT,SAAS,EAAE,GAAG,GAAG,SAAS;QAC1B,UAAU,EAAE,GAAG,GAAG,SAAS;AAC5B,KAAA;AACD,IAAA,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC,GAAG,SAAS;QACxB,UAAU,EAAE,CAAC,GAAG,SAAS;AAC1B,KAAA;AACD,IAAA,SAAS,EAAE;QACT,SAAS,EAAE,CAAC,GAAG,SAAS;QACxB,UAAU,EAAE,CAAC,GAAG,SAAS;AAC1B,KAAA;AACD,IAAA,cAAc,EAAE;QACd,SAAS,EAAE,GAAG,GAAG,SAAS;QAC1B,UAAU,EAAE,GAAG,GAAG,SAAS;AAC5B,KAAA;AACD,IAAA,cAAc,EAAE;QACd,SAAS,EAAE,GAAG,GAAG,SAAS;QAC1B,UAAU,EAAE,GAAG,GAAG,SAAS;AAC5B,KAAA;AACD,IAAA,OAAO,EAAE;QACP,SAAS,EAAE,IAAI,GAAG,SAAS;QAC3B,UAAU,EAAE,EAAE,GAAG,SAAS;AAC3B,KAAA;AACD,IAAA,YAAY,EAAE;QACZ,SAAS,EAAE,IAAI,GAAG,SAAS;QAC3B,UAAU,EAAE,CAAC,GAAG,SAAS;AAC1B,KAAA;AACD,IAAA,YAAY,EAAE;QACZ,SAAS,EAAE,IAAI,GAAG,SAAS;QAC3B,UAAU,EAAE,GAAG,GAAG,SAAS;AAC5B,KAAA;AACD,IAAA,SAAS,EAAE;QACT,SAAS,EAAE,IAAI,GAAG,SAAS;QAC3B,UAAU,EAAE,EAAE,GAAG,SAAS;AAC3B,KAAA;AACD,IAAA,SAAS,EAAE;QACT,SAAS,EAAE,GAAG,GAAG,SAAS;QAC1B,UAAU,EAAE,GAAG,GAAG,SAAS;AAC5B,KAAA;CACF;AAEM,MAAM,kBAAkB,GAAiB;AAC9C,IAAA,eAAe,EAAE;AACf,QAAA,SAAS,EAAE,IAAI,GAAG,SAAS;AAC3B,QAAA,YAAY,EAAE,IAAI,GAAG,SAAS;AAC9B,QAAA,UAAU,EAAE,GAAG,GAAG,SAAS;AAC5B,KAAA;AACD,IAAA,mBAAmB,EAAE;AACnB,QAAA,SAAS,EAAE,IAAI,GAAG,SAAS;AAC3B,QAAA,YAAY,EAAE,IAAI,GAAG,SAAS;AAC9B,QAAA,UAAU,EAAE,IAAI,GAAG,SAAS;AAC7B,KAAA;CACF;AAED;AACO,MAAM,gBAAgB,GAA2B;IACtD,aAAa,EAAE,MAAM;CACtB;AAED;;;;;;AAMG;AACG,SAAU,kBAAkB,CAAC,KAAa,EAAE,UAAkB,EAAA;AAClE,IAAA,IAAiC,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,IAAI,CAAC,EAAE;AAClF,QAAA,OAAO,CAAC;IACV;AAEA,IAAA,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC;IAG5C,OAAO,UAAU,GAAG,YAAY;AAClC;AAEA;;;;;;;;;;AAUG;AACG,SAAU,aAAa,CAC3B,QAAgB,EAChB,KAAa,EACb,WAAmB,EACnB,YAAoB,EACpB,eAAwB,EACxB,cAAuB,EAAA;IAEvB,IACE,OAAO,QAAQ,KAAK,QAAQ;QAC5B,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,WAAW,KAAK,QAAQ;QAC/B,OAAO,YAAY,KAAK,QAAQ;SAC/B,eAAe,KAAK,SAAS,IAAI,OAAO,eAAe,KAAK,QAAQ,CAAC;SACrE,cAAc,KAAK,SAAS,IAAI,OAAO,cAAc,KAAK,QAAQ,CAAC,EACpE;AACA,QAAA,OAAO,CAAC;IACV;AAEA,IAAA,MAAM,UAAU,GAAG,QAAQ,KAAK,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAEhG,IAAA,IAAI,CAAC,UAAU;AAAE,QAAA,OAAO,CAAC;;IAGzB,MAAM,SAAS,GACb,QAAQ,KAAK,UAAU,IAAI,UAAU,CAAC;UAClC,CAAC,cAAc,IAAI,CAAC,IAAI,UAAU,CAAC,YAAY,GAAG,CAAC,WAAW,IAAI,cAAc,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC;AACvG,UAAE,WAAW,GAAG,UAAU,CAAC,SAAS;AAExC,IAAA,MAAM,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC,UAAU;IACvD,MAAM,aAAa,GAAG,CAAC,eAAe,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU;AAEpE,IAAA,OAAO,SAAS,GAAG,UAAU,GAAG,aAAa;AAC/C;;AC9JA;;;;AAIG;AACG,SAAU,aAAa,CAAC,OAAe,EAAA;;IAE3C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;IAEvC,IAAI,KAAK,GAAG,CAAC;AAEb,IAAA,SAAS,KAAK,GAAA;QACZ,MAAM,OAAO,GAAgB,EAAE;AAC/B,QAAA,OAAO,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE;AAC7B,YAAA,cAAc,EAAE;AAChB,YAAA,MAAM,KAAK,GAAG,UAAU,EAAE;AAC1B,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,gBAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YACrB;iBAAO;gBACL,KAAK,EAAE,CAAC;YACV;QACF;AACA,QAAA,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO;IACpD;AAEA,IAAA,SAAS,UAAU,GAAA;AACjB,QAAA,cAAc,EAAE;AAChB,QAAA,MAAM,IAAI,GAAG,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,SAAS;QAC3B,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,WAAW,EAAE;QACtC,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,UAAU,EAAE;AACrC,QAAA,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,WAAW,EAAE;QACtD,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE;YAC5E,KAAK,IAAI,CAAC;AACV,YAAA,OAAO,IAAI;QACb;QACA,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;YAC7E,KAAK,IAAI,CAAC;AACV,YAAA,OAAO,KAAK;QACd;QACA,IAAI,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE;YAC5E,KAAK,IAAI,CAAC;AACV,YAAA,OAAO,IAAI;QACb;AACA,QAAA,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,WAAW,EAAE,CAAC;AAChD,QAAA,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,WAAW,EAAE;QACzE,OAAO,SAAS,CAAC;IACnB;AAEA,IAAA,SAAS,WAAW,GAAA;QAClB,MAAM,GAAG,GAAe,EAAE;QAC1B,KAAK,EAAE,CAAC;AACR,QAAA,cAAc,EAAE;QAChB,OAAO,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE,KAAK,GAAG,EAAE;AAClD,YAAA,cAAc,EAAE;AAChB,YAAA,MAAM,GAAG,GAAG,WAAW,EAAE;AACzB,YAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACrB,gBAAA,OAAO,CAAC,IAAI,CAAC,4BAA4B,KAAK,CAAA,CAAE,CAAC;AACjD,gBAAA,KAAK,EAAE;gBACP;YACF;AACA,YAAA,cAAc,EAAE;AAChB,YAAA,IAAI,OAAO,EAAE,KAAK,GAAG,EAAE;gBACrB,KAAK,EAAE,CAAC;YACV;iBAAO;gBACL,OAAO,CAAC,IAAI,CAAC,CAAA,yBAAA,EAA4B,GAAG,CAAA,cAAA,EAAiB,KAAK,CAAA,CAAE,CAAC;YACvE;AACA,YAAA,cAAc,EAAE;AAChB,YAAA,MAAM,KAAK,GAAG,UAAU,EAAE;AAC1B,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,OAAO,CAAC,IAAI,CAAC,CAAA,wBAAA,EAA2B,GAAG,CAAA,cAAA,EAAiB,KAAK,CAAA,CAAE,CAAC;AACpE,gBAAA,KAAK,EAAE;gBACP;YACF;AACA,YAAA,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAChB,YAAA,cAAc,EAAE;AAChB,YAAA,IAAI,OAAO,EAAE,KAAK,GAAG,EAAE;gBACrB,KAAK,EAAE,CAAC;YACV;iBAAO;gBACL;YACF;AACA,YAAA,cAAc,EAAE;QAClB;AACA,QAAA,IAAI,OAAO,EAAE,KAAK,GAAG,EAAE;YACrB,KAAK,EAAE,CAAC;QACV;aAAO;;YAEL,OAAO,IAAI,GAAG;QAChB;AACA,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,SAAS,UAAU,GAAA;QACjB,MAAM,GAAG,GAAc,EAAE;QACzB,KAAK,EAAE,CAAC;AACR,QAAA,cAAc,EAAE;QAChB,OAAO,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE,KAAK,GAAG,EAAE;AAClD,YAAA,MAAM,KAAK,GAAG,UAAU,EAAE;AAC1B,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,gBAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAA,CAAE,CAAC;AACnD,gBAAA,KAAK,EAAE;YACT;iBAAO;AACL,gBAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YACjB;AACA,YAAA,cAAc,EAAE;AAChB,YAAA,IAAI,OAAO,EAAE,KAAK,GAAG,EAAE;gBACrB,KAAK,EAAE,CAAC;YACV;iBAAO;gBACL;YACF;AACA,YAAA,cAAc,EAAE;QAClB;AACA,QAAA,IAAI,OAAO,EAAE,KAAK,GAAG,EAAE;YACrB,KAAK,EAAE,CAAC;QACV;aAAO;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,iDAAiD,KAAK,CAAA,CAAE,CAAC;QACxE;AACA,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,SAAS,WAAW,GAAA;AAClB,QAAA,MAAM,SAAS,GAAG,OAAO,EAAE;QAC3B,IAAI,MAAM,GAAG,EAAE;QACf,IAAI,QAAQ,GAAG,KAAK;QACpB,IAAI,SAAS,GAAG,EAAE;QAElB,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE;YAC1C,QAAQ,GAAG,IAAI;YACf,SAAS,GAAG,SAAS;YACrB,KAAK,EAAE,CAAC;QACV;AAEA,QAAA,OAAO,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE;AAC7B,YAAA,MAAM,IAAI,GAAG,OAAO,EAAE;YACtB,IAAI,QAAQ,EAAE;AACZ,gBAAA,IAAI,IAAI,KAAK,SAAS,EAAE;oBACtB,KAAK,EAAE,CAAC;AACR,oBAAA,OAAO,MAAM;gBACf;AAAO,qBAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACxB,oBAAA,KAAK,EAAE;AACP,oBAAA,MAAM,UAAU,GAAG,OAAO,EAAE;AAC5B,oBAAA,MAAM,eAAe,GAA8B;AACjD,wBAAA,CAAC,EAAE,IAAI;AACP,wBAAA,CAAC,EAAE,IAAI;AACP,wBAAA,CAAC,EAAE,IAAI;AACP,wBAAA,CAAC,EAAE,IAAI;AACP,wBAAA,CAAC,EAAE,IAAI;AACP,wBAAA,IAAI,EAAE,IAAI;AACV,wBAAA,GAAG,EAAE,GAAG;AACR,wBAAA,GAAG,EAAE,GAAG;AACR,wBAAA,GAAG,EAAE,GAAG;AACR,wBAAA,CAAC,EAAE,GAAG;qBACP;AACD,oBAAA,MAAM,IAAI,eAAe,CAAC,UAAU,CAAC,IAAI,UAAU;gBACrD;qBAAO;oBACL,MAAM,IAAI,IAAI;gBAChB;AACA,gBAAA,KAAK,EAAE;YACT;iBAAO;AACL,gBAAA,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5B,oBAAA,OAAO,MAAM;gBACf;qBAAO;oBACL,MAAM,IAAI,IAAI;AACd,oBAAA,KAAK,EAAE;gBACT;YACF;QACF;QACA,IAAI,QAAQ,EAAE;AACZ,YAAA,OAAO,CAAC,IAAI,CAAC,yDAAyD,KAAK,CAAA,CAAE,CAAC;QAChF;AACA,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,SAAS,WAAW,GAAA;QAClB,MAAM,WAAW,GAAG,+BAA+B;AACnD,QAAA,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;AACxB,YAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B;aAAO;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAA,CAAE,CAAC;AACnD,YAAA,KAAK,EAAE;AACP,YAAA,OAAO,SAAS;QAClB;IACF;AAEA,IAAA,SAAS,OAAO,GAAA;AACd,QAAA,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB;AAEA,IAAA,SAAS,cAAc,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AAAE,YAAA,KAAK,EAAE;IACtC;AAEA,IAAA,IAAI;QACF,OAAO,KAAK,EAAE;IAChB;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;QAClE,OAAO,CAAC,KAAK,CAAC,CAAA,+BAAA,EAAkC,KAAK,CAAA,EAAA,EAAK,GAAG,CAAA,CAAE,CAAC;AAChE,QAAA,OAAO,IAAI;IACb;AACF;AAEA;;;;;;;AAOG;AACG,SAAU,WAAW,CAAC,UAAkB,EAAA;AAC5C,IAAA,IAAI;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACtB,QAAA,OAAO,IAAI;IACb;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,KAAK;IACd;AACF;AASA,IAAI,MAAc;AAElB;;;;;AAKG;AACH,SAAS,gBAAgB,CAAC,MAAe,EAAA;IACvC,MAAM,GAAG,GAAa,OAAO,CAAC,GAAG,CAAC,cAAc;IAChD,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC;IACtG;IACA,OAAO,IAAI,MAAM,CAAC;AAChB,QAAA,MAAM,EAAE,GAAG;AACX,QAAA,cAAc,EAAE,EAAE,YAAY,EAAE,4DAA4D,EAAE;AAC/F,KAAA,CAAC;AACJ;AAEA;;;;;;;AAOG;AACI,eAAe,aAAa,CAAC,OAAe,EAAE,MAAe,EAAA;AAClE,IAAA,IAAI;QACF,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,gBAAgB,EAAE;QAC7B;QAEA,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACtD,YAAA,KAAK,EAAE,aAAa;AACpB,YAAA,QAAQ,EAAE;AACR,gBAAA;AACE,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,OAAO,EAAE,0FAA0F;AACpG,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,CAAA,uBAAA,EAA0B,OAAO,CAAA,CAAE;AAC7C,iBAAA;AACF,aAAA;AACD,YAAA,eAAe,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;AACzC,SAAA,CAAC;AAEF,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO;AAEzD,QAAA,IAAI,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;AACvC,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAC9B;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IAAE,OAAO,GAAY,EAAE;AACrB,QAAA,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,wBAAwB;AAClF,QAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,CAAA,CAAE,CAAC;IAC/D;AACF;;AC/RA;AAKM,SAAU,kBAAkB,CAAC,KAAa,EAAA;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAc;AAC3D;AAEO,MAAM,gBAAgB,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;AAEjH;;;;;;;;;;AAUG;AACE,eAAe,aAAa,CAAI,OAAe,EAAE,cAAoC,EAAA;AAC1F,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI;AAEzB,IAAA,IAAI,cAAc,KAAK,MAAM,KAAK,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,EAAE,IAAI,KAAK,aAAa,CAAC,EAAE;AAC/G,QAAA,IAAI,cAAc,GAAG,OAAO,CAAC,IAAI,EAAE;QACnC,IAAI,YAAY,GAAkB,IAAI;;QAGtC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;YACzD,IAAI,cAAc,CAAC,UAAU,CAAC,SAAS,IAAI,CAAA,CAAE,CAAC,EAAE;gBAC9C,YAAY,GAAG,IAAI;AACnB,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,OAAO,KAAK;AACd,QAAA,CAAC,CAAC;QAEF,IAAI,mBAAmB,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACzD,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;AACtD,YAAA,IAAI,iBAAiB,KAAK,EAAE,EAAE;AAC5B,gBAAA,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;gBACvE,OAAO,CAAC,GAAG,CAAC,CAAA,oBAAA,EAAuB,YAAY,CAAA,wCAAA,EAA2C,cAAc,CAAA,CAAE,CAAC;YAC7G;QACF;;AAGA,QAAA,MAAM,qBAAqB,GAAG;;AAE5B,YAAA,MAAK;AACH,gBAAA,IAAI;AACF,oBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;gBACnC;AAAE,gBAAA,MAAM;AACN,oBAAA,OAAO,IAAI;gBACb;YACF,CAAC;;AAED,YAAA,MAAK;gBACH,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBACzD,IAAI,SAAS,EAAE;AACb,oBAAA,IAAI;wBACF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACjC;AAAE,oBAAA,MAAM;AACN,wBAAA,OAAO,IAAI;oBACb;gBACF;AACA,gBAAA,OAAO,IAAI;YACb,CAAC;;AAED,YAAA,MAAK;gBACH,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;AACjE,gBAAA,IAAI;AACF,oBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBAC9B;AAAE,gBAAA,MAAM;AACN,oBAAA,OAAO,IAAI;gBACb;YACF,CAAC;;AAED,YAAA,MAAK;AACH,gBAAA,OAAO,aAAa,CAAC,cAAc,CAAC;YACtC,CAAC;;AAED,YAAA,MAAK;AACH,gBAAA,OAAO,aAAa,CAAC,cAAc,CAAC;YACtC,CAAC;SACF;;AAGD,QAAA,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE;AAC5C,YAAA,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE;AAC/B,YAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,gBAAA,OAAO,MAAW;YACpB;QACF;;QAGA,OAAO,CAAC,KAAK,CAAC,CAAA,mCAAA,EAAsC,cAAc,CAAA,iBAAA,EAAoB,OAAO,CAAA,CAAE,CAAC;AAChG,QAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;IAClD;SAAO;AACL,QAAA,OAAO,OAAY;IACrB;AACF;;ACrGA;AA6BA,MAAM,gBAAgB,GAAG,CAAC,KAAa,KAAuB;IAC5D,OAAO;QACL,aAAa;QACb,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,SAAS;QACT,SAAS;QACT,cAAc;QACd,cAAc;QACd,OAAO;QACP,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,SAAS;QACT,IAAI;AACL,KAAA,CAAC,QAAQ,CAAC,KAAK,CAAC;AACnB,CAAC;AAED;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,KAAa,EAAA;;;IAG/C,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC;AAC5H,IAAA,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChD;AAEA;;;;AAIG;AACG,SAAU,gBAAgB,CAAC,KAAa,EAAA;AAC5C,IAAA,MAAM,eAAe,GAA2B,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC;AAC7F,IAAA,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAoB,CAAC;AACvD;AAEA;;;;AAIG;AACG,SAAU,WAAW,CAAC,KAAa,EAAA;IACvC,MAAM,UAAU,GAA2B,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC;AAC3F,IAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAoB,CAAC;AAClD;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACI,MAAM,oBAAoB,GAAG,OAClC,KAAyD,EACzD,OAAA,GAGI,EAAE,KACqB;IAC3B,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;IAE1E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;IAC3D,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC;IACtG;AAEA,IAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;AACxB,QAAA,MAAM,EAAE,MAAM;AACf,KAAA,CAAC;;AAGF,IAAA,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO;AAEzD,IAAA,MAAM,WAAW,GAAqC;AACpD,QAAA,KAAK,EAAE,eAAe;QACtB,KAAK;AACL,QAAA,GAAG,YAAY;KAChB;;IAGD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC;;AAG3D,IAAA,MAAM,SAAS,GAAG,QAAQ,CAAC;AACzB,UAAE,MAAM,CAAC,CAAC,IAAwB,KAAuC,IAAI,CAAC,IAAI,KAAK,eAAe;AACrG,SAAA,GAAG,CAAC,CAAC,QAAkC,MAAM;QAC5C,EAAE,EAAE,QAAQ,CAAC,OAAO;AACpB,QAAA,IAAI,EAAE,UAAmB;AACzB,QAAA,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;AAC9B,SAAA;AACF,KAAA,CAAC,CAAC;;AAGL,IAAA,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAClD,CAAC,IAAwB,KAA8C,IAAI,CAAC,IAAI,KAAK,uBAAuB,CAC7G;IACD,IAAI,sBAAsB,GAA2D,SAAS;IAC9F,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;;QAE3D,sBAAsB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;;YAE3D,IAAI,EAAE,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC,OAAO;AACjC,YAAA,OAAO,EAAE;AACX,QAAA,CAAC,CAAC;IACJ;;IAGA,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACrC,OAAO;AACL,YAAA,QAAQ,EAAE;gBACR,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;oBACjC,EAAE,EAAE,EAAE,CAAC,EAAE;AACT,oBAAA,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;oBACtB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC7C,iBAAA,CAAC,CAAC;AACC,aAAA;AACN,YAAA,KAAK,EAAE;AACL,gBAAA,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;AAChD,gBAAA,iBAAiB,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;gBACrD,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,IAAI,CAAC;AAC9E,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,KAAK,EAAE,eAA2B;AAClC,gBAAA,IAAI,EAAE,aAAa,CACjB,QAAQ,EACR,eAA2B,EAC3B,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,EACjC,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,EAClC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,IAAI,CAAC,CAC7D;AACF,aAAA;AACD,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,IAAI,sBAAsB,GAAG,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,GAAG,EAAE,CAAC;SACxF;IACH;;AAGA,IAAA,MAAM,WAAW,GACf,QAAQ,CAAC;AACP,UAAE,MAAM,CAAC,CAAC,IAAwB,KAAoC,IAAI,CAAC,IAAI,KAAK,SAAS;SAC5F,GAAG,CAAC,CAAC,IAA2B,KAC/B,IAAI,CAAC;SACF,MAAM,CAAC,CAAC,OAAO,KAAoC,OAAO,CAAC,IAAI,KAAK,aAAa;SACjF,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI;SAC7B,IAAI,CAAC,EAAE,CAAC;AAEZ,SAAA,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;;IAGnB,IAAI,aAAa,GAAyB,MAAM;IAChD,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,aAAa,EAAE;QACpD,aAAa,GAAG,MAAM;IACxB;;IAGA,MAAM,cAAc,GAAG,MAAM,aAAa,CAAI,WAAW,EAAE,aAAa,CAAC;AACzE,IAAA,IAAI,cAAc,KAAK,IAAI,EAAE;AAC3B,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;IAChE;IAEA,OAAO;AACL,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,KAAK,EAAE;AACL,YAAA,aAAa,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;AAChD,YAAA,iBAAiB,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;YACrD,gBAAgB,EAAE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,IAAI,CAAC;AAC9E,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,KAAK,EAAE,eAA2B;AAClC,YAAA,IAAI,EAAE,aAAa,CACjB,QAAQ,EACR,eAA2B,EAC3B,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,EACjC,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,EAClC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,IAAI,CAAC,CAC7D;AACF,SAAA;AACD,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,IAAI,sBAAsB,GAAG,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,GAAG,EAAE,CAAC;KACxF;AACH,CAAC;AAED;;;;;;;;;;;;;;;AAeG;AACI,eAAe,WAAW,CAC/B,KAAa,EACb,UAUI,EAAE,EAAA;AAEN,IAAA,MAAM,EACJ,MAAM,EACN,KAAK,GAAG,aAAa,EACrB,cAAc,GAAG,MAAM,EACvB,KAAK,EACL,kBAAkB,GAAG,KAAK,EAC1B,YAAY,GAAG,KAAK,EACpB,WAAW,EACX,WAAW,GAAG,MAAM,EACpB,OAAO,GACR,GAAG,OAAO;;AAGX,IAAA,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACjD,IAAA,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE;AACtC,QAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,eAAe,CAAA,yCAAA,CAA2C,CAAC;IACnG;;AAGA,IAAA,IAAI,cAAsC;IAE1C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;;QAEjC,MAAM,oBAAoB,GAAuB,EAAE;;AAGnD,QAAA,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE;YAChC,oBAAoB,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,OAAO,EAAE,UAAU,CAAC,OAAO;AAC3B,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA,CAAC;QACJ;;QAGA,IAAI,WAAW,EAAE;;YAEf,oBAAoB,CAAC,IAAI,CAAC;AACxB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,OAAO,EAAE;AACP,oBAAA,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE;AACnC,oBAAA;AACE,wBAAA,IAAI,EAAE,aAAa;AACnB,wBAAA,MAAM,EAAE,WAAW;AACnB,wBAAA,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,CAAA,uBAAA,EAA0B,WAAW,CAAA,CAAE;AACnG,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA,CAAC;QACJ;aAAO;;YAEL,oBAAoB,CAAC,IAAI,CAAC;AACxB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA,CAAC;QACJ;QAEA,cAAc,GAAG,oBAAoB;IACvC;SAAO,IAAI,WAAW,EAAE;;AAEtB,QAAA,cAAc,GAAG;AACf,YAAA;AACE,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,OAAO,EAAE;AACP,oBAAA,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE;AACnC,oBAAA;AACE,wBAAA,IAAI,EAAE,aAAa;AACnB,wBAAA,MAAM,EAAE,WAAW;AACnB,wBAAA,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,CAAA,uBAAA,EAA0B,WAAW,CAAA,CAAE;AACnG,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA;SACF;IACH;SAAO;;QAEL,cAAc,GAAG,KAAK;IACxB;;AAGA,IAAA,IAAI,gBAAgB,GAA+C;QACjE,MAAM;AACN,QAAA,KAAK,EAAE,eAAe;AACtB,QAAA,mBAAmB,EAAE,KAAK;QAC1B,KAAK;KACN;;AAGD,IAAA,IAAI,mBAAmB,CAAC,eAAe,CAAC,EAAE;AACxC,QAAA,gBAAgB,CAAC,WAAW,GAAG,GAAG;IACpC;;AAGA,IAAA,IAAI,cAAc,KAAK,MAAM,EAAE;AAC7B,QAAA,gBAAgB,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;IAC7D;;IAGA,IAAI,kBAAkB,EAAE;AACtB,QAAA,gBAAgB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;;AAEpF,QAAA,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE;YACtC,gBAAgB,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE;QAC7D;AACA,QAAA,gBAAgB,CAAC,OAAO,GAAG,CAAC,+BAA+B,CAAC;IAC9D;IAEA,IAAI,YAAY,EAAE;QAChB,gBAAgB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;;AAEzD,QAAA,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE;YACvE,gBAAgB,CAAC,WAAW,GAAG,EAAE,IAAI,EAAE,oBAAoB,EAAE;QAC/D;IACF;AAEA,IAAA,OAAO,MAAM,oBAAoB,CAAI,cAAc,EAAE,gBAAgB,CAAC;AACxE;;AC/WA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;AACI,eAAe,cAAc,CAClC,MAAc,EACd,UAAkC,EAAE,EAAA;AAEpC,IAAA,MAAM,EACJ,IAAI,GAAG,MAAM,EACb,YAAY,GAAG,MAAM,EACrB,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,MAAM,EAChB,KAAK,GAAG,CAAC,EACT,UAAU,GAAG,MAAM,EACnB,UAAU,GAAG,MAAM,EACnB,MAAM,EACP,GAAG,OAAO;;IAGX,MAAM,eAAe,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;IAC5D,IAAI,CAAC,eAAe,EAAE;AACpB,QAAA,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC;IACtG;;IAGA,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACzC,QAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;IACtD;AAEA,IAAA,IAAI,KAAK,KAAK,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,EAAE;AACtC,QAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;IACnD;AAEA,IAAA,IAAI,WAAW,KAAK,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,GAAG,CAAC,EAAE;AACzD,QAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;IAC1D;AAEA,IAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;AACxB,QAAA,MAAM,EAAE,eAAe;AACxB,KAAA,CAAC;;AAGF,IAAA,MAAM,aAAa,GAAwB;AACzC,QAAA,KAAK,EAAE,aAA2B;QAClC,MAAM;QACN,CAAC,EAAE,KAAK,IAAI,CAAC;QACb,IAAI,EAAE,IAAI,IAAI,MAAM;QACpB,OAAO,EAAE,OAAO,IAAI,MAAM;QAC1B,UAAU,EAAE,UAAU,IAAI,MAAM;QAChC,UAAU,EAAE,UAAU,IAAI,MAAM;KACjC;;IAGD,IAAI,YAAY,EAAE;AAChB,QAAA,aAAa,CAAC,aAAa,GAAG,YAAY;IAC5C;;AAGA,IAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,QAAA,aAAa,CAAC,kBAAkB,GAAG,WAAW;IAChD;AAEA,IAAA,IAAI;;QAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;;AAG5D,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAChD,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;QAC9D;;QAGA,MAAM,IAAI,GAAG,kBAAkB,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,CAAC;;AAG5D,QAAA,MAAM,gBAAgB,GAA2B;AAC7C,YAAA,GAAG,QAAQ;AACX,YAAA,KAAK,EAAE;;AAEL,gBAAA,IAAI,QAAQ,CAAC,KAAK,IAAI;AACpB,oBAAA,YAAY,EAAE,CAAC;oBACf,oBAAoB,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;AACzD,oBAAA,aAAa,EAAE,CAAC;AAChB,oBAAA,YAAY,EAAE,CAAC;iBAChB,CAAC;AACF,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,KAAK,EAAE,aAA2B;gBAClC,IAAI;AACL,aAAA;SACF;AAED,QAAA,OAAO,gBAAgB;IACzB;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe;AACxE,QAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,CAAA,CAAE,CAAC;IAC9D;AACF;;ACrIA;;AAEG;AACH,MAAM,wBAAwB,GAAG;AAC/B,IAAA,YAAY,EAAE,eAAgC;CAC/C;AAED;;;;AAIG;AACH,MAAM,wBAAwB,GAAG,CAAC,KAAa,KAA4B;IACzE,OAAO,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC/D,CAAC;AAED;;;;AAIG;AACH,MAAM,kBAAkB,GAAG,CAAC,KAAa,KAAa;IACpD,OAAO,KAAK,KAAK,eAAe;AAClC,CAAC;AAED;;;;AAIG;AACH,MAAM,mBAAmB,GAAG,CAAC,KAAa,KAAa;IACrD,OAAO,KAAK,KAAK,eAAe;AAClC,CAAC;AAED;;;;;;AAMG;AACH,SAAS,+BAA+B,CAAC,cAAoC,EAAE,KAAa,EAAA;;IAE1F,IAAI,cAAc,KAAK,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;AAC3D,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,yDAAA,CAA2D,CAAC;AACvF,QAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACzB;AAEA,IAAA,IAAI,cAAc,KAAK,MAAM,EAAE;AAC7B,QAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACzB;AACA,IAAA,IAAI,cAAc,KAAK,MAAM,KAAK,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE;AAC9G,QAAA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;IAChC;AACA,IAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;AACzB;AAEA;;;;;;;AAOG;AACH,eAAe,wBAAwB,CACrC,OAA6C,EAC7C,cAAoC,EACpC,UAAsB,EAAE,EAAA;;IAGxB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,wBAAwB,CAAC,YAAY;AAC1E,IAAA,MAAM,eAAe,GAAG,kBAAkB,CAAC,WAAW,CAAC;;AAGvD,IAAA,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,EAAE;AAC9C,QAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,eAAe,CAAA,oDAAA,CAAsD,CAAC;IACvH;;AAGA,IAAA,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE;AACtF,QAAA,MAAM,IAAI,KAAK,CAAC,SAAS,eAAe,CAAA,+BAAA,CAAiC,CAAC;IAC5E;IAEA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;IAC7D,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC;IAC1G;;AAGA,IAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM;AACN,QAAA,OAAO,EAAE,0BAA0B;AACpC,KAAA,CAAC;IAEF,MAAM,QAAQ,GAAiC,EAAE;;AAGjD,IAAA,IAAI,OAAO,CAAC,eAAe,EAAE;QAC3B,QAAQ,CAAC,IAAI,CAAC;AACZ,YAAA,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,OAAO,CAAC,eAAe;AACjC,SAAA,CAAC;IACJ;;AAGA,IAAA,IAAI,OAAO,CAAC,OAAO,EAAE;QACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IACnC;;AAGA,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,QAAQ,CAAC,IAAI,CAAC;AACZ,YAAA,IAAI,EAAE,MAAM;YACZ,OAAO;AACR,SAAA,CAAC;IACJ;SAAO;QACL,QAAQ,CAAC,IAAI,CAAC;AACZ,YAAA,IAAI,EAAE,MAAM;YACZ,OAAO;AACR,SAAA,CAAC;IACJ;;AAGA,IAAA,IAAI,CAAC,cAAc,KAAK,MAAM,KAAK,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,KAAK,aAAa,CAAC;AACxG,WAAA,kBAAkB,CAAC,eAAe,CAAC,EAAE;;AAE1C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE;YAC5C,QAAQ,CAAC,OAAO,CAAC;AACf,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE,sCAAsC;AAChD,aAAA,CAAC;QACJ;aAAO;;AAEL,YAAA,MAAM,cAAc,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AACnE,YAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC;AAC1C,YAAA,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACzC,QAAQ,CAAC,cAAc,CAAC,GAAG;AACzB,oBAAA,GAAG,SAAS;AACZ,oBAAA,OAAO,EAAE,CAAA,EAAG,SAAS,CAAC,OAAO,CAAA,qCAAA,CAAuC;iBACrE;YACH;QACF;IACF;AAEA,IAAA,MAAM,YAAY,GAA+B;AAC/C,QAAA,KAAK,EAAE,eAAe;QACtB,QAAQ;AACR,QAAA,eAAe,EAAE,+BAA+B,CAAC,cAAc,EAAE,eAAe,CAAC;QACjF,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,UAAU,EAAE,OAAO,CAAC,qBAAqB;KAC1C;;IAGD,IAAI,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAAC,eAAe,CAAC,EAAE;AACzD,QAAA,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;IACpC;AAEA,IAAA,IAAI;AACF,QAAA,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC;QAErE,OAAO;YACL,EAAE,EAAE,UAAU,CAAC,EAAE;AACjB,YAAA,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE;YACtD,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU;AACtD,YAAA,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI;AACzB,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,YAAY,EAAE,CAAC;AAChB,aAAA;YACD,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;AACjD,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,KAAK,EAAE,eAAgC;SACxC;IACH;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC;AACnD,QAAA,MAAM,KAAK;IACb;AACF;AAEA;;;;;;;AAOG;AACI,MAAM,gBAAgB,GAAG,OAC9B,OAA6C,EAC7C,cAAA,GAAuC,MAAM,EAC7C,OAAA,GAAsB,EAAE,KACG;;AAE3B,IAAA,MAAM,aAAa,GAAG;AACpB,QAAA,GAAG,OAAO;KACX;AAED,IAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AACxB,QAAA,aAAa,CAAC,KAAK,GAAG,wBAAwB,CAAC,YAAY;IAC7D;IAEA,MAAM,SAAS,GAAG,kBAAkB,CAAC,aAAa,CAAC,KAAe,CAAC;;IAGnE,IAAI,cAAc,KAAK,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;AAC/D,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,SAAS,CAAA,iEAAA,CAAmE,CAAC;QACnG,OAAO;AACL,YAAA,QAAQ,EAAE;gBACR,KAAK,EAAE,CAAA,MAAA,EAAS,SAAS,CAAA,qCAAA;AACV,aAAA;AACjB,YAAA,KAAK,EAAE;AACL,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,KAAK,EAAE,SAA0B;AACjC,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,IAAI,EAAE,CAAC;AACR,aAAA;AACD,YAAA,UAAU,EAAE,SAAS;SACtB;IACH;;AAGA,IAAA,IAAI,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE;AAC5F,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,SAAS,CAAA,kEAAA,CAAoE,CAAC;QACpG,OAAO;AACL,YAAA,QAAQ,EAAE;gBACR,KAAK,EAAE,CAAA,MAAA,EAAS,SAAS,CAAA,+BAAA;AACV,aAAA;AACjB,YAAA,KAAK,EAAE;AACL,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,KAAK,EAAE,SAA0B;AACjC,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,IAAI,EAAE,CAAC;AACR,aAAA;AACD,YAAA,UAAU,EAAE,SAAS;SACtB;IACH;AAEA,IAAA,IAAI;QACF,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC;;AAGzF,QAAA,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7D,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC;iBACxB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,UAAU;AACrC,iBAAA,GAAG,CAAC,CAAC,EAAE,MAAM;gBACZ,EAAE,EAAE,EAAE,CAAC,EAAE;AACT,gBAAA,IAAI,EAAG,EAA+C,CAAC,QAAQ,CAAC,IAAI;gBACpE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAE,EAA+C,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC3F,aAAA,CAAC,CAAC;YACL,OAAO;AACL,gBAAA,QAAQ,EAAE,EAAE,UAAU,EAAE,OAAO,EAAO;AACtC,gBAAA,KAAK,EAAE;AACL,oBAAA,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,aAAa;AAC7C,oBAAA,iBAAiB,EAAE,UAAU,CAAC,KAAK,CAAC,iBAAiB;oBACrD,gBAAgB,EAAE,CAAC;AACnB,oBAAA,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,gBAAgB,EAAE,CAAC;oBACnB,IAAI,EAAE,aAAa,CACjB,UAAU,EACV,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,KAAK,CAAC,aAAa,EAC9B,UAAU,CAAC,KAAK,CAAC,iBAAiB,EAClC,CAAC,EACD,CAAC;AACF,qBAAA;AACF,iBAAA;gBACD,UAAU,EAAE,UAAU,CAAC,UAAU;aAClC;QACH;;QAGF,MAAM,cAAc,GAAG,MAAM,aAAa,CAAI,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC;AAC/E,QAAA,IAAI,cAAc,KAAK,IAAI,EAAE;AAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;QACtD;QAEA,OAAO;AACL,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,KAAK,EAAE;AACL,gBAAA,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,aAAa;AAC7C,gBAAA,iBAAiB,EAAE,UAAU,CAAC,KAAK,CAAC,iBAAiB;gBACrD,gBAAgB,EAAE,CAAC;AACnB,gBAAA,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,gBAAgB,EAAE,CAAC;gBACnB,IAAI,EAAE,aAAa,CACjB,UAAU,EACV,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,KAAK,CAAC,aAAa,EAC9B,UAAU,CAAC,KAAK,CAAC,iBAAiB,EAClC,CAAC,EACD,CAAC;AACF,iBAAA;AACF,aAAA;YACD,UAAU,EAAE,UAAU,CAAC,UAAU;SAClC;IACH;IAAE,OAAO,KAAK,EAAE;;AAEd,QAAA,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC;QACnD,OAAO;AACL,YAAA,QAAQ,EAAE;AACR,gBAAA,KAAK,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG;AACjC,aAAA;AACjB,YAAA,KAAK,EAAE;AACL,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,KAAK,EAAE,SAA0B;AACjC,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,IAAI,EAAE,CAAC;AACR,aAAA;AACD,YAAA,UAAU,EAAE,SAAS;SACtB;IACH;AACF,CAAC;;ACjVD;AA0BA;AACA,SAAS,oBAAoB,CAAC,OAAyB,EAAA;AACrD,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AACzB,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,WAAW,GAAG,QAAQ,GAAG,GAAG,CAAC,IAAI;QAC3D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAgC;AACrE,IAAA,CAAC,CAAC;AACJ;AAEA,SAAS,iBAAiB,CAAC,KAAc,EAAA;AACvC,IAAA,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AAAE,QAAA,OAAO,KAAK;IAC9C,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,IAAI,aAAa,CAAC;IACvD,OAAO,CAAA,OAAA,EAAU,IAAI,CAAA,CAAE;AACzB;AAEA;AACA,SAAS,wBAAwB,CAAC,KAAyB,EAAA;AACzD,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAAE;AACvF,IAAA,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC9F,IAAA,MAAM,QAAQ,IAAI,aAAa,KAAK,UAAU,GAAG,UAAU,GAAG,QAAQ,CAA0B;IAChG,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,IAAI,KAAK,CAAC;AACzD,IAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE;AAChC;AAsBA;;;AAGG;AACI,eAAe,kBAAkB,CACtC,KAAa,EACb,UAAiC,EAAE,EAAA;IAEnC,MAAM,EACJ,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EACvC,KAAK,EACL,cAAc,GAAG,MAAM,EACvB,KAAK,EACL,UAAU,EACV,OAAO,EACP,eAAe,EACf,WAAW,GAAG,GAAG,EACjB,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,gBAAgB,EAChB,IAAI,EACJ,IAAI,EACJ,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,EACzC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,GACzC,GAAG,OAAO;IAEX,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC;IACzF;AAEA,IAAA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM;AACN,QAAA,OAAO,EAAE,8BAA8B;AACvC,QAAA,cAAc,EAAE;AACd,YAAA,IAAI,OAAO,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC/C,YAAA,IAAI,KAAK,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACvC,SAAA;AACF,KAAA,CAAC;IAEF,MAAM,QAAQ,GAAiC,EAAE;AACjD,IAAA,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE;AAC7C,QAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAC7D;IACA,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,QAAQ,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACjD;AACA,IAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;AAG/C,IAAA,IAAI,eAAoD;IACxD,IAAI,aAAa,GAAyB,MAAM;AAChD,IAAA,IAAI,cAAc,KAAK,MAAM,EAAE;AAC7B,QAAA,eAAe,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE;QACzC,aAAa,GAAG,MAAM;IACxB;AAAO,SAAA,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;AAC7C,QAAA,eAAe,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE;QACzC,aAAa,GAAG,cAAc;IAChC;AAEA,IAAA,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC;IAExC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACtD,QAAA,KAAK,EAAE,OAAO;QACd,QAAQ;QACR,eAAe;QACf,KAAK;AACL,QAAA,WAAW,EAAE,UAAU;QACvB,WAAW;QACX,UAAU;QACV,KAAK;QACL,iBAAiB;QACjB,gBAAgB;QAChB,IAAI;QACJ,IAAI;AACL,KAAA,CAAC;IAEF,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS;AACtG,IAAA,MAAM,OAAO,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,SAAS,CAE9D;AAEb,IAAA,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,wBAAwB,CAAC,OAAO,CAAC;IAClF,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;IACzD,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,EAAE,iBAAiB,IAAI,CAAC;AACjE,IAAA,MAAM,IAAI,GAAG,aAAa,CAAC,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,CAAC;;AAGtF,IAAA,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,OAAQ,CAAC,UAAW,CAAC,MAAM,GAAG,CAAC;IAC1F,IAAI,YAAY,EAAE;AAChB,QAAA,MAAM,UAAU,GAAa,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAI,aAA0B;QAC/F,OAAO;AACL,YAAA,QAAQ,EAAE,EAAO;AACjB,YAAA,KAAK,EAAE;AACL,gBAAA,aAAa,EAAE,YAAY;AAC3B,gBAAA,iBAAiB,EAAE,gBAAgB;AACnC,gBAAA,QAAQ,EAAE,YAAY;AACtB,gBAAA,KAAK,EAAE,UAAU;gBACjB,IAAI;AACL,aAAA;YACD,UAAU,EAAE,OAAQ,CAAC,UAA6C;SACnE;IACH;AAEA,IAAA,MAAM,OAAO,GAAG,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,EAAE;IAC3E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAI,OAAO,EAAE,aAAa,CAAC;AAC7D,IAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,QAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;IACxD;;AAGA,IAAA,MAAM,UAAU,GAAa,iBAAiB,CAAC,OAAO,CAAC,GAAG,OAAO,GAAI,aAA0B;IAE/F,OAAO;AACL,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,KAAK,EAAE;AACL,YAAA,aAAa,EAAE,YAAY;AAC3B,YAAA,iBAAiB,EAAE,gBAAgB;AACnC,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,KAAK,EAAE,UAAU;YACjB,IAAI;AACL,SAAA;AACD,QAAA,IAAI,YAAY,GAAG,EAAE,UAAU,EAAE,OAAQ,CAAC,UAA6C,EAAE,GAAG,EAAE,CAAC;KAChG;AACH;;ACjMA;;;;;;;;;;;;;;;;;;;;;AAqBG;MACU,gBAAgB,CAAA;AACnB,IAAA,SAAS;AACT,IAAA,WAAW;AACX,IAAA,SAAS;AAEjB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACvB;AAEA;;;;AAIG;IACH,iBAAiB,GAAA;AACf,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;AACxE,QAAA,OAAO,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9C;AAEA;;;;AAIG;AACH,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC;IAChD;AAEA;;AAEG;IACH,IAAI,GAAA;QACF,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;IACrD;AAEA;;;;;;AAMG;IACH,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC;QACnE;AAEA,QAAA,MAAM,MAAM,GAAsB;YAChC,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,YAAA,MAAM,EAAE;SACT;AAED,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS;;AAG7B,QAAA,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC5D,aAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9B,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,iBAAiB,EAAE;AAC7C,YAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,QAAQ;AAChC,YAAA,IAAI,QAAQ,GAAG,CAAC,EAAE;AAChB,gBAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,KAAK,CAAA,CAAE,CAAC;YACxE;AACA,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,KAAK;gBACL;AACD,aAAA,CAAC;YACF,QAAQ,GAAG,IAAI;QACjB;;AAGA,QAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ;AAC/C,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACjB,gBAAA,KAAK,EAAE,kBAAkB;gBACzB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;AACrC,aAAA,CAAC;QACJ;AACA,QAAA,OAAO,MAAM;IACf;AAEA;;;;AAIG;IACI,cAAc,GAAA;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE;;QAGvC,MAAM,YAAY,GAAG,CAAC,GAAW,KAC/B,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC;;QAGrF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;AAC9E,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;;QAGlG,IAAI,MAAM,GAAG,CAAA,CAAA,EAAI,GAAG,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,CAAA,CAAA,EAAI,GAAG,CAAC,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAA,GAAA,CAAK;AACzF,QAAA,MAAM,IAAI,CAAA,EAAA,EAAK,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA,GAAA,EAAM,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM;QAC9F,MAAM,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC,KAAK;;AAGtF,QAAA,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAG;YAC5B,MAAM,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA,GAAA,EAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA,IAAA,CAAM;AACvH,QAAA,CAAC,CAAC;;QAGF,MAAM,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC,KAAK;QACtF,MAAM,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA,GAAA,EAAM,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA,IAAA,CAAM;QACnH,MAAM,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC,KAAK;AAEtF,QAAA,OAAO,MAAM;IACf;AACD;;ACtID;;;;;;;;;;AAUG;AACG,SAAU,uBAAuB,CACrC,SAA6B,EAC7B,EAAE,MAAM,GAAG,EAAE,EAAE,kBAAkB,GAAG,CAAC,KAA2B,EAAE,EAAA;AAElE,IAAA,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,EAAE;QAC7B,UAAU,CACR,wEAAwE,MAAM,CAAA,oBAAA,EAAuB,SAAS,CAAC,MAAM,CAAA,gBAAA,CAAkB,CACxI;AACD,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,MAAM,GAAyB,EAAE;AAEvC,IAAA,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,QAAA,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC1D,QAAA,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;;AAG9C,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;AACzD,QAAA,MAAM,GAAG,GAAG,GAAG,GAAG,MAAM;;QAGxB,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM;QAC/E,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAG7C,QAAA,MAAM,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,kBAAkB;AAC9D,QAAA,MAAM,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,kBAAkB;QAE9D,MAAM,CAAC,IAAI,CAAC;AACV,YAAA,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;YACvB,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvC,YAAA,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;AAC1B,SAAA,CAAC;IACJ;;AAGA,IAAA,OAAO,MAAM;AACf;AAIA;;;;;;;;;AASG;AACG,SAAU,YAAY,CAAC,SAA6B,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,KAAgB,EAAE,EAAA;AACtG,IAAA,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,KAAK,OAAO,IAAI,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE;QACxE,UAAU,CACR,CAAA,yDAAA,EAA4D,MAAM,CAAA,EAAA,EAAK,OAAO,CAAA,oBAAA,EAAuB,SAAS,CAAC,MAAM,CAAA,gBAAA,CAAkB,CACxI;AACD,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,MAAM,GAAc,EAAE;IAC5B,MAAM,UAAU,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;AACnC,IAAA,MAAM,WAAW,GAAG,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC;;IAGnD,IAAI,GAAG,GAAG,CAAC;AACX,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;IAC3B;AACA,IAAA,IAAI,OAAO,GAAG,GAAG,GAAG,MAAM;;AAG1B,IAAA,IAAI,QAAQ;IACZ,IAAI,OAAO,EAAE;QACX,GAAG,GAAG,CAAC;AACP,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AAChC,YAAA,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;QAC3B;AACA,QAAA,QAAQ,GAAG,GAAG,GAAG,OAAO;IAC1B;;AAGA,IAAA,MAAM,UAAU,GAAY;AAC1B,QAAA,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;QACxD,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACnC,QAAA,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;KAC3D;IACD,IAAI,OAAO,EAAE;AACX,QAAA,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,QAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpD;AACA,IAAA,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;;IAGvB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtE,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;QACvC,MAAM,UAAU,GAAG,CAAC,YAAY,GAAG,OAAO,IAAI,UAAU,GAAG,OAAO;QAClE,OAAO,GAAG,UAAU;AAEpB,QAAA,MAAM,KAAK,GAAY;AACrB,YAAA,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;YACvB,GAAG,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtC,YAAA,KAAK,EAAE,YAAY;SACpB;QAED,IAAI,OAAO,EAAE;YACX,MAAM,WAAW,GAAW,CAAC,YAAY,GAAG,QAAS,IAAI,WAAW,GAAG,QAAS;YAChF,QAAQ,GAAG,WAAW;AACtB,YAAA,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjD;AAEA,QAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACpB;;AAGA,IAAA,OAAO,MAAM;AACf;AAIA;;;;;;;;;;;AAWG;SACa,wBAAwB,CACtC,SAA6B,EAC7B,EACE,cAAc,GAAG,EAAE,EACnB,iBAAiB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,EACrD,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EACvC,gBAAgB,GAAG,KAAK,MACL,EAAE,EAAA;IAEvB,MAAM,MAAM,GAAoB,EAAE;AAElC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3D,QAAA,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ;QAEvC,MAAM,KAAK,GAAG,gBAAgB,GAAG,WAAW,GAAG,SAAS;QACxD,IAAI,MAAM,GAAqB,EAAE;AAEjC,QAAA,IAAI,UAAU,GAAG,CAAC,EAAE;;AAElB,YAAA,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAClC,gBAAA,MAAM,KAAK,GAAG,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK;gBAE/F,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK;oBACL,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACnC,oBAAA,IAAI,EAAE,aAAa;AACpB,iBAAA,CAAC;AACJ,YAAA,CAAC,CAAC;;AAGF,YAAA,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;gBAChC,MAAM,KAAK,GAAG;sBACV,SAAS,GAAG,UAAU,IAAI,KAAK,GAAG,CAAC,CAAC;AACtC,sBAAE,SAAS,GAAG,UAAU,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;gBAEzC,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK;oBACL,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACnC,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA,CAAC;AACJ,YAAA,CAAC,CAAC;;AAGF,YAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACnF;aAAO;YACL,UAAU,CAAC,CAAA,4BAAA,EAA+B,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA,uBAAA,CAAyB,CAAC;QACvF;QAEA,MAAM,CAAC,IAAI,CAAC;AACV,YAAA,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;YACvB,MAAM;YACN,SAAS;YACT,QAAQ;YACR,KAAK;AACL,YAAA,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;AAC1B,SAAA,CAAC;IACJ;;AAGA,IAAA,OAAO,MAAM;AACf;AAIA;;;;;;;;;;AAUG;SACa,aAAa,CAC3B,SAA6B,EAC7B,EAAE,WAAW,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,YAAY,GAAG,CAAC,KAAiB,EAAE,EAAA;IAExE,IAAI,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,YAAY,EAAE;QAChD,UAAU,CACR,CAAA,0DAAA,EAA6D,UAAU,GAAG,YAAY,CAAA,oBAAA,EACpF,SAAS,CAAC,MACZ,CAAA,gBAAA,CAAkB,CACnB;AACD,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACjE,IAAA,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;;IAG/D,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE;QACpC,UAAU,CAAC,oEAAoE,CAAC;AAChF,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACxE,MAAM,QAAQ,GAAa,eAAe,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,CAAS,KAAK,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAKzG,MAAM,MAAM,GAAe,EAAE;AAE7B,IAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,YAAY,EAAE;QAClC,UAAU,CACR,yEAAyE,YAAY,CAAA,oBAAA,EAAuB,QAAQ,CAAC,MAAM,CAAA,gBAAA,CAAkB,CAC9I;AACD,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,gBAAgB,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;AAC/C,IAAA,IAAI,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,YAAY;AAGjG,IAAA,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;QAC7B,SAAS,GAAG,CAAC,SAAS,GAAG,SAAS,IAAI,gBAAgB,GAAG,SAAS;AAGlE,QAAA,MAAM,IAAI,GAAG,SAAS,GAAG,SAAS;QAGlC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YACrB,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACxC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtC,YAAA,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;AACxB,SAAA,CAAC;IACJ;;AAGA,IAAA,OAAO,MAAM;AACf;AAIA;;;;;;;;AAQG;AACG,SAAU,YAAY,CAAC,SAA6B,EAAE,EAAE,MAAM,GAAG,EAAE,EAAA,GAAgB,EAAE,EAAA;IACzF,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE;QACjC,UAAU,CACR,CAAA,yDAAA,EAA4D,MAAM,GAAG,CAAC,CAAA,oBAAA,EACpE,SAAS,CAAC,MACZ,CAAA,gBAAA,CAAkB,CACnB;AACD,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,MAAM,GAAc,EAAE;IAC5B,IAAI,OAAO,GAAG,CAAC;IACf,IAAI,OAAO,GAAG,CAAC;;AAGf,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;AAChC,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC1D,QAAA,IAAI,MAAM,IAAI,CAAC,EAAE;YACf,OAAO,IAAI,MAAM;QACnB;aAAO;AACL,YAAA,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAC7B;IACF;AAEA,IAAA,OAAO,GAAG,OAAO,GAAG,MAAM;AAC1B,IAAA,OAAO,GAAG,OAAO,GAAG,MAAM;;AAG1B,IAAA,IAAI,EAAE,GAAG,OAAO,GAAG,OAAO;IAC1B,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE9B,MAAM,CAAC,IAAI,CAAC;AACV,QAAA,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI;QAC5B,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAA,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK;AAC/B,KAAA,CAAC;;AAGF,IAAA,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC1D,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC;AACrC,QAAA,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;;AAG9C,QAAA,OAAO,GAAG,CAAC,OAAO,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,MAAM;AAClD,QAAA,OAAO,GAAG,CAAC,OAAO,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,MAAM;AAElD,QAAA,EAAE,GAAG,OAAO,GAAG,OAAO;QACtB,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE1B,MAAM,CAAC,IAAI,CAAC;AACV,YAAA,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;YACvB,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAA,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;AAC1B,SAAA,CAAC;IACJ;;AAGA,IAAA,OAAO,MAAM;AACf;AAIA;;;;;;;;;;AAUG;SACa,6BAA6B,CAC3C,SAA6B,EAC7B,EAAE,cAAc,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,KAAuB,EAAE,EAAA;AAEpF,IAAA,IAAI,SAAS,CAAC,MAAM,GAAG,cAAc,EAAE;QACrC,UAAU,CACR,8EAA8E,cAAc,CAAA,oBAAA,EAAuB,SAAS,CAAC,MAAM,CAAA,gBAAA,CAAkB,CACtJ;AACD,QAAA,OAAO,EAAE;IACX;IAEA,MAAM,OAAO,GAAa,EAAE;IAC5B,MAAM,MAAM,GAAgB,EAAE;IAC9B,IAAI,IAAI,GAAG,CAAC;IACZ,IAAI,IAAI,GAAG,CAAC;AAEZ,IAAA,KAAK,IAAI,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1D,QAAA,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAClE,QAAA,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK;AAE9D,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACjD,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;QAExC,MAAM,CAAC,GAAG,WAAW,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,SAAS,KAAK,WAAW,GAAG,SAAS,CAAC,IAAI,GAAG;AACxG,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACf,IAAI,IAAI,CAAC;AAET,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe;YAAE,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,eAAe,GAAG,CAAC,CAAC;AAC3F,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC;QAElE,IAAI,IAAI,SAAS;QACjB,IAAI,OAAO,CAAC,MAAM,GAAG,eAAe,GAAG,YAAY,GAAG,CAAC;YACrD,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,eAAe,GAAG,YAAY,CAAC;AAClE,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,eAAe,GAAG,CAAC,EAAE,YAAY,CAAC;QAErF,IAAI,OAAO,CAAC,MAAM,IAAI,eAAe,GAAG,YAAY,GAAG,CAAC,EAAE;YACxD,MAAM,CAAC,IAAI,CAAC;AACV,gBAAA,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;gBACvB,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvC,gBAAA,KAAK,EAAE,YAAY;AACpB,aAAA,CAAC;QACJ;IACF;;AAGA,IAAA,OAAO,MAAM;AACf;AAIA;;;;;;;;;AASG;AACG,SAAU,6BAA6B,CAC3C,SAA6B,EAC7B,EAAE,SAAS,GAAG,CAAC,EAAE,cAAc,GAAG,EAAE,KAA8B,EAAE,EAAA;IAEpE,MAAM,MAAM,GAA4B,EAAE;AAE1C,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC;AAChD,QAAA,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;QAEvD,MAAM,WAAW,GAAuD,EAAE;;AAG1E,QAAA,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/G,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM;AAClG,QAAA,MAAM,UAAU,GAAG,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;;AAG5D,QAAA,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;AACnC,QAAA,MAAM,mBAAmB,GAAG,UAAU,GAAG,GAAG,CAAC;;AAG7C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAClD,YAAA,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;;AAGrC,YAAA,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE;AACxD,gBAAA,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;gBACtG,IAAI,aAAa,EAAE;oBACjB,aAAa,CAAC,KAAK,EAAE;oBACrB,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC;gBACnC;qBAAO;oBACL,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACpE;YACF;;AAGA,YAAA,IAAI,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;AACpD,gBAAA,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC;gBACpG,IAAI,aAAa,EAAE;oBACjB,aAAa,CAAC,KAAK,EAAE;oBACrB,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC;gBACnC;qBAAO;oBACL,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnE;YACF;QACF;;QAGA,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;QACvC,MAAM,MAAM,GAA6B,EAAE;;AAG3C,QAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;;QAG7C,IAAI,YAAY,GAAuD,EAAE;AACzE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACnC;iBAAO;AACL,gBAAA,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK;gBAC7D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,SAAS,IAAI,GAAG,IAAI,mBAAmB,EAAE;oBACzF,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACnC;qBAAO;;AAEL,oBAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3B,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;wBACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,WAAW;AAC3F,wBAAA,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;wBAElG,MAAM,CAAC,IAAI,CAAC;4BACV,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BACtC,QAAQ,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;4BAC9C,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS;AACzD,yBAAA,CAAC;oBACJ;AACA,oBAAA,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACjC;YACF;QACF;;AAGA,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,WAAW;AAC3F,YAAA,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;YAElG,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACtC,QAAQ,EAAE,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC9C,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS;AACzD,aAAA,CAAC;QACJ;;AAGA,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;QAEtF,MAAM,CAAC,IAAI,CAAC;AACV,YAAA,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;AACvB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,KAAK,EAAE,YAAY;AACpB,SAAA,CAAC;IACJ;AAEA,IAAA,UAAU,CACR,CAAA,MAAA,EAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA,kCAAA,EAC1D,MAAM,CAAC,MACT,CAAA,QAAA,CAAU,CACX;AACD,IAAA,OAAO,MAAM;AACf;;;;;;;;;;;;;;;CCpiBA,MAAM,YAAY,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC;AAC/D,CAAA,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,WAAW;;AAE3C,CAAA,IAAI,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;;AAEtC,CAAA,SAAc,GAAG;AACjB,GAAE,YAAY;AACd,GAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;GAC7B,IAAI,EAAE,sCAAsC;AAC9C,GAAE,OAAO;AACT,GAAE,oBAAoB,EAAE,MAAM,CAAC,wBAAwB,CAAC;AACxD,GAAE,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;AAChC,GAAE,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC;AACpC,GAAE,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC;GAC/B,IAAI,EAAE,MAAM,CAAA;EACb;;;;;;;;;;ACfD,CAAA,MAAM,EAAE,YAAY,EAAE,GAAGC,gBAAA,EAAsB;;AAE/C,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE;GACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,YAAY;GAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;;GAErC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;GAC9C,IAAI,MAAM,GAAG,CAAC;;AAEhB,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,KAAI,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;AACvB,KAAI,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;AAC3B,KAAI,MAAM,IAAI,GAAG,CAAC,MAAM;AACxB,GAAA;;AAEA,GAAE,IAAI,MAAM,GAAG,WAAW,EAAE;AAC5B,KAAI,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC;AACnE,GAAA;;AAEA,GAAE,OAAO,MAAM;AACf,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AACrD,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,KAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAChD,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;AAC/B,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;KACtC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5B,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,aAAa,CAAC,GAAG,EAAE;GAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE;KACxC,OAAO,GAAG,CAAC,MAAM;AACrB,GAAA;;AAEA,GAAE,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;AACtE,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,QAAQ,CAAC,IAAI,EAAE;AACxB,GAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI;;GAExB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI;;AAExC,GAAE,IAAI,GAAG;;AAET,GAAE,IAAI,IAAI,YAAY,WAAW,EAAE;AACnC,KAAI,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;GAC9B,CAAG,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACvC,KAAI,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;AACvE,GAAA,CAAG,MAAM;AACT,KAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,KAAI,QAAQ,CAAC,QAAQ,GAAG,KAAK;AAC7B,GAAA;;AAEA,GAAE,OAAO,GAAG;AACZ,CAAA;;AAEA,CAAAC,UAAA,CAAA,OAAc,GAAG;AACjB,GAAE,MAAM;GACN,IAAI,EAAE,KAAK;AACb,GAAE,aAAa;AACf,GAAE,QAAQ;AACV,GAAE,MAAM,EAAE;EACT;;AAED;AACA,CAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;AACpC,GAAE,IAAI;AACN,KAAI,MAAMC,YAAU,GAAG,OAAA,CAAQ,YAAY,CAAC;;AAE5C,KAAID,UAAA,CAAA,OAAA,CAAA,IAAmB,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAC1E,OAAM,IAAI,MAAM,GAAG,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;AAClE,YAAWC,YAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KAChE,CAAK;;AAEL,KAAID,yBAAqB,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AACpD,OAAM,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;AACnD,YAAWC,YAAU,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;KAC1C,CAAK;GACL,CAAG,CAAC,OAAO,CAAC,EAAE;AACd;AACA,GAAA;AACA,CAAA;;;;;;;;;;;AChIA,CAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;AAC7B,CAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;;AAE3B;AACA;AACA;AACA;AACA,CAAA,MAAM,OAAO,CAAC;AACd;AACA;AACA;AACA;AACA;AACA;GACE,WAAW,CAAC,WAAW,EAAE;AAC3B,KAAI,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM;OAClB,IAAI,CAAC,OAAO,EAAE;AACpB,OAAM,IAAI,CAAC,IAAI,CAAC,EAAE;KAClB,CAAK;AACL,KAAI,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,QAAQ;AAC9C,KAAI,IAAI,CAAC,IAAI,GAAG,EAAE;AAClB,KAAI,IAAI,CAAC,OAAO,GAAG,CAAC;AACpB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,GAAG,CAAC,GAAG,EAAE;AACX,KAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,KAAI,IAAI,CAAC,IAAI,CAAC,EAAE;AAChB,GAAA;;AAEA;AACA;AACA;AACA;AACA;GACE,CAAC,IAAI,CAAC,GAAG;KACP,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE;;AAE3C,KAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;OACpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;;OAE7B,IAAI,CAAC,OAAO,EAAE;AACpB,OAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtB,KAAA;AACA,GAAA;AACA;;AAEA,CAAA,OAAc,GAAG,OAAO;;;;;;;;;;;CCpDxB,MAAM,IAAI,GAAG,UAAe;;CAE5B,MAAM,UAAU,GAAGC,iBAAA,EAAwB;CAC3C,MAAM,OAAO,GAAGC,cAAA,EAAoB;AACpC,CAAA,MAAM,EAAE,WAAW,EAAE,GAAGC,gBAAA,EAAsB;;AAE9C,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;AACzC,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrD,CAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACvD,CAAA,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAC3C,CAAA,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,CAAA,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,IAAI,WAAW;;AAEf;AACA;AACA;AACA,CAAA,MAAM,iBAAiB,CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE;AAC7C,KAAI,IAAI,CAAC,WAAW,GAAG,UAAU,GAAG,CAAC;AACrC,KAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,EAAE;KAC7B,IAAI,CAAC,UAAU;AACnB,OAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI;AAC5E,KAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ;AAC/B,KAAI,IAAI,CAAC,QAAQ,GAAG,IAAI;AACxB,KAAI,IAAI,CAAC,QAAQ,GAAG,IAAI;;AAExB,KAAI,IAAI,CAAC,MAAM,GAAG,IAAI;;KAElB,IAAI,CAAC,WAAW,EAAE;AACtB,OAAM,MAAM,WAAW;AACvB,SAAQ,IAAI,CAAC,QAAQ,CAAC,gBAAgB,KAAK;aAC/B,IAAI,CAAC,QAAQ,CAAC;AAC1B,aAAY,EAAE;AACd,OAAM,WAAW,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;AAC5C,KAAA;AACA,GAAA;;AAEA;AACA;AACA;GACE,WAAW,aAAa,GAAG;AAC7B,KAAI,OAAO,oBAAoB;AAC/B,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,KAAK,GAAG;KACN,MAAM,MAAM,GAAG,EAAE;;AAErB,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE;AAC/C,OAAM,MAAM,CAAC,0BAA0B,GAAG,IAAI;AAC9C,KAAA;AACA,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE;AAC/C,OAAM,MAAM,CAAC,0BAA0B,GAAG,IAAI;AAC9C,KAAA;AACA,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE;OACrC,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB;AACvE,KAAA;AACA,KAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE;OACrC,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB;KACvE,CAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,IAAI,IAAI,EAAE;AAC1D,OAAM,MAAM,CAAC,sBAAsB,GAAG,IAAI;AAC1C,KAAA;;AAEA,KAAI,OAAO,MAAM;AACjB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,MAAM,CAAC,cAAc,EAAE;AACzB,KAAI,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;;AAEzD,KAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc;AAC1C,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;;KAEvC,OAAO,IAAI,CAAC,MAAM;AACtB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,OAAO,GAAG;AACZ,KAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;AACvB,OAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC3B,OAAM,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC1B,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;OACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;;AAE/C,OAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC3B,OAAM,IAAI,CAAC,QAAQ,GAAG,IAAI;;OAEpB,IAAI,QAAQ,EAAE;AACpB,SAAQ,QAAQ;AAChB,WAAU,IAAI,KAAK;aACP;AACZ;UACS;AACT,OAAA;AACA,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,cAAc,CAAC,MAAM,EAAE;AACzB,KAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ;KAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;OACvC;AACN,SAAQ,CAAC,IAAI,CAAC,uBAAuB,KAAK,KAAK;WACrC,MAAM,CAAC,0BAA0B;UAClC,MAAM,CAAC,sBAAsB;AACtC,YAAW,IAAI,CAAC,mBAAmB,KAAK,KAAK;AAC7C,cAAa,OAAO,IAAI,CAAC,mBAAmB,KAAK,QAAQ;eAC3C,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACzE,UAAS,OAAO,IAAI,CAAC,mBAAmB,KAAK,QAAQ;WAC3C,CAAC,MAAM,CAAC,sBAAsB;SAChC;AACR,SAAQ,OAAO,KAAK;AACpB,OAAA;;AAEA,OAAM,OAAO,IAAI;AACjB,KAAA,CAAK,CAAC;;KAEF,IAAI,CAAC,QAAQ,EAAE;AACnB,OAAM,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;AACrE,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,uBAAuB,EAAE;AACtC,OAAM,QAAQ,CAAC,0BAA0B,GAAG,IAAI;AAChD,KAAA;AACA,KAAI,IAAI,IAAI,CAAC,uBAAuB,EAAE;AACtC,OAAM,QAAQ,CAAC,0BAA0B,GAAG,IAAI;AAChD,KAAA;AACA,KAAI,IAAI,OAAO,IAAI,CAAC,mBAAmB,KAAK,QAAQ,EAAE;AACtD,OAAM,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC,mBAAmB;AAChE,KAAA;AACA,KAAI,IAAI,OAAO,IAAI,CAAC,mBAAmB,KAAK,QAAQ,EAAE;AACtD,OAAM,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC,mBAAmB;AAChE,KAAA,CAAK,MAAM;AACX,OAAM,QAAQ,CAAC,sBAAsB,KAAK,IAAI;OACxC,IAAI,CAAC,mBAAmB,KAAK;OAC7B;OACA,OAAO,QAAQ,CAAC,sBAAsB;AAC5C,KAAA;;AAEA,KAAI,OAAO,QAAQ;AACnB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,cAAc,CAAC,QAAQ,EAAE;AAC3B,KAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;;KAE1B;AACJ,OAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,KAAK,KAAK;AACrD,OAAM,MAAM,CAAC;OACP;AACN,OAAM,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;AAC1E,KAAA;;AAEA,KAAI,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE;OAClC,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,KAAK,QAAQ,EAAE;SACzD,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB;AACzE,OAAA;AACA,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,KAAK,KAAK;AACjD,QAAO,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,KAAK,QAAQ;SACpD,MAAM,CAAC,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB;OACnE;OACA,MAAM,IAAI,KAAK;SACb;QACD;AACP,KAAA;;AAEA,KAAI,OAAO,MAAM;AACjB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,eAAe,CAAC,cAAc,EAAE;AAClC,KAAI,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;OACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC3C,SAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;;AAE/B,SAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;WACpB,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,+BAA+B,CAAC,CAAC;AAC7E,SAAA;;AAEA,SAAQ,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;;AAExB,SAAQ,IAAI,GAAG,KAAK,wBAAwB,EAAE;AAC9C,WAAU,IAAI,KAAK,KAAK,IAAI,EAAE;AAC9B,aAAY,MAAM,GAAG,GAAG,CAAC,KAAK;AAC9B,aAAY,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE;eACjD,MAAM,IAAI,SAAS;iBACjB,CAAC,6BAA6B,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;gBAChD;AACf,aAAA;aACY,KAAK,GAAG,GAAG;AACvB,WAAA,CAAW,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;aAC1B,MAAM,IAAI,SAAS;eACjB,CAAC,6BAA6B,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;cAChD;AACb,WAAA;AACA,SAAA,CAAS,MAAM,IAAI,GAAG,KAAK,wBAAwB,EAAE;AACrD,WAAU,MAAM,GAAG,GAAG,CAAC,KAAK;AAC5B,WAAU,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE;aACjD,MAAM,IAAI,SAAS;eACjB,CAAC,6BAA6B,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;cAChD;AACb,WAAA;WACU,KAAK,GAAG,GAAG;AACrB,SAAA,CAAS,MAAM;WACL,GAAG,KAAK,4BAA4B;AAC9C,WAAU,GAAG,KAAK;WACR;AACV,WAAU,IAAI,KAAK,KAAK,IAAI,EAAE;aAClB,MAAM,IAAI,SAAS;eACjB,CAAC,6BAA6B,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;cAChD;AACb,WAAA;AACA,SAAA,CAAS,MAAM;WACL,MAAM,IAAI,KAAK,CAAC,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACvD,SAAA;;AAEA,SAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;AAC3B,OAAA,CAAO,CAAC;AACR,KAAA,CAAK,CAAC;;AAEN,KAAI,OAAO,cAAc;AACzB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE;AAClC,KAAI,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AAC9B,OAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK;AACnD,SAAQ,IAAI,EAAE;AACd,SAAQ,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;AAC7B,OAAA,CAAO,CAAC;AACR,KAAA,CAAK,CAAC;AACN,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE;AAChC,KAAI,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AAC9B,OAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK;AACjD,SAAQ,IAAI,EAAE;AACd,SAAQ,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;AAC7B,OAAA,CAAO,CAAC;AACR,KAAA,CAAK,CAAC;AACN,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE;KAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,QAAQ;;AAEzD,KAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;OAClB,MAAM,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC;AAC/C,OAAM,MAAM,UAAU;AACtB,SAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;AACpC,aAAY,IAAI,CAAC;AACjB,aAAY,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAE5B,OAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC5C,SAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB;SACnC;AACR,QAAO,CAAC;AACR,OAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI;AAC9C,OAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC;AACrC,OAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE;OAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC;OACzC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;AAC7C,KAAA;;AAEA,KAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ;;AAEvC,KAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;KACzB,IAAI,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;;AAEzC,KAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;OACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;;OAEjC,IAAI,GAAG,EAAE;AACf,SAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC7B,SAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;SACpB,QAAQ,CAAC,GAAG,CAAC;SACb;AACR,OAAA;;AAEA,OAAM,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM;AACpC,SAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC/B,SAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY;QAC3B;;OAED,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE;AACnD,SAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC7B,SAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC5B,OAAA,CAAO,MAAM;AACb,SAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC;AACvC,SAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE;;AAEpC,SAAQ,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE;AACnE,WAAU,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC/B,SAAA;AACA,OAAA;;AAEA,OAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1B,KAAA,CAAK,CAAC;AACN,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE;KAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,QAAQ;;AAEzD,KAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;OAClB,MAAM,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC;AAC/C,OAAM,MAAM,UAAU;AACtB,SAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;AACpC,aAAY,IAAI,CAAC;AACjB,aAAY,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAE5B,OAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC5C,SAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB;SACnC;AACR,QAAO,CAAC;;AAER,OAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC;AACrC,OAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE;;OAE5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;AAC7C,KAAA;;AAEA,KAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ;;AAEvC,KAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;KACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM;AACjD,OAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1B;AACA;AACA;SACQ;AACR,OAAA;;AAEA,OAAM,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM;AAClC,SAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC/B,SAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY;QAC3B;;OAED,IAAI,GAAG,EAAE;AACf,SAAQ,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5E,OAAA;;AAEA;AACA;AACA;AACA;AACA,OAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI;;AAErC,OAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC;AACrC,OAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE;;AAElC,OAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE;AACjE,SAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC7B,OAAA;;AAEA,OAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;AAC1B,KAAA,CAAK,CAAC;AACN,GAAA;AACA;;AAEA,CAAA,iBAAc,GAAG,iBAAiB;;AAElC;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,aAAa,CAAC,KAAK,EAAE;GAC5B,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC5B,GAAE,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,MAAM;AACpC,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,GAAE,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,MAAM;;GAElC;AACF,KAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,WAAW,GAAG,CAAC;KACxC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC/C;KACA,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;KAC1B;AACJ,GAAA;;GAEE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,2BAA2B,CAAC;AAC5D,GAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,mCAAmC;GACvD,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI;AAClC,GAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;GACE,IAAI,CAAC,KAAK,EAAE;AACd,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B;AACA;AACA;AACA;AACA,GAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,QAAQ,GAAG,IAAI;;AAE1C,GAAE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE;KAChB,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC7B;AACJ,GAAA;;AAEA,GAAE,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI;AACzB,GAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;AACtB,CAAA;;;;;;;;;;;;AC7gBA,CAAA,MAAM,EAAE,MAAM,EAAE,GAAGL,YAAiB;;AAEpC,CAAA,MAAM,EAAE,OAAO,EAAE,GAAGG,gBAAA,EAAsB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,UAAU,GAAG;AACnB,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;EAC/C;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;GAC/B;KACE,CAAC,IAAI,IAAI,IAAI;OACX,IAAI,IAAI,IAAI;OACZ,IAAI,KAAK,IAAI;OACb,IAAI,KAAK,IAAI;OACb,IAAI,KAAK,IAAI;AACnB,MAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AACjC;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAE,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;GACtB,IAAI,CAAC,GAAG,CAAC;;AAEX,GAAE,OAAO,CAAC,GAAG,GAAG,EAAE;KACd,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;AAC/B;AACA,OAAM,CAAC,EAAE;KACT,CAAK,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;AACzC;OACM;AACN,SAAQ,CAAC,GAAG,CAAC,KAAK,GAAG;SACb,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;SAC5B,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;SACxB;AACR,SAAQ,OAAO,KAAK;AACpB,OAAA;;OAEM,CAAC,IAAI,CAAC;KACZ,CAAK,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;AACzC;OACM;AACN,SAAQ,CAAC,GAAG,CAAC,IAAI,GAAG;SACZ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;SAC5B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;AACpC,UAAS,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC;AACzD,UAAS,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC;SACjD;AACR,SAAQ,OAAO,KAAK;AACpB,OAAA;;OAEM,CAAC,IAAI,CAAC;KACZ,CAAK,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;AACzC;OACM;AACN,SAAQ,CAAC,GAAG,CAAC,IAAI,GAAG;SACZ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;SAC5B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;SAC5B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;AACpC,UAAS,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC;AACzD,UAAS,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC9C,SAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;SACb;AACR,SAAQ,OAAO,KAAK;AACpB,OAAA;;OAEM,CAAC,IAAI,CAAC;AACZ,KAAA,CAAK,MAAM;AACX,OAAM,OAAO,KAAK;AAClB,KAAA;AACA,GAAA;;AAEA,GAAE,OAAO,IAAI;AACb,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,MAAM,CAAC,KAAK,EAAE;GACrB;AACF,KAAI,OAAO;KACP,OAAO,KAAK,KAAK,QAAQ;AAC7B,KAAI,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU;AAC3C,KAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;AAClC,KAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU;AACtC,MAAK,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,MAAM;AACzC,OAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,MAAM;AAC1C;AACA,CAAA;;AAEA,CAAAG,UAAA,CAAA,OAAc,GAAG;AACjB,GAAE,MAAM;AACR,GAAE,iBAAiB;GACjB,WAAW,EAAE,YAAY;GACzB;EACD;;AAED,CAAA,IAAI,MAAM,EAAE;AACZ,GAAEA,UAAA,CAAA,OAAA,CAAA,WAA0B,GAAG,UAAU,GAAG,EAAE;AAC9C,KAAI,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;GAC5D,CAAG;CACH,CAAC,kCAAkC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE;AAC1E,GAAE,IAAI;AACN,KAAI,MAAM,WAAW,GAAG,OAAA,CAAQ,gBAAgB,CAAC;;AAEjD,KAAIA,UAAA,CAAA,OAAA,CAAA,WAA0B,GAAG,UAAU,GAAG,EAAE;AAChD,OAAM,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC;KACnE,CAAK;GACL,CAAG,CAAC,OAAO,CAAC,EAAE;AACd;AACA,GAAA;AACA,CAAA;;;;;;;;;;;ACrJA,CAAA,MAAM,EAAE,QAAQ,EAAE,GAAGN,YAAiB;;CAEtC,MAAM,iBAAiB,GAAGG,wBAAA,EAA+B;CACzD,MAAM;AACN,GAAE,YAAY;AACd,GAAE,YAAY;AACd,GAAE,WAAW;GACX;AACF,EAAC,GAAGC,gBAAA,EAAsB;CAC1B,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAGC,iBAAA,EAAwB;AAClE,CAAA,MAAM,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAGE,iBAAA,EAAuB;;AAElE,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;CAEzC,MAAM,QAAQ,GAAG,CAAC;CAClB,MAAM,qBAAqB,GAAG,CAAC;CAC/B,MAAM,qBAAqB,GAAG,CAAC;CAC/B,MAAM,QAAQ,GAAG,CAAC;CAClB,MAAM,QAAQ,GAAG,CAAC;CAClB,MAAM,SAAS,GAAG,CAAC;CACnB,MAAM,WAAW,GAAG,CAAC;;AAErB;AACA;AACA;AACA;AACA;CACA,MAAM,QAAQ,SAAS,QAAQ,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,WAAW,CAAC,OAAO,GAAG,EAAE,EAAE;AAC5B,KAAI,KAAK,EAAE;;KAEP,IAAI,CAAC,uBAAuB;OAC1B,OAAO,CAAC,sBAAsB,KAAK;AACzC,WAAU,OAAO,CAAC;AAClB,WAAU,IAAI;KACV,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,YAAY,CAAC,CAAC,CAAC;KACxD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE;KAC3C,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ;KACnC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,CAAC;KACzC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB;AAC3D,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS;;AAEhC,KAAI,IAAI,CAAC,cAAc,GAAG,CAAC;AAC3B,KAAI,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAEtB,KAAI,IAAI,CAAC,WAAW,GAAG,KAAK;AAC5B,KAAI,IAAI,CAAC,cAAc,GAAG,CAAC;AAC3B,KAAI,IAAI,CAAC,KAAK,GAAG,SAAS;AAC1B,KAAI,IAAI,CAAC,WAAW,GAAG,CAAC;AACxB,KAAI,IAAI,CAAC,OAAO,GAAG,KAAK;AACxB,KAAI,IAAI,CAAC,IAAI,GAAG,KAAK;AACrB,KAAI,IAAI,CAAC,OAAO,GAAG,CAAC;;AAEpB,KAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAChC,KAAI,IAAI,CAAC,cAAc,GAAG,CAAC;AAC3B,KAAI,IAAI,CAAC,UAAU,GAAG,EAAE;;AAExB,KAAI,IAAI,CAAC,QAAQ,GAAG,KAAK;AACzB,KAAI,IAAI,CAAC,KAAK,GAAG,KAAK;AACtB,KAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;AAC1B,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;AAC9B,KAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,OAAO,EAAE,EAAE;;AAErE,KAAI,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM;AACvC,KAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,KAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AACtB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,OAAO,CAAC,CAAC,EAAE;AACb,KAAI,IAAI,CAAC,cAAc,IAAI,CAAC;;AAE5B,KAAI,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;;KAE/D,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;OAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;OAC5B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU;SAC/B,GAAG,CAAC,MAAM;AAClB,SAAQ,GAAG,CAAC,UAAU,GAAG,CAAC;SAClB,GAAG,CAAC,MAAM,GAAG;QACd;;AAEP,OAAM,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1D,KAAA;;KAEI,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;;AAErC,KAAI,GAAG;OACD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClC,OAAM,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;;AAEnC,OAAM,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;AAC3B,SAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC;AAC9C,OAAA,CAAO,MAAM;AACb,SAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;SAC9D,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,UAAU;WAC/B,GAAG,CAAC,MAAM;AACpB,WAAU,GAAG,CAAC,UAAU,GAAG,CAAC;WAClB,GAAG,CAAC,MAAM,GAAG;UACd;AACT,OAAA;;AAEA,OAAM,CAAC,IAAI,GAAG,CAAC,MAAM;KACrB,CAAK,QAAQ,CAAC,GAAG,CAAC;;AAElB,KAAI,OAAO,GAAG;AACd,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,SAAS,CAAC,EAAE,EAAE;AAChB,KAAI,IAAI,CAAC,KAAK,GAAG,IAAI;;AAErB,KAAI,GAAG;OACD,QAAQ,IAAI,CAAC,MAAM;AACzB,SAAQ,KAAK,QAAQ;AACrB,WAAU,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;WAChB;AACV,SAAQ,KAAK,qBAAqB;AAClC,WAAU,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;WAC3B;AACV,SAAQ,KAAK,qBAAqB;AAClC,WAAU,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;WAC3B;AACV,SAAQ,KAAK,QAAQ;WACX,IAAI,CAAC,OAAO,EAAE;WACd;AACV,SAAQ,KAAK,QAAQ;AACrB,WAAU,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;WAChB;AACV,SAAQ,KAAK,SAAS;AACtB,SAAQ,KAAK,WAAW;AACxB,WAAU,IAAI,CAAC,KAAK,GAAG,KAAK;WAClB;AACV;KACA,CAAK,QAAQ,IAAI,CAAC,KAAK;;AAEvB,KAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE;AAC5B,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,OAAO,CAAC,EAAE,EAAE;AACd,KAAI,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;AACjC,OAAM,IAAI,CAAC,KAAK,GAAG,KAAK;OAClB;AACN,KAAA;;KAEI,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;;KAE3B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE;AAClC,OAAM,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACpC,SAAQ,UAAU;AAClB,SAAQ,6BAA6B;AACrC,SAAQ,IAAI;AACZ,SAAQ,IAAI;SACJ;QACD;;OAED,EAAE,CAAC,KAAK,CAAC;OACT;AACN,KAAA;;KAEI,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;;AAE/C,KAAI,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE;AAC1E,OAAM,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACpC,SAAQ,UAAU;AAClB,SAAQ,oBAAoB;AAC5B,SAAQ,IAAI;AACZ,SAAQ,IAAI;SACJ;QACD;;OAED,EAAE,CAAC,KAAK,CAAC;OACT;AACN,KAAA;;AAEA,KAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;KACpC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;KAC5B,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;;AAEvC,KAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;OACzB,IAAI,UAAU,EAAE;AACtB,SAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACtC,WAAU,UAAU;AACpB,WAAU,oBAAoB;AAC9B,WAAU,IAAI;AACd,WAAU,IAAI;WACJ;UACD;;SAED,EAAE,CAAC,KAAK,CAAC;SACT;AACR,OAAA;;AAEA,OAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7B,SAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACtC,WAAU,UAAU;AACpB,WAAU,kBAAkB;AAC5B,WAAU,IAAI;AACd,WAAU,IAAI;WACJ;UACD;;SAED,EAAE,CAAC,KAAK,CAAC;SACT;AACR,OAAA;;AAEA,OAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW;AACrC,KAAA,CAAK,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AAC/D,OAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC5B,SAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACtC,WAAU,UAAU;AACpB,WAAU,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1C,WAAU,IAAI;AACd,WAAU,IAAI;WACJ;UACD;;SAED,EAAE,CAAC,KAAK,CAAC;SACT;AACR,OAAA;;AAEA,OAAM,IAAI,CAAC,WAAW,GAAG,UAAU;AACnC,KAAA,CAAK,MAAM,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE;AAC3D,OAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACtB,SAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACtC,WAAU,UAAU;AACpB,WAAU,iBAAiB;AAC3B,WAAU,IAAI;AACd,WAAU,IAAI;WACJ;UACD;;SAED,EAAE,CAAC,KAAK,CAAC;SACT;AACR,OAAA;;OAEM,IAAI,UAAU,EAAE;AACtB,SAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACtC,WAAU,UAAU;AACpB,WAAU,oBAAoB;AAC9B,WAAU,IAAI;AACd,WAAU,IAAI;WACJ;UACD;;SAED,EAAE,CAAC,KAAK,CAAC;SACT;AACR,OAAA;;OAEM;AACN,SAAQ,IAAI,CAAC,cAAc,GAAG,IAAI;UACzB,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC;SACnD;AACR,SAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACtC,WAAU,UAAU;AACpB,WAAU,CAAC,uBAAuB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACzD,WAAU,IAAI;AACd,WAAU,IAAI;WACJ;UACD;;SAED,EAAE,CAAC,KAAK,CAAC;SACT;AACR,OAAA;AACA,KAAA,CAAK,MAAM;AACX,OAAM,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACpC,SAAQ,UAAU;AAClB,SAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC,SAAQ,IAAI;AACZ,SAAQ,IAAI;SACJ;QACD;;OAED,EAAE,CAAC,KAAK,CAAC;OACT;AACN,KAAA;;AAEA,KAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO;AACxE,KAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI;;AAE3C,KAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,OAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACzB,SAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACtC,WAAU,UAAU;AACpB,WAAU,kBAAkB;AAC5B,WAAU,IAAI;AACd,WAAU,IAAI;WACJ;UACD;;SAED,EAAE,CAAC,KAAK,CAAC;SACT;AACR,OAAA;AACA,KAAA,CAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AAC7B,OAAM,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACpC,SAAQ,UAAU;AAClB,SAAQ,oBAAoB;AAC5B,SAAQ,IAAI;AACZ,SAAQ,IAAI;SACJ;QACD;;OAED,EAAE,CAAC,KAAK,CAAC;OACT;AACN,KAAA;;KAEI,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,qBAAqB;UAC/D,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,qBAAqB;AAC7E,UAAS,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AAC5B,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,kBAAkB,CAAC,EAAE,EAAE;AACzB,KAAI,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;AACjC,OAAM,IAAI,CAAC,KAAK,GAAG,KAAK;OAClB;AACN,KAAA;;AAEA,KAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AACzD,KAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACvB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,kBAAkB,CAAC,EAAE,EAAE;AACzB,KAAI,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;AACjC,OAAM,IAAI,CAAC,KAAK,GAAG,KAAK;OAClB;AACN,KAAA;;KAEI,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;KAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;;AAEnC;AACA;AACA;AACA;AACA,KAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE;AACxC,OAAM,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACpC,SAAQ,UAAU;AAClB,SAAQ,wDAAwD;AAChE,SAAQ,KAAK;AACb,SAAQ,IAAI;SACJ;QACD;;OAED,EAAE,CAAC,KAAK,CAAC;OACT;AACN,KAAA;;KAEI,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;AACrE,KAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACvB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,UAAU,CAAC,EAAE,EAAE;KACb,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE;AACpD,OAAM,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,cAAc;AACrD,OAAM,IAAI,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAC/E,SAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACtC,WAAU,UAAU;AACpB,WAAU,2BAA2B;AACrC,WAAU,KAAK;AACf,WAAU,IAAI;WACJ;UACD;;SAED,EAAE,CAAC,KAAK,CAAC;SACT;AACR,OAAA;AACA,KAAA;;KAEI,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ;AAC5C,UAAS,IAAI,CAAC,MAAM,GAAG,QAAQ;AAC/B,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,OAAO,GAAG;AACZ,KAAI,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;AACjC,OAAM,IAAI,CAAC,KAAK,GAAG,KAAK;OAClB;AACN,KAAA;;KAEI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAChC,KAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;AAC1B,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,OAAO,CAAC,EAAE,EAAE;KACV,IAAI,IAAI,GAAG,YAAY;;AAE3B,KAAI,IAAI,IAAI,CAAC,cAAc,EAAE;OACvB,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE;AACrD,SAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;SAClB;AACR,OAAA;;OAEM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;;OAExC;SACE,IAAI,CAAC,OAAO;AACpB,SAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;SACpE;AACR,SAAQ,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;AAChC,OAAA;AACA,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE;AAC7B,OAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;OAC7B;AACN,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,WAAW,EAAE;AAC1B,OAAM,IAAI,CAAC,MAAM,GAAG,SAAS;AAC7B,OAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;OACzB;AACN,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACrB;AACA;AACA;AACA;AACA,OAAM,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB;AACpD,OAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,KAAA;;AAEA,KAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AACxB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE;KACnB,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC;;AAE/E,KAAI,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK;AAChE,OAAM,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC;;AAE7B,OAAM,IAAI,GAAG,CAAC,MAAM,EAAE;AACtB,SAAQ,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC,MAAM;AACzC,SAAQ,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AAC5E,WAAU,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACxC,aAAY,UAAU;AACtB,aAAY,2BAA2B;AACvC,aAAY,KAAK;AACjB,aAAY,IAAI;aACJ;YACD;;WAED,EAAE,CAAC,KAAK,CAAC;WACT;AACV,SAAA;;AAEA,SAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;AACjC,OAAA;;AAEA,OAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AAC1B,OAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AACtD,KAAA,CAAK,CAAC;AACN,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,WAAW,CAAC,EAAE,EAAE;AAClB,KAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACpB,OAAM,IAAI,CAAC,MAAM,GAAG,QAAQ;OACtB;AACN,KAAA;;AAEA,KAAI,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc;AAC7C,KAAI,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU;;AAErC,KAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC;AAChC,KAAI,IAAI,CAAC,cAAc,GAAG,CAAC;AAC3B,KAAI,IAAI,CAAC,WAAW,GAAG,CAAC;AACxB,KAAI,IAAI,CAAC,UAAU,GAAG,EAAE;;AAExB,KAAI,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;AAC5B,OAAM,IAAI,IAAI;;AAEd,OAAM,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;AAC7C,SAAQ,IAAI,GAAG,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC;AAC/C,OAAA,CAAO,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,aAAa,EAAE;SAC7C,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC9D,OAAA,CAAO,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;AAC9C,SAAQ,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;AAClC,OAAA,CAAO,MAAM;SACL,IAAI,GAAG,SAAS;AACxB,OAAA;;AAEA,OAAM,IAAI,IAAI,CAAC,uBAAuB,EAAE;SAChC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;AACxC,SAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ;AAC9B,OAAA,CAAO,MAAM;AACb,SAAQ,IAAI,CAAC,MAAM,GAAG,WAAW;SACzB,YAAY,CAAC,MAAM;WACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;AAC1C,WAAU,IAAI,CAAC,MAAM,GAAG,QAAQ;AAChC,WAAU,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5B,SAAA,CAAS,CAAC;AACV,OAAA;AACA,KAAA,CAAK,MAAM;OACL,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC;;OAE5C,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AAC1D,SAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACtC,WAAU,KAAK;AACf,WAAU,wBAAwB;AAClC,WAAU,IAAI;AACd,WAAU,IAAI;WACJ;UACD;;SAED,EAAE,CAAC,KAAK,CAAC;SACT;AACR,OAAA;;OAEM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,uBAAuB,EAAE;SAC7D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC;AACxC,SAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ;AAC9B,OAAA,CAAO,MAAM;AACb,SAAQ,IAAI,CAAC,MAAM,GAAG,WAAW;SACzB,YAAY,CAAC,MAAM;WACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC;AAC1C,WAAU,IAAI,CAAC,MAAM,GAAG,QAAQ;AAChC,WAAU,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5B,SAAA,CAAS,CAAC;AACV,OAAA;AACA,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE;AAC3B,KAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AAC/B,OAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,SAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;SAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC;SACzC,IAAI,CAAC,GAAG,EAAE;AAClB,OAAA,CAAO,MAAM;SACL,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;;AAEzC,SAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AACtC,WAAU,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACxC,aAAY,UAAU;AACtB,aAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;AACzC,aAAY,IAAI;AAChB,aAAY,IAAI;aACJ;YACD;;WAED,EAAE,CAAC,KAAK,CAAC;WACT;AACV,SAAA;;AAEA,SAAQ,MAAM,GAAG,GAAG,IAAI,UAAU;WACxB,IAAI,CAAC,MAAM;AACrB,WAAU,IAAI,CAAC,UAAU,GAAG,CAAC;WACnB,IAAI,CAAC,MAAM,GAAG;UACf;;SAED,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AAC5D,WAAU,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;AACxC,aAAY,KAAK;AACjB,aAAY,wBAAwB;AACpC,aAAY,IAAI;AAChB,aAAY,IAAI;aACJ;YACD;;WAED,EAAE,CAAC,KAAK,CAAC;WACT;AACV,SAAA;;AAEA,SAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;SAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC;SAChC,IAAI,CAAC,GAAG,EAAE;AAClB,OAAA;;AAEA,OAAM,IAAI,CAAC,MAAM,GAAG,QAAQ;OACtB;AACN,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,uBAAuB,EAAE;AACtC,OAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC;AAC9D,OAAM,IAAI,CAAC,MAAM,GAAG,QAAQ;AAC5B,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,CAAC,MAAM,GAAG,WAAW;OACzB,YAAY,CAAC,MAAM;AACzB,SAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC;AAChE,SAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ;AAC9B,SAAQ,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AAC1B,OAAA,CAAO,CAAC;AACR,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;AACjE,KAAI,IAAI,CAAC,KAAK,GAAG,KAAK;AACtB,KAAI,IAAI,CAAC,QAAQ,GAAG,IAAI;;AAExB,KAAI,MAAM,GAAG,GAAG,IAAI,SAAS;OACvB,MAAM,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC,GAAG;MAClD;;KAED,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC;AAClD,KAAI,GAAG,CAAC,IAAI,GAAG,SAAS;AACxB,KAAI,GAAG,CAAC,WAAW,CAAC,GAAG,UAAU;AACjC,KAAI,OAAO,GAAG;AACd,GAAA;AACA;;AAEA,CAAA,QAAc,GAAG,QAAQ;;;;;;;;;;;;;AC7rBzB,CAAA,MAAM,EAAE,MAAM,EAAE,GAAGP,YAAiB;AACpC,CAAA,MAAM,EAAE,cAAc,EAAE,GAAGG,UAAiB;;CAE5C,MAAM,iBAAiB,GAAGC,wBAAA,EAA+B;CACzD,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,GAAGC,gBAAA,EAAsB;AACjE,CAAA,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAGE,iBAAA,EAAuB;CAC7D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAGC,iBAAA,EAAwB;;AAE9D,CAAA,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;AACzC,CAAA,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAA,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI;AACjC,CAAA,IAAI,UAAU;CACd,IAAI,iBAAiB,GAAG,gBAAgB;;CAExC,MAAM,OAAO,GAAG,CAAC;CACjB,MAAM,SAAS,GAAG,CAAC;CACnB,MAAM,aAAa,GAAG,CAAC;;AAEvB;AACA;AACA;AACA,CAAA,MAAM,MAAM,CAAC;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE;AAChD,KAAI,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE;;KAEnC,IAAI,YAAY,EAAE;AACtB,OAAM,IAAI,CAAC,aAAa,GAAG,YAAY;OACjC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACxC,KAAA;;AAEA,KAAI,IAAI,CAAC,OAAO,GAAG,MAAM;;AAEzB,KAAI,IAAI,CAAC,cAAc,GAAG,IAAI;AAC9B,KAAI,IAAI,CAAC,SAAS,GAAG,KAAK;;AAE1B,KAAI,IAAI,CAAC,cAAc,GAAG,CAAC;AAC3B,KAAI,IAAI,CAAC,MAAM,GAAG,EAAE;AACpB,KAAI,IAAI,CAAC,MAAM,GAAG,OAAO;AACzB,KAAI,IAAI,CAAC,OAAO,GAAG,IAAI;AACvB,KAAI,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS;AAChC,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,OAAO,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE;AAC9B,KAAI,IAAI,IAAI;KACR,IAAI,KAAK,GAAG,KAAK;KACjB,IAAI,MAAM,GAAG,CAAC;KACd,IAAI,WAAW,GAAG,KAAK;;AAE3B,KAAI,IAAI,OAAO,CAAC,IAAI,EAAE;AACtB,OAAM,IAAI,GAAG,OAAO,CAAC,UAAU,IAAI,UAAU;;AAE7C,OAAM,IAAI,OAAO,CAAC,YAAY,EAAE;AAChC,SAAQ,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;AAClC,OAAA,CAAO,MAAM;AACb,SAAQ,IAAI,iBAAiB,KAAK,gBAAgB,EAAE;AACpD;AACA,WAAU,IAAI,UAAU,KAAK,SAAS,EAAE;AACxC;AACA;AACA;AACA;AACA,aAAY,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;AACvD,WAAA;;AAEA,WAAU,cAAc,CAAC,UAAU,EAAE,CAAC,EAAE,gBAAgB,CAAC;WAC/C,iBAAiB,GAAG,CAAC;AAC/B,SAAA;;SAEQ,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;SACzC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;SACzC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;SACzC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,iBAAiB,EAAE,CAAC;AACjD,OAAA;;OAEM,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;OAC3D,MAAM,GAAG,CAAC;AAChB,KAAA;;AAEA,KAAI,IAAI,UAAU;;AAElB,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;OAC5B;AACN,SAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW;AACrC,SAAQ,OAAO,CAAC,WAAW,CAAC,KAAK;SACzB;AACR,SAAQ,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;AACzC,OAAA,CAAO,MAAM;AACb,SAAQ,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAChC,SAAQ,UAAU,GAAG,IAAI,CAAC,MAAM;AAChC,OAAA;AACA,KAAA,CAAK,MAAM;AACX,OAAM,UAAU,GAAG,IAAI,CAAC,MAAM;OACxB,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,WAAW;AAC9D,KAAA;;KAEI,IAAI,aAAa,GAAG,UAAU;;AAElC,KAAI,IAAI,UAAU,IAAI,KAAK,EAAE;OACvB,MAAM,IAAI,CAAC;OACX,aAAa,GAAG,GAAG;AACzB,KAAA,CAAK,MAAM,IAAI,UAAU,GAAG,GAAG,EAAE;OAC3B,MAAM,IAAI,CAAC;OACX,aAAa,GAAG,GAAG;AACzB,KAAA;;AAEA,KAAI,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;;AAE3E,KAAI,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM;KAChE,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI;;AAEvC,KAAI,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa;;AAE7B,KAAI,IAAI,aAAa,KAAK,GAAG,EAAE;AAC/B,OAAM,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;AACzC,KAAA,CAAK,MAAM,IAAI,aAAa,KAAK,GAAG,EAAE;OAChC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;OACzB,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1C,KAAA;;KAEI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;;AAE5C,KAAI,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI;KACjB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;KAC5B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;KAC5B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;KAC5B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;;KAE5B,IAAI,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;;KAEtC,IAAI,KAAK,EAAE;OACT,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;OACjD,OAAO,CAAC,MAAM,CAAC;AACrB,KAAA;;KAEI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC;AAC9C,KAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;AACzB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AAC9B,KAAI,IAAI,GAAG;;AAEX,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;OACtB,GAAG,GAAG,YAAY;AACxB,KAAA,CAAK,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;AACrE,OAAM,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC;KAC7E,CAAK,MAAM,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACnD,OAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACjC,OAAM,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;AAChC,KAAA,CAAK,MAAM;OACL,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;;AAE5C,OAAM,IAAI,MAAM,GAAG,GAAG,EAAE;AACxB,SAAQ,MAAM,IAAI,UAAU,CAAC,gDAAgD,CAAC;AAC9E,OAAA;;OAEM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC;AAC1C,OAAM,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;;AAEhC,OAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AACpC,SAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1B,OAAA,CAAO,MAAM;AACb,SAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AACxB,OAAA;AACA,KAAA;;KAEI,MAAM,OAAO,GAAG;AACpB,OAAM,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM;OACzB,GAAG,EAAE,IAAI;AACf,OAAM,YAAY,EAAE,IAAI,CAAC,aAAa;AACtC,OAAM,IAAI;AACV,OAAM,UAAU,EAAE,IAAI,CAAC,WAAW;OAC5B,MAAM,EAAE,IAAI;OACZ,QAAQ,EAAE,KAAK;AACrB,OAAM,IAAI,EAAE;MACP;;AAEL,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AACjC,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC5D,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;AACpD,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AACvB,KAAI,IAAI,UAAU;AAClB,KAAI,IAAI,QAAQ;;AAEhB,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,OAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;OACpC,QAAQ,GAAG,KAAK;AACtB,KAAA,CAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;AAC7B,OAAM,UAAU,GAAG,IAAI,CAAC,IAAI;OACtB,QAAQ,GAAG,KAAK;AACtB,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC3B,OAAM,UAAU,GAAG,IAAI,CAAC,MAAM;AAC9B,OAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ;AAClC,KAAA;;AAEA,KAAI,IAAI,UAAU,GAAG,GAAG,EAAE;AAC1B,OAAM,MAAM,IAAI,UAAU,CAAC,kDAAkD,CAAC;AAC9E,KAAA;;KAEI,MAAM,OAAO,GAAG;OACd,CAAC,WAAW,GAAG,UAAU;OACzB,GAAG,EAAE,IAAI;AACf,OAAM,YAAY,EAAE,IAAI,CAAC,aAAa;AACtC,OAAM,IAAI;AACV,OAAM,UAAU,EAAE,IAAI,CAAC,WAAW;OAC5B,MAAM,EAAE,IAAI;AAClB,OAAM,QAAQ;AACd,OAAM,IAAI,EAAE;MACP;;AAEL,KAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;AACtB,OAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AACnC,SAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAClE,OAAA,CAAO,MAAM;SACL,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AAClD,OAAA;AACA,KAAA,CAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AACxC,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC7D,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;AACrD,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AACvB,KAAI,IAAI,UAAU;AAClB,KAAI,IAAI,QAAQ;;AAEhB,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,OAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;OACpC,QAAQ,GAAG,KAAK;AACtB,KAAA,CAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;AAC7B,OAAM,UAAU,GAAG,IAAI,CAAC,IAAI;OACtB,QAAQ,GAAG,KAAK;AACtB,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC3B,OAAM,UAAU,GAAG,IAAI,CAAC,MAAM;AAC9B,OAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ;AAClC,KAAA;;AAEA,KAAI,IAAI,UAAU,GAAG,GAAG,EAAE;AAC1B,OAAM,MAAM,IAAI,UAAU,CAAC,kDAAkD,CAAC;AAC9E,KAAA;;KAEI,MAAM,OAAO,GAAG;OACd,CAAC,WAAW,GAAG,UAAU;OACzB,GAAG,EAAE,IAAI;AACf,OAAM,YAAY,EAAE,IAAI,CAAC,aAAa;AACtC,OAAM,IAAI;AACV,OAAM,UAAU,EAAE,IAAI,CAAC,WAAW;OAC5B,MAAM,EAAE,IAAI;AAClB,OAAM,QAAQ;AACd,OAAM,IAAI,EAAE;MACP;;AAEL,KAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;AACtB,OAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AACnC,SAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAClE,OAAA,CAAO,MAAM;SACL,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AAClD,OAAA;AACA,KAAA,CAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AACxC,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;AAC7D,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;AACrD,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;KACtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC;KAC3E,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;AACvC,KAAI,IAAI,IAAI,GAAG,OAAO,CAAC,QAAQ;;AAE/B,KAAI,IAAI,UAAU;AAClB,KAAI,IAAI,QAAQ;;AAEhB,KAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,OAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;OACpC,QAAQ,GAAG,KAAK;AACtB,KAAA,CAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;AAC7B,OAAM,UAAU,GAAG,IAAI,CAAC,IAAI;OACtB,QAAQ,GAAG,KAAK;AACtB,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC3B,OAAM,UAAU,GAAG,IAAI,CAAC,MAAM;AAC9B,OAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ;AAClC,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,cAAc,EAAE;AAC7B,OAAM,IAAI,CAAC,cAAc,GAAG,KAAK;OAC3B;AACN,SAAQ,IAAI;AACZ,SAAQ,iBAAiB;SACjB,iBAAiB,CAAC,MAAM;AAChC,WAAU,iBAAiB,CAAC;eACd;eACA;AACd;SACQ;AACR,SAAQ,IAAI,GAAG,UAAU,IAAI,iBAAiB,CAAC,UAAU;AACzD,OAAA;AACA,OAAM,IAAI,CAAC,SAAS,GAAG,IAAI;AAC3B,KAAA,CAAK,MAAM;OACL,IAAI,GAAG,KAAK;OACZ,MAAM,GAAG,CAAC;AAChB,KAAA;;KAEI,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI;;KAE3C,MAAM,IAAI,GAAG;OACX,CAAC,WAAW,GAAG,UAAU;AAC/B,OAAM,GAAG,EAAE,OAAO,CAAC,GAAG;AACtB,OAAM,YAAY,EAAE,IAAI,CAAC,aAAa;AACtC,OAAM,IAAI,EAAE,OAAO,CAAC,IAAI;AACxB,OAAM,UAAU,EAAE,IAAI,CAAC,WAAW;AAClC,OAAM,MAAM;AACZ,OAAM,QAAQ;OACR;MACD;;AAEL,KAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;AACtB,OAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AACnC,SAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACxE,OAAA,CAAO,MAAM;AACb,SAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;AACxD,OAAA;AACA,KAAA,CAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AACxC,OAAM,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACnE,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;AACnD,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;AAC3C,KAAI,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;AAC/C,KAAI,IAAI,CAAC,MAAM,GAAG,aAAa;;KAE3B;AACJ,QAAO,WAAW;AAClB,QAAO,IAAI,CAAC,CAAC,WAAW,KAAK;AAC7B,SAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AACpC,WAAU,MAAM,GAAG,GAAG,IAAI,KAAK;aACnB;YACD;;AAEX;AACA;AACA;AACA;AACA;WACU,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;WAC9C;AACV,SAAA;;AAEA,SAAQ,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;AACnD,SAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC;;SAElC,IAAI,CAAC,QAAQ,EAAE;AACvB,WAAU,IAAI,CAAC,MAAM,GAAG,OAAO;AAC/B,WAAU,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;WAC/C,IAAI,CAAC,OAAO,EAAE;AACxB,SAAA,CAAS,MAAM;WACL,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;AACpD,SAAA;OACA,CAAO;AACP,QAAO,KAAK,CAAC,CAAC,GAAG,KAAK;AACtB;AACA;AACA;AACA;SACQ,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;AAChD,OAAA,CAAO,CAAC;AACR,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;KACpC,IAAI,CAAC,QAAQ,EAAE;AACnB,OAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;OAC/C;AACN,KAAA;;KAEI,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC;;AAE/E,KAAI,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;AAC/C,KAAI,IAAI,CAAC,MAAM,GAAG,SAAS;AAC3B,KAAI,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK;AAC9D,OAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AAClC,SAAQ,MAAM,GAAG,GAAG,IAAI,KAAK;WACnB;UACD;;AAET,SAAQ,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;SAC5B;AACR,OAAA;;AAEA,OAAM,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;AACjD,OAAM,IAAI,CAAC,MAAM,GAAG,OAAO;AAC3B,OAAM,OAAO,CAAC,QAAQ,GAAG,KAAK;AAC9B,OAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;OAC9C,IAAI,CAAC,OAAO,EAAE;AACpB,KAAA,CAAK,CAAC;AACN,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,OAAO,GAAG;AACZ,KAAI,OAAO,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;OACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;;OAElC,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACnD,OAAM,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrD,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,OAAO,CAAC,MAAM,EAAE;KACd,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;AACjD,KAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAC5B,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE;AACtB,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,OAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;OACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,OAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACrC,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AAC3B,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACrC,KAAA;AACA,GAAA;AACA;;AAEA,CAAA,MAAc,GAAG,MAAM;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;GACtC,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC;;AAEvC,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;KAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;;KAE1C,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC;AACrD,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;AAClC,GAAE,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;AAChC,GAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;AACrB,CAAA;;;;;;;;;;;ACvlBA,CAAA,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,GAAGR,gBAAA,EAAsB;;AAElE,CAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;AAC7B,CAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;AAC7B,CAAA,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC/B,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AACjC,CAAA,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AACjC,CAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;AAC7B,CAAA,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;;AAErC;AACA;AACA;AACA,CAAA,MAAM,KAAK,CAAC;AACZ;AACA;AACA;AACA;AACA;AACA;GACE,WAAW,CAAC,IAAI,EAAE;AACpB,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;AACxB,KAAI,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;AACtB,GAAA;;AAEA;AACA;AACA;GACE,IAAI,MAAM,GAAG;AACf,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAA;;AAEA;AACA;AACA;GACE,IAAI,IAAI,GAAG;AACb,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAA;AACA;;AAEA,CAAA,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACtE,CAAA,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;;AAEpE;AACA;AACA;AACA;AACA;CACA,MAAM,UAAU,SAAS,KAAK,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;KAC9B,KAAK,CAAC,IAAI,CAAC;;AAEf,KAAI,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI;AAC/D,KAAI,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM;AACtE,KAAI,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC,QAAQ;AAC/E,GAAA;;AAEA;AACA;AACA;GACE,IAAI,IAAI,GAAG;AACb,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAA;;AAEA;AACA;AACA;GACE,IAAI,MAAM,GAAG;AACf,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAA;;AAEA;AACA;AACA;GACE,IAAI,QAAQ,GAAG;AACjB,KAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAA;AACA;;AAEA,CAAA,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACzE,CAAA,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC3E,CAAA,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;;AAE7E;AACA;AACA;AACA;AACA;CACA,MAAM,UAAU,SAAS,KAAK,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;KAC9B,KAAK,CAAC,IAAI,CAAC;;AAEf,KAAI,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK;AACrE,KAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO;AACzE,GAAA;;AAEA;AACA;AACA;GACE,IAAI,KAAK,GAAG;AACd,KAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAA;;AAEA;AACA;AACA;GACE,IAAI,OAAO,GAAG;AAChB,KAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAA;AACA;;AAEA,CAAA,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC1E,CAAA,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;;AAE5E;AACA;AACA;AACA;AACA;CACA,MAAM,YAAY,SAAS,KAAK,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE;KAC9B,KAAK,CAAC,IAAI,CAAC;;AAEf,KAAI,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI;AAClE,GAAA;;AAEA;AACA;AACA;GACE,IAAI,IAAI,GAAG;AACb,KAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAA;AACA;;AAEA,CAAA,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,MAAM,WAAW,GAAG;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,EAAE;KAC5C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;OAC3C;AACN,SAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC;AACtC,SAAQ,QAAQ,CAAC,SAAS,CAAC,KAAK,OAAO;SAC/B,CAAC,QAAQ,CAAC,oBAAoB;SAC9B;SACA;AACR,OAAA;AACA,KAAA;;AAEA,KAAI,IAAI,OAAO;;AAEf,KAAI,IAAI,IAAI,KAAK,SAAS,EAAE;OACtB,OAAO,GAAG,SAAS,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE;AACnD,SAAQ,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,SAAS,EAAE;WACxC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ;AAC/C,UAAS,CAAC;;AAEV,SAAQ,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;AAC7B,SAAQ,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;OAC1C,CAAO;AACP,KAAA,CAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE;OAC3B,OAAO,GAAG,SAAS,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE;AAChD,SAAQ,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE;AAC9C,WAAU,IAAI;AACd,WAAU,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE;AACpC,WAAU,QAAQ,EAAE,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC;AACrD,UAAS,CAAC;;AAEV,SAAQ,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;AAC7B,SAAQ,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;OAC1C,CAAO;AACP,KAAA,CAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE;AACjC,OAAM,OAAO,GAAG,SAAS,OAAO,CAAC,KAAK,EAAE;AACxC,SAAQ,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE;AAC9C,WAAU,KAAK;WACL,OAAO,EAAE,KAAK,CAAC;AACzB,UAAS,CAAC;;AAEV,SAAQ,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;AAC7B,SAAQ,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;OAC1C,CAAO;AACP,KAAA,CAAK,MAAM,IAAI,IAAI,KAAK,MAAM,EAAE;AAChC,OAAM,OAAO,GAAG,SAAS,MAAM,GAAG;AAClC,SAAQ,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC;;AAEvC,SAAQ,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI;AAC7B,SAAQ,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;OAC1C,CAAO;AACP,KAAA,CAAK,MAAM;OACL;AACN,KAAA;;KAEI,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC;AACnE,KAAI,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO;;AAEhC,KAAI,IAAI,OAAO,CAAC,IAAI,EAAE;AACtB,OAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;AAC9B,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AAC5B,KAAA;GACA,CAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE;KACjC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACjD,OAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;AAC9E,SAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC;SACnC;AACR,OAAA;AACA,KAAA;AACA,GAAA;EACC;;AAED,CAAA,WAAc,GAAG;AACjB,GAAE,UAAU;AACZ,GAAE,UAAU;AACZ,GAAE,KAAK;AACP,GAAE,WAAW;GACX;EACD;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;GAC9C,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE;KACxD,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC9C,GAAA,CAAG,MAAM;AACT,KAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AACjC,GAAA;AACA,CAAA;;;;;;;;;;;ACjSA,CAAA,MAAM,EAAE,UAAU,EAAE,GAAGA,iBAAA,EAAuB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAChC,GAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,KAAK,CAAC,MAAM,EAAE;GACrB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;GAClC,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;GAChC,IAAI,YAAY,GAAG,KAAK;GACxB,IAAI,UAAU,GAAG,KAAK;GACtB,IAAI,QAAQ,GAAG,KAAK;AACtB,GAAE,IAAI,aAAa;AACnB,GAAE,IAAI,SAAS;AACf,GAAE,IAAI,KAAK,GAAG,EAAE;AAChB,GAAE,IAAI,IAAI,GAAG,EAAE;AACf,GAAE,IAAI,GAAG,GAAG,EAAE;GACZ,IAAI,CAAC,GAAG,CAAC;;GAET,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjC,KAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;;AAE/B,KAAI,IAAI,aAAa,KAAK,SAAS,EAAE;AACrC,OAAM,IAAI,GAAG,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SACxC,IAAI,KAAK,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC;AACnC,OAAA,CAAO,MAAM;SACL,CAAC,KAAK,CAAC;AACf,UAAS,IAAI,KAAK,IAAI,cAAc,IAAI,KAAK,IAAI,CAAC;SAC1C;AACR,SAAQ,IAAI,GAAG,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;OAC/C,CAAO,MAAM,IAAI,IAAI,KAAK,IAAI,cAAc,IAAI,KAAK,IAAI,YAAY;AACrE,SAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;WAChB,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,SAAA;;SAEQ,IAAI,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;SACvB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AAC7C,SAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3B,WAAU,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;AACpC,WAAU,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACtC,SAAA,CAAS,MAAM;WACL,aAAa,GAAG,IAAI;AAC9B,SAAA;;AAEA,SAAQ,KAAK,GAAG,GAAG,GAAG,EAAE;AACxB,OAAA,CAAO,MAAM;SACL,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,OAAA;AACA,KAAA,CAAK,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE;AACxC,OAAM,IAAI,GAAG,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SACxC,IAAI,KAAK,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC;OACnC,CAAO,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,SAAQ,IAAI,GAAG,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;OAC/C,CAAO,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,SAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;WAChB,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,SAAA;;SAEQ,IAAI,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;AAC/B,SAAQ,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC;AACpD,SAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3B,WAAU,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC;AAC7C,WAAU,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;WAC5B,aAAa,GAAG,SAAS;AACnC,SAAA;;AAEA,SAAQ,KAAK,GAAG,GAAG,GAAG,EAAE;AACxB,OAAA,CAAO,MAAM,IAAI,IAAI,KAAK,IAAI,cAAc,KAAK,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE;SAChE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1C,SAAQ,KAAK,GAAG,GAAG,GAAG,EAAE;AACxB,OAAA,CAAO,MAAM;SACL,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,OAAA;AACA,KAAA,CAAK,MAAM;AACX;AACA;AACA;AACA;AACA;OACM,IAAI,UAAU,EAAE;AACtB,SAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;WAC1B,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,SAAA;SACQ,IAAI,KAAK,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC;AACnC,cAAa,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;SAC3C,UAAU,GAAG,KAAK;OAC1B,CAAO,MAAM,IAAI,QAAQ,EAAE;AAC3B,SAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;WAC1B,IAAI,KAAK,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC;SACrC,CAAS,MAAM,IAAI,IAAI,KAAK,IAAI,cAAc,KAAK,KAAK,EAAE,EAAE;WAClD,QAAQ,GAAG,KAAK;WAChB,GAAG,GAAG,CAAC;AACjB,SAAA,CAAS,MAAM,IAAI,IAAI,KAAK,IAAI,YAAY;WAClC,UAAU,GAAG,IAAI;AAC3B,SAAA,CAAS,MAAM;WACL,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,SAAA;AACA,OAAA,CAAO,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;SAC7D,QAAQ,GAAG,IAAI;AACvB,OAAA,CAAO,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SAC/C,IAAI,KAAK,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC;AACnC,OAAA,CAAO,MAAM,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE;SAC3D,IAAI,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;OAC/B,CAAO,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,SAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;WAChB,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,SAAA;;SAEQ,IAAI,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;SACvB,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;SACpC,IAAI,YAAY,EAAE;WAChB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;WAChC,YAAY,GAAG,KAAK;AAC9B,SAAA;AACA,SAAQ,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;AACtC,SAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3B,WAAU,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC;AAC7C,WAAU,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;WAC5B,aAAa,GAAG,SAAS;AACnC,SAAA;;SAEQ,SAAS,GAAG,SAAS;AAC7B,SAAQ,KAAK,GAAG,GAAG,GAAG,EAAE;AACxB,OAAA,CAAO,MAAM;SACL,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,OAAA;AACA,KAAA;AACA,GAAA;;AAEA,GAAE,IAAI,KAAK,KAAK,EAAE,IAAI,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AAClE,KAAI,MAAM,IAAI,WAAW,CAAC,yBAAyB,CAAC;AACpD,GAAA;;GAEE,IAAI,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;GACvB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACxC,GAAE,IAAI,aAAa,KAAK,SAAS,EAAE;AACnC,KAAI,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;AAC/B,GAAA,CAAG,MAAM;AACT,KAAI,IAAI,SAAS,KAAK,SAAS,EAAE;AACjC,OAAM,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;KAC/B,CAAK,MAAM,IAAI,YAAY,EAAE;AAC7B,OAAM,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACvD,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;AACpC,KAAA;AACA,KAAI,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC;AACvC,GAAA;;AAEA,GAAE,OAAO,MAAM;AACf,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,MAAM,CAAC,UAAU,EAAE;AAC5B,GAAE,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU;AAC/B,MAAK,GAAG,CAAC,CAAC,SAAS,KAAK;AACxB,OAAM,IAAI,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC;AAChD,OAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,CAAC,cAAc,CAAC;AAC3E,OAAM,OAAO;AACb,UAAS,GAAG,CAAC,CAAC,MAAM,KAAK;WACf,OAAO,CAAC,SAAS;AAC3B,cAAa,MAAM;eACL,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC7C,iBAAgB,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AACtC,iBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC;AAC7D,iBAAgB,OAAO;oBACJ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,IAAI,CAAC;eAC7B,CAAe;AACf;cACa,IAAI,CAAC,IAAI,CAAC;SACvB,CAAS;UACA,IAAI,CAAC,IAAI,CAAC;KACnB,CAAK;MACA,IAAI,CAAC,IAAI,CAAC;AACf,CAAA;;AAEA,CAAA,SAAc,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE;;;;;;;;;;;;;CCtMlC,MAAM,YAAY,GAAGA,YAAiB;CACtC,MAAM,KAAK,GAAG,UAAgB;CAC9B,MAAM,IAAI,GAAG,UAAe;CAC5B,MAAM,GAAG,GAAGK,YAAc;CAC1B,MAAM,GAAG,GAAGE,YAAc;AAC1B,CAAA,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAGC,UAAiB;AACrD,CAAA,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAGC,YAAiB;AAC9C,CAAA,MAAM,EAAE,GAAG,EAAE,GAAG,UAAc;;CAE9B,MAAM,iBAAiB,GAAGC,wBAAA,EAA+B;CACzD,MAAM,QAAQ,GAAGC,eAAA,EAAqB;CACtC,MAAM,MAAM,GAAGC,aAAA,EAAmB;AAClC,CAAA,MAAM,EAAE,MAAM,EAAE,GAAGC,iBAAA,EAAuB;;CAE1C,MAAM;AACN,GAAE,YAAY;AACd,GAAE,YAAY;AACd,GAAE,IAAI;AACN,GAAE,oBAAoB;AACtB,GAAE,SAAS;AACX,GAAE,WAAW;AACb,GAAE,UAAU;GACV;AACF,EAAC,GAAGC,gBAAA,EAAsB;CAC1B,MAAM;AACN,GAAE,WAAW,EAAE,EAAE,gBAAgB,EAAE,mBAAmB;AACtD,EAAC,GAAGC,kBAAA,EAAyB;AAC7B,CAAA,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAGC,gBAAA,EAAsB;AAChD,CAAA,MAAM,EAAE,QAAQ,EAAE,GAAGC,iBAAA,EAAwB;;AAE7C,CAAA,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI;AAC9B,CAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AACnC,CAAA,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;CAChC,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;CAC/D,MAAM,gBAAgB,GAAG,gCAAgC;;AAEzD;AACA;AACA;AACA;AACA;CACA,MAAM,SAAS,SAAS,YAAY,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE;AAC3C,KAAI,KAAK,EAAE;;AAEX,KAAI,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC;AACtC,KAAI,IAAI,CAAC,UAAU,GAAG,IAAI;AAC1B,KAAI,IAAI,CAAC,mBAAmB,GAAG,KAAK;AACpC,KAAI,IAAI,CAAC,eAAe,GAAG,KAAK;AAChC,KAAI,IAAI,CAAC,aAAa,GAAG,YAAY;AACrC,KAAI,IAAI,CAAC,WAAW,GAAG,IAAI;AAC3B,KAAI,IAAI,CAAC,aAAa,GAAG,KAAK;AAC9B,KAAI,IAAI,CAAC,WAAW,GAAG,EAAE;AACzB,KAAI,IAAI,CAAC,OAAO,GAAG,KAAK;AACxB,KAAI,IAAI,CAAC,SAAS,GAAG,EAAE;AACvB,KAAI,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,UAAU;AAC3C,KAAI,IAAI,CAAC,SAAS,GAAG,IAAI;AACzB,KAAI,IAAI,CAAC,OAAO,GAAG,IAAI;AACvB,KAAI,IAAI,CAAC,OAAO,GAAG,IAAI;;AAEvB,KAAI,IAAI,OAAO,KAAK,IAAI,EAAE;AAC1B,OAAM,IAAI,CAAC,eAAe,GAAG,CAAC;AAC9B,OAAM,IAAI,CAAC,SAAS,GAAG,KAAK;AAC5B,OAAM,IAAI,CAAC,UAAU,GAAG,CAAC;;AAEzB,OAAM,IAAI,SAAS,KAAK,SAAS,EAAE;SAC3B,SAAS,GAAG,EAAE;OACtB,CAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;SACpC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE;WACvD,OAAO,GAAG,SAAS;WACnB,SAAS,GAAG,EAAE;AACxB,SAAA,CAAS,MAAM;AACf,WAAU,SAAS,GAAG,CAAC,SAAS,CAAC;AACjC,SAAA;AACA,OAAA;;OAEM,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;AACrD,KAAA,CAAK,MAAM;AACX,OAAM,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ;AACvC,OAAM,IAAI,CAAC,SAAS,GAAG,IAAI;AAC3B,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;GACE,IAAI,UAAU,GAAG;KACf,OAAO,IAAI,CAAC,WAAW;AAC3B,GAAA;;AAEA,GAAE,IAAI,UAAU,CAAC,IAAI,EAAE;KACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;;AAEtC,KAAI,IAAI,CAAC,WAAW,GAAG,IAAI;;AAE3B;AACA;AACA;KACI,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI;AACzD,GAAA;;AAEA;AACA;AACA;GACE,IAAI,cAAc,GAAG;KACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,eAAe;;AAElD,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc;AAC3E,GAAA;;AAEA;AACA;AACA;GACE,IAAI,UAAU,GAAG;KACf,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;AAC/C,GAAA;;AAEA;AACA;AACA;GACE,IAAI,QAAQ,GAAG;KACb,OAAO,IAAI,CAAC,OAAO;AACvB,GAAA;;AAEA;AACA;AACA;AACA;GACE,IAAI,OAAO,GAAG;AAChB,KAAI,OAAO,IAAI;AACf,GAAA;;AAEA;AACA;AACA;AACA;GACE,IAAI,OAAO,GAAG;AAChB,KAAI,OAAO,IAAI;AACf,GAAA;;AAEA;AACA;AACA;AACA;GACE,IAAI,MAAM,GAAG;AACf,KAAI,OAAO,IAAI;AACf,GAAA;;AAEA;AACA;AACA;AACA;GACE,IAAI,SAAS,GAAG;AAClB,KAAI,OAAO,IAAI;AACf,GAAA;;AAEA;AACA;AACA;GACE,IAAI,QAAQ,GAAG;KACb,OAAO,IAAI,CAAC,SAAS;AACzB,GAAA;;AAEA;AACA;AACA;GACE,IAAI,UAAU,GAAG;KACf,OAAO,IAAI,CAAC,WAAW;AAC3B,GAAA;;AAEA;AACA;AACA;GACE,IAAI,GAAG,GAAG;KACR,OAAO,IAAI,CAAC,IAAI;AACpB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;AACnC,KAAI,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;AAClC,OAAM,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;AAC5D,OAAM,UAAU,EAAE,IAAI,CAAC,UAAU;AACjC,OAAM,UAAU,EAAE,IAAI,CAAC,WAAW;AAClC,OAAM,QAAQ,EAAE,IAAI,CAAC,SAAS;AAC9B,OAAM,UAAU,EAAE,OAAO,CAAC,UAAU;OAC9B,kBAAkB,EAAE,OAAO,CAAC;AAClC,MAAK,CAAC;;AAEN,KAAI,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC;;AAE7E,KAAI,IAAI,CAAC,SAAS,GAAG,QAAQ;AAC7B,KAAI,IAAI,CAAC,OAAO,GAAG,MAAM;AACzB,KAAI,IAAI,CAAC,OAAO,GAAG,MAAM;;AAEzB,KAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI;AAC/B,KAAI,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI;AAC7B,KAAI,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI;;AAE7B,KAAI,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC;AAC/C,KAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC;AACzC,KAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC;AACzC,KAAI,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC;AAC7C,KAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;AACvC,KAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC;;AAEvC,KAAI,MAAM,CAAC,OAAO,GAAG,aAAa;;AAElC;AACA;AACA;KACI,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;KAC3C,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;;AAE9C,KAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;;AAE7C,KAAI,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;AACrC,KAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;AACnC,KAAI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;AACjC,KAAI,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;;AAErC,KAAI,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI;AACrC,KAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACrB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,GAAG;AACd,KAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACvB,OAAM,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM;AACzC,OAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC;OACvD;AACN,KAAA;;KAEI,IAAI,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE;OACrD,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE;AACjE,KAAA;;AAEA,KAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;AACvC,KAAI,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM;AACvC,KAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC;AAC3D,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE;KAChB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM,EAAE;KAC1C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;OAC5C,MAAM,GAAG,GAAG,4DAA4D;OACxE,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;OACpC;AACN,KAAA;;KAEI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,OAAO,EAAE;OACzC;SACE,IAAI,CAAC,eAAe;UACnB,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY;SACvE;AACR,SAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AAC1B,OAAA;;OAEM;AACN,KAAA;;AAEA,KAAI,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO;AACxC,KAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK;AAC7D;AACA;AACA;AACA;OACM,IAAI,GAAG,EAAE;;AAEf,OAAM,IAAI,CAAC,eAAe,GAAG,IAAI;;OAE3B;SACE,IAAI,CAAC,mBAAmB;AAChC,SAAQ,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;SAC9B;AACR,SAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AAC1B,OAAA;AACA,KAAA,CAAK,CAAC;;KAEF,aAAa,CAAC,IAAI,CAAC;AACvB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,KAAK,GAAG;KACN;AACJ,OAAM,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU;AAC9C,OAAM,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;OAC9B;OACA;AACN,KAAA;;AAEA,KAAI,IAAI,CAAC,OAAO,GAAG,IAAI;AACvB,KAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACxB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;KACnB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;AAClD,OAAM,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;AACzE,KAAA;;AAEA,KAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;OAC9B,EAAE,GAAG,IAAI;AACf,OAAM,IAAI,GAAG,IAAI,GAAG,SAAS;AAC7B,KAAA,CAAK,MAAM,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;OACrC,EAAE,GAAG,IAAI;OACT,IAAI,GAAG,SAAS;AACtB,KAAA;;KAEI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;;KAEpD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;AAC5C,OAAM,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;OAC9B;AACN,KAAA;;KAEI,IAAI,IAAI,KAAK,SAAS,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS;AAClD,KAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;AACrD,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;KACnB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;AAClD,OAAM,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;AACzE,KAAA;;AAEA,KAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;OAC9B,EAAE,GAAG,IAAI;AACf,OAAM,IAAI,GAAG,IAAI,GAAG,SAAS;AAC7B,KAAA,CAAK,MAAM,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;OACrC,EAAE,GAAG,IAAI;OACT,IAAI,GAAG,SAAS;AACtB,KAAA;;KAEI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;;KAEpD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;AAC5C,OAAM,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;OAC9B;AACN,KAAA;;KAEI,IAAI,IAAI,KAAK,SAAS,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS;AAClD,KAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;AACrD,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,MAAM,GAAG;KACP;AACJ,OAAM,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU;AAC9C,OAAM,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;OAC9B;OACA;AACN,KAAA;;AAEA,KAAI,IAAI,CAAC,OAAO,GAAG,KAAK;AACxB,KAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACvE,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;KACtB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;AAClD,OAAM,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;AACzE,KAAA;;AAEA,KAAI,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;OACjC,EAAE,GAAG,OAAO;OACZ,OAAO,GAAG,EAAE;AAClB,KAAA;;KAEI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;;KAEpD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;AAC5C,OAAM,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;OAC9B;AACN,KAAA;;KAEI,MAAM,IAAI,GAAG;AACjB,OAAM,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ;AACtC,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS;OACrB,QAAQ,EAAE,IAAI;OACd,GAAG,EAAE,IAAI;AACf,OAAM,GAAG;MACJ;;KAED,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE;AAC5D,OAAM,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC3B,KAAA;;AAEA,KAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;AACrD,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,SAAS,GAAG;KACV,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM,EAAE;KAC1C,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;OAC5C,MAAM,GAAG,GAAG,4DAA4D;OACxE,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;OACpC;AACN,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,OAAM,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO;AAC1C,OAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAC5B,KAAA;AACA,GAAA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE;GAC7C,UAAU,EAAE,IAAI;AAClB,GAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY;AACzC,EAAC,CAAC;;AAEF;AACA;AACA;AACA;CACA,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE;GACvD,UAAU,EAAE,IAAI;AAClB,GAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY;AACzC,EAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,CAAA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE;GACvC,UAAU,EAAE,IAAI;AAClB,GAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;AACnC,EAAC,CAAC;;AAEF;AACA;AACA;AACA;CACA,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE;GACjD,UAAU,EAAE,IAAI;AAClB,GAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;AACnC,EAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,CAAA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE;GAC1C,UAAU,EAAE,IAAI;AAClB,GAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS;AACtC,EAAC,CAAC;;AAEF;AACA;AACA;AACA;CACA,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE;GACpD,UAAU,EAAE,IAAI;AAClB,GAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS;AACtC,EAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,CAAA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE;GACzC,UAAU,EAAE,IAAI;AAClB,GAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ;AACrC,EAAC,CAAC;;AAEF;AACA;AACA;AACA;CACA,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE;GACnD,UAAU,EAAE,IAAI;AAClB,GAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ;AACrC,EAAC,CAAC;;AAEF,CAAA;AACA,GAAE,YAAY;AACd,GAAE,gBAAgB;AAClB,GAAE,YAAY;AACd,GAAE,UAAU;AACZ,GAAE,UAAU;AACZ,GAAE,YAAY;GACZ;AACF,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACxB,GAAE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC5E,CAAA,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA,CAAA,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAC1D,GAAE,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;KACxD,UAAU,EAAE,IAAI;AACpB,KAAI,GAAG,GAAG;OACJ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;SAC7C,IAAI,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,QAAQ,CAAC,SAAS,CAAC;AACtE,OAAA;;AAEA,OAAM,OAAO,IAAI;KACjB,CAAK;KACD,GAAG,CAAC,OAAO,EAAE;OACX,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;AACrD,SAAQ,IAAI,QAAQ,CAAC,oBAAoB,CAAC,EAAE;AAC5C,WAAU,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;WACrC;AACV,SAAA;AACA,OAAA;;AAEA,OAAM,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;;AAEzC,OAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE;SACrC,CAAC,oBAAoB,GAAG;AAChC,QAAO,CAAC;AACR,KAAA;AACA,IAAG,CAAC;AACJ,CAAA,CAAC,CAAC;;AAEF,CAAA,SAAS,CAAC,SAAS,CAAC,gBAAgB,GAAG,gBAAgB;AACvD,CAAA,SAAS,CAAC,SAAS,CAAC,mBAAmB,GAAG,mBAAmB;;AAE7D,CAAA,SAAc,GAAG,SAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE;GAC5D,MAAM,IAAI,GAAG;KACX,sBAAsB,EAAE,IAAI;KAC5B,QAAQ,EAAE,IAAI;AAClB,KAAI,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACxC,KAAI,UAAU,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;KAC7B,kBAAkB,EAAE,KAAK;KACzB,iBAAiB,EAAE,IAAI;KACvB,eAAe,EAAE,KAAK;KACtB,YAAY,EAAE,EAAE;AACpB,KAAI,GAAG,OAAO;KACV,UAAU,EAAE,SAAS;KACrB,QAAQ,EAAE,SAAS;KACnB,QAAQ,EAAE,SAAS;KACnB,OAAO,EAAE,SAAS;KAClB,MAAM,EAAE,KAAK;KACb,IAAI,EAAE,SAAS;KACf,IAAI,EAAE,SAAS;AACnB,KAAI,IAAI,EAAE;IACP;;AAEH,GAAE,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ;;GAEnC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;KACpD,MAAM,IAAI,UAAU;OAClB,CAAC,8BAA8B,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;SACtD,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;MACxD;AACL,GAAA;;AAEA,GAAE,IAAI,SAAS;;AAEf,GAAE,IAAI,OAAO,YAAY,GAAG,EAAE;KAC1B,SAAS,GAAG,OAAO;AACvB,GAAA,CAAG,MAAM;AACT,KAAI,IAAI;AACR,OAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;KAClC,CAAK,CAAC,OAAO,CAAC,EAAE;OACV,MAAM,IAAI,WAAW,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;AACtD,KAAA;AACA,GAAA;;AAEA,GAAE,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,EAAE;AACtC,KAAI,SAAS,CAAC,QAAQ,GAAG,KAAK;AAC9B,GAAA,CAAG,MAAM,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC9C,KAAI,SAAS,CAAC,QAAQ,GAAG,MAAM;AAC/B,GAAA;;AAEA,GAAE,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;;AAEjC,GAAE,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,KAAK,MAAM;AAChD,GAAE,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,KAAK,UAAU;AACpD,GAAE,IAAI,iBAAiB;;AAEvB,GAAE,IAAI,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;AAC9D,KAAI,iBAAiB;AACrB,OAAM,oDAAoD;AAC1D,OAAM,kCAAkC;GACxC,CAAG,MAAM,IAAI,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;KAC1C,iBAAiB,GAAG,6BAA6B;AACrD,GAAA,CAAG,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE;KACzB,iBAAiB,GAAG,wCAAwC;AAChE,GAAA;;GAEE,IAAI,iBAAiB,EAAE;AACzB,KAAI,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC;;AAElD,KAAI,IAAI,SAAS,CAAC,UAAU,KAAK,CAAC,EAAE;AACpC,OAAM,MAAM,GAAG;AACf,KAAA,CAAK,MAAM;AACX,OAAM,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC;OACjC;AACN,KAAA;AACA,GAAA;;AAEA,GAAE,MAAM,WAAW,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE;GACvC,MAAM,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;GAC9C,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AACzD,GAAE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE;AAC/B,GAAE,IAAI,iBAAiB;;GAErB,IAAI,CAAC,gBAAgB;KACnB,IAAI,CAAC,gBAAgB,KAAK,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;GAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,WAAW;GAClD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,WAAW;GACzC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG;OACzC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE;OAC9B,SAAS,CAAC,QAAQ;GACtB,IAAI,CAAC,OAAO,GAAG;KACb,GAAG,IAAI,CAAC,OAAO;AACnB,KAAI,uBAAuB,EAAE,IAAI,CAAC,eAAe;KAC7C,mBAAmB,EAAE,GAAG;KACxB,UAAU,EAAE,SAAS;AACzB,KAAI,OAAO,EAAE;IACV;GACD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM;AACnD,GAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB;;AAEtC,GAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;KAC1B,iBAAiB,GAAG,IAAI,iBAAiB;OACvC,IAAI,CAAC,iBAAiB,KAAK,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,EAAE;AACnE,OAAM,KAAK;AACX,OAAM,IAAI,CAAC;MACN;KACD,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,GAAG,MAAM,CAAC;AACtD,OAAM,CAAC,iBAAiB,CAAC,aAAa,GAAG,iBAAiB,CAAC,KAAK;AAChE,MAAK,CAAC;AACN,GAAA;AACA,GAAE,IAAI,SAAS,CAAC,MAAM,EAAE;AACxB,KAAI,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;OAChC;SACE,OAAO,QAAQ,KAAK,QAAQ;AACpC,SAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxC,SAAQ,WAAW,CAAC,GAAG,CAAC,QAAQ;SACxB;SACA,MAAM,IAAI,WAAW;WACnB;UACD;AACT,OAAA;;AAEA,OAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/B,KAAA;;AAEA,KAAI,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;AAChE,GAAA;AACA,GAAE,IAAI,IAAI,CAAC,MAAM,EAAE;AACnB,KAAI,IAAI,IAAI,CAAC,eAAe,GAAG,EAAE,EAAE;OAC7B,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,MAAM;AACxD,KAAA,CAAK,MAAM;OACL,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;AACvC,KAAA;AACA,GAAA;GACE,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE;AAChD,KAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7D,GAAA;;GAEE,IAAI,QAAQ,EAAE;KACZ,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;AAEtC,KAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;AAC9B,KAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AACxB,GAAA;;AAEA,GAAE,IAAI,GAAG;;AAET,GAAE,IAAI,IAAI,CAAC,eAAe,EAAE;AAC5B,KAAI,IAAI,SAAS,CAAC,UAAU,KAAK,CAAC,EAAE;AACpC,OAAM,SAAS,CAAC,YAAY,GAAG,QAAQ;AACvC,OAAM,SAAS,CAAC,eAAe,GAAG,QAAQ;OACpC,SAAS,CAAC,yBAAyB,GAAG;AAC5C,WAAU,IAAI,CAAC;WACL,SAAS,CAAC,IAAI;;AAExB,OAAM,MAAM,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO;;AAEhD;AACA;AACA;AACA;OACM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;;OAErC,IAAI,OAAO,EAAE;AACnB,SAAQ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;WAClD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK;AACpD,SAAA;AACA,OAAA;KACA,CAAK,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;OACpD,MAAM,UAAU,GAAG;AACzB,WAAU,SAAS,CAAC;AACpB,aAAY,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC;aAC9B;AACZ,WAAU,SAAS,CAAC;aACR;AACZ,aAAY,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,yBAAyB;;OAE5D,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC,EAAE;AACnE;AACA;AACA;AACA;AACA,SAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa;AACzC,SAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;;SAE1B,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI;;AAEjD,SAAQ,IAAI,CAAC,IAAI,GAAG,SAAS;AAC7B,OAAA;AACA,KAAA;;AAEA;AACA;AACA;AACA;AACA;KACI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;AACrD,OAAM,OAAO,CAAC,OAAO,CAAC,aAAa;AACnC,SAAQ,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC5D,KAAA;;KAEI,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;AAExC,KAAI,IAAI,SAAS,CAAC,UAAU,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;OACM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;AACpD,KAAA;AACA,GAAA,CAAG,MAAM;KACL,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACxC,GAAA;;AAEA,GAAE,IAAI,IAAI,CAAC,OAAO,EAAE;AACpB,KAAI,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM;AAC5B,OAAM,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,iCAAiC,CAAC;AACvE,KAAA,CAAK,CAAC;AACN,GAAA;;GAEE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;KACvB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE;;AAEvC,KAAI,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI;AAC/B,KAAI,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC;AACrC,GAAA,CAAG,CAAC;;GAEF,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK;AAC9B,KAAI,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ;AACzC,KAAI,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU;;KAEjC;AACJ,OAAM,QAAQ;OACR,IAAI,CAAC,eAAe;OACpB,UAAU,IAAI,GAAG;AACvB,OAAM,UAAU,GAAG;OACb;OACA,IAAI,EAAE,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE;AACtD,SAAQ,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,4BAA4B,CAAC;SAC5D;AACR,OAAA;;OAEM,GAAG,CAAC,KAAK,EAAE;;AAEjB,OAAM,IAAI,IAAI;;AAEd,OAAM,IAAI;SACF,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;OACzC,CAAO,CAAC,OAAO,CAAC,EAAE;AAClB,SAAQ,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/D,SAAQ,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC;SACjC;AACR,OAAA;;OAEM,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC;AACvD,KAAA,CAAK,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;AACjE,OAAM,cAAc;AACpB,SAAQ,SAAS;AACjB,SAAQ,GAAG;AACX,SAAQ,CAAC,4BAA4B,EAAE,GAAG,CAAC,UAAU,CAAC;QAC/C;AACP,KAAA;AACA,GAAA,CAAG,CAAC;;AAEJ,GAAE,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,KAAK;AAC3C,KAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;;AAElC;AACA;AACA;AACA;KACI,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;;AAEvD,KAAI,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI;;AAE/B,KAAI,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO;;KAEnC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE;AACxE,OAAM,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,wBAAwB,CAAC;OAC3D;AACN,KAAA;;AAEA,KAAI,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM;AACpC,QAAO,MAAM,CAAC,GAAG,GAAG,IAAI;QACjB,MAAM,CAAC,QAAQ,CAAC;;KAEnB,IAAI,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,MAAM,EAAE;AACxD,OAAM,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,qCAAqC,CAAC;OACxE;AACN,KAAA;;KAEI,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC;AAC5D,KAAI,IAAI,SAAS;;AAEjB,KAAI,IAAI,UAAU,KAAK,SAAS,EAAE;AAClC,OAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;SACrB,SAAS,GAAG,kDAAkD;OACtE,CAAO,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;SACvC,SAAS,GAAG,oCAAoC;AACxD,OAAA;AACA,KAAA,CAAK,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE;OAC3B,SAAS,GAAG,4BAA4B;AAC9C,KAAA;;KAEI,IAAI,SAAS,EAAE;AACnB,OAAM,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;OAC5C;AACN,KAAA;;AAEA,KAAI,IAAI,UAAU,EAAE,SAAS,CAAC,SAAS,GAAG,UAAU;;KAEhD,MAAM,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAAC,0BAA0B,CAAC;;AAE1E,KAAI,IAAI,sBAAsB,KAAK,SAAS,EAAE;OACxC,IAAI,CAAC,iBAAiB,EAAE;AAC9B,SAAQ,MAAM,OAAO;AACrB,WAAU,iEAAiE;AAC3E,WAAU,eAAe;AACzB,SAAQ,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;SAC1C;AACR,OAAA;;AAEA,OAAM,IAAI,UAAU;;AAEpB,OAAM,IAAI;AACV,SAAQ,UAAU,GAAG,KAAK,CAAC,sBAAsB,CAAC;OAClD,CAAO,CAAC,OAAO,GAAG,EAAE;SACZ,MAAM,OAAO,GAAG,yCAAyC;AACjE,SAAQ,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;SAC1C;AACR,OAAA;;OAEM,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;;OAE9C;AACN,SAAQ,cAAc,CAAC,MAAM,KAAK,CAAC;AACnC,SAAQ,cAAc,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC;SACxC;SACA,MAAM,OAAO,GAAG,sDAAsD;AAC9E,SAAQ,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;SAC1C;AACR,OAAA;;AAEA,OAAM,IAAI;SACF,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;OAC7E,CAAO,CAAC,OAAO,GAAG,EAAE;SACZ,MAAM,OAAO,GAAG,yCAAyC;AACjE,SAAQ,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;SAC1C;AACR,OAAA;;AAEA,OAAM,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC;AAC5D,SAAQ,iBAAiB;AACzB,KAAA;;AAEA,KAAI,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;AACtC,OAAM,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;AACzD,OAAM,YAAY,EAAE,IAAI,CAAC,YAAY;AACrC,OAAM,UAAU,EAAE,IAAI,CAAC,UAAU;OAC3B,kBAAkB,EAAE,IAAI,CAAC;AAC/B,MAAK,CAAC;AACN,GAAA,CAAG,CAAC;;AAEJ,GAAE,IAAI,IAAI,CAAC,aAAa,EAAE;AAC1B,KAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC;AACtC,GAAA,CAAG,MAAM;KACL,GAAG,CAAC,GAAG,EAAE;AACb,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE;AAC3C,GAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO;AAC3C;AACA;AACA;AACA;AACA,GAAE,SAAS,CAAC,aAAa,GAAG,IAAI;AAChC,GAAE,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;GAC5B,SAAS,CAAC,SAAS,EAAE;AACvB,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,UAAU,CAAC,OAAO,EAAE;AAC7B,GAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU;AACnC,GAAE,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7B,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,UAAU,CAAC,OAAO,EAAE;AAC7B,GAAE,OAAO,CAAC,IAAI,GAAG,SAAS;;GAExB,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,KAAK,EAAE,EAAE;AACxD,KAAI,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI;AACnE,GAAA;;AAEA,GAAE,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7B,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;AACpD,GAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO;;AAE3C,GAAE,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;AAChC,GAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC;;AAE9C,GAAE,IAAI,MAAM,CAAC,SAAS,EAAE;AACxB,KAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI;KACvB,MAAM,CAAC,KAAK,EAAE;;KAEd,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA,OAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;AAC7B,KAAA;;KAEI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,EAAE,GAAG,CAAC;AACvD,GAAA,CAAG,MAAM;AACT,KAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;AACvB,KAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjE,KAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7D,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;GAC3C,IAAI,IAAI,EAAE;AACZ,KAAI,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM;;AAEnE;AACA;AACA;AACA;AACA;AACA;KACI,IAAI,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,cAAc,IAAI,MAAM;AACrE,UAAS,SAAS,CAAC,eAAe,IAAI,MAAM;AAC5C,GAAA;;GAEE,IAAI,EAAE,EAAE;AACV,KAAI,MAAM,GAAG,GAAG,IAAI,KAAK;OACnB,CAAC,kCAAkC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;SAC1D,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;MAC1C;AACL,KAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;AAC7B,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE;AAC1C,GAAE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;;AAEpC,GAAE,SAAS,CAAC,mBAAmB,GAAG,IAAI;AACtC,GAAE,SAAS,CAAC,aAAa,GAAG,MAAM;AAClC,GAAE,SAAS,CAAC,UAAU,GAAG,IAAI;;GAE3B,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;;GAEjD,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC;GACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;;GAE3C,IAAI,IAAI,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE;AACtC,QAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AACpC,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,eAAe,GAAG;AAC3B,GAAE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;;GAElC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE;AACrD,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,eAAe,CAAC,GAAG,EAAE;AAC9B,GAAE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;;GAElC,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;KAC/C,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC;;AAE1D;AACA;AACA;AACA;KACI,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;;KAE3C,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACrC,GAAA;;AAEA,GAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;AAChC,KAAI,SAAS,CAAC,aAAa,GAAG,IAAI;AAClC,KAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;AAChC,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,gBAAgB,GAAG;AAC5B,GAAE,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE;AAC9B,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC3C,GAAE,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;AAClD,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,cAAc,CAAC,IAAI,EAAE;AAC9B,GAAE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;;AAEpC,GAAE,IAAI,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;AACtE,GAAE,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AAC9B,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,cAAc,CAAC,IAAI,EAAE;GAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACrC,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,MAAM,CAAC,MAAM,EAAE;GACtB,MAAM,CAAC,MAAM,EAAE;AACjB,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,GAAE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;;GAElC,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,MAAM,EAAE;GAC/C,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;AAC/C,KAAI,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO;KACzC,aAAa,CAAC,SAAS,CAAC;AAC5B,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;;AAEpB,GAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;AAChC,KAAI,SAAS,CAAC,aAAa,GAAG,IAAI;AAClC,KAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;AAChC,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,aAAa,CAAC,SAAS,EAAE;AAClC,GAAE,SAAS,CAAC,WAAW,GAAG,UAAU;KAChC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KACjD;IACD;AACH,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,aAAa,GAAG;AACzB,GAAE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;;AAEpC,GAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC;AAC7C,GAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC;AAC3C,GAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC;;AAEzC,GAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO;;AAE3C,GAAE,IAAI,KAAK;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACE;AACF,KAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU;KAC/B,CAAC,SAAS,CAAC,mBAAmB;AAClC,KAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY;KAChD,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;KACvC;AACJ,KAAI,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,GAAA;;AAEA,GAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;;AAE3B,GAAE,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS;;AAE9B,GAAE,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC;;GAEnC;AACF,KAAI,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ;AAC/C,KAAI,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC;KACnC;KACA,SAAS,CAAC,SAAS,EAAE;AACzB,GAAA,CAAG,MAAM;KACL,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACjD,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AACtD,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,GAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;KAC5C,IAAI,CAAC,KAAK,EAAE;AAChB,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,WAAW,GAAG;AACvB,GAAE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;;AAEpC,GAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO;AAC3C,GAAE,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;GACzB,IAAI,CAAC,GAAG,EAAE;AACZ,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,aAAa,GAAG;AACzB,GAAE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;;AAEpC,GAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC;AAC7C,GAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;;GAEtB,IAAI,SAAS,EAAE;AACjB,KAAI,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO;KACzC,IAAI,CAAC,OAAO,EAAE;AAClB,GAAA;AACA,CAAA;;;;;;;;;;;;;CCx2CkBjB,gBAAA;AAClB,CAAA,MAAM,EAAE,MAAM,EAAE,GAAGG,YAAiB;;AAEpC;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,GAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACtB,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,WAAW,GAAG;GACrB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;KACnD,IAAI,CAAC,OAAO,EAAE;AAClB,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,aAAa,CAAC,GAAG,EAAE;AAC5B,GAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC;GAC3C,IAAI,CAAC,OAAO,EAAE;GACd,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzC;AACA,KAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;AAC3B,GAAA;AACA,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,qBAAqB,CAAC,EAAE,EAAE,OAAO,EAAE;GAC1C,IAAI,kBAAkB,GAAG,IAAI;;AAE/B,GAAE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;AAC5B,KAAI,GAAG,OAAO;KACV,WAAW,EAAE,KAAK;KAClB,SAAS,EAAE,KAAK;KAChB,UAAU,EAAE,KAAK;AACrB,KAAI,kBAAkB,EAAE;AACxB,IAAG,CAAC;;AAEJ,GAAE,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE;AACnD,KAAI,MAAM,IAAI;AACd,OAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,cAAc,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,GAAG;;AAE1E,KAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE;AACtC,GAAA,CAAG,CAAC;;GAEF,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,CAAC,GAAG,EAAE;AACvC,KAAI,IAAI,MAAM,CAAC,SAAS,EAAE;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;KACI,kBAAkB,GAAG,KAAK;AAC9B,KAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;AACvB,GAAA,CAAG,CAAC;;GAEF,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,GAAG;AACpC,KAAI,IAAI,MAAM,CAAC,SAAS,EAAE;;AAE1B,KAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACrB,GAAA,CAAG,CAAC;;GAEF,MAAM,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,QAAQ,EAAE;KACzC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,MAAM,EAAE;OAC/B,QAAQ,CAAC,GAAG,CAAC;AACnB,OAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;OACnC;AACN,KAAA;;KAEI,IAAI,MAAM,GAAG,KAAK;;KAElB,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,CAAC,GAAG,EAAE;OACnC,MAAM,GAAG,IAAI;OACb,QAAQ,CAAC,GAAG,CAAC;AACnB,KAAA,CAAK,CAAC;;KAEF,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,KAAK,GAAG;AACtC,OAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC;AAChC,OAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;AACzC,KAAA,CAAK,CAAC;;AAEN,KAAI,IAAI,kBAAkB,EAAE,EAAE,CAAC,SAAS,EAAE;GAC1C,CAAG;;AAEH,GAAE,MAAM,CAAC,MAAM,GAAG,UAAU,QAAQ,EAAE;KAClC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU,EAAE;OACnC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,GAAG;AACtC,SAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC/B,OAAA,CAAO,CAAC;OACF;AACN,KAAA;;AAEA;AACA;AACA;AACA;AACA,KAAI,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE;;KAEzB,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE;AAC5C,OAAM,QAAQ,EAAE;OACV,IAAI,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE;AAC5D,KAAA,CAAK,MAAM;OACL,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,MAAM,GAAG;AAClD;AACA;AACA;AACA,SAAQ,QAAQ,EAAE;AAClB,OAAA,CAAO,CAAC;OACF,EAAE,CAAC,KAAK,EAAE;AAChB,KAAA;GACA,CAAG;;AAEH,GAAE,MAAM,CAAC,KAAK,GAAG,YAAY;KACzB,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE;GAChC,CAAG;;GAED,MAAM,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;KACnD,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU,EAAE;OACnC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,GAAG;SAC9B,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAChD,OAAA,CAAO,CAAC;OACF;AACN,KAAA;;AAEA,KAAI,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;GAC5B,CAAG;;AAEH,GAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC;AAC/B,GAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;AACnC,GAAE,OAAO,MAAM;AACf,CAAA;;AAEA,CAAA,MAAc,GAAG,qBAAqB;;;;;;;;;;;;;;;;;;;;AC9JtC,CAAA,MAAM,EAAE,UAAU,EAAE,GAAGH,iBAAA,EAAuB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,KAAK,CAAC,MAAM,EAAE;AACvB,GAAE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE;AAC7B,GAAE,IAAI,KAAK,GAAG,EAAE;AAChB,GAAE,IAAI,GAAG,GAAG,EAAE;GACZ,IAAI,CAAC,GAAG,CAAC;;GAET,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;KAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;;AAErC,KAAI,IAAI,GAAG,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;OACxC,IAAI,KAAK,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC;AACjC,KAAA,CAAK,MAAM;OACL,CAAC,KAAK,CAAC;AACb,QAAO,IAAI,KAAK,IAAI,cAAc,IAAI,KAAK,IAAI,CAAC;OAC1C;AACN,OAAM,IAAI,GAAG,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;AAC7C,KAAA,CAAK,MAAM,IAAI,IAAI,KAAK,IAAI,YAAY;AACxC,OAAM,IAAI,KAAK,KAAK,EAAE,EAAE;SAChB,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,OAAA;;OAEM,IAAI,GAAG,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC;;OAEvB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;;AAE/C,OAAM,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;SAC3B,MAAM,IAAI,WAAW,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAC5E,OAAA;;AAEA,OAAM,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7B,OAAM,KAAK,GAAG,GAAG,GAAG,EAAE;AACtB,KAAA,CAAK,MAAM;OACL,MAAM,IAAI,WAAW,CAAC,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,KAAA;AACA,GAAA;;GAEE,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE;AAClC,KAAI,MAAM,IAAI,WAAW,CAAC,yBAAyB,CAAC;AACpD,GAAA;;GAEE,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;;AAEzC,GAAE,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;KAC3B,MAAM,IAAI,WAAW,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AACxE,GAAA;;AAEA,GAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzB,GAAE,OAAO,SAAS;AAClB,CAAA;;AAEA,CAAA,WAAc,GAAG,EAAE,KAAK,EAAE;;;;;;;;;;;;;CCzD1B,MAAM,YAAY,GAAGA,YAAiB;CACtC,MAAM,IAAI,GAAGG,UAAe;AAC5B,CAAA,MAAM,EAAE,MAAM,EAAE,GAAGC,YAAiB;AACpC,CAAA,MAAM,EAAE,UAAU,EAAE,GAAG,UAAiB;;CAExC,MAAM,SAAS,GAAGG,gBAAA,EAAsB;CACxC,MAAM,iBAAiB,GAAGC,wBAAA,EAA+B;CACzD,MAAM,WAAW,GAAGC,kBAAA,EAAwB;CAC5C,MAAM,SAAS,GAAGS,gBAAA,EAAsB;AACxC,CAAA,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAGR,gBAAA,EAAsB;;CAEnD,MAAM,QAAQ,GAAG,uBAAuB;;CAExC,MAAM,OAAO,GAAG,CAAC;CACjB,MAAM,OAAO,GAAG,CAAC;CACjB,MAAM,MAAM,GAAG,CAAC;;AAEhB;AACA;AACA;AACA;AACA;CACA,MAAM,eAAe,SAAS,YAAY,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE;AACjC,KAAI,KAAK,EAAE;;AAEX,KAAI,OAAO,GAAG;OACR,sBAAsB,EAAE,IAAI;OAC5B,QAAQ,EAAE,IAAI;AACpB,OAAM,UAAU,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;OAC7B,kBAAkB,EAAE,KAAK;OACzB,iBAAiB,EAAE,KAAK;OACxB,eAAe,EAAE,IAAI;OACrB,cAAc,EAAE,IAAI;OACpB,YAAY,EAAE,IAAI;OAClB,QAAQ,EAAE,KAAK;OACf,OAAO,EAAE,IAAI;OACb,MAAM,EAAE,IAAI;OACZ,IAAI,EAAE,IAAI;OACV,IAAI,EAAE,IAAI;OACV,IAAI,EAAE,IAAI;AAChB,OAAM,SAAS;AACf,OAAM,GAAG;MACJ;;KAED;AACJ,OAAM,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ;AACnE,QAAO,OAAO,CAAC,IAAI,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpE,QAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ;OACnC;OACA,MAAM,IAAI,SAAS;AACzB,SAAQ,kEAAkE;WAChE;QACH;AACP,KAAA;;AAEA,KAAI,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;AAC9B,OAAM,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK;SAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;;AAE3C,SAAQ,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;AAC3B,WAAU,gBAAgB,EAAE,IAAI,CAAC,MAAM;AACvC,WAAU,cAAc,EAAE;AAC1B,UAAS,CAAC;AACV,SAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AACrB,OAAA,CAAO,CAAC;AACR,OAAM,IAAI,CAAC,OAAO,CAAC,MAAM;SACjB,OAAO,CAAC,IAAI;SACZ,OAAO,CAAC,IAAI;SACZ,OAAO,CAAC,OAAO;SACf;QACD;AACP,KAAA,CAAK,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;AAC/B,OAAM,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM;AACnC,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,OAAM,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;;OAEzD,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE;SACjD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;SAC5C,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;SACpC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,KAAK;WAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC;AAC/D,SAAA;AACA,QAAO,CAAC;AACR,KAAA;;KAEI,IAAI,OAAO,CAAC,iBAAiB,KAAK,IAAI,EAAE,OAAO,CAAC,iBAAiB,GAAG,EAAE;AAC1E,KAAI,IAAI,OAAO,CAAC,cAAc,EAAE;AAChC,OAAM,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE;AAC9B,OAAM,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACnC,KAAA;;AAEA,KAAI,IAAI,CAAC,OAAO,GAAG,OAAO;AAC1B,KAAI,IAAI,CAAC,MAAM,GAAG,OAAO;AACzB,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,OAAO,GAAG;AACZ,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC/B,OAAM,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC;AACnE,KAAA;;AAEA,KAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI;AAClC,KAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACjC,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,KAAK,CAAC,EAAE,EAAE;AACZ,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;OAC1B,IAAI,EAAE,EAAE;AACd,SAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;AACjC,WAAU,EAAE,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACpD,SAAA,CAAS,CAAC;AACV,OAAA;;AAEA,OAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;OACjC;AACN,KAAA;;KAEI,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;;AAElC,KAAI,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AACjC,KAAI,IAAI,CAAC,MAAM,GAAG,OAAO;;AAEzB,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACtD,OAAM,IAAI,IAAI,CAAC,OAAO,EAAE;SAChB,IAAI,CAAC,gBAAgB,EAAE;SACvB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI;AACnD,OAAA;;AAEA,OAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AACxB,SAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAChC,WAAU,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;AAC3C,SAAA,CAAS,MAAM;AACf,WAAU,IAAI,CAAC,gBAAgB,GAAG,IAAI;AACtC,SAAA;AACA,OAAA,CAAO,MAAM;AACb,SAAQ,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;AACzC,OAAA;AACA,KAAA,CAAK,MAAM;AACX,OAAM,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;;OAE3B,IAAI,CAAC,gBAAgB,EAAE;OACvB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI;;AAEjD;AACA;AACA;AACA;AACA,OAAM,MAAM,CAAC,KAAK,CAAC,MAAM;SACjB,SAAS,CAAC,IAAI,CAAC;AACvB,OAAA,CAAO,CAAC;AACR,KAAA;AACA,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,YAAY,CAAC,GAAG,EAAE;AACpB,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;OACrB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;OAClC,MAAM,QAAQ,GAAG,KAAK,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG;;OAEjE,IAAI,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,KAAK;AACtD,KAAA;;AAEA,KAAI,OAAO,IAAI;AACf,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AACvC,KAAI,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;;KAEjC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC;AAChD,KAAI,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO;KACnC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC;;AAEzD,KAAI,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE;OACxB,MAAM,OAAO,GAAG,qBAAqB;OACrC,iCAAiC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;OAClE;AACN,KAAA;;KAEI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE;OAClE,MAAM,OAAO,GAAG,wBAAwB;OACxC,iCAAiC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;OAClE;AACN,KAAA;;AAEA,KAAI,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;OAC5C,MAAM,OAAO,GAAG,6CAA6C;OAC7D,iCAAiC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;OAClE;AACN,KAAA;;KAEI,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,CAAC,EAAE;OACnC,MAAM,OAAO,GAAG,iDAAiD;OACjE,iCAAiC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE;AACzE,SAAQ,uBAAuB,EAAE;AACjC,QAAO,CAAC;OACF;AACN,KAAA;;KAEI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;AACjC,OAAM,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC;OAC3B;AACN,KAAA;;KAEI,MAAM,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,CAAC;AACtE,KAAI,IAAI,SAAS,GAAG,IAAI,GAAG,EAAE;;AAE7B,KAAI,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAC5C,OAAM,IAAI;AACV,SAAQ,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC;OAC3D,CAAO,CAAC,OAAO,GAAG,EAAE;SACZ,MAAM,OAAO,GAAG,uCAAuC;SACvD,iCAAiC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;SAClE;AACR,OAAA;AACA,KAAA;;KAEI,MAAM,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAAC,0BAA0B,CAAC;KACtE,MAAM,UAAU,GAAG,EAAE;;KAErB;AACJ,OAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB;AACpC,OAAM,sBAAsB,KAAK;OAC3B;AACN,OAAM,MAAM,iBAAiB,GAAG,IAAI,iBAAiB;AACrD,SAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB;AACtC,SAAQ,IAAI;SACJ,IAAI,CAAC,OAAO,CAAC;QACd;;AAEP,OAAM,IAAI;SACF,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC;;AAE9D,SAAQ,IAAI,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE;WAC3C,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC3E,WAAU,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,iBAAiB;AACzE,SAAA;OACA,CAAO,CAAC,OAAO,GAAG,EAAE;AACpB,SAAQ,MAAM,OAAO;AACrB,WAAU,yDAAyD;SAC3D,iCAAiC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC;SAClE;AACR,OAAA;AACA,KAAA;;AAEA;AACA;AACA;AACA,KAAI,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;OAC7B,MAAM,IAAI,GAAG;AACnB,SAAQ,MAAM;AACd,WAAU,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,GAAG,sBAAsB,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC7E,SAAQ,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;SACzD;QACD;;OAED,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAClD,SAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK;WACpE,IAAI,CAAC,QAAQ,EAAE;AACzB,aAAY,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC;AACxE,WAAA;;WAEU,IAAI,CAAC,eAAe;AAC9B,aAAY,UAAU;AACtB,aAAY,GAAG;AACf,aAAY,SAAS;AACrB,aAAY,GAAG;AACf,aAAY,MAAM;AAClB,aAAY,IAAI;aACJ;YACD;AACX,SAAA,CAAS,CAAC;SACF;AACR,OAAA;;AAEA,OAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC;AAC9E,KAAA;;AAEA,KAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;AAC3E,GAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE,eAAe,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AACrE;AACA;AACA;AACA,KAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,MAAM,CAAC,OAAO,EAAE;;AAErE,KAAI,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;OACtB,MAAM,IAAI,KAAK;AACrB,SAAQ,iEAAiE;WAC/D;QACH;AACP,KAAA;;AAEA,KAAI,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC;;AAEjE,KAAI,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM;AACpC,QAAO,MAAM,CAAC,GAAG,GAAG,IAAI;QACjB,MAAM,CAAC,QAAQ,CAAC;;KAEnB,MAAM,OAAO,GAAG;AACpB,OAAM,kCAAkC;AACxC,OAAM,oBAAoB;AAC1B,OAAM,qBAAqB;AAC3B,OAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC;MACjC;;AAEL,KAAI,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;;AAExE,KAAI,IAAI,SAAS,CAAC,IAAI,EAAE;AACxB;AACA;AACA;AACA,OAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;WAC1B,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG;WAC3C,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK;;OAEnC,IAAI,QAAQ,EAAE;SACZ,OAAO,CAAC,IAAI,CAAC,CAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC3D,SAAQ,EAAE,CAAC,SAAS,GAAG,QAAQ;AAC/B,OAAA;AACA,KAAA;;AAEA,KAAI,IAAI,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE;OAC/C,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,MAAM;AACvE,OAAM,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;AACrC,SAAQ,CAAC,iBAAiB,CAAC,aAAa,GAAG,CAAC,MAAM;AAClD,QAAO,CAAC;OACF,OAAO,CAAC,IAAI,CAAC,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,OAAM,EAAE,CAAC,WAAW,GAAG,UAAU;AACjC,KAAA;;AAEA;AACA;AACA;KACI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC;;AAEtC,KAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrD,KAAI,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC;;AAEjD,KAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE;AAC/B,OAAM,sBAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB;AACjE,OAAM,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;AACzC,OAAM,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC;AACvC,MAAK,CAAC;;AAEN,KAAI,IAAI,IAAI,CAAC,OAAO,EAAE;AACtB,OAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1B,OAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM;AAC3B,SAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;;SAEvB,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACzD,WAAU,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;AAC3C,SAAA;AACA,OAAA,CAAO,CAAC;AACR,KAAA;;AAEA,KAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC;AACf,GAAA;AACA;;AAEA,CAAA,eAAc,GAAG,eAAe;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE;GACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;;GAElE,OAAO,SAAS,eAAe,GAAG;KAChC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;OACpC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AAC9C,KAAA;GACA,CAAG;AACH,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,GAAE,MAAM,CAAC,MAAM,GAAG,MAAM;AACxB,GAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACtB,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,aAAa,GAAG;GACvB,IAAI,CAAC,OAAO,EAAE;AAChB,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;CACA,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;GACE,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC9C,GAAE,OAAO,GAAG;KACR,UAAU,EAAE,OAAO;KACnB,cAAc,EAAE,WAAW;AAC/B,KAAI,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;AAChD,KAAI,GAAG;IACJ;;GAED,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;;GAErC,MAAM,CAAC,GAAG;AACZ,KAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AACrD,OAAM,MAAM,CAAC,IAAI,CAAC,OAAO;AACzB,UAAS,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;UAChC,IAAI,CAAC,MAAM,CAAC;AACrB,OAAM,UAAU;OACV;IACH;AACH,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,SAAS,iCAAiC;AAC1C,GAAE,MAAM;AACR,GAAE,GAAG;AACL,GAAE,MAAM;AACR,GAAE,IAAI;AACN,GAAE,OAAO;GACP;GACA;AACF,GAAE,IAAI,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE;AAC7C,KAAI,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;AAClC,KAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,iCAAiC,CAAC;;KAE/D,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC;AAClD,GAAA,CAAG,MAAM;KACL,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;AAClD,GAAA;AACA,CAAA;;;;;;;;;;;;;;;;;;;ACriBA,CAAA,MAAM,EAAE,GAAGV;AACX,CAAA,MAAM,IAAI,GAAGG;AACb,CAAA,MAAM,EAAE,GAAGC;AACX,CAAA,MAAM,MAAM,GAAG;AACf,CAAA,MAAM,WAAW,GAAG;;CAEpB,MAAM,OAAO,GAAG,WAAW,CAAC;;AAE5B;AACA,CAAA,MAAM,IAAI,GAAG;AACb,GAAE,8CAA8C;AAChD,GAAE,mEAAmE;AACrE,GAAE,kEAAkE;AACpE,GAAE,0DAA0D;AAC5D,GAAE,sEAAsE;AACxE,GAAE,yDAAyD;AAC3D,GAAE,+DAA+D;AACjE,GAAE,8DAA8D;AAChE,GAAE,4DAA4D;AAC9D,GAAE,qDAAqD;AACvD,GAAE,wEAAwE;AAC1E,GAAE,+CAA+C;AACjD,GAAE,wDAAwD;AAC1D,GAAE,4CAA4C;AAC9C,GAAE,0DAA0D;GAC1D;AACF;;AAEA;AACA,CAAA,SAAS,aAAa,IAAI;AAC1B,GAAE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;AACrD,CAAA;;CAEA,SAAS,YAAY,EAAE,KAAK,EAAE;AAC9B,GAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACjC,KAAI,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE;AACxE,GAAA;GACE,OAAO,OAAO,CAAC,KAAK;AACtB,CAAA;;AAEA,CAAA,SAAS,YAAY,IAAI;AACzB,GAAE,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK;AAC7B,CAAA;;CAEA,SAAS,GAAG,EAAE,IAAI,EAAE;GAClB,OAAO,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG;AACpD,CAAA;;AAEA,CAAA,MAAM,IAAI,GAAG;;AAEb;CACA,SAAS,KAAK,EAAE,GAAG,EAAE;GACnB,MAAM,GAAG,GAAG;;AAEd;AACA,GAAE,IAAI,KAAK,GAAG,GAAG,CAAC,QAAQ;;AAE1B;GACE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI;;AAEvC,GAAE,IAAI;AACN,GAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;AAC7C,KAAI,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC;;AAEvB;KACI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;;AAE/B;AACA,KAAI,KAAK,GAAG,KAAK,CAAC,IAAI;;AAEtB;AACA,KAAI,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC;;AAE9B;KACI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI;;AAExD;AACA,KAAI,IAAI,UAAU,KAAK,GAAG,EAAE;OACtB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI;OAClC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI;AACxC,KAAA;;AAEA;AACA,KAAI,GAAG,CAAC,GAAG,CAAC,GAAG;AACf,GAAA;;AAEA,GAAE,OAAO;AACT,CAAA;;CAEA,SAAS,WAAW,EAAE,OAAO,EAAE;GAC7B,OAAO,GAAG,OAAO,IAAI;;AAEvB,GAAE,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO;AACtC,GAAE,OAAO,CAAC,IAAI,GAAG,UAAS;AAC1B,GAAE,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,OAAO;AAClD,GAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACtB,KAAI,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,SAAS,CAAC,sBAAsB,CAAC;KACrF,GAAG,CAAC,IAAI,GAAG;AACf,KAAI,MAAM;AACV,GAAA;;AAEA;AACA;GACE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG;AAC5C,GAAE,MAAM,MAAM,GAAG,IAAI,CAAC;;AAEtB,GAAE,IAAI;AACN,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,KAAI,IAAI;AACR;OACM,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;;AAE9B;AACA,OAAM,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,GAAG;;AAE7C;AACA,OAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG;;OAE5D;KACN,CAAK,CAAC,OAAO,KAAK,EAAE;AACpB;AACA,OAAM,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE;AAC3B,SAAQ,MAAM;AACd,OAAA;AACA;AACA,KAAA;AACA,GAAA;;AAEA;AACA,GAAE,OAAO,YAAY,CAAC,KAAK,CAAC,SAAS;AACrC,CAAA;;CAEA,SAAS,KAAK,EAAE,OAAO,EAAE;AACzB,GAAE,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtD,CAAA;;CAEA,SAAS,MAAM,EAAE,OAAO,EAAE;AAC1B,GAAE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACrD,CAAA;;CAEA,SAAS,IAAI,EAAE,OAAO,EAAE;AACxB,GAAE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAA;;CAEA,SAAS,UAAU,EAAE,OAAO,EAAE;AAC9B;AACA,GAAE,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;KAClE,OAAO,OAAO,CAAC;AACnB,GAAA;;AAEA;AACA,GAAE,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACnE,KAAI,OAAO,OAAO,CAAC,GAAG,CAAC;AACvB,GAAA;;AAEA;AACA,GAAE,OAAO;AACT,CAAA;;AAEA,CAAA,SAAS,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;AAC3C;AACA,GAAE,IAAI;AACN,GAAE,IAAI;AACN,KAAI,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS;GAC3B,CAAG,CAAC,OAAO,KAAK,EAAE;AAClB,KAAI,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE;AAC1C,OAAM,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,4IAA4I;OAClK,GAAG,CAAC,IAAI,GAAG;AACjB,OAAM,MAAM;AACZ,KAAA;;AAEA,KAAI,MAAM;AACV,GAAA;;AAEA;AACA,GAAE,MAAM,GAAG,GAAG,GAAG,CAAC;GAChB,IAAI,CAAC,GAAG,EAAE;AACZ,KAAI,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,sCAAsC;KAC5D,GAAG,CAAC,IAAI,GAAG;AACf,KAAI,MAAM;AACV,GAAA;;AAEA;GACE,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa;GACtD,IAAI,CAAC,WAAW,EAAE;AACpB,KAAI,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,8CAA8C;KACpE,GAAG,CAAC,IAAI,GAAG;AACf,KAAI,MAAM;AACV,GAAA;;AAEA;GACE,MAAM,cAAc,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC;GACjE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAC;GAChD,IAAI,CAAC,UAAU,EAAE;AACnB,KAAI,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,wDAAwD,EAAE,cAAc,CAAC,yBAAyB,CAAC;KAC1H,GAAG,CAAC,IAAI,GAAG;AACf,KAAI,MAAM;AACV,GAAA;;AAEA,GAAE,OAAO,EAAE,UAAU,EAAE,GAAG;AAC1B,CAAA;;CAEA,SAAS,UAAU,EAAE,OAAO,EAAE;GAC5B,IAAI,iBAAiB,GAAG;;AAE1B,GAAE,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;KACtD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACrC,OAAM,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;AAC3C,SAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AACrC,WAAU,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM;AACzF,SAAA;AACA,OAAA;AACA,KAAA,CAAK,MAAM;OACL,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;AACjG,KAAA;AACA,GAAA,CAAG,MAAM;KACL,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY;AAChE,GAAA;;AAEA,GAAE,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;AACxC,KAAI,OAAO;AACX,GAAA;;AAEA,GAAE,OAAO;AACT,CAAA;;CAEA,SAAS,YAAY,EAAE,OAAO,EAAE;GAC9B,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;AAC1E,CAAA;;CAEA,SAAS,YAAY,EAAE,OAAO,EAAE;AAChC,GAAE,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;AAC1F,GAAE,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;;AAE1F,GAAE,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;KACnB,IAAI,CAAC,uCAAuC;AAChD,GAAA;;AAEA,GAAE,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,OAAO;;AAEjD,GAAE,IAAI,UAAU,GAAG,OAAO,CAAC;GACzB,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;KACzC,UAAU,GAAG,OAAO,CAAC;AACzB,GAAA;;GAEE,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO;;GAEjD,OAAO,EAAE,MAAM;AACjB,CAAA;;CAEA,SAAS,YAAY,EAAE,OAAO,EAAE;AAChC,GAAE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM;GACrD,IAAI,QAAQ,GAAG;AACjB,GAAE,IAAI,UAAU,GAAG,OAAO,CAAC;GACzB,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE;KACzC,UAAU,GAAG,OAAO,CAAC;AACzB,GAAA;AACA,GAAE,IAAI,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,mBAAmB,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;AACvF,GAAE,IAAI,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,mBAAmB,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;;AAEvF,GAAE,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;KAC/B,QAAQ,GAAG,OAAO,CAAC;AACvB,GAAA,CAAG,MAAM;KACL,IAAI,KAAK,EAAE;OACT,MAAM,CAAC,oDAAoD;AACjE,KAAA;AACA,GAAA;;AAEA,GAAE,IAAI,WAAW,GAAG,CAAC,UAAU,EAAC;AAChC,GAAE,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;KAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;OAChC,WAAW,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;AAC/C,KAAA,CAAK,MAAM;OACL,WAAW,GAAG,GAAE;AACtB,OAAM,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;AAC3C,SAAQ,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC/C,OAAA;AACA,KAAA;AACA,GAAA;;AAEA;AACA;AACA,GAAE,IAAI;GACJ,MAAM,SAAS,GAAG;AACpB,GAAE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;AAClC,KAAI,IAAI;AACR;AACA,OAAM,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;;OAErE,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO;KACtD,CAAK,CAAC,OAAO,CAAC,EAAE;OACV,IAAI,KAAK,EAAE;AACjB,SAAQ,MAAM,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACpD,OAAA;AACA,OAAM,SAAS,GAAG;AAClB,KAAA;AACA,GAAA;;GAEE,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO;;AAExE;GACE,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,mBAAmB,IAAI,KAAK;GAC5D,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,mBAAmB,IAAI,KAAK;;AAE9D,GAAE,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE;KACnB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACzC,MAAM,UAAU,GAAG;AACvB,KAAI,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE;AACxC,OAAM,IAAI;AACV,SAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ;AAC9D,SAAQ,UAAU,CAAC,IAAI,CAAC,QAAQ;OAChC,CAAO,CAAC,OAAO,CAAC,EAAE;SACV,IAAI,KAAK,EAAE;AACnB,WAAU,MAAM,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AAC1D,SAAA;AACA,SAAQ,SAAS,GAAG;AACpB,OAAA;AACA,KAAA;;AAEA,KAAI,IAAI,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzG,GAAA;;GAEE,IAAI,SAAS,EAAE;KACb,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS;AAChD,GAAA,CAAG,MAAM;AACT,KAAI,OAAO,EAAE,MAAM,EAAE,SAAS;AAC9B,GAAA;AACA,CAAA;;AAEA;CACA,SAAS,MAAM,EAAE,OAAO,EAAE;AAC1B;GACE,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,KAAI,OAAO,YAAY,CAAC,YAAY,CAAC,OAAO;AAC5C,GAAA;;AAEA,GAAE,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO;;AAEtC;GACE,IAAI,CAAC,SAAS,EAAE;KACd,KAAK,CAAC,CAAC,4DAA4D,EAAE,SAAS,CAAC,6BAA6B,CAAC;;AAEjH,KAAI,OAAO,YAAY,CAAC,YAAY,CAAC,OAAO;AAC5C,GAAA;;AAEA,GAAE,OAAO,YAAY,CAAC,YAAY,CAAC,OAAO;AAC1C,CAAA;;AAEA,CAAA,SAAS,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;AACrC,GAAE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK;GAChD,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ;;GAEhD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE;GACvC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG;GACvC,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG;;AAE1C,GAAE,IAAI;KACF,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK;AACpE,KAAI,MAAM,CAAC,UAAU,CAAC,OAAO;AAC7B,KAAI,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;GACzD,CAAG,CAAC,OAAO,KAAK,EAAE;AAClB,KAAI,MAAM,OAAO,GAAG,KAAK,YAAY;AACrC,KAAI,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,KAAK;AAC/C,KAAI,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,KAAK;;AAE/C,KAAI,IAAI,OAAO,IAAI,gBAAgB,EAAE;AACrC,OAAM,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,6DAA6D;OACnF,GAAG,CAAC,IAAI,GAAG;AACjB,OAAM,MAAM;KACZ,CAAK,MAAM,IAAI,gBAAgB,EAAE;AACjC,OAAM,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,iDAAiD;OACvE,GAAG,CAAC,IAAI,GAAG;AACjB,OAAM,MAAM;AACZ,KAAA,CAAK,MAAM;AACX,OAAM,MAAM;AACZ,KAAA;AACA,GAAA;AACA,CAAA;;AAEA;CACA,SAAS,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE;GACnD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK;GAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ;GACpD,MAAM,SAAS,GAAG;;AAEpB,GAAE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAClC,KAAI,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,gFAAgF;KACtG,GAAG,CAAC,IAAI,GAAG;AACf,KAAI,MAAM;AACV,GAAA;;AAEA;GACE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACzC,KAAI,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;AAC/D,OAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC7B,SAAQ,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG;AACpC,SAAQ,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG;AACnC,OAAA;;OAEM,IAAI,KAAK,EAAE;AACjB,SAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;WACrB,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,wCAAwC,CAAC;AAClE,SAAA,CAAS,MAAM;WACL,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,4CAA4C,CAAC;AACtE,SAAA;AACA,OAAA;AACA,KAAA,CAAK,MAAM;AACX,OAAM,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG;AAClC,OAAM,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG;AACjC,KAAA;AACA,GAAA;;AAEA,GAAE,OAAO;AACT,CAAA;;AAEA,CAAA,MAAM,YAAY,GAAG;AACrB,GAAE,YAAY;AACd,GAAE,YAAY;AACd,GAAE,WAAW;AACb,GAAE,MAAM;AACR,GAAE,OAAO;AACT,GAAE,KAAK;GACL;AACF;;AAEA,CAAAe,IAAA,CAAA,OAAA,CAAA,YAA2B,GAAG,YAAY,CAAC;AAC3C,CAAAA,IAAA,CAAA,OAAA,CAAA,YAA2B,GAAG,YAAY,CAAC;AAC3C,CAAAA,IAAA,CAAA,OAAA,CAAA,WAA0B,GAAG,YAAY,CAAC;AAC1C,CAAAA,IAAA,CAAA,OAAA,CAAA,MAAqB,GAAG,YAAY,CAAC;AACrC,CAAAA,IAAA,CAAA,OAAA,CAAA,OAAsB,GAAG,YAAY,CAAC;AACtC,CAAAA,IAAA,CAAA,OAAA,CAAA,KAAoB,GAAG,YAAY,CAAC;AACpC,CAAAA,IAAA,CAAA,OAAA,CAAA,QAAuB,GAAG,YAAY,CAAC;;AAEvC,CAAAA,IAAA,CAAA,OAAc,GAAG;;;;;;;;;;ACjbjB;AACA,CAAA,MAAM,OAAO,GAAG;;AAEhB,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,IAAI,EAAE;AAChD,GAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;AACjC,CAAA;;AAEA,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,EAAE;AAC5C,GAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;AAC7B,CAAA;;AAEA,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,EAAE;AAC7C,GAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;AAC9B,CAAA;;AAEA,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,EAAE;AAC7C,GAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;AAC9B,CAAA;;AAEA,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,IAAI,EAAE;AAChD,GAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;AACjC,CAAA;;AAEA,CAAA,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,IAAI,EAAE;AAClD,GAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;AACnC,CAAA;;AAEA,CAAA,UAAc,GAAG;;;;;;;;;;AC3BjB,CAAA,MAAM,EAAE,GAAG;;AAEX,CAAA,UAAc,GAAG,SAAS,aAAa,EAAE,IAAI,EAAE;GAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,EAAE;AAClD,KAAI,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;KAC5B,IAAI,OAAO,EAAE;OACX,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AACjC,KAAA;AACA,KAAI,OAAO;AACX,GAAA,CAAG,EAAE,EAAE;;AAEP,GAAE,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,EAAE;KACzB,OAAO,CAAC,KAAK,GAAG;AACpB,GAAA;;AAEA,GAAE,OAAO;AACT,CAAA;;;;;;;;;AChBA,CAAA,CAAC,YAAY;GACXnB,WAAA,EAAqB,CAAC,MAAM;KAC1B,MAAM,CAAC,MAAM;AACjB,OAAM,EAAE;AACR,OAAMG,iBAAA,EAA4B;AAClC,OAAMC,iBAAA,EAA4B,CAAC,OAAO,CAAC,IAAI;AAC/C;AACA;CACA,CAAC;;;;;;ACmDD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,IAAI,KAAK;AAE9D,MAAM,GAAG,GAAG,CAAC,OAAe,EAAE,OAAA,GAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAI;IACtE,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;QAC9C;IACF;AACA,IAAAgB,KAAO,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;AACjE,CAAC;AAED;AACA,MAAM,kBAAkB,GAAG,KAAc;AACzC,MAAM,YAAY,GAAG,KAAiB;AACtC,MAAM,gBAAgB,GAAG,KAAc;AA+GvC;;;AAGG;AACG,MAAO,mBAAoB,SAAQ,YAAY,CAAA;IAC3C,OAAO,QAAQ;AACf,IAAA,OAAO;AACP,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,UAAU;AACV,IAAA,UAAU;AACV,IAAA,cAAc,GAAW,yCAAyC,CAAC;AACnE,IAAA,eAAe,GAAW,kDAAkD,CAAC;IAC7E,OAAO,GAAqB,IAAI;IAChC,QAAQ,GAAqB,IAAI;AACjC,IAAA,kBAAkB,GAA6B,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AACnF,IAAA,mBAAmB,GAA6B,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAErF,OAAO,CAAC,OAA0C,YAAY,EAAA;AACnE,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;;AAEtB,YAAA,IAAI,CAAC,cAAc,GAAG,iDAAiD;AACvE,YAAA,IAAI,CAAC,eAAe,GAAG,0DAA0D;QACnF;AAAO,aAAA,IAAI,IAAI,KAAK,MAAM,EAAE;;AAE1B,YAAA,IAAI,CAAC,cAAc,GAAG,0CAA0C;AAChE,YAAA,IAAI,CAAC,eAAe,GAAG,kDAAkD,CAAC;QAC5E;aAAO;;AAEL,YAAA,IAAI,CAAC,cAAc,GAAG,yCAAyC;AAC/D,YAAA,IAAI,CAAC,eAAe,GAAG,kDAAkD;QAC3E;IACF;IAEO,OAAO,GAAA;QACZ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC3C,YAAA,OAAO,SAAS;QAClB;aAAO,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC/C,YAAA,OAAO,MAAM;QACf;aAAO;AACL,YAAA,OAAO,YAAY;QACrB;IACF;AAEA,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,OAAO,GAAG,gCAAgC;AAC/C,QAAA,IAAI,CAAC,MAAM;AACT,YAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK;AAClC,kBAAE;AACF,kBAAE,+BAA+B,CAAC;AACtC,QAAA,IAAI,CAAC,UAAU,GAAG,qCAAqC,CAAC;AACxD,QAAA,IAAI,CAAC,UAAU,GAAG,qCAAqC,CAAC;AACxD,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG;AACb,YAAA,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,cAAe;AAC9C,YAAA,qBAAqB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAkB;AACrD,YAAA,cAAc,EAAE,kBAAkB;SACnC;IACH;AAEO,IAAA,OAAO,WAAW,GAAA;AACvB,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;AACjC,YAAA,mBAAmB,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE;QAC1D;QACA,OAAO,mBAAmB,CAAC,QAAQ;IACrC;IAKO,EAAE,CAAC,KAAsB,EAAE,QAAkC,EAAA;QAClE,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;IAClC;AAIO,IAAA,IAAI,CAAC,KAAsB,EAAE,GAAG,IAAW,EAAA;QAChD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC;IACnC;AAEQ,IAAA,OAAO,CAAC,UAA8B,EAAA;AAC5C,QAAA,MAAM,GAAG,GAAG,UAAU,KAAK,OAAO,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe;AAC/E,QAAA,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC;AAC7B,QAAA,IAAI,UAAU,KAAK,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE;QACnB;aAAO;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;QACpB;AAEA,QAAA,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAK;AACjB,YAAA,GAAG,CAAC,CAAA,EAAG,UAAU,CAAA,iBAAA,CAAmB,CAAC;AACrC,YAAA,MAAM,WAAW,GAAG;AAClB,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,cAAe;AAChC,gBAAA,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAkB;aACvC;YACD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AACtC,QAAA,CAAC,CAAC;QAEF,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAoB,KAAI;;YAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5C,YAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC9B,gBAAA,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,KAAK,eAAe,EAAE;AAC9D,oBAAA,GAAG,CAAC,CAAA,EAAG,UAAU,CAAA,qBAAA,CAAuB,CAAC;AACzC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;gBACnC;AAAO,qBAAA,IAAI,OAAO,CAAC,CAAC,KAAK,OAAO,EAAE;AAChC,oBAAA,GAAG,CAAC,CAAA,EAAG,UAAU,CAAA,eAAA,EAAkB,OAAO,CAAC,GAAG,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBACtE;AAAO,qBAAA,IAAI,OAAO,CAAC,CAAC,EAAE;AACpB,oBAAA,KAAK,CAAC,IAAI,CAAC,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,OAAO,CAAC,CAAC,CAAA,CAAE,EAAE,OAAO,CAAC;oBACjD,KAAK,CAAC,IAAI,CAAC,CAAA,EAAG,UAAU,CAAA,KAAA,CAAO,EAAE,OAA+D,CAAC;gBACnG;YACF;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;YAClB,GAAG,CAAC,CAAA,EAAG,UAAU,CAAA,oBAAA,CAAsB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1D,YAAA,IAAI,UAAU,KAAK,OAAO,EAAE;AAC1B,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;YACrB;iBAAO;AACL,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACtB;;AAEF,QAAA,CAAC,CAAC;QAEF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,KAAI;AAC9B,YAAA,GAAG,CAAC,CAAA,EAAG,UAAU,CAAA,eAAA,EAAkB,KAAK,CAAC,OAAO,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACxE,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,gBAAgB,CAAC,UAA8B,EAAA;AACrD,QAAA,MAAM,EAAE,GAAG,UAAU,KAAK,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ;AAChE,QAAA,MAAM,aAAa,GAAG,UAAU,KAAK,OAAO,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB;QACjG,IAAI,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;YAC1C,MAAM,iBAAiB,GAA8D,EAAE;YAEvF,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,gBAAA,iBAAiB,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;YACjD;YACA,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,gBAAA,iBAAiB,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;YACjD;YACA,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,gBAAA,iBAAiB,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI;YAC7C;YAEA,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7C,gBAAA,MAAM,UAAU,GAAG;AACjB,oBAAA,MAAM,EAAE,WAAW;AACnB,oBAAA,GAAG,iBAAiB;iBACrB;gBACD,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACrC;QACF;IACF;IAEO,kBAAkB,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB;IACF;IAEO,mBAAmB,GAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACxB;IACF;IAEO,qBAAqB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QACtB;IACF;IAEO,sBAAsB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;QACvB;IACF;IAEO,SAAS,CACd,UAA8B,EAC9B,aAAwE,EAAA;AAExE,QAAA,MAAM,oBAAoB,GAAG,UAAU,KAAK,OAAO,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB;AACxG,QAAA,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;YACrD,IAAI,KAAK,EAAE;gBACT,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;YAC5F;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;IACnC;IAEO,WAAW,CAChB,UAA8B,EAC9B,aAAwE,EAAA;AAExE,QAAA,MAAM,oBAAoB,GAAG,UAAU,KAAK,OAAO,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB;AACxG,QAAA,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;YACrD,IAAI,KAAK,EAAE;AACT,gBAAA,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjG;AACF,QAAA,CAAC,CAAC;AACF,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,GAAG,aAAa;SACjB;AAED,QAAA,MAAM,EAAE,GAAG,UAAU,KAAK,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ;QAChE,IAAI,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;YAC1C,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACvC;IACF;IAEQ,MAAM,WAAW,CACvB,QAAgB,EAChB,MAAA,GAAiB,KAAK,EACtB,MAA4B,EAC5B,WAAA,GAAsD,MAAM,EAAA;AAE5D,QAAA,MAAM,OAAO,GAAG,WAAW,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO;YACtC,WAAW,KAAK,KAAK,GAAG,IAAI,CAAC,MAAM;AACnC,gBAAA,WAAW,KAAK,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;QAC5E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA,EAAG,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAE,CAAC;AAE5C,QAAA,IAAI;YACF,IAAI,MAAM,EAAE;AACV,gBAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC9C,oBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,wBAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC/C;AAAO,yBAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAC9B,wBAAA,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAChD;AACF,gBAAA,CAAC,CAAC;YACJ;YAEA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;gBAC3C,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,gBAAA,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AACvC,gBAAA,GAAG,CAAC,CAAA,uBAAA,EAA0B,QAAQ,CAAC,MAAM,CAAA,GAAA,EAAM,SAAS,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAClF,MAAM,IAAI,KAAK,CAAC,CAAA,uBAAA,EAA0B,QAAQ,CAAC,MAAM,CAAA,GAAA,EAAM,SAAS,CAAA,CAAE,CAAC;YAC7E;AAEA,YAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAClC,YAAA,OAAO,IAAI;QACb;QAAE,OAAO,GAAG,EAAE;YACZ,MAAM,KAAK,GAAG,GAAY;YAC1B,GAAG,CAAC,yBAAyB,KAAK,CAAC,OAAO,CAAA,YAAA,EAAe,QAAQ,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/G,YAAA,IAAI,KAAK,YAAY,SAAS,EAAE;AAC9B,gBAAA,GAAG,CAAC,CAAA,uBAAA,EAA0B,KAAK,CAAC,KAAK,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACjE;AACA,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;;AAKG;IACH,MAAM,iBAAiB,CAAC,MAA4B,EAAA;AAClD,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;QACX,OAAO,CAAC,IAAI,CAAC,GAAG;QACnC,IAAI,OAAO,GAAgC,EAAE;QAC7C,IAAI,SAAS,GAAkB,IAAI;QACnC,IAAI,YAAY,GAAG,IAAI;QACvB,IAAI,cAAc,GAAG,CAAC;QACtB,IAAI,SAAS,GAAG,CAAC;QACjB,IAAI,QAAQ,GAAG,EAAE;;AAGjB,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACzB,YAAA,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;AACtB,QAAA,CAAC,CAAC;QAEF,GAAG,CACD,sCAAsC,OAAO,CAAC,MAAM,CAAA,UAAA,EAAa,MAAM,CAAC,SAAS,CAAA,EAAA,EAC/E,MAAM,CAAC,KAAK,IAAI,UAClB,CAAA,IAAA,EAAO,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAA,CAAA,CAAG,CACjC;QAED,OAAO,YAAY,EAAE;AACnB,YAAA,SAAS,EAAE;AACX,YAAA,MAAM,aAAa,GAAG;AACpB,gBAAA,GAAG,MAAM;AACT,gBAAA,UAAU,EAAE,kBAAkB;AAC9B,gBAAA,IAAI,EAAE,YAAY;gBAClB,IAAI,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;aAC5C;AAED,YAAA,MAAM,QAAQ,GAA2B,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,EAAE,aAAa,CAAC;AAErG,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAClB,gBAAA,GAAG,CAAC,CAAA,mCAAA,EAAsC,OAAO,CAAC,MAAM,CAAA,QAAA,CAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACrF;YACF;;YAGA,IAAI,CAAC,QAAQ,EAAE;AACb,gBAAA,QAAQ,GAAG,QAAQ,CAAC,QAAQ;YAC9B;;YAGA,IAAI,aAAa,GAAG,CAAC;YACrB,IAAI,iBAAiB,GAAgB,IAAI;YACzC,IAAI,eAAe,GAAgB,IAAI;AAEvC,YAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAI;gBACvD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,oBAAA,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;AAC/C,oBAAA,aAAa,IAAI,IAAI,CAAC,MAAM;;AAG5B,oBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;wBACnB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,wBAAA,IAAI,CAAC,iBAAiB,IAAI,OAAO,GAAG,iBAAiB,EAAE;4BACrD,iBAAiB,GAAG,OAAO;wBAC7B;AACA,wBAAA,IAAI,CAAC,eAAe,IAAI,OAAO,GAAG,eAAe,EAAE;4BACjD,eAAe,GAAG,OAAO;wBAC3B;AACF,oBAAA,CAAC,CAAC;gBACJ;AACF,YAAA,CAAC,CAAC;YAEF,cAAc,IAAI,aAAa;AAC/B,YAAA,SAAS,GAAG,QAAQ,CAAC,eAAe,IAAI,IAAI;AAC5C,YAAA,YAAY,GAAG,CAAC,CAAC,SAAS;;AAG1B,YAAA,MAAM,YAAY,GAChB,iBAAiB,IAAI;AACnB,kBAAE,CAAA,EAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAA,IAAA,EAAO,IAAI,IAAI,CACzG,eAAe,CAChB,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAA;kBAC/D,eAAe;AAErB,YAAA,GAAG,CACD,CAAA,KAAA,EAAQ,SAAS,CAAA,UAAA,EAAa,aAAa,CAAC,cAAc,EAAE,CAAA,cAAA,EAAiB,cAAc,CAAC,cAAc,EAAE,CAAA,MAAA,EAC1G,OAAO,CAAC,MACV,CAAA,sBAAA,EAAyB,YAAY,CAAA,EAAG,YAAY,GAAG,wBAAwB,GAAG,YAAY,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CACpH;;AAGD,YAAA,IAAI,SAAS,GAAG,IAAI,EAAE;gBACpB,GAAG,CAAC,CAAA,0BAAA,EAA6B,SAAS,CAAA,+BAAA,CAAiC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC9F;YACF;QACF;;AAGA,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO;AACxC,aAAA,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA,EAAA,EAAK,IAAI,CAAC,MAAM,EAAE;aACnD,IAAI,CAAC,IAAI,CAAC;AACb,QAAA,GAAG,CACD,CAAA,qBAAA,EAAwB,cAAc,CAAC,cAAc,EAAE,CAAA,mBAAA,EAAsB,SAAS,CAAA,WAAA,EACpF,OAAO,CAAC,MACV,CAAA,UAAA,EAAa,YAAY,CAAA,CAAA,CAAG,CAC7B;QAED,OAAO;AACL,YAAA,IAAI,EAAE,OAAO;YACb,eAAe,EAAE,IAAI;YACrB,QAAQ,EAAE,QAAQ,IAAI,gBAAgB;SACvC;IACH;AAEA;;;;;;AAMG;AACH,IAAA,MAAM,aAAa,CAAC,OAAiB,EAAE,QAAiB,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,KAAK,EAAE;YACpD,OAAO;AACP,YAAA,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,QAAQ,IAAI,gBAAgB;AACvC,SAAA,CAAC;IACJ;AAEA;;;;AAIG;IACH,MAAM,YAAY,CAAC,MAAc,EAAA;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,CAAA,gBAAA,EAAmB,MAAM,CAAA,CAAE,EAAE,KAAK,CAAC;IAC7D;AAEA;;;;;;;AAOG;AACH,IAAA,MAAM,eAAe,CAAC,OAAiB,EAAE,IAAe,EAAE,QAAiB,EAAA;AACzE,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,KAAK,EAAE;YACtD,OAAO;YACP,IAAI,EAAE,IAAI,IAAI,YAAY;YAC1B,QAAQ,EAAE,QAAQ,IAAI,gBAAgB;AACvC,SAAA,CAAC;IACJ;AAEA;;;;;;AAMG;AACH,IAAA,MAAM,eAAe,CAAC,OAAiB,EAAE,IAAe,EAAE,QAAiB,EAAA;;QAEzE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,GAAG,CAAC,kEAAkE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACzF,OAAO;AACL,gBAAA,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,QAAQ,IAAI,gBAAgB;aACvC;QACH;AAEA,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,KAAK,EAAE;YACtD,OAAO;YACP,IAAI,EAAE,IAAI,IAAI,YAAY;YAC1B,QAAQ,EAAE,QAAQ,IAAI,gBAAgB;AACvC,SAAA,CAAC;IACJ;AAEA;;;;;;AAMG;AACH,IAAA,MAAM,cAAc,CAClB,MAAc,EACd,IAAe,EACf,QAAiB,EAAA;QAEjB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,MAAM,CAAA,cAAA,CAAgB,EAAE,KAAK,EAAE;YAChE,IAAI,EAAE,IAAI,IAAI,YAAY;YAC1B,QAAQ;AACT,SAAA,CAAC;IACJ;AAEA;;;;;AAKG;AACH,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,aAAoB,EAAA;AACzD,QAAA,MAAM,IAAI,GAAG,aAAa,IAAI,IAAI,IAAI,EAAE;AACxC,QAAA,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC;AAEnD,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;YAC5C,OAAO,EAAE,CAAC,MAAM,CAAC;AACjB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE;AACnC,YAAA,GAAG,EAAE,cAAc,CAAC,WAAW,EAAE;AACjC,YAAA,KAAK,EAAE,CAAC;AACT,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAChE,YAAA,GAAG,CAAC,CAAA,qCAAA,EAAwC,MAAM,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAChF,YAAA,OAAO,IAAI;QACb;QAEA,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC;AAEA;;;;;;AAMG;AACH,IAAA,MAAM,eAAe,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW,EAAA;AAC9D,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;YAC5C,OAAO,EAAE,CAAC,MAAM,CAAC;AACjB,YAAA,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACpC,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;YAChC,KAAK,EAAE,EAAE;AACV,SAAA,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpC;AAEA;;;;;;AAMG;AACH,IAAA,MAAM,mBAAmB,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW,EAAA;AAClE,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;YAC5C,OAAO,EAAE,CAAC,MAAM,CAAC;AACjB,YAAA,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACpC,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;AAChC,YAAA,KAAK,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;AAClB,SAAA,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpC;AAEA;;;;;;AAMG;AACH,IAAA,MAAM,cAAc,CAAC,MAAc,EAAE,KAAa,EAAE,GAAW,EAAA;AAC7D,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;YAC5C,OAAO,EAAE,CAAC,MAAM,CAAC;AACjB,YAAA,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACpC,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;YAChC,KAAK,EAAE,GAAG;AACX,SAAA,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpC;AAEA;;;;;;;AAOG;IACH,MAAM,iBAAiB,CAAC,MAAc,EAAE,YAAoB,EAAE,KAAa,EAAE,GAAW,EAAA;AACtF,QAAA,MAAM,SAAS,GAAG,CAAA,EAAG,YAAY,KAAkB;AACnD,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC;YAC5C,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,SAAS;YACT,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YACpC,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;AACjC,SAAA,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;IACpC;AAEA;;;;AAIG;IACH,OAAO,WAAW,CAAC,IAAW,EAAA;QAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,OAAO,yBAAyB;QAClC;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG;QAEtD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC3C,MAAM,mBAAmB,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG;QAE7D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7D,QAAA,MAAM,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,MAAM;QAE3C,QACE,CAAA,QAAA,EAAW,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,KAAA,EAAQ,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,EAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,IAAA,CAAM;YAC/F,CAAA,QAAA,EAAW,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,CAAA,IAAA,EAAO,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,IAAA,CAAM;AAChH,YAAA,CAAA,OAAA,EAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,QAAA,EAAW,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI;AACtD,YAAA,CAAA,YAAA,EAAe,SAAS,CAAC,cAAc,EAAE,CAAA,CAAE;IAE/C;AAEA;;;;;;;;AAQG;IACH,MAAM,SAAS,CAAC,MAAwB,EAAA;;AAEtC,QAAA,MAAM,EACJ,MAAM,GAAG,QAAQ,EACjB,WAAW,GAAG,WAAW,EACzB,SAAS,GAAG,IAAI,GACjB,GAAmF;AAClF,YAAA,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,QAAQ;AAClC,YAAA,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,WAAW;AAC/C,YAAA,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,IAAI;SACrC;AAED,QAAA,MAAM,MAAM,GAAkB,MAAM,IAAI,CAAC,WAAW,CAClD,SAAS,EACT,KAAK,EACL,EAAE,MAAM,EAAE,WAAW,EAAE,EACvB,KAAK,CACN;AAED,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,MAAM;QAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,IAAI,IAAI,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC;IAChF;AAEA;;;;;AAKG;IACH,MAAM,QAAQ,CAAC,eAAuB,EAAA;;AAEpC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,CAAA,QAAA,EAAW,kBAAkB,CAAC,eAAe,CAAC,CAAA,CAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC;IACpG;;AAIA;;;;;;AAMG;IACH,MAAM,eAAe,CAAC,MAA0B,EAAA;QAC9C,MAAM,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM;AACpD,QAAA,OAAO,IAAI,CAAC,WAAW,CACrB,CAAA,mBAAA,EAAsB,kBAAkB,CAAC,iBAAiB,CAAC,CAAA,CAAE,EAC7D,KAAK,EACL,WAAW,EACX,SAAS,CACV;IACH;AAEA;;;;;;AAMG;IACH,MAAM,sBAAsB,CAAC,MAAiC,EAAA;;QAE5D,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM;AACtD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC;IACpF;AAEA;;;;;;AAMG;IACH,MAAM,sBAAsB,CAAC,MAAiC,EAAA;;QAE5D,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM;AACtD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC;IACpF;AAEA;;;;;;;AAOG;IACH,MAAM,wBAAwB,CAAC,MAAmC,EAAA;AAChE,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;QACX,OAAO,CAAC,IAAI,CAAC,GAAG;QACnC,IAAI,OAAO,GAAsC,EAAE;QACnD,IAAI,SAAS,GAAkB,IAAI;QACnC,IAAI,YAAY,GAAG,IAAI;QACvB,IAAI,cAAc,GAAG,CAAC;QACtB,IAAI,SAAS,GAAG,CAAC;;AAGjB,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACzB,YAAA,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;AACtB,QAAA,CAAC,CAAC;QAEF,GAAG,CACD,8CAA8C,OAAO,CAAC,MAAM,CAAA,UAAA,EAAa,MAAM,CAAC,SAAS,CAAA,EAAA,EACvF,MAAM,CAAC,KAAK,IAAI,UAClB,CAAA,IAAA,EAAO,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAA,CAAA,CAAG,CACjC;QAED,OAAO,YAAY,EAAE;AACnB,YAAA,SAAS,EAAE;AACX,YAAA,MAAM,aAAa,GAAG;AACpB,gBAAA,GAAG,MAAM;gBACT,IAAI,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;aAC5C;AAED,YAAA,MAAM,QAAQ,GAAkC,MAAM,IAAI,CAAC,WAAW,CACpE,eAAe,EACf,KAAK,EACL,aAAa,EACb,SAAS,CACV;AAED,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAClB,gBAAA,GAAG,CAAC,CAAA,2CAAA,EAA8C,OAAO,CAAC,MAAM,CAAA,QAAA,CAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC7F;YACF;;YAGA,IAAI,aAAa,GAAG,CAAC;YACrB,IAAI,iBAAiB,GAAgB,IAAI;YACzC,IAAI,eAAe,GAAgB,IAAI;AAEvC,YAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAI;gBACvD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,oBAAA,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;AAC/C,oBAAA,aAAa,IAAI,IAAI,CAAC,MAAM;;AAG5B,oBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;wBACnB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,wBAAA,IAAI,CAAC,iBAAiB,IAAI,OAAO,GAAG,iBAAiB,EAAE;4BACrD,iBAAiB,GAAG,OAAO;wBAC7B;AACA,wBAAA,IAAI,CAAC,eAAe,IAAI,OAAO,GAAG,eAAe,EAAE;4BACjD,eAAe,GAAG,OAAO;wBAC3B;AACF,oBAAA,CAAC,CAAC;gBACJ;AACF,YAAA,CAAC,CAAC;YAEF,cAAc,IAAI,aAAa;AAC/B,YAAA,SAAS,GAAG,QAAQ,CAAC,eAAe,IAAI,IAAI;AAC5C,YAAA,YAAY,GAAG,CAAC,CAAC,SAAS;;AAG1B,YAAA,MAAM,YAAY,GAChB,iBAAiB,IAAI;kBACjB,CAAA,EAAI,iBAA0B,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAA,IAAA,EAC1F,eACD,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAA;kBAC/D,eAAe;AAErB,YAAA,GAAG,CACD,CAAA,KAAA,EAAQ,SAAS,CAAA,UAAA,EAAa,aAAa,CAAC,cAAc,EAAE,CAAA,qBAAA,EAAwB,cAAc,CAAC,cAAc,EAAE,CAAA,MAAA,EACjH,OAAO,CAAC,MACV,CAAA,sBAAA,EAAyB,YAAY,CAAA,EAAG,YAAY,GAAG,wBAAwB,GAAG,YAAY,EAAE,EAChG;AACE,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CACF;;AAGD,YAAA,IAAI,SAAS,GAAG,IAAI,EAAE;gBACpB,GAAG,CAAC,CAAA,uCAAA,EAA0C,SAAS,CAAA,+BAAA,CAAiC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC3G;YACF;QACF;;AAGA,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO;AACxC,aAAA,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA,EAAA,EAAK,IAAI,CAAC,MAAM,EAAE;aACnD,IAAI,CAAC,IAAI,CAAC;AACb,QAAA,GAAG,CACD,CAAA,6BAAA,EAAgC,cAAc,CAAC,cAAc,EAAE,CAAA,mBAAA,EAAsB,SAAS,CAAA,QAAA,EAAW,YAAY,CAAA,CAAA,CAAG,CACzH;QAED,OAAO;AACL,YAAA,IAAI,EAAE,OAAO;YACb,eAAe,EAAE,SAAS;SAC3B;IACH;AAEA;;;;;;;AAOG;IACH,MAAM,0BAA0B,CAAC,MAAqC,EAAA;AACpE,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;QACX,OAAO,CAAC,IAAI,CAAC,GAAG;QACnC,IAAI,SAAS,GAAwC,EAAE;QACvD,IAAI,SAAS,GAAkB,IAAI;QACnC,IAAI,YAAY,GAAG,IAAI;QACvB,IAAI,gBAAgB,GAAG,CAAC;QACxB,IAAI,SAAS,GAAG,CAAC;;AAGjB,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACzB,YAAA,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE;AACxB,QAAA,CAAC,CAAC;AAEF,QAAA,GAAG,CACD,CAAA,6CAAA,EAAgD,OAAO,CAAC,MAAM,CAAA,UAAA,EAAa,MAAM,CAAC,KAAK,IAAI,UAAU,CAAA,IAAA,EACnG,MAAM,CAAC,GAAG,IAAI,QAChB,CAAA,CAAA,CAAG,CACJ;QAED,OAAO,YAAY,EAAE;AACnB,YAAA,SAAS,EAAE;AACX,YAAA,MAAM,aAAa,GAAG;AACpB,gBAAA,GAAG,MAAM;gBACT,IAAI,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;aAC5C;AAED,YAAA,MAAM,QAAQ,GAAoC,MAAM,IAAI,CAAC,WAAW,CACtE,iBAAiB,EACjB,KAAK,EACL,aAAa,EACb,SAAS,CACV;AAED,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpB,gBAAA,GAAG,CAAC,CAAA,6CAAA,EAAgD,OAAO,CAAC,MAAM,CAAA,QAAA,CAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC/F;YACF;;YAGA,IAAI,eAAe,GAAG,CAAC;YACvB,IAAI,iBAAiB,GAAgB,IAAI;YACzC,IAAI,eAAe,GAAgB,IAAI;AAEvC,YAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,KAAI;gBAC3D,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,oBAAA,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC;AACrD,oBAAA,eAAe,IAAI,MAAM,CAAC,MAAM;;AAGhC,oBAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;wBACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnC,wBAAA,IAAI,CAAC,iBAAiB,IAAI,SAAS,GAAG,iBAAiB,EAAE;4BACvD,iBAAiB,GAAG,SAAS;wBAC/B;AACA,wBAAA,IAAI,CAAC,eAAe,IAAI,SAAS,GAAG,eAAe,EAAE;4BACnD,eAAe,GAAG,SAAS;wBAC7B;AACF,oBAAA,CAAC,CAAC;gBACJ;AACF,YAAA,CAAC,CAAC;YAEF,gBAAgB,IAAI,eAAe;AACnC,YAAA,SAAS,GAAG,QAAQ,CAAC,eAAe,IAAI,IAAI;AAC5C,YAAA,YAAY,GAAG,CAAC,CAAC,SAAS;;AAG1B,YAAA,MAAM,YAAY,GAChB,iBAAiB,IAAI;kBACjB,CAAA,EAAI,iBAA0B,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAA,IAAA,EAC1F,eACD,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAA;kBAC/D,eAAe;AAErB,YAAA,GAAG,CACD,CAAA,KAAA,EAAQ,SAAS,CAAA,UAAA,EAAa,eAAe,CAAC,cAAc,EAAE,CAAA,uBAAA,EAA0B,gBAAgB,CAAC,cAAc,EAAE,CAAA,MAAA,EACvH,OAAO,CAAC,MACV,CAAA,sBAAA,EAAyB,YAAY,CAAA,EAAG,YAAY,GAAG,wBAAwB,GAAG,YAAY,EAAE,EAChG;AACE,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CACF;;AAGD,YAAA,IAAI,SAAS,GAAG,IAAI,EAAE;gBACpB,GAAG,CAAC,CAAA,yCAAA,EAA4C,SAAS,CAAA,+BAAA,CAAiC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC7G;YACF;QACF;;AAGA,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS;AAC1C,aAAA,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAA,EAAA,EAAK,MAAM,CAAC,MAAM,EAAE;aACvD,IAAI,CAAC,IAAI,CAAC;AACb,QAAA,GAAG,CACD,CAAA,+BAAA,EAAkC,gBAAgB,CAAC,cAAc,EAAE,CAAA,qBAAA,EAAwB,SAAS,CAAA,QAAA,EAAW,YAAY,CAAA,CAAA,CAAG,CAC/H;QAED,OAAO;AACL,YAAA,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,SAAS;SAC3B;IACH;AAEA;;;;;;;AAOG;IACH,MAAM,kBAAkB,CAAC,MAA8B,EAAA;;QAErD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM;AACtD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC;IAChF;AAEA;;;;;;;AAOG;IACH,MAAM,wBAAwB,CAAC,QAAwB,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,4BAA4B,QAAQ,CAAA,CAAE,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;IAC9F;AAEA;;;;;;AAMG;AACH,IAAA,MAAM,uBAAuB,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,yBAAyB,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;IACjF;AAEA;;;;AAIG;IACH,OAAO,iBAAiB,CAAC,IAAiB,EAAA;QACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,OAAO,gCAAgC;QACzC;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG;QAEtD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC3C,MAAM,mBAAmB,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;QAElF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7D,QAAA,MAAM,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,MAAM;QAE3C,QACE,CAAA,eAAA,EAAkB,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,KAAA,EAAQ,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,EAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,IAAA,CAAM;YACtG,CAAA,QAAA,EAAW,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,CAAA,IAAA,EAAO,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,IAAA,CAAM;AAChH,YAAA,CAAA,OAAA,EAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,QAAA,EAAW,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI;AACtD,YAAA,CAAA,YAAA,EAAe,SAAS,CAAC,cAAc,EAAE,CAAA,CAAE;IAE/C;AAEA;;;;AAIG;IACH,OAAO,kBAAkB,CAAC,MAAW,EAAA;QACnC,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,0BAA0B;QACnC;QAEA,MAAM,KAAK,GAAa,EAAE;AAC1B,QAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,IAAI,CAAC,CAAA,OAAA,EAAU,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAC/E,QAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,IAAI,CAAC,CAAA,OAAA,EAAU,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAC/E,QAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,IAAI,CAAC,CAAA,OAAA,EAAU,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAC/E,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,IAAI,CAAC,CAAA,MAAA,EAAS,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAC5E,QAAA,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;AAAE,YAAA,KAAK,CAAC,IAAI,CAAC,CAAA,KAAA,EAAQ,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;AAEzE,QAAA,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,0BAA0B;IACzE;AAEA;;;;;AAKG;AACH,IAAA,OAAO,uBAAuB,CAAC,cAAwB,EAAE,iBAAgD,EAAA;QACvG,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAClD,YAAA,OAAO,eAAe;QACxB;QAEA,MAAM,YAAY,GAAG;AAClB,aAAA,GAAG,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAA,SAAA,EAAY,IAAI,GAAG;aAC5D,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,SAAS,CAAC;AAEvC,QAAA,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,qCAAqC;IAClG;AAEA;;;;;AAKG;AACH,IAAA,OAAO,eAAe,CAAC,YAAoB,EAAE,gBAA8C,EAAA;QACzF,OAAO,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAA,kBAAA,EAAqB,YAAY,GAAG;IAC/E;AAEA;;;;;AAKG;AACH,IAAA,MAAM,SAAS,CACb,MAAc,EACd,MAMC,EAAA;AAED,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YACjD,GAAG,EAAE,IAAI,IAAI,EAAE;AACf,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,IAAI,EAAE,MAAe;AACrB,YAAA,eAAe,EAAE,IAAI;SACtB;QACD,MAAM,YAAY,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE;QACpD,IAAI,YAAY,GAAiB,EAAE;QACnC,IAAI,SAAS,GAAkB,IAAI;QACnC,IAAI,YAAY,GAAG,IAAI;QACvB,IAAI,YAAY,GAAG,CAAC;AACpB,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK;;QAGnC,SAAS,YAAY,CAAC,OAA2B,EAAA;AAC/C,YAAA,IAAI,CAAC,OAAO;AAAE,gBAAA,OAAO,SAAS;;YAE9B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;QAC5C;QAEA,OAAO,YAAY,EAAE;AACnB,YAAA,MAAM,WAAW,GAAoB,IAAI,eAAe,CAAC;AACvD,gBAAA,IAAI,YAAY,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AAChF,gBAAA,IAAI,YAAY,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1E,IAAI,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBAClC,IAAI,YAAY,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;AACtF,gBAAA,IAAI,YAAY,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;AACrD,gBAAA,IAAI,YAAY,CAAC,eAAe,KAAK;sBACjC,EAAE,eAAe,EAAE,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE;sBAC1D,EAAE,CAAC;gBACP,IAAI,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AAC5C,aAAA,CAAC;YACF,MAAM,GAAG,GAAW,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,MAAA,EAAS,WAAW,CAAA,CAAE;AAC5D,YAAA,GAAG,CAAC,CAAA,oBAAA,EAAuB,GAAG,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC5D,YAAA,MAAM,QAAQ,GAAa,MAAM,KAAK,CAAC,GAAG,EAAE;AAC1C,gBAAA,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,gBAAA,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AACvC,gBAAA,GAAG,CAAC,CAAA,uBAAA,EAA0B,QAAQ,CAAC,MAAM,MAAM,SAAS,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC1F,MAAM,IAAI,KAAK,CAAC,CAAA,uBAAA,EAA0B,QAAQ,CAAC,MAAM,CAAA,GAAA,EAAM,SAAS,CAAA,CAAE,CAAC;YAC7E;AACA,YAAA,MAAM,IAAI,GAAkE,MAAM,QAAQ,CAAC,IAAI,EAAE;AACjG,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC3C,gBAAA,GAAG,CAAC,CAAA,0CAAA,EAA6C,MAAM,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBACpF;YACF;AACA,YAAA,MAAM,eAAe,GAAiB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAA0B,MAAM;gBACnF,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,QAAQ;gBACvB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;AAC5C,gBAAA,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS;gBACpE,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;AACtB,gBAAA,IAAI,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU;AAC9C,gBAAA,WAAW,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU;AACrD,gBAAA,SAAS,EAAE,CAAC;AACb,aAAA,CAAC,CAAC;AACH,YAAA,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,eAAe,CAAC;AACnD,YAAA,YAAY,GAAG,YAAY,CAAC,MAAM;AAClC,YAAA,SAAS,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI;AACxC,YAAA,YAAY,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,IAAI,YAAY,GAAG,QAAQ,CAAC;YACpE,GAAG,CACD,WAAW,eAAe,CAAC,MAAM,CAAA,uBAAA,EAA0B,YAAY,SAAS,MAAM,CAAA,cAAA,EAAiB,YAAY,CAAA,CAAE,EACrH,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAC1B;AACD,YAAA,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,EAAE;gBACxC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;gBAC9C;YACF;QACF;AACA,QAAA,OAAO,YAAY;IACrB;;AAIA;;;;;AAKG;IACH,MAAM,uBAAuB,CAAC,MAAkC,EAAA;AAC9D,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACpC,IAAI,OAAO,GAAgC,EAAE;QAC7C,IAAI,SAAS,GAAkB,IAAI;QACnC,IAAI,YAAY,GAAG,IAAI;QACvB,IAAI,cAAc,GAAG,CAAC;QACtB,IAAI,SAAS,GAAG,CAAC;;AAGjB,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACzB,YAAA,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;AACtB,QAAA,CAAC,CAAC;QAEF,GAAG,CACD,6CAA6C,OAAO,CAAC,MAAM,CAAA,UAAA,EAAa,MAAM,CAAC,SAAS,CAAA,EAAA,EAAK,MAAM,CAAC,KAAK,IAAI,UAAU,CAAA,IAAA,EAAO,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAA,CAAA,CAAG,CACxJ;QAED,OAAO,YAAY,EAAE;AACnB,YAAA,SAAS,EAAE;AACX,YAAA,MAAM,aAAa,GAAG;AACpB,gBAAA,GAAG,MAAM;AACT,gBAAA,OAAO,EAAE,UAAU;gBACnB,IAAI,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;aAC5C;AAED,YAAA,MAAM,QAAQ,GAAiC,MAAM,IAAI,CAAC,WAAW,CACnE,iBAAiB,EACjB,KAAK,EACL,aAAa,EACb,SAAS,CACV;AAED,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAClB,gBAAA,GAAG,CAAC,CAAA,0CAAA,EAA6C,OAAO,CAAC,MAAM,CAAA,QAAA,CAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC5F;YACF;;YAGA,IAAI,aAAa,GAAG,CAAC;AACrB,YAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,KAAI;gBACvD,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,oBAAA,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;AAC/C,oBAAA,aAAa,IAAI,IAAI,CAAC,MAAM;gBAC9B;AACF,YAAA,CAAC,CAAC;YAEF,cAAc,IAAI,aAAa;AAC/B,YAAA,SAAS,GAAG,QAAQ,CAAC,eAAe,IAAI,IAAI;AAC5C,YAAA,YAAY,GAAG,CAAC,CAAC,SAAS;AAE1B,YAAA,GAAG,CACD,CAAA,KAAA,EAAQ,SAAS,CAAA,UAAA,EAAa,aAAa,CAAC,cAAc,EAAE,CAAA,qBAAA,EAAwB,cAAc,CAAC,cAAc,EAAE,CAAA,MAAA,EAAS,OAAO,CAAC,MAAM,CAAA,QAAA,EAAW,YAAY,GAAG,wBAAwB,GAAG,YAAY,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CACjO;;AAGD,YAAA,IAAI,SAAS,GAAG,IAAI,EAAE;gBACpB,GAAG,CAAC,CAAA,sCAAA,EAAyC,SAAS,CAAA,+BAAA,CAAiC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC1G;YACF;QACF;QAEA,GAAG,CACD,CAAA,uCAAA,EAA0C,cAAc,CAAC,cAAc,EAAE,CAAA,mBAAA,EAAsB,SAAS,CAAA,MAAA,CAAQ,CACjH;QAED,OAAO;AACL,YAAA,IAAI,EAAE,OAAO;YACb,eAAe,EAAE,IAAI;SACtB;IACH;AAEA;;;;AAIG;IACH,MAAM,mBAAmB,CAAC,OAAiB,EAAA;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;IACrG;AAEA;;;;;AAKG;IACH,MAAM,yBAAyB,CAAC,MAAoC,EAAA;AAClE,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACpC,IAAI,SAAS,GAAwC,EAAE;QACvD,IAAI,SAAS,GAAkB,IAAI;QACnC,IAAI,YAAY,GAAG,IAAI;QACvB,IAAI,gBAAgB,GAAG,CAAC;QACxB,IAAI,SAAS,GAAG,CAAC;;AAGjB,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACzB,YAAA,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE;AACxB,QAAA,CAAC,CAAC;AAEF,QAAA,GAAG,CACD,CAAA,4CAAA,EAA+C,OAAO,CAAC,MAAM,CAAA,UAAA,EAAa,MAAM,CAAC,KAAK,IAAI,UAAU,CAAA,IAAA,EAAO,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAA,CAAA,CAAG,CACrI;QAED,OAAO,YAAY,EAAE;AACnB,YAAA,SAAS,EAAE;AACX,YAAA,MAAM,aAAa,GAAG;AACpB,gBAAA,GAAG,MAAM;AACT,gBAAA,OAAO,EAAE,UAAU;gBACnB,IAAI,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;aAC5C;AAED,YAAA,MAAM,QAAQ,GAAmC,MAAM,IAAI,CAAC,WAAW,CACrE,mBAAmB,EACnB,KAAK,EACL,aAAa,EACb,SAAS,CACV;AAED,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpB,gBAAA,GAAG,CAAC,CAAA,4CAAA,EAA+C,OAAO,CAAC,MAAM,CAAA,QAAA,CAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC9F;YACF;;YAGA,IAAI,eAAe,GAAG,CAAC;AACvB,YAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,KAAI;gBAC3D,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,oBAAA,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC;AACrD,oBAAA,eAAe,IAAI,MAAM,CAAC,MAAM;gBAClC;AACF,YAAA,CAAC,CAAC;YAEF,gBAAgB,IAAI,eAAe;AACnC,YAAA,SAAS,GAAG,QAAQ,CAAC,eAAe,IAAI,IAAI;AAC5C,YAAA,YAAY,GAAG,CAAC,CAAC,SAAS;AAE1B,YAAA,GAAG,CACD,CAAA,KAAA,EAAQ,SAAS,CAAA,UAAA,EAAa,eAAe,CAAC,cAAc,EAAE,CAAA,uBAAA,EAA0B,gBAAgB,CAAC,cAAc,EAAE,CAAA,MAAA,EAAS,OAAO,CAAC,MAAM,CAAA,QAAA,EAAW,YAAY,GAAG,wBAAwB,GAAG,YAAY,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CACvO;;AAGD,YAAA,IAAI,SAAS,GAAG,IAAI,EAAE;gBACpB,GAAG,CAAC,CAAA,wCAAA,EAA2C,SAAS,CAAA,+BAAA,CAAiC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC5G;YACF;QACF;QAEA,GAAG,CACD,CAAA,yCAAA,EAA4C,gBAAgB,CAAC,cAAc,EAAE,CAAA,qBAAA,EAAwB,SAAS,CAAA,MAAA,CAAQ,CACvH;QAED,OAAO;AACL,YAAA,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,IAAI;SACtB;IACH;AAEA;;;;AAIG;IACH,MAAM,qBAAqB,CAAC,OAAiB,EAAA;QAC3C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,GAAG,CAAC,wEAAwE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/F,YAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QACvB;QAEA,OAAO,IAAI,CAAC,WAAW,CAAC,0BAA0B,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;IACvG;AAEA;;;;;AAKG;IACH,MAAM,yBAAyB,CAAC,MAAoC,EAAA;AAClE,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACpC,IAAI,SAAS,GAAwC,EAAE;QACvD,IAAI,SAAS,GAAkB,IAAI;QACnC,IAAI,YAAY,GAAG,IAAI;QACvB,IAAI,gBAAgB,GAAG,CAAC;QACxB,IAAI,SAAS,GAAG,CAAC;;AAGjB,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACzB,YAAA,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE;AACxB,QAAA,CAAC,CAAC;AAEF,QAAA,GAAG,CACD,CAAA,4CAAA,EAA+C,OAAO,CAAC,MAAM,CAAA,UAAA,EAAa,MAAM,CAAC,KAAK,IAAI,UAAU,CAAA,IAAA,EAAO,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAA,CAAA,CAAG,CACrI;QAED,OAAO,YAAY,EAAE;AACnB,YAAA,SAAS,EAAE;AACX,YAAA,MAAM,aAAa,GAAG;AACpB,gBAAA,GAAG,MAAM;AACT,gBAAA,OAAO,EAAE,UAAU;gBACnB,IAAI,SAAS,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;aAC5C;AAED,YAAA,MAAM,QAAQ,GAAmC,MAAM,IAAI,CAAC,WAAW,CACrE,mBAAmB,EACnB,KAAK,EACL,aAAa,EACb,SAAS,CACV;AAED,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpB,gBAAA,GAAG,CAAC,CAAA,4CAAA,EAA+C,OAAO,CAAC,MAAM,CAAA,QAAA,CAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC9F;YACF;;YAGA,IAAI,eAAe,GAAG,CAAC;AACvB,YAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,KAAI;gBAC3D,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,oBAAA,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC;AACrD,oBAAA,eAAe,IAAI,MAAM,CAAC,MAAM;gBAClC;AACF,YAAA,CAAC,CAAC;YAEF,gBAAgB,IAAI,eAAe;AACnC,YAAA,SAAS,GAAG,QAAQ,CAAC,eAAe,IAAI,IAAI;AAC5C,YAAA,YAAY,GAAG,CAAC,CAAC,SAAS;AAE1B,YAAA,GAAG,CACD,CAAA,KAAA,EAAQ,SAAS,CAAA,UAAA,EAAa,eAAe,CAAC,cAAc,EAAE,CAAA,uBAAA,EAA0B,gBAAgB,CAAC,cAAc,EAAE,CAAA,MAAA,EAAS,OAAO,CAAC,MAAM,CAAA,QAAA,EAAW,YAAY,GAAG,wBAAwB,GAAG,YAAY,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CACvO;;AAGD,YAAA,IAAI,SAAS,GAAG,IAAI,EAAE;gBACpB,GAAG,CAAC,CAAA,wCAAA,EAA2C,SAAS,CAAA,+BAAA,CAAiC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC5G;YACF;QACF;QAEA,GAAG,CACD,CAAA,yCAAA,EAA4C,gBAAgB,CAAC,cAAc,EAAE,CAAA,qBAAA,EAAwB,SAAS,CAAA,MAAA,CAAQ,CACvH;QAED,OAAO;AACL,YAAA,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,IAAI;SACtB;IACH;AAEA;;;;AAIG;IACH,MAAM,qBAAqB,CAAC,OAAiB,EAAA;QAC3C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,GAAG,CAAC,wEAAwE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/F,YAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QACvB;QAEA,OAAO,IAAI,CAAC,WAAW,CAAC,0BAA0B,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;IACvG;AAEA;;;;;AAKG;IACH,MAAM,kBAAkB,CAAC,OAAiB,EAAA;QACxC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,GAAG,CAAC,qEAAqE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC5F,YAAA,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;QAC1B;QAEA,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;IACnG;AAEA;;;;AAIG;IACH,MAAM,yBAAyB,CAAC,OAAiB,EAAA;QAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,GAAG,CAAC,4EAA4E,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACnG,YAAA,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QAC3B;QAEA,OAAO,IAAI,CAAC,WAAW,CAAC,8BAA8B,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC;IAC3G;AAEA;;;;AAIG;IACH,OAAO,iBAAiB,CAAC,IAAW,EAAA;QAClC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,OAAO,gCAAgC;QACzC;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG;QAEtD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC3C,MAAM,mBAAmB,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;QAElF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7D,QAAA,MAAM,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,MAAM;QAE3C,QACE,CAAA,eAAA,EAAkB,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,KAAA,EAAQ,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,EAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,IAAA,CAAM;YACtG,CAAA,QAAA,EAAW,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,CAAA,IAAA,EAAO,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,IAAA,CAAM;AAChH,YAAA,CAAA,OAAA,EAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,QAAA,EAAW,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,CAAI;AACtD,YAAA,CAAA,YAAA,EAAe,SAAS,CAAC,cAAc,EAAE,CAAA,CAAE;IAE/C;AACD;AAED;AACO,MAAM,aAAa,GAAG,mBAAmB,CAAC,WAAW,EAAE;;ACpkD9D,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;AAmBE;MAEW,gBAAgB,CAAA;IAC3B,OAAO,GAAG,CAAC,WAA8B,EAAA;AACvC,QAAA,OAAO,IAAI,gBAAgB,CAAC,WAAW,CAAqB;IAC9D;IAEA,OAAO,WAAW,CAAC,WAA8B,EAAA;AAC/C,QAAA,OAAO,IAAI,gBAAgB,CAAC,WAAW,CAAqB;IAC9D;IAEQ,EAAE,GAAqB,IAAI;AAC3B,IAAA,OAAO;IACP,mBAAmB,GAA2C,IAAI;AAClE,IAAA,WAAW;AACX,IAAA,UAAU;AACV,IAAA,KAAK;IACL,aAAa,GAAG,KAAK;IACrB,UAAU,GAAG,KAAK;AAClB,IAAA,cAAc,GAAG,KAAK,CAAC;IACvB,gBAAgB,GAA0B,IAAI;AAC9C,IAAA,eAAe,GAAqC,IAAI,GAAG,EAAE;IAC7D,YAAY,GAAG,KAAK;IACpB,gBAAgB,GAAG,KAAK;AAEhC;;;;;;;;;;AAUG;IACH,WAAA,CAAY,WAA8B,EAAE,OAAoC,EAAA;AAC9E,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;;AAG9B,QAAA,IAAI,CAAC,UAAU;AACb,YAAA,WAAW,CAAC,IAAI,KAAK,OAAO,GAAG,qCAAqC,GAAG,+BAA+B;AAExG,QAAA,IAAI,CAAC,KAAK;AACR,YAAA,WAAW,CAAC,IAAI,KAAK,OAAO,GAAG,uCAAuC,GAAG,iCAAiC;QAE5G,IAAI,CAAC,OAAO,GAAG;YACb,iBAAiB,EAAE,WAAW,CAAC,MAAM;YACrC,qBAAqB,EAAE,WAAW,CAAC,SAAS;AAC5C,YAAA,cAAc,EAAE,kBAAkB;SACnC;;AAGD,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5E,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,KAAK;IACpD;IAEQ,GAAG,CAAC,OAAe,EAAE,OAAA,GAAsB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAA;QACjE,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;YACjD;QACF;QACAA,KAAO,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IACrG;AAEA;;;;AAIG;AACK,IAAA,mBAAmB,GAAG,CAAC,KAAa,KAAY;AACtD,QAAA,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK;AACvF,IAAA,CAAC;AAEO,IAAA,iBAAiB,CAAC,IAAS,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,YAAA,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC;QACrC;aAAO;YACL,IAAI,CAAC,GAAG,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAAC,OAAO,IAAI,eAAe,CAAA,CAAE,EAAE;AACpE,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC;QACJ;IACF;AAEQ,IAAA,mBAAmB,CAAC,IAAS,EAAA;QACnC,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE;AAC3C,YAAA,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC;QACtD;IACF;AAEQ,IAAA,iBAAiB,CAAC,IAAiB,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,KAAK,CAAA,IAAA,EAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA,cAAA,EAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA,CAAE,EAAE;AAC9G,gBAAA,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;AACzB,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAChC;IACF;AAEQ,IAAA,aAAa,CAAC,OAAe,EAAA;AACnC,QAAA,IAAI;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAChC,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAErD,IAAI,OAAO,EAAE;AACX,gBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACpB;iBAAO;gBACL,IAAI,CAAC,GAAG,CAAC,CAAA,qCAAA,EAAwC,IAAI,CAAC,MAAM,EAAE,EAAE;AAC9D,oBAAA,IAAI,EAAE,MAAM;AACb,iBAAA,CAAC;YACJ;QACF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,mCAAmC,EAAE;AAC5C,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe,EAAE;AAC9E,aAAA,CAAC;QACJ;IACF;IAEA,gBAAgB,GAAA;;AAEd,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,GAAG,CAAC,iDAAiD,CAAC;YAC3D;QACF;QAEA,IAAI,IAAI,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;AAC1C,YAAA,IAAI,CAAC,GAAG,CAAC,gDAAgD,CAAC;YAC1D;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AAEtB,QAAA,IAAI,IAAI,CAAC,EAAE,EAAE;AACX,YAAA,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE;AAC5B,YAAA,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE;AACnB,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI;QAChB;QAEA,IAAI,CAAC,GAAG,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC,KAAK,CAAA,GAAA,CAAK,CAAC;QAEvD,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAEnC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,YAAW;AAC5B,YAAA,IAAI;AACF,gBAAA,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC;AAC/B,gBAAA,MAAM,IAAI,CAAC,YAAY,EAAE;AACzB,gBAAA,MAAM,IAAI,CAAC,uBAAuB,EAAE;AACpC,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;YACzB;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,GAAG,CAAC,sCAAsC,EAAE;AAC/C,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe,EAAE;AAC9E,iBAAA,CAAC;AACF,gBAAA,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE;YAClB;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAoB,KAAI;YAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACrC,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,KAAI;AAC5B,YAAA,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE;AAC1B,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe,EAAE;AAC9E,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACzB,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;AACvB,YAAA,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC;AACvC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;AAGvB,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,gBAAA,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACnC,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;YAC9B;;AAGA,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,gBAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,MAAK;AACtC,oBAAA,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC;oBACtC,IAAI,CAAC,gBAAgB,EAAE;AACzB,gBAAA,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC;YACzB;AACF,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;IACH,UAAU,GAAA;;AAER,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;;AAG5B,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC;AACnC,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAC9B;AAEA,QAAA,IAAI,IAAI,CAAC,EAAE,EAAE;AACX,YAAA,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC;;AAGtC,YAAA,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE;AAE5B,YAAA,IAAI;;gBAEF,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,UAAU,EAAE;oBACxF,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC;gBAC1C;qBAAO;AACL,oBAAA,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE;gBACrB;YACF;AAAE,YAAA,MAAM;;AAEN,gBAAA,IAAI;AAAE,oBAAA,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE;gBAAE;AAAE,gBAAA,MAAM,cAAc;YACnD;AAEA,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI;QAChB;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACpC;AAEQ,IAAA,MAAM,YAAY,GAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE;AACrD,YAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;QAC3D;AAEA,QAAA,MAAM,WAAW,GAAG;AAClB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;AAC5B,YAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS;SACnC;AAED,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAEzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,MAAM,WAAW,GAAG,UAAU,CAAC,MAAK;gBAClC,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACrD,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC/C,CAAC,EAAE,KAAK,CAAC;AAET,YAAA,MAAM,kBAAkB,GAAG,CAAC,IAAoB,KAAI;AAClD,gBAAA,IAAI;oBACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3C,oBAAA,IAAI,OAAO,CAAC,MAAM,KAAK,eAAe,EAAE;wBACtC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,SAAS,EAAE,kBAAkB,CAAC;wBACtD,YAAY,CAAC,WAAW,CAAC;wBAEzB,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,EAAE;AACzC,4BAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,4BAAA,OAAO,EAAE;wBACX;6BAAO;4BACL,MAAM,KAAK,GAAG,CAAA,uBAAA,EAA0B,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,eAAe,CAAA,CAAE;4BAClF,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAClC,4BAAA,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC1B;oBACF;gBACF;gBAAE,OAAO,KAAK,EAAE;AACd,oBAAA,IAAI,CAAC,GAAG,CAAC,+BAA+B,EAAE;AACxC,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe,EAAE;AAC9E,qBAAA,CAAC;gBACJ;AACF,YAAA,CAAC;YAED,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,kBAAkB,CAAC;AAC5C,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,MAAM,uBAAuB,GAAA;QACnC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAC5E,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;QACzD;AAEA,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,IAAI,EAAE;gBACJ,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,aAAA;SACF;AAED,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAE3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,MAAM,aAAa,GAAG,UAAU,CAAC,MAAK;AACpC,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACxC,CAAC,EAAE,KAAK,CAAC;AAET,YAAA,MAAM,oBAAoB,GAAG,CAAC,IAAoB,KAAI;AACpD,gBAAA,IAAI;oBACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC3C,oBAAA,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE;wBAClC,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,SAAS,EAAE,oBAAoB,CAAC;wBACxD,YAAY,CAAC,aAAa,CAAC;wBAE3B,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE;AACpD,4BAAA,OAAO,EAAE;wBACX;6BAAO;AACL,4BAAA,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;wBAC3D;oBACF;gBACF;gBAAE,OAAO,KAAK,EAAE;AACd,oBAAA,IAAI,CAAC,GAAG,CAAC,iCAAiC,EAAE;AAC1C,wBAAA,IAAI,EAAE,OAAO;AACb,wBAAA,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAAe,EAAE;AAC9E,qBAAA,CAAC;gBACJ;AACF,YAAA,CAAC;YAED,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC;AAC9C,QAAA,CAAC,CAAC;IACJ;IAEQ,MAAM,WAAW,CACvB,QAAgB,EAChB,MAAA,GAAiB,KAAK,EACtB,IAAU,EACV,WAAA,GAAsB,EAAE,EAAA;QAExB,MAAM,GAAG,GAAG,CAAA,EAAG,IAAI,CAAC,UAAU,CAAA,EAAG,QAAQ,CAAA,EAAG,WAAW,CAAA,CAAE;AACzD,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM;gBACN,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS;AAC9C,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,gBAAA,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AACvC,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAA,kBAAA,EAAqB,QAAQ,CAAC,MAAM,CAAA,GAAA,EAAM,SAAS,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gBAClF,MAAM,IAAI,KAAK,CAAC,CAAA,kBAAA,EAAqB,QAAQ,CAAC,MAAM,CAAA,GAAA,EAAM,SAAS,CAAA,CAAE,CAAC;YACxE;;AAGA,YAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE;AAC7E,gBAAA,OAAO,IAAI;YACb;YAEA,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YACxD,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;AAC3D,gBAAA,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE;YAC9B;;AAGA,YAAA,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;YACzC,OAAO,WAAW,IAAI,IAAI;QAC5B;QAAE,OAAO,GAAG,EAAE;YACZ,MAAM,KAAK,GAAG,GAAY;YAC1B,IAAI,CAAC,GAAG,CAAC,CAAA,sBAAA,EAAyB,KAAK,CAAC,OAAO,CAAA,OAAA,EAAU,GAAG,CAAA,CAAE,EAAE;AAC9D,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC;AACF,YAAA,MAAM,KAAK;QACb;IACF;IAEA,MAAM,YAAY,CAAC,UAAuB,EAAA;QACxC,MAAM,SAAS,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAqB;QAC5E,IAAI,UAAU,EAAE;AACd,YAAA,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,WAAW,KAAK,UAAU,CAAC;QAC5E;AACA,QAAA,OAAO,SAAS;IAClB;AAEA;;;;;;;;;;;;AAYG;AACH,IAAA,MAAM,SAAS,CAAC,MAAA,GAA0B,EAAE,EAAA;AAC1C,QAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;QAEzC,IAAI,MAAM,CAAC,MAAM;YAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9D,IAAI,MAAM,CAAC,KAAK;AAAE,YAAA,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtE,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;QAC3D,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;QAC3D,IAAI,MAAM,CAAC,SAAS;YAAE,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC;QACvE,IAAI,MAAM,CAAC,MAAM;AAAE,YAAA,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzE,IAAI,MAAM,CAAC,OAAO;AAAE,YAAA,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,IAAI;YAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;QAExD,MAAM,QAAQ,GAAG,CAAA,OAAA,EAAU,WAAW,CAAC,QAAQ,EAAE,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE;AACvF,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;QACzC;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,sBAAA,EAAyB,KAAK,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC7D,YAAA,MAAM,KAAK;QACb;IACF;AAEA,IAAA,MAAM,iBAAiB,GAAA;AACrB,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;QAC3C;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,+BAAA,EAAkC,KAAK,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACtE,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;;;;AAOG;IACH,MAAM,kBAAkB,CACtB,MAAc,EACd,GAAW,EACX,IAAoB,EACpB,eAAuB,EACvB,eAAkF,EAAA;AAElF,QAAA,IAAI,CAAC,GAAG,CACN,CAAA,uBAAA,EAA0B,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,EAAI,GAAG,CAAA,YAAA,EAAe,MAAM,CAAA,oBAAA,EAAuB,eAAe,GAAG,EACjH;YACE,MAAM;AACP,SAAA,CACF;AAED,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,WAAW,CAAC,CAAA,OAAA,CAAS,EAAE,MAAM,EAAE;gBACxC,MAAM;AACN,gBAAA,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAClB,IAAI;gBACJ,eAAe;AACf,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,IAAI,EAAE,eAAe;gBACrB,aAAa,EAAE,eAAe;AAC9B,gBAAA,aAAa,EAAE,KAAK;AACrB,aAAA,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,8BAAA,EAAiC,KAAK,EAAE,EAAE;gBACjD,MAAM;AACN,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC;AACF,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;;;AAMG;IACH,MAAM,iBAAiB,CACrB,MAAc,EACd,GAAW,EACX,IAAoB,EACpB,eAAkF,EAClF,eAAwB,EAAA;AAExB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAA,0BAAA,EAA6B,MAAM,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,SAAA,EAAY,eAAe,CAAA,CAAA,CAAG,EAAE;YAC1F,MAAM;AACP,SAAA,CAAC;AAEF,QAAA,MAAM,IAAI,GAAsB;YAC9B,MAAM;YACN,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YAC7B,IAAI;YACJ,eAAe;AACf,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,WAAW,EAAE,QAAQ;SACtB;AACD,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe;QACxC;AACA,QAAA,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC;QACxD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,6BAAA,EAAgC,KAAK,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACpE,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;AAIG;IACH,MAAM,sBAAsB,CAAC,MAAc,EAAA;AACzC,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;AAClC,gBAAA,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,CAAC,MAAM,CAAC;AAClB,aAAA,CAAC;AAEF,YAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CACnC,CAAC,KAAK,KACJ,KAAK,CAAC,IAAI,KAAK,eAAe;AAC9B,iBAAC,KAAK,CAAC,eAAe,KAAK,eAAe,IAAI,KAAK,CAAC,eAAe,KAAK,cAAc,CAAC,CAC1F;YAED,IAAI,CAAC,iBAAiB,EAAE;AACtB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAA,yCAAA,EAA4C,MAAM,EAAE,EAAE;oBAC7D,MAAM;AACP,iBAAA,CAAC;AACF,gBAAA,OAAO,IAAI;YACb;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE;AACpC,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAA,8BAAA,EAAiC,MAAM,6BAA6B,EAAE;oBAC7E,MAAM;AACP,iBAAA,CAAC;AACF,gBAAA,OAAO,IAAI;YACb;YAEA,MAAM,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC;AAChE,YAAA,OAAO,YAAY;QACrB;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,qCAAA,EAAwC,KAAK,EAAE,EAAE;gBACxD,MAAM;AACN,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC;AACF,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;AAIG;AACH,IAAA,MAAM,kBAAkB,CAAC,MAAc,EAAE,eAAuB,EAAA;;AAE9D,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;AAClC,YAAA,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,CAAC,MAAM,CAAC;AAClB,SAAA,CAAC;;AAGF,QAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC;QAEhF,IAAI,CAAC,iBAAiB,EAAE;AACtB,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,sCAAA,EAAyC,MAAM,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YACtF;QACF;;AAGA,QAAA,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,aAAa,GAAG,UAAU,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,IAAI;;QAGhH,MAAM,OAAO,GAAG,MAAM;AACtB,QAAA,IAAI,mBAAmB,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,GAAG,eAAe,CAAC,GAAG,OAAO,EAAE;YAC7F,IAAI,CAAC,GAAG,CACN,CAAA,kBAAA,EAAqB,MAAM,mBAAmB,eAAe,CAAA,YAAA,EAAe,mBAAmB,CAAA,mBAAA,CAAqB,EACpH;gBACE,MAAM;AACP,aAAA,CACF;YACD;QACF;QAEA,IAAI,CAAC,GAAG,CAAC,CAAA,2BAAA,EAA8B,MAAM,SAAS,mBAAmB,CAAA,KAAA,EAAQ,eAAe,CAAA,CAAA,CAAG,EAAE;YACnG,MAAM;AACP,SAAA,CAAC;AAEF,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,WAAW,CAAC,CAAA,QAAA,EAAW,iBAAiB,CAAC,EAAE,CAAA,CAAE,EAAE,OAAO,EAAE;AACjE,gBAAA,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE;AAClC,aAAA,CAAC;QACJ;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,8BAAA,EAAiC,KAAK,EAAE,EAAE;gBACjD,MAAM;AACN,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC;AACF,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;AAEG;AACH,IAAA,MAAM,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAA,yBAAA,CAA2B,CAAC;AACrC,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC7C;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,4BAAA,EAA+B,KAAK,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACrE;IACF;AAEA;;;;;AAKG;IACH,MAAM,WAAW,CAAC,OAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,GAAG,CAAC,8BAA8B,OAAO,CAAA,CAAE,CAAC;AAEjD,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,WAAW,CAAC,CAAA,QAAA,EAAW,OAAO,CAAA,CAAE,EAAE,QAAQ,CAAC;AACtD,YAAA,IAAI,CAAC,GAAG,CAAC,+BAA+B,OAAO,CAAA,CAAE,CAAC;QACpD;QAAE,OAAO,KAAK,EAAE;;AAEd,YAAA,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC3D,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAA,MAAA,EAAS,OAAO,oBAAoB,EAAE;AAC7C,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC;AACF,gBAAA,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,CAAA,kBAAA,CAAoB,CAAC;YACvD;;AAEA,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;;;;;;AASG;AACH,IAAA,MAAM,gBAAgB,CACpB,MAAc,EACd,GAAW,EACX,IAAoB,EACpB,UAAkB,EAClB,eAAkF,EAClF,cAAA,GAA0B,KAAK,EAC/B,eAAwB,EAAA;AAExB,QAAA,IAAI,CAAC,GAAG,CACN,4BAA4B,MAAM,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,EAAI,GAAG,eAAe,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA,EAAA,EAAK,eAAe,GAAG,EAC7G;YACE,MAAM;AACP,SAAA,CACF;AAED,QAAA,MAAM,IAAI,GAAsB;YAC9B,MAAM;YACN,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YAC7B,IAAI;YACJ,eAAe;AACf,YAAA,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;AAC5D,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,WAAW,EAAE,QAAQ;YACrB,cAAc;SACf;AACD,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AACjC,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe;QACxC;AACA,QAAA,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC;QACxD;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,4BAAA,EAA+B,KAAK,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACnE,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;;AAKG;AACH,IAAA,MAAM,iBAAiB,CACrB,OAAA,GAA+D,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,EAAA;AAE7G,QAAA,IAAI,CAAC,GAAG,CACN,CAAA,qBAAA,EAAwB,OAAO,CAAC,cAAc,GAAG,qBAAqB,GAAG,EAAE,CAAA,EACzE,OAAO,CAAC,aAAa,GAAG,4BAA4B,GAAG,EACzD,CAAA,CAAE,CACH;AAED,QAAA,IAAI,OAAO,CAAC,cAAc,EAAE;;YAE1B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;AAEtD,YAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC;gBACjC;YACF;YAEA,IAAI,CAAC,GAAG,CAAC,CAAA,MAAA,EAAS,SAAS,CAAC,MAAM,CAAA,mBAAA,CAAqB,CAAC;;AAGxD,YAAA,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC;YAC5D,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC;AAEnE,YAAA,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM;AAChE,YAAA,IAAI,cAAc,KAAK,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,GAAG,CAAC,sDAAsD,EAAE;AAC/D,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC;gBACF;YACF;AAEA,YAAA,IAAI,cAAc,KAAK,SAAS,CAAC,MAAM,EAAE;gBACvC,IAAI,CAAC,GAAG,CACN,CAAA,SAAA,EAAY,cAAc,CAAA,YAAA,EAAe,SAAS,CAAC,MAAM,CAAA,qBAAA,EAAwB,SAAS,CAAC,MAAM,SAAS,EAC1G,EAAE,IAAI,EAAE,MAAM,EAAE,CACjB;gBACD;YACF;;AAGA,YAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAChC,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpD,IAAI,CAAC,KAAK,EAAE;oBACV,IAAI,CAAC,GAAG,CAAC,CAAA,uBAAA,EAA0B,QAAQ,CAAC,MAAM,wBAAwB,EAAE;wBAC1E,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvB,wBAAA,IAAI,EAAE,MAAM;AACb,qBAAA,CAAC;oBACF;gBACF;AAEA,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9C,gBAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK;AACtD,gBAAA,MAAM,cAAc,GAAG,IAAI,KAAK,MAAM,GAAG,eAAe,GAAG,cAAc;;AAGzE,gBAAA,MAAM,YAAY,GAAG,IAAI,KAAK,MAAM,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;gBAE3D,IAAI,CAAC,YAAY,EAAE;oBACjB,IAAI,CAAC,GAAG,CAAC,CAAA,6BAAA,EAAgC,QAAQ,CAAC,MAAM,wBAAwB,EAAE;wBAChF,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvB,wBAAA,IAAI,EAAE,MAAM;AACb,qBAAA,CAAC;oBACF;gBACF;;AAGA,gBAAA,MAAM,qBAAqB,GAAG,4BAA4B,GAAG,GAAG;AAChE,gBAAA,MAAM,UAAU,GACd,IAAI,KAAK;AACP,sBAAE,IAAI,CAAC,mBAAmB,CAAC,YAAY,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC;AACtE,sBAAE,IAAI,CAAC,mBAAmB,CAAC,YAAY,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;AAE3E,gBAAA,IAAI,CAAC,GAAG,CACN,iCAAiC,QAAQ,CAAC,MAAM,CAAA,WAAA,EAAc,IAAI,IAAI,GAAG,CAAA,YAAA,EAAe,UAAU,CAAC,OAAO,CACxG,CAAC,CACF,EAAE,EACH;oBACE,MAAM,EAAE,QAAQ,CAAC,MAAM;AACxB,iBAAA,CACF;AAED,gBAAA,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC;YACrF;QACF;aAAO;YACL,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,aAAa,GAAG,qBAAqB,GAAG,EAAE,CAAC;QAC/G;IACF;AAEA;;;;AAIG;AACH,IAAA,MAAM,2BAA2B,GAAA;AAC/B,QAAA,IAAI,CAAC,GAAG,CAAC,wEAAwE,CAAC;;AAGlF,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE;QAC3C,IAAI,CAAC,GAAG,CAAC,CAAA,MAAA,EAAS,SAAS,CAAC,MAAM,CAAA,mBAAA,CAAqB,CAAC;AAExD,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC;YACjC;QACF;AAEA,QAAA,MAAM,IAAI,CAAC,eAAe,EAAE;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,CAAA,yBAAA,CAA2B,CAAC;;AAGrC,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC;QAC5D,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC;;AAGnE,QAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpD,IAAI,CAAC,KAAK,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,CAAA,uBAAA,EAA0B,QAAQ,CAAC,MAAM,wBAAwB,EAAE;oBAC1E,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvB,oBAAA,IAAI,EAAE,MAAM;AACb,iBAAA,CAAC;gBACF;YACF;AAEA,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC9C,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK;AACtD,YAAA,MAAM,cAAc,GAAG,IAAI,KAAK,MAAM,GAAG,eAAe,GAAG,cAAc;;AAGzE,YAAA,MAAM,YAAY,GAAG,IAAI,KAAK,MAAM,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YAE3D,IAAI,CAAC,YAAY,EAAE;gBACjB,IAAI,CAAC,GAAG,CAAC,CAAA,6BAAA,EAAgC,QAAQ,CAAC,MAAM,wBAAwB,EAAE;oBAChF,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvB,oBAAA,IAAI,EAAE,MAAM;AACb,iBAAA,CAAC;gBACF;YACF;;AAGA,YAAA,MAAM,qBAAqB,GAAG,4BAA4B,GAAG,GAAG;AAChE,YAAA,MAAM,UAAU,GACd,IAAI,KAAK;AACP,kBAAE,IAAI,CAAC,mBAAmB,CAAC,YAAY,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC;AACtE,kBAAE,IAAI,CAAC,mBAAmB,CAAC,YAAY,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;AAE3E,YAAA,IAAI,CAAC,GAAG,CACN,gDACE,QAAQ,CAAC,MACX,CAAA,WAAA,EAAc,IAAI,IAAI,GAAG,CAAA,YAAA,EAAe,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAC/D;gBACE,MAAM,EAAE,QAAQ,CAAC,MAAM;AACxB,aAAA,CACF;AAED,YAAA,MAAM,IAAI,CAAC,gBAAgB,CACzB,QAAQ,CAAC,MAAM,EACf,GAAG,EACH,IAAI,EACJ,UAAU,EACV,cAAc,EACd,IAAI;aACL;QACH;QAEA,IAAI,CAAC,GAAG,CAAC,CAAA,sBAAA,EAAyB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;IAChF;AAEA,IAAA,aAAa,CAAC,QAAuC,EAAA;AACnD,QAAA,IAAI,CAAC,mBAAmB,GAAG,QAAQ;IACrC;AAEA;;;;AAIG;IACH,MAAM,mBAAmB,CAAC,MAOzB,EAAA;AACC,QAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;QACzC,IAAI,MAAM,CAAC,SAAS;YAAE,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC;QACvE,IAAI,MAAM,CAAC,MAAM;YAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;AAC9D,QAAA,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS;AAAE,YAAA,WAAW,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC/G,IAAI,MAAM,CAAC,KAAK;YAAE,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;QAC3D,IAAI,MAAM,CAAC,GAAG;YAAE,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;QACrD,IAAI,MAAM,CAAC,QAAQ;YAAE,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC;AAEpE,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAA,2BAAA,EAA8B,WAAW,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;AAC/F,QAAA,OAAO,QAAQ;IACjB;AAEA;;;;;;;;;;;;;AAaG;IACH,MAAM,wBAAwB,CAAC,MAM9B,EAAA;;QAEC,MAAM,WAAW,GAAG,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,IAAa,EAAE;QAC3D,MAAM,YAAY,GAAG,EAAE,SAAS,EAAE,MAAe,EAAE,MAAM,EAAE,IAAI,EAAE;QAEjE,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;AACtD,YAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;AACrC,YAAA,IAAI,CAAC,mBAAmB,CAAC,YAAY;AACtC,SAAA,CAAC;;AAGF,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AACpE,YAAA,OAAO,YAAY;QACrB;;AAGA,QAAA,MAAM,kBAAkB,GAAG,YAAY,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;;AAGpF,QAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC;AACpC,aAAA,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAChD,aAAA,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,SAAS,GAAG,kBAAkB,CAAC;;AAG5D,QAAA,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAA,OAAO,YAAY;QACrB;;QAGA,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AACtE,QAAA,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK;;;;;;QAO9C,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC;AACvD,QAAA,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9D,QAAA,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7D,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/B,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;AAC1B,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;;AAG3F,QAAA,MAAM,mBAAmB,GAA6B;AACpD,YAAA,GAAG,YAAY;YACf,SAAS,EAAE,CAAC,GAAG,YAAY,CAAC,SAAS,EAAE,iBAAiB,CAAC;AACzD,YAAA,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACvE,YAAA,WAAW,EAAE,CAAC,GAAG,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AACtF,YAAA,eAAe,EAAE,CAAC,GAAG,YAAY,CAAC,eAAe,EAAE,aAAa,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;SACnG;AAED,QAAA,OAAO,mBAAmB;IAC5B;AAEA;;;;AAIG;IACH,MAAM,kBAAkB,CAAC,MAAgC,EAAA;AACvD,QAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;AAEzC,QAAA,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7E,IAAI,MAAM,CAAC,mBAAmB;YAAE,WAAW,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,CAAC;QACrG,IAAI,MAAM,CAAC,mBAAmB;YAAE,WAAW,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,CAAC;QACrG,IAAI,MAAM,CAAC,gBAAgB;YAAE,WAAW,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,CAAC;QAC5F,IAAI,MAAM,CAAC,gBAAgB;YAAE,WAAW,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,CAAC;QAC5F,IAAI,MAAM,CAAC,IAAI;YAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;QACxD,IAAI,MAAM,CAAC,MAAM;YAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9D,IAAI,MAAM,CAAC,KAAK;AAAE,YAAA,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACtE,IAAI,MAAM,CAAC,UAAU;YAAE,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC;AAE1E,QAAA,IAAI,CAAC,GAAG,CAAC,CAAA,8BAAA,EAAiC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YAChF,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,SAAA,CAAC;AAEF,QAAA,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,WAAW,CACtC,CAAA,mBAAA,EAAsB,WAAW,CAAC,QAAQ,EAAE,CAAA,CAAE,CAC/C,CAA4B;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAA,MAAA,EAAS,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAA,iBAAA,CAAmB,EAAE;YACrE,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,SAAA,CAAC;AACF,QAAA,OAAO,QAAQ;IACjB;AAEA;;;;AAIG;IACH,MAAM,iBAAiB,CAAC,UAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,GAAG,CAAC,CAAA,qCAAA,EAAwC,UAAU,EAAE,EAAE;AAC7D,YAAA,MAAM,EAAE,UAAU;AACnB,SAAA,CAAC;AACF,QAAA,MAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,CAAA,mBAAA,EAAsB,UAAU,CAAA,CAAE,CAAC,CAAmB;QAC/F,IAAI,CAAC,GAAG,CAAC,CAAA,kCAAA,EAAqC,UAAU,KAAK,QAAQ,CAAC,IAAI,CAAA,CAAE,EAAE;AAC5E,YAAA,MAAM,EAAE,UAAU;AACnB,SAAA,CAAC;AACF,QAAA,OAAO,QAAQ;IACjB;AAEA;;;;;;;;;AASG;AACH,IAAA,MAAM,iBAAiB,CACrB,MAAc,EACd,GAAW,EACX,IAAoB,EACpB,eAAkF,EAClF,IAAwB,EACxB,UAAmB,EAAA;AAEnB,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;YACtC,IAAI,CAAC,GAAG,CAAC,4DAA4D,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC3F;QAEA,IAAI,IAAI,KAAK,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE;YAChD,IAAI,CAAC,GAAG,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACzE;AAEA,QAAA,IAAI,CAAC,GAAG,CACN,CAAA,SAAA,EAAY,IAAI,CAAA,kBAAA,EAAqB,MAAM,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,YAAA,EAAe,eAAe,IACvF,IAAI,KAAK,OAAO,GAAG,CAAA,KAAA,EAAQ,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EACxD,EAAE,EACF;YACE,MAAM;AACP,SAAA,CACF;AAED,QAAA,MAAM,SAAS,GAAsB;YACnC,MAAM;AACN,YAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,IAAI;YACJ,eAAe;YACf,IAAI;AACJ,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,cAAc,EAAE,KAAK;SACtB;QAED,IAAI,IAAI,KAAK,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE;AAChD,YAAA,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;QACzE;QAEA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;IACvD;AAEA;;;;;;;AAOG;IACH,MAAM,yBAAyB,CAC7B,IAAgB,EAChB,GAAW,EACX,IAAwB,EACxB,UAAmB,EAAA;AAEnB,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;YACtC,IAAI,CAAC,GAAG,CAAC,4DAA4D,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC3F;QAEA,IAAI,IAAI,KAAK,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE;YAChD,IAAI,CAAC,GAAG,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACzE;AAEA,QAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,GAAG,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACzE;QAEA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3D,QAAA,IAAI,CAAC,GAAG,CACN,CAAA,mBAAA,EAAsB,IAAI,CAAA,mBAAA,EAAsB,IAAI,CAAC,MAAM,CAAA,OAAA,EAAU,UAAU,CAAA,CAAA,EAC7E,IAAI,KAAK,OAAO,GAAG,CAAA,KAAA,EAAQ,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,CAAE,GAAG,EACxD,EAAE,EACF;AACE,YAAA,MAAM,EAAE,UAAU;AACnB,SAAA,CACF;AAED,QAAA,MAAM,SAAS,GAA8B;AAC3C,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;YACnB,IAAI;AACJ,YAAA,aAAa,EAAE,KAAK;YACpB,IAAI;SACL;QAED,IAAI,IAAI,KAAK,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE;AAChD,YAAA,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;QACzE;QAEA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;IACvD;AAEA;;;;AAIG;IACH,MAAM,cAAc,CAAC,kBAA0B,EAAA;AAC7C,QAAA,IAAI,CAAC,GAAG,CAAC,CAAA,2BAAA,EAA8B,kBAAkB,EAAE,EAAE;AAC3D,YAAA,MAAM,EAAE,kBAAkB;AAC3B,SAAA,CAAC;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,CAAA,WAAA,EAAc,kBAAkB,CAAA,SAAA,CAAW,EAAE,MAAM,CAAC;IAC9E;AAEA;;;AAGG;AACH,IAAA,MAAM,kBAAkB,GAAA;AACtB,QAAA,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;AACtD,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,MAAM,0BAA0B,GAAA;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC;;;;;IAKzC;AAEA;;;;;AAKG;AACH,IAAA,MAAM,mBAAmB,CACvB,YAA0C,EAC1C,IAAa,EAAA;AAEb,QAAA,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE;QAEzC,IAAI,YAAY,EAAE;AAChB,YAAA,WAAW,CAAC,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC;QACpD;aAAO;AACL,YAAA,WAAW,CAAC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;QAC3D;QAEA,IAAI,IAAI,EAAE;AACR,YAAA,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;QAClC;AAEA,QAAA,IAAI,CAAC,GAAG,CACN,CAAA,0BAAA,EAA6B,YAAY,GAAG,CAAA,SAAA,EAAY,YAAY,CAAA,CAAE,GAAG,EAAE,CAAA,EAAG,IAAI,GAAG,CAAA,UAAA,EAAa,IAAI,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,CAChH;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,CAAA,oBAAA,EAAuB,WAAW,CAAC,QAAQ,EAAE,CAAA,CAAE,CAAC;IAC1E;AAEA;;;;;;;AAOG;IACH,MAAM,oBAAoB,CACxB,qBAA6B,EAC7B,sBAA8B,EAC9B,GAAW,EACX,UAAkB,EAAA;AAElB,QAAA,IAAI,CAAC,GAAG,CACN,CAAA,+BAAA,EAAkC,qBAAqB,UAAU,sBAAsB,CAAA,OAAA,EAAU,GAAG,CAAA,UAAA,EAAa,UAAU,CAAC,OAAO,CACjI,CAAC,CACF,EAAE,EACH;AACE,YAAA,MAAM,EAAE,CAAA,EAAG,qBAAqB,CAAA,CAAA,EAAI,sBAAsB,CAAA,CAAE;AAC7D,SAAA,CACF;AAED,QAAA,MAAM,IAAI,GAAe;AACvB,YAAA;AACE,gBAAA,MAAM,EAAE,qBAAqB;AAC7B,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,eAAe,EAAE,aAAa;AAC/B,aAAA;AACD,YAAA;AACE,gBAAA,MAAM,EAAE,sBAAsB;AAC9B,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,eAAe,EAAE,cAAc;AAChC,aAAA;SACF;AAED,QAAA,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC;IACvE;AAEA;;;;;;;AAOG;IACH,MAAM,mBAAmB,CACvB,qBAA6B,EAC7B,oBAA4B,EAC5B,GAAW,EACX,UAAkB,EAAA;AAElB,QAAA,IAAI,CAAC,GAAG,CACN,CAAA,8BAAA,EAAiC,qBAAqB,UAAU,oBAAoB,CAAA,OAAA,EAAU,GAAG,CAAA,UAAA,EAAa,UAAU,CAAC,OAAO,CAC9H,CAAC,CACF,EAAE,EACH;AACE,YAAA,MAAM,EAAE,CAAA,EAAG,qBAAqB,CAAA,CAAA,EAAI,oBAAoB,CAAA,CAAE;AAC3D,SAAA,CACF;AAED,QAAA,MAAM,IAAI,GAAe;AACvB,YAAA;AACE,gBAAA,MAAM,EAAE,qBAAqB;AAC7B,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,eAAe,EAAE,aAAa;AAC/B,aAAA;AACD,YAAA;AACE,gBAAA,MAAM,EAAE,oBAAoB;AAC5B,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,eAAe,EAAE,cAAc;AAChC,aAAA;SACF;AAED,QAAA,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC;IACvE;AAEA;;;;;;;;;AASG;AACH,IAAA,MAAM,gBAAgB,CACpB,aAAqB,EACrB,cAAsB,EACtB,eAAuB,EACvB,cAAsB,EACtB,GAAW,EACX,UAAkB,EAAA;AAElB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAA,0BAAA,EAA6B,GAAG,CAAA,eAAA,EAAkB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClF,MAAM,EAAE,GAAG,aAAa,CAAA,CAAA,EAAI,cAAc,CAAA,CAAA,EAAI,eAAe,CAAA,CAAA,EAAI,cAAc,CAAA,CAAE;AAClF,SAAA,CAAC;AAEF,QAAA,MAAM,IAAI,GAAe;AACvB,YAAA;AACE,gBAAA,MAAM,EAAE,aAAa;AACrB,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,eAAe,EAAE,aAAa;AAC/B,aAAA;AACD,YAAA;AACE,gBAAA,MAAM,EAAE,cAAc;AACtB,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,eAAe,EAAE,cAAc;AAChC,aAAA;AACD,YAAA;AACE,gBAAA,MAAM,EAAE,eAAe;AACvB,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,eAAe,EAAE,cAAc;AAChC,aAAA;AACD,YAAA;AACE,gBAAA,MAAM,EAAE,cAAc;AACtB,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,IAAI,EAAE,KAAK;AACX,gBAAA,eAAe,EAAE,aAAa;AAC/B,aAAA;SACF;AAED,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC;QAC7E;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,4BAAA,EAA+B,KAAK,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACnE,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;;;;AAOG;IACH,MAAM,iBAAiB,CACrB,WAAmB,EACnB,gBAAwB,EACxB,GAAW,EACX,UAAkB,EAAA;AAElB,QAAA,IAAI,CAAC,GAAG,CACN,CAAA,4BAAA,EAA+B,gBAAgB,YAAY,WAAW,CAAA,OAAA,EAAU,GAAG,CAAA,UAAA,EAAa,UAAU,CAAC,OAAO,CAChH,CAAC,CACF,EAAE,EACH;AACE,YAAA,MAAM,EAAE,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,gBAAgB,CAAA,CAAE;AAC7C,SAAA,CACF;;;AAID,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,CAAC;QACzG;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,6BAAA,EAAgC,KAAK,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACpE,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;;;;;AAQG;IACH,MAAM,kBAAkB,CACtB,mBAA2B,EAC3B,eAAuB,EACvB,GAAW,EACX,mBAAmC,EACnC,UAAkB,EAAA;AAElB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAA,QAAA,EAAW,GAAG,IAAI,mBAAmB,CAAA,IAAA,EAAO,eAAe,CAAA,eAAA,EAAkB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;AAC7G,YAAA,MAAM,EAAE,CAAA,EAAG,mBAAmB,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE;AACpD,SAAA,CAAC;;;AAIF,QAAA,MAAM,iBAAiB,GAAG,mBAAmB,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK;QACxE,MAAM,gBAAgB,GAAG,mBAAmB;AAE5C,QAAA,MAAM,mBAAmB,GAAG,iBAAiB,KAAK,KAAK,GAAG,cAAc,GAAG,eAAe;AAC1F,QAAA,MAAM,kBAAkB,GAAG,gBAAgB,KAAK,KAAK,GAAG,aAAa,GAAG,cAAc;AAEtF,QAAA,MAAM,IAAI,GAAe;AACvB,YAAA;AACE,gBAAA,MAAM,EAAE,mBAAmB;AAC3B,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,IAAI,EAAE,iBAAiB;AACvB,gBAAA,eAAe,EAAE,mBAAmB;AACrC,aAAA;AACD,YAAA;AACE,gBAAA,MAAM,EAAE,eAAe;AACvB,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,eAAe,EAAE,kBAAkB;AACpC,aAAA;SACF;AAED,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC;QAC7E;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,+BAAA,EAAkC,KAAK,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACtE,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;;AAKG;AACH,IAAA,MAAM,cAAc,CAAC,gBAAwB,EAAE,cAAsB,EAAA;QACnE,IAAI,CAAC,GAAG,CAAC,CAAA,0BAAA,EAA6B,gBAAgB,CAAA,sBAAA,EAAyB,cAAc,EAAE,EAAE;AAC/F,YAAA,MAAM,EAAE,gBAAgB;AACzB,SAAA,CAAC;AAEF,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAA6B;gBACvC,kBAAkB,EAAE,CAAC,gBAAgB,CAAC;AACtC,gBAAA,mBAAmB,EAAE,cAAc;AACnC,gBAAA,mBAAmB,EAAE,cAAc;AACnC,gBAAA,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,GAAG;aACX;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;AACtD,YAAA,OAAO,QAAQ,CAAC,gBAAgB,IAAI,EAAE;QACxC;QAAE,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,GAAG,CACN,CAAA,iCAAA,EAAoC,gBAAgB,CAAA,EAAA,EAClD,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAC3C,EAAE,EACF;AACE,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,MAAM,EAAE,gBAAgB;AACzB,aAAA,CACF;AACD,YAAA,OAAO,EAAE;QACX;IACF;AAEA;;;;AAIG;IACH,MAAM,wBAAwB,CAAC,gBAAwB,EAAA;AACrD,QAAA,IAAI,CAAC,GAAG,CAAC,CAAA,wCAAA,EAA2C,gBAAgB,EAAE,EAAE;AACtE,YAAA,MAAM,EAAE,gBAAgB;AACzB,SAAA,CAAC;AAEF,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAA6B;gBACvC,kBAAkB,EAAE,CAAC,gBAAgB,CAAC;AACtC,gBAAA,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,IAAI;aACZ;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;;AAGtD,YAAA,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU;AACzC,YAAA,IAAI,QAAQ,CAAC,gBAAgB,EAAE;gBAC7B,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAC7C,oBAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC;AAC/C,gBAAA,CAAC,CAAC;YACJ;;YAGA,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE;QAC3C;QAAE,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,GAAG,CACN,CAAA,qCAAA,EAAwC,gBAAgB,CAAA,EAAA,EACtD,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,eAC3C,EAAE,EACF;AACE,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,MAAM,EAAE,gBAAgB;AACzB,aAAA,CACF;AACD,YAAA,OAAO,EAAE;QACX;IACF;AAEA;;;AAGG;AACH,IAAA,MAAM,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC;AAE1C,QAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE;AACrD,QAAA,OAAO,cAAc,CAAC,qBAAqB,IAAI,CAAC;IAClD;AAEA;;;AAGG;AACH,IAAA,MAAM,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC;AAElD,QAAA,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE;;;;;AAMrD,QAAA,MAAM,YAAY,GAAG,cAAc,CAAC,qBAAqB,IAAI,CAAC;AAC9D,QAAA,MAAM,SAAS,GAAG,YAAY,IAAI,CAAC;QAEnC,IAAI,CAAC,GAAG,CAAC,CAAA,uBAAA,EAA0B,YAAY,CAAA,WAAA,EAAc,SAAS,CAAA,CAAE,CAAC;AAEzE,QAAA,OAAO,SAAS;IAClB;AAEA;;;;AAIG;AACH,IAAA,MAAM,uBAAuB,CAAC,YAAA,GAAwB,IAAI,EAAA;AACxD,QAAA,IAAI,CAAC,GAAG,CAAC,CAAA,4BAAA,EAA+B,YAAY,GAAG,+BAA+B,GAAG,EAAE,CAAA,CAAE,CAAC;AAE9F,QAAA,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE;AAEvD,QAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC;YACxC;QACF;;AAGA,QAAA,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE;AACtC,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK;AACtD,YAAA,MAAM,cAAc,GAAG,IAAI,KAAK,MAAM,GAAG,eAAe,GAAG,cAAc;AAEzE,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,QAAA,EAAW,QAAQ,CAAC,IAAI,CAAA,aAAA,EAAgB,QAAQ,CAAC,GAAG,CAAA,eAAA,EAAkB,QAAQ,CAAC,MAAM,EAAE,EAAE;gBAChG,MAAM,EAAE,QAAQ,CAAC,MAAM;AACxB,aAAA,CAAC;YAEF,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC;QACvG;QAEA,IAAI,YAAY,EAAE;;AAEhB,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACvD,YAAA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,WAAW,KAAK,WAAW,CAAC;;AAGhF,YAAA,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;gBAChC,IAAI,CAAC,GAAG,CAAC,CAAA,yBAAA,EAA4B,KAAK,CAAC,MAAM,EAAE,EAAE;oBACnD,MAAM,EAAE,KAAK,CAAC,MAAM;AACrB,iBAAA,CAAC;AACF,gBAAA,MAAM,IAAI,CAAC,WAAW,CAAC,CAAA,QAAA,EAAW,KAAK,CAAC,EAAE,CAAA,CAAE,EAAE,QAAQ,CAAC;YACzD;QACF;IACF;AAEA;;;;;AAKG;AACH,IAAA,MAAM,mBAAmB,CAAC,MAAc,EAAE,GAAY,EAAA;AACpD,QAAA,IAAI,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAA,EAAG,GAAG,GAAG,CAAA,EAAA,EAAK,GAAG,CAAA,WAAA,CAAa,GAAG,EAAE,EAAE,EAAE;YACnF,MAAM;AACP,SAAA,CAAC;;AAGF,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE;AACjD,QAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;QAE3D,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAA,CAAE,CAAC;QACpE;QAEA,MAAM,eAAe,GAAG,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrD,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK;AACtD,QAAA,MAAM,cAAc,GAAG,IAAI,KAAK,MAAM,GAAG,eAAe,GAAG,cAAc;AAEzE,QAAA,IAAI;AACF,YAAA,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,CAAC;QAC9F;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,+BAAA,EAAkC,KAAK,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACtE,YAAA,MAAM,KAAK;QACb;IACF;AAEA;;;;;AAKG;AACH,IAAA,MAAM,mBAAmB,CACvB,MAKC,EACD,OAA8B,EAAA;QAE9B,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM;AACpD,QAAA,MAAM,EACJ,IAAI,GAAG,QAAQ,EACf,UAAU,EACV,aAAa,GAAG,KAAK,EACrB,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,cAAc,EACd,aAAa,GAAG,KAAK,EACrB,eAAe,EACf,oBAAoB,EACpB,aAAa,GACd,GAAG,OAAO,IAAI,EAAE;;AAGjB,QAAA,IAAI,aAAa,IAAI,IAAI,KAAK,QAAQ,EAAE;AACtC,YAAA,IAAI,CAAC,GAAG,CAAC,wDAAwD,EAAE;gBACjE,MAAM;AACN,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC;AACF,YAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;QAC3E;;QAGA,IAAI,IAAI,KAAK,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE;AAChD,YAAA,IAAI,CAAC,GAAG,CAAC,0CAA0C,EAAE;gBACnD,MAAM;AACN,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC;AACF,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;QAC7D;AAEA,QAAA,IAAI,mBAAuC;AAC3C,QAAA,IAAI,yBAA6C;;QAGjD,IAAI,WAAW,EAAE;YACf,IAAI,SAAS,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE;AAC3D,gBAAA,IAAI,CAAC,GAAG,CAAC,8EAA8E,EAAE;oBACvF,MAAM;AACN,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC;AACF,gBAAA,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC;YACjG;AAEA,YAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAChC,gBAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAChC,oBAAA,IAAI,CAAC,GAAG,CAAC,sDAAsD,EAAE;wBAC/D,MAAM;AACN,wBAAA,IAAI,EAAE,OAAO;AACd,qBAAA,CAAC;AACF,oBAAA,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;gBACzE;;AAGA,gBAAA,MAAM,kBAAkB,GAAG,cAAc,GAAG,GAAG;AAC/C,gBAAA,IAAI,IAAI,KAAK,KAAK,EAAE;;oBAElB,mBAAmB,GAAG,cAAc,IAAI,CAAC,GAAG,kBAAkB,CAAC;gBACjE;qBAAO;;oBAEL,mBAAmB,GAAG,cAAc,IAAI,CAAC,GAAG,kBAAkB,CAAC;gBACjE;YACF;iBAAO;gBACL,mBAAmB,GAAG,SAAS;YACjC;QACF;;QAGA,IAAI,aAAa,EAAE;YACjB,IAAI,eAAe,KAAK,SAAS,IAAI,oBAAoB,KAAK,SAAS,EAAE;AACvE,gBAAA,IAAI,CAAC,GAAG,CAAC,4FAA4F,EAAE;oBACrG,MAAM;AACN,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA,CAAC;AACF,gBAAA,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC;YAC/G;AAEA,YAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AACtC,gBAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAChC,oBAAA,IAAI,CAAC,GAAG,CAAC,4DAA4D,EAAE;wBACrE,MAAM;AACN,wBAAA,IAAI,EAAE,OAAO;AACd,qBAAA,CAAC;AACF,oBAAA,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC;gBAC/E;;AAGA,gBAAA,MAAM,wBAAwB,GAAG,oBAAoB,GAAG,GAAG;AAC3D,gBAAA,IAAI,IAAI,KAAK,KAAK,EAAE;;oBAElB,yBAAyB,GAAG,cAAc,IAAI,CAAC,GAAG,wBAAwB,CAAC;gBAC7E;qBAAO;;oBAEL,yBAAyB,GAAG,cAAc,IAAI,CAAC,GAAG,wBAAwB,CAAC;gBAC7E;YACF;iBAAO;gBACL,yBAAyB,GAAG,eAAe;YAC7C;QACF;;QAGA,IAAI,UAAU,GAAiC,QAAQ;AACvD,QAAA,IAAI,WAAW,IAAI,aAAa,EAAE;YAChC,UAAU,GAAG,SAAS;QACxB;AAAO,aAAA,IAAI,WAAW,IAAI,aAAa,EAAE;YACvC,UAAU,GAAG,KAAK;QACpB;;AAGA,QAAA,MAAM,SAAS,GAAsB;YACnC,MAAM;YACN,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YAC7B,IAAI;YACJ,IAAI;AACJ,YAAA,aAAa,EAAE,KAAK;AACpB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,cAAc,EAAE,aAAa;YAC7B,eAAe,EAAE,IAAI,KAAK,KAAK,GAAG,aAAa,GAAG,cAAc;SACjE;QAED,IAAI,aAAa,EAAE;AACjB,YAAA,SAAS,CAAC,eAAe,GAAG,aAAa;QAC3C;;QAGA,IAAI,IAAI,KAAK,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE;AAChD,YAAA,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;QACzE;;AAGA,QAAA,IAAI,WAAW,IAAI,mBAAmB,KAAK,SAAS,EAAE;YACpD,SAAS,CAAC,SAAS,GAAG;gBACpB,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;aACrE;QACH;;AAGA,QAAA,IAAI,aAAa,IAAI,yBAAyB,KAAK,SAAS,EAAE;YAC5D,SAAS,CAAC,WAAW,GAAG;gBACtB,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE;aAC5E;QACH;AAEA,QAAA,MAAM,UAAU,GAAG,CAAA,SAAA,EAAY,UAAU,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,WAAA,EAAc,MAAM,KAAK,GAAG,CAAA,OAAA,EACnF,IAAI,KAAK,OAAO,GAAG,CAAA,KAAA,EAAQ,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,CAAE,GAAG,EACxD,CAAA,EAAG,WAAW,GAAG,CAAA,oBAAA,EAAuB,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA,CAAE,GAAG,EAAE,CAAA,EAC5E,aAAa,GAAG,CAAA,sBAAA,EAAyB,yBAAyB,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EACrF,GAAG,aAAa,GAAG,mBAAmB,GAAG,EAAE,EAAE;AAE7C,QAAA,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;YACnB,MAAM;AACP,SAAA,CAAC;AAEF,QAAA,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;QAC7D;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,CAAA,+BAAA,EAAkC,KAAK,EAAE,EAAE;gBAClD,MAAM;AACN,gBAAA,IAAI,EAAE,OAAO;AACd,aAAA,CAAC;AACF,YAAA,MAAM,KAAK;QACb;IACF;AACD;;AClvDM,MAAM,KAAK,GAAG;AACnB,IAAA,KAAK,EAAE,KAAK;AACZ,IAAA,MAAM,EAAE;AACN,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,aAAa,EAAE,mBAAmB;AACnC,KAAA;AACD,IAAA,MAAM,EAAE;QACN,cAAc,EAAEC,cAAiB;QACjC,QAAQ,EAAEC,cAAiB;QAC3B,MAAM,EAAEC,YAAe;QACvB,GAAG,EAAEC,gBAAmB;QACxB,aAAa,EAAEC,aAAgB;AAChC,KAAA;AACD,IAAA,OAAO,EAAE;QACP,eAAe,EAAEC,sBAAqC;QACtD,kBAAkB,EAAEC,yBAAwC;QAC5D,mBAAmB,EAAEC,0BAAyC;QAC9D,aAAa,EAAEC,oBAAmC;QAClD,sBAAsB,EAAEC,sBAAqC;QAC7D,aAAa,EAAEC,oBAAmC;AACnD,KAAA;AACD,IAAA,GAAG,EAAE;QACH,IAAI,EAAEC,WAAe;QACrB,IAAI,EAAEC,gBAAyB;QAC/B,MAAM,EAAEC,cAAwB;QAClC,IAAI,EAAEC,kBAA6B;AAClC,KAAA;AACD,IAAA,OAAO,EAAE;QACP,eAAe,EAAEC,eAAuB;QACxC,iBAAiB,EAAEC,iBAAyB;QAC5C,cAAc,EAAEC,cAAsB;QACtC,WAAW,EAAEC,WAAmB;QAChC,WAAW,EAAEC,WAAmB;QAChC,uBAAuB,EAAEC,uBAA+B;QACxD,eAAe,EAAEC,eAAuB;QACxC,mBAAmB,EAAEC,mBAA2B;QAChD,gBAAgB,EAAEC,gBAAwB;AAC3C,KAAA;AACD,IAAA,EAAE,EAAE;QACF,YAAY,EAAEC,YAAe;QAC7B,aAAa,EAAEC,aAAgB;QAC/B,YAAY,EAAEC,YAAe;QAC7B,6BAA6B,EAAEC,6BAAgC;QAC/D,uBAAuB,EAAEC,uBAA0B;QACnD,6BAA6B,EAAEC,6BAAgC;QAC/D,wBAAwB,EAAEC,wBAA2B;AACtD,KAAA;AACD,IAAA,IAAI,EAAE;QACJ,2BAA2B,EAAEC,2BAA8B;QAC3D,mBAAmB,EAAEC,mBAAsB;QAC3C,kBAAkB,EAAEC,kBAAqB;QACzC,yBAAyB,EAAEC,yBAA4B;QACvD,sBAAsB,EAAEC,sBAAyB;QACjD,gBAAgB,EAAEC,gBAAmB;QACrC,oBAAoB,EAAEC,oBAAuB;QAC7C,mBAAmB,EAAEC,mBAAsB;QAC3C,eAAe,EAAEC,eAAkB;QACnC,aAAa,EAAEC,aAAgB;QAC/B,cAAc,EAAEC,cAAiB;QACjC,0BAA0B,EAAEC,0BAA6B;QACzD,WAAW,EAAEC,WAAc;QAC3B,mBAAmB,EAAEC,mBAAsB;QAC3C,gBAAgB,EAAEC,gBAAmB;QACrC,YAAY,EAAEC,YAAe;AAC9B,KAAA;AACD,IAAA,KAAK,EAAE;QACL,UAAU,EAAEC,UAAe;QAC3B,cAAc,EAAEC,cAAmB;QACnC,qBAAqB,EAAEC,qBAA0B;AACjD,QAAA,KAAK,EAAE,gBAAgB;AACxB,KAAA;CACF;;AC/FD;AAkqBA,eAAe,OAAO,GAAA;;AAEpB,IAAA,MAAM,MAAM,GAAe,CAAC,SAAS,CAAC;AAEtC,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,QAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAA,CAAE,CAAC;;AAGxC,QAAA,IAAI;AACF,YAAA,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,CAAC;YAC/E,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AAC7B,gBAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;YACzC;YACA,OAAO,CAAC,GAAG,CAAC,CAAA,UAAA,EAAa,KAAK,CAAC,QAAQ,CAAA,CAAE,CAAC;QAC5C;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACzC;;AAGA,QAAA,IAAI;YACF,MAAM,UAAU,GAAG,gEAAgE;AACnF,YAAA,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;YAChF,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;YACzC;AACA,YAAA,OAAO,CAAC,GAAG,CAAC,CAAA,UAAA,EAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,CAAE,CAAC;QAC3D;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACxC;;AAGA,QAAA,IAAI;YACF,MAAM,YAAY,GAAG,sFAAsF;AAC3G,YAAA,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YAC9E,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;YACzC;YACA,OAAO,CAAC,GAAG,CAAC,CAAA,UAAA,EAAa,IAAI,CAAC,QAAQ,CAAA,CAAE,CAAC;QAC3C;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACzC;IACF;AACF;AAk6BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAO,EAAE","x_google_ignoreList":[6,7,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133]}
1
+ {"version":3,"file":"test.js","sources":["../src/logging.ts","../src/market-hours.ts","../src/market-time.ts","../node_modules/yocto-queue/index.js","../node_modules/p-limit/index.js","../src/polygon.ts","../src/polygon-indices.ts","../node_modules/openai/internal/tslib.mjs","../node_modules/openai/internal/utils/uuid.mjs","../node_modules/openai/internal/errors.mjs","../node_modules/openai/core/error.mjs","../node_modules/openai/internal/utils/values.mjs","../node_modules/openai/internal/utils/sleep.mjs","../node_modules/openai/version.mjs","../node_modules/openai/internal/detect-platform.mjs","../node_modules/openai/internal/shims.mjs","../node_modules/openai/internal/request-options.mjs","../node_modules/openai/internal/qs/formats.mjs","../node_modules/openai/internal/qs/utils.mjs","../node_modules/openai/internal/qs/stringify.mjs","../node_modules/openai/internal/utils/bytes.mjs","../node_modules/openai/internal/decoders/line.mjs","../node_modules/openai/internal/utils/log.mjs","../node_modules/openai/core/streaming.mjs","../node_modules/openai/internal/parse.mjs","../node_modules/openai/core/api-promise.mjs","../node_modules/openai/core/pagination.mjs","../node_modules/openai/internal/uploads.mjs","../node_modules/openai/internal/to-file.mjs","../node_modules/openai/core/resource.mjs","../node_modules/openai/internal/utils/path.mjs","../node_modules/openai/resources/chat/completions/messages.mjs","../node_modules/openai/lib/parser.mjs","../node_modules/openai/lib/chatCompletionUtils.mjs","../node_modules/openai/lib/EventStream.mjs","../node_modules/openai/lib/RunnableFunction.mjs","../node_modules/openai/lib/AbstractChatCompletionRunner.mjs","../node_modules/openai/lib/ChatCompletionRunner.mjs","../node_modules/openai/_vendor/partial-json-parser/parser.mjs","../node_modules/openai/lib/ChatCompletionStream.mjs","../node_modules/openai/lib/ChatCompletionStreamingRunner.mjs","../node_modules/openai/resources/chat/completions/completions.mjs","../node_modules/openai/resources/chat/chat.mjs","../node_modules/openai/internal/headers.mjs","../node_modules/openai/resources/audio/speech.mjs","../node_modules/openai/resources/audio/transcriptions.mjs","../node_modules/openai/resources/audio/translations.mjs","../node_modules/openai/resources/audio/audio.mjs","../node_modules/openai/resources/batches.mjs","../node_modules/openai/resources/beta/assistants.mjs","../node_modules/openai/resources/beta/realtime/sessions.mjs","../node_modules/openai/resources/beta/realtime/transcription-sessions.mjs","../node_modules/openai/resources/beta/realtime/realtime.mjs","../node_modules/openai/resources/beta/chatkit/sessions.mjs","../node_modules/openai/resources/beta/chatkit/threads.mjs","../node_modules/openai/resources/beta/chatkit/chatkit.mjs","../node_modules/openai/resources/beta/threads/messages.mjs","../node_modules/openai/resources/beta/threads/runs/steps.mjs","../node_modules/openai/internal/utils/base64.mjs","../node_modules/openai/internal/utils/env.mjs","../node_modules/openai/lib/AssistantStream.mjs","../node_modules/openai/resources/beta/threads/runs/runs.mjs","../node_modules/openai/resources/beta/threads/threads.mjs","../node_modules/openai/resources/beta/beta.mjs","../node_modules/openai/resources/completions.mjs","../node_modules/openai/resources/containers/files/content.mjs","../node_modules/openai/resources/containers/files/files.mjs","../node_modules/openai/resources/containers/containers.mjs","../node_modules/openai/resources/conversations/items.mjs","../node_modules/openai/resources/conversations/conversations.mjs","../node_modules/openai/resources/embeddings.mjs","../node_modules/openai/resources/evals/runs/output-items.mjs","../node_modules/openai/resources/evals/runs/runs.mjs","../node_modules/openai/resources/evals/evals.mjs","../node_modules/openai/resources/files.mjs","../node_modules/openai/resources/fine-tuning/methods.mjs","../node_modules/openai/resources/fine-tuning/alpha/graders.mjs","../node_modules/openai/resources/fine-tuning/alpha/alpha.mjs","../node_modules/openai/resources/fine-tuning/checkpoints/permissions.mjs","../node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.mjs","../node_modules/openai/resources/fine-tuning/jobs/checkpoints.mjs","../node_modules/openai/resources/fine-tuning/jobs/jobs.mjs","../node_modules/openai/resources/fine-tuning/fine-tuning.mjs","../node_modules/openai/resources/graders/grader-models.mjs","../node_modules/openai/resources/graders/graders.mjs","../node_modules/openai/resources/images.mjs","../node_modules/openai/resources/models.mjs","../node_modules/openai/resources/moderations.mjs","../node_modules/openai/resources/realtime/calls.mjs","../node_modules/openai/resources/realtime/client-secrets.mjs","../node_modules/openai/resources/realtime/realtime.mjs","../node_modules/openai/lib/ResponsesParser.mjs","../node_modules/openai/lib/responses/ResponseStream.mjs","../node_modules/openai/resources/responses/input-items.mjs","../node_modules/openai/resources/responses/input-tokens.mjs","../node_modules/openai/resources/responses/responses.mjs","../node_modules/openai/resources/uploads/parts.mjs","../node_modules/openai/resources/uploads/uploads.mjs","../node_modules/openai/lib/Util.mjs","../node_modules/openai/resources/vector-stores/file-batches.mjs","../node_modules/openai/resources/vector-stores/files.mjs","../node_modules/openai/resources/vector-stores/vector-stores.mjs","../node_modules/openai/resources/videos.mjs","../node_modules/openai/resources/webhooks.mjs","../node_modules/openai/client.mjs","../node_modules/ws/lib/constants.js","../node_modules/ws/lib/buffer-util.js","../node_modules/ws/lib/limiter.js","../node_modules/ws/lib/permessage-deflate.js","../node_modules/ws/lib/validation.js","../node_modules/ws/lib/receiver.js","../node_modules/ws/lib/sender.js","../node_modules/ws/lib/event-target.js","../node_modules/ws/lib/extension.js","../node_modules/ws/lib/websocket.js","../node_modules/ws/lib/stream.js","../node_modules/ws/lib/subprotocol.js","../node_modules/ws/lib/websocket-server.js","../node_modules/dotenv/lib/main.js","../node_modules/dotenv/lib/env-options.js","../node_modules/dotenv/lib/cli-options.js","../node_modules/dotenv/config.js","../src/alpaca-market-data-api.ts"],"sourcesContent":[null,null,null,"/*\nHow it works:\n`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.\n*/\n\nclass Node {\n\tvalue;\n\tnext;\n\n\tconstructor(value) {\n\t\tthis.value = value;\n\t}\n}\n\nexport default class Queue {\n\t#head;\n\t#tail;\n\t#size;\n\n\tconstructor() {\n\t\tthis.clear();\n\t}\n\n\tenqueue(value) {\n\t\tconst node = new Node(value);\n\n\t\tif (this.#head) {\n\t\t\tthis.#tail.next = node;\n\t\t\tthis.#tail = node;\n\t\t} else {\n\t\t\tthis.#head = node;\n\t\t\tthis.#tail = node;\n\t\t}\n\n\t\tthis.#size++;\n\t}\n\n\tdequeue() {\n\t\tconst current = this.#head;\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#head = this.#head.next;\n\t\tthis.#size--;\n\t\treturn current.value;\n\t}\n\n\tpeek() {\n\t\tif (!this.#head) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.#head.value;\n\n\t\t// TODO: Node.js 18.\n\t\t// return this.#head?.value;\n\t}\n\n\tclear() {\n\t\tthis.#head = undefined;\n\t\tthis.#tail = undefined;\n\t\tthis.#size = 0;\n\t}\n\n\tget size() {\n\t\treturn this.#size;\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tlet current = this.#head;\n\n\t\twhile (current) {\n\t\t\tyield current.value;\n\t\t\tcurrent = current.next;\n\t\t}\n\t}\n\n\t* drain() {\n\t\twhile (this.#head) {\n\t\t\tyield this.dequeue();\n\t\t}\n\t}\n}\n","import Queue from 'yocto-queue';\n\nexport default function pLimit(concurrency) {\n\tvalidateConcurrency(concurrency);\n\n\tconst queue = new Queue();\n\tlet activeCount = 0;\n\n\tconst resumeNext = () => {\n\t\t// Process the next queued function if we're under the concurrency limit\n\t\tif (activeCount < concurrency && queue.size > 0) {\n\t\t\tactiveCount++;\n\t\t\tqueue.dequeue()();\n\t\t}\n\t};\n\n\tconst next = () => {\n\t\tactiveCount--;\n\t\tresumeNext();\n\t};\n\n\tconst run = async (function_, resolve, arguments_) => {\n\t\t// Execute the function and capture the result promise\n\t\tconst result = (async () => function_(...arguments_))();\n\n\t\t// Resolve immediately with the promise (don't wait for completion)\n\t\tresolve(result);\n\n\t\t// Wait for the function to complete (success or failure)\n\t\t// We catch errors here to prevent unhandled rejections,\n\t\t// but the original promise rejection is preserved for the caller\n\t\ttry {\n\t\t\tawait result;\n\t\t} catch {}\n\n\t\t// Decrement active count and process next queued function\n\t\tnext();\n\t};\n\n\tconst enqueue = (function_, resolve, arguments_) => {\n\t\t// Queue the internal resolve function instead of the run function\n\t\t// to preserve the asynchronous execution context.\n\t\tnew Promise(internalResolve => { // eslint-disable-line promise/param-names\n\t\t\tqueue.enqueue(internalResolve);\n\t\t}).then(run.bind(undefined, function_, resolve, arguments_)); // eslint-disable-line promise/prefer-await-to-then\n\n\t\t// Start processing immediately if we haven't reached the concurrency limit\n\t\tif (activeCount < concurrency) {\n\t\t\tresumeNext();\n\t\t}\n\t};\n\n\tconst generator = (function_, ...arguments_) => new Promise(resolve => {\n\t\tenqueue(function_, resolve, arguments_);\n\t});\n\n\tObject.defineProperties(generator, {\n\t\tactiveCount: {\n\t\t\tget: () => activeCount,\n\t\t},\n\t\tpendingCount: {\n\t\t\tget: () => queue.size,\n\t\t},\n\t\tclearQueue: {\n\t\t\tvalue() {\n\t\t\t\tqueue.clear();\n\t\t\t},\n\t\t},\n\t\tconcurrency: {\n\t\t\tget: () => concurrency,\n\n\t\t\tset(newConcurrency) {\n\t\t\t\tvalidateConcurrency(newConcurrency);\n\t\t\t\tconcurrency = newConcurrency;\n\n\t\t\t\tqueueMicrotask(() => {\n\t\t\t\t\t// eslint-disable-next-line no-unmodified-loop-condition\n\t\t\t\t\twhile (activeCount < concurrency && queue.size > 0) {\n\t\t\t\t\t\tresumeNext();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t\tmap: {\n\t\t\tasync value(iterable, function_) {\n\t\t\t\tconst promises = Array.from(iterable, (value, index) => this(function_, value, index));\n\t\t\t\treturn Promise.all(promises);\n\t\t\t},\n\t\t},\n\t});\n\n\treturn generator;\n}\n\nexport function limitFunction(function_, options) {\n\tconst {concurrency} = options;\n\tconst limit = pLimit(concurrency);\n\n\treturn (...arguments_) => limit(() => function_(...arguments_));\n}\n\nfunction validateConcurrency(concurrency) {\n\tif (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n}\n",null,null,"function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\")\n throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? (f.value = value) : state.set(receiver, value), value;\n}\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f)\n throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver))\n throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport { __classPrivateFieldSet, __classPrivateFieldGet };\n","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * https://stackoverflow.com/a/2117523\n */\nexport let uuid4 = function () {\n const { crypto } = globalThis;\n if (crypto?.randomUUID) {\n uuid4 = crypto.randomUUID.bind(crypto);\n return crypto.randomUUID();\n }\n const u8 = new Uint8Array(1);\n const randomByte = crypto ? () => crypto.getRandomValues(u8)[0] : () => (Math.random() * 0xff) & 0xff;\n return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => (+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16));\n};\n//# sourceMappingURL=uuid.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function isAbortError(err) {\n return (typeof err === 'object' &&\n err !== null &&\n // Spec-compliant fetch implementations\n (('name' in err && err.name === 'AbortError') ||\n // Expo fetch\n ('message' in err && String(err.message).includes('FetchRequestCanceledException'))));\n}\nexport const castToError = (err) => {\n if (err instanceof Error)\n return err;\n if (typeof err === 'object' && err !== null) {\n try {\n if (Object.prototype.toString.call(err) === '[object Error]') {\n // @ts-ignore - not all envs have native support for cause yet\n const error = new Error(err.message, err.cause ? { cause: err.cause } : {});\n if (err.stack)\n error.stack = err.stack;\n // @ts-ignore - not all envs have native support for cause yet\n if (err.cause && !error.cause)\n error.cause = err.cause;\n if (err.name)\n error.name = err.name;\n return error;\n }\n }\n catch { }\n try {\n return new Error(JSON.stringify(err));\n }\n catch { }\n }\n return new Error(err);\n};\n//# sourceMappingURL=errors.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { castToError } from \"../internal/errors.mjs\";\nexport class OpenAIError extends Error {\n}\nexport class APIError extends OpenAIError {\n constructor(status, error, message, headers) {\n super(`${APIError.makeMessage(status, error, message)}`);\n this.status = status;\n this.headers = headers;\n this.requestID = headers?.get('x-request-id');\n this.error = error;\n const data = error;\n this.code = data?.['code'];\n this.param = data?.['param'];\n this.type = data?.['type'];\n }\n static makeMessage(status, error, message) {\n const msg = error?.message ?\n typeof error.message === 'string' ?\n error.message\n : JSON.stringify(error.message)\n : error ? JSON.stringify(error)\n : message;\n if (status && msg) {\n return `${status} ${msg}`;\n }\n if (status) {\n return `${status} status code (no body)`;\n }\n if (msg) {\n return msg;\n }\n return '(no status code or body)';\n }\n static generate(status, errorResponse, message, headers) {\n if (!status || !headers) {\n return new APIConnectionError({ message, cause: castToError(errorResponse) });\n }\n const error = errorResponse?.['error'];\n if (status === 400) {\n return new BadRequestError(status, error, message, headers);\n }\n if (status === 401) {\n return new AuthenticationError(status, error, message, headers);\n }\n if (status === 403) {\n return new PermissionDeniedError(status, error, message, headers);\n }\n if (status === 404) {\n return new NotFoundError(status, error, message, headers);\n }\n if (status === 409) {\n return new ConflictError(status, error, message, headers);\n }\n if (status === 422) {\n return new UnprocessableEntityError(status, error, message, headers);\n }\n if (status === 429) {\n return new RateLimitError(status, error, message, headers);\n }\n if (status >= 500) {\n return new InternalServerError(status, error, message, headers);\n }\n return new APIError(status, error, message, headers);\n }\n}\nexport class APIUserAbortError extends APIError {\n constructor({ message } = {}) {\n super(undefined, undefined, message || 'Request was aborted.', undefined);\n }\n}\nexport class APIConnectionError extends APIError {\n constructor({ message, cause }) {\n super(undefined, undefined, message || 'Connection error.', undefined);\n // in some environments the 'cause' property is already declared\n // @ts-ignore\n if (cause)\n this.cause = cause;\n }\n}\nexport class APIConnectionTimeoutError extends APIConnectionError {\n constructor({ message } = {}) {\n super({ message: message ?? 'Request timed out.' });\n }\n}\nexport class BadRequestError extends APIError {\n}\nexport class AuthenticationError extends APIError {\n}\nexport class PermissionDeniedError extends APIError {\n}\nexport class NotFoundError extends APIError {\n}\nexport class ConflictError extends APIError {\n}\nexport class UnprocessableEntityError extends APIError {\n}\nexport class RateLimitError extends APIError {\n}\nexport class InternalServerError extends APIError {\n}\nexport class LengthFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the length limit was reached`);\n }\n}\nexport class ContentFilterFinishReasonError extends OpenAIError {\n constructor() {\n super(`Could not parse response content as the request was rejected by the content filter`);\n }\n}\nexport class InvalidWebhookSignatureError extends Error {\n constructor(message) {\n super(message);\n }\n}\n//# sourceMappingURL=error.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { OpenAIError } from \"../../core/error.mjs\";\n// https://url.spec.whatwg.org/#url-scheme-string\nconst startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;\nexport const isAbsoluteURL = (url) => {\n return startsWithSchemeRegexp.test(url);\n};\nexport let isArray = (val) => ((isArray = Array.isArray), isArray(val));\nexport let isReadonlyArray = isArray;\n/** Returns an object if the given value isn't an object, otherwise returns as-is */\nexport function maybeObj(x) {\n if (typeof x !== 'object') {\n return {};\n }\n return x ?? {};\n}\n// https://stackoverflow.com/a/34491287\nexport function isEmptyObj(obj) {\n if (!obj)\n return true;\n for (const _k in obj)\n return false;\n return true;\n}\n// https://eslint.org/docs/latest/rules/no-prototype-builtins\nexport function hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\nexport function isObj(obj) {\n return obj != null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexport const ensurePresent = (value) => {\n if (value == null) {\n throw new OpenAIError(`Expected a value to be given but received ${value} instead.`);\n }\n return value;\n};\nexport const validatePositiveInteger = (name, n) => {\n if (typeof n !== 'number' || !Number.isInteger(n)) {\n throw new OpenAIError(`${name} must be an integer`);\n }\n if (n < 0) {\n throw new OpenAIError(`${name} must be a positive integer`);\n }\n return n;\n};\nexport const coerceInteger = (value) => {\n if (typeof value === 'number')\n return Math.round(value);\n if (typeof value === 'string')\n return parseInt(value, 10);\n throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceFloat = (value) => {\n if (typeof value === 'number')\n return value;\n if (typeof value === 'string')\n return parseFloat(value);\n throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);\n};\nexport const coerceBoolean = (value) => {\n if (typeof value === 'boolean')\n return value;\n if (typeof value === 'string')\n return value === 'true';\n return Boolean(value);\n};\nexport const maybeCoerceInteger = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceInteger(value);\n};\nexport const maybeCoerceFloat = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceFloat(value);\n};\nexport const maybeCoerceBoolean = (value) => {\n if (value == null) {\n return undefined;\n }\n return coerceBoolean(value);\n};\nexport const safeJSON = (text) => {\n try {\n return JSON.parse(text);\n }\n catch (err) {\n return undefined;\n }\n};\n//# sourceMappingURL=values.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\n//# sourceMappingURL=sleep.mjs.map","export const VERSION = '6.10.0'; // x-release-please-version\n//# sourceMappingURL=version.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { VERSION } from \"../version.mjs\";\nexport const isRunningInBrowser = () => {\n return (\n // @ts-ignore\n typeof window !== 'undefined' &&\n // @ts-ignore\n typeof window.document !== 'undefined' &&\n // @ts-ignore\n typeof navigator !== 'undefined');\n};\n/**\n * Note this does not detect 'browser'; for that, use getBrowserInfo().\n */\nfunction getDetectedPlatform() {\n if (typeof Deno !== 'undefined' && Deno.build != null) {\n return 'deno';\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return 'edge';\n }\n if (Object.prototype.toString.call(typeof globalThis.process !== 'undefined' ? globalThis.process : 0) === '[object process]') {\n return 'node';\n }\n return 'unknown';\n}\nconst getPlatformProperties = () => {\n const detectedPlatform = getDetectedPlatform();\n if (detectedPlatform === 'deno') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(Deno.build.os),\n 'X-Stainless-Arch': normalizeArch(Deno.build.arch),\n 'X-Stainless-Runtime': 'deno',\n 'X-Stainless-Runtime-Version': typeof Deno.version === 'string' ? Deno.version : Deno.version?.deno ?? 'unknown',\n };\n }\n if (typeof EdgeRuntime !== 'undefined') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': `other:${EdgeRuntime}`,\n 'X-Stainless-Runtime': 'edge',\n 'X-Stainless-Runtime-Version': globalThis.process.version,\n };\n }\n // Check if Node.js\n if (detectedPlatform === 'node') {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': normalizePlatform(globalThis.process.platform ?? 'unknown'),\n 'X-Stainless-Arch': normalizeArch(globalThis.process.arch ?? 'unknown'),\n 'X-Stainless-Runtime': 'node',\n 'X-Stainless-Runtime-Version': globalThis.process.version ?? 'unknown',\n };\n }\n const browserInfo = getBrowserInfo();\n if (browserInfo) {\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': `browser:${browserInfo.browser}`,\n 'X-Stainless-Runtime-Version': browserInfo.version,\n };\n }\n // TODO add support for Cloudflare workers, etc.\n return {\n 'X-Stainless-Lang': 'js',\n 'X-Stainless-Package-Version': VERSION,\n 'X-Stainless-OS': 'Unknown',\n 'X-Stainless-Arch': 'unknown',\n 'X-Stainless-Runtime': 'unknown',\n 'X-Stainless-Runtime-Version': 'unknown',\n };\n};\n// Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts\nfunction getBrowserInfo() {\n if (typeof navigator === 'undefined' || !navigator) {\n return null;\n }\n // NOTE: The order matters here!\n const browserPatterns = [\n { key: 'edge', pattern: /Edge(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /MSIE(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'ie', pattern: /Trident(?:.*rv\\:(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'chrome', pattern: /Chrome(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'firefox', pattern: /Firefox(?:\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?/ },\n { key: 'safari', pattern: /(?:Version\\W+(\\d+)\\.(\\d+)(?:\\.(\\d+))?)?(?:\\W+Mobile\\S*)?\\W+Safari/ },\n ];\n // Find the FIRST matching browser\n for (const { key, pattern } of browserPatterns) {\n const match = pattern.exec(navigator.userAgent);\n if (match) {\n const major = match[1] || 0;\n const minor = match[2] || 0;\n const patch = match[3] || 0;\n return { browser: key, version: `${major}.${minor}.${patch}` };\n }\n }\n return null;\n}\nconst normalizeArch = (arch) => {\n // Node docs:\n // - https://nodejs.org/api/process.html#processarch\n // Deno docs:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n if (arch === 'x32')\n return 'x32';\n if (arch === 'x86_64' || arch === 'x64')\n return 'x64';\n if (arch === 'arm')\n return 'arm';\n if (arch === 'aarch64' || arch === 'arm64')\n return 'arm64';\n if (arch)\n return `other:${arch}`;\n return 'unknown';\n};\nconst normalizePlatform = (platform) => {\n // Node platforms:\n // - https://nodejs.org/api/process.html#processplatform\n // Deno platforms:\n // - https://doc.deno.land/deno/stable/~/Deno.build\n // - https://github.com/denoland/deno/issues/14799\n platform = platform.toLowerCase();\n // NOTE: this iOS check is untested and may not work\n // Node does not work natively on IOS, there is a fork at\n // https://github.com/nodejs-mobile/nodejs-mobile\n // however it is unknown at the time of writing how to detect if it is running\n if (platform.includes('ios'))\n return 'iOS';\n if (platform === 'android')\n return 'Android';\n if (platform === 'darwin')\n return 'MacOS';\n if (platform === 'win32')\n return 'Windows';\n if (platform === 'freebsd')\n return 'FreeBSD';\n if (platform === 'openbsd')\n return 'OpenBSD';\n if (platform === 'linux')\n return 'Linux';\n if (platform)\n return `Other:${platform}`;\n return 'Unknown';\n};\nlet _platformHeaders;\nexport const getPlatformHeaders = () => {\n return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));\n};\n//# sourceMappingURL=detect-platform.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport function getDefaultFetch() {\n if (typeof fetch !== 'undefined') {\n return fetch;\n }\n throw new Error('`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`');\n}\nexport function makeReadableStream(...args) {\n const ReadableStream = globalThis.ReadableStream;\n if (typeof ReadableStream === 'undefined') {\n // Note: All of the platforms / runtimes we officially support already define\n // `ReadableStream` as a global, so this should only ever be hit on unsupported runtimes.\n throw new Error('`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`');\n }\n return new ReadableStream(...args);\n}\nexport function ReadableStreamFrom(iterable) {\n let iter = Symbol.asyncIterator in iterable ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();\n return makeReadableStream({\n start() { },\n async pull(controller) {\n const { done, value } = await iter.next();\n if (done) {\n controller.close();\n }\n else {\n controller.enqueue(value);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n}\n/**\n * Most browsers don't yet have async iterable support for ReadableStream,\n * and Node has a very different way of reading bytes from its \"ReadableStream\".\n *\n * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490\n */\nexport function ReadableStreamToAsyncIterable(stream) {\n if (stream[Symbol.asyncIterator])\n return stream;\n const reader = stream.getReader();\n return {\n async next() {\n try {\n const result = await reader.read();\n if (result?.done)\n reader.releaseLock(); // release lock when stream becomes closed\n return result;\n }\n catch (e) {\n reader.releaseLock(); // release lock when stream becomes errored\n throw e;\n }\n },\n async return() {\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n return { done: true, value: undefined };\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n/**\n * Cancels a ReadableStream we don't need to consume.\n * See https://undici.nodejs.org/#/?id=garbage-collection\n */\nexport async function CancelReadableStream(stream) {\n if (stream === null || typeof stream !== 'object')\n return;\n if (stream[Symbol.asyncIterator]) {\n await stream[Symbol.asyncIterator]().return?.();\n return;\n }\n const reader = stream.getReader();\n const cancelPromise = reader.cancel();\n reader.releaseLock();\n await cancelPromise;\n}\n//# sourceMappingURL=shims.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport const FallbackEncoder = ({ headers, body }) => {\n return {\n bodyHeaders: {\n 'content-type': 'application/json',\n },\n body: JSON.stringify(body),\n };\n};\n//# sourceMappingURL=request-options.mjs.map","export const default_format = 'RFC3986';\nexport const default_formatter = (v) => String(v);\nexport const formatters = {\n RFC1738: (v) => String(v).replace(/%20/g, '+'),\n RFC3986: default_formatter,\n};\nexport const RFC1738 = 'RFC1738';\nexport const RFC3986 = 'RFC3986';\n//# sourceMappingURL=formats.mjs.map","import { RFC1738 } from \"./formats.mjs\";\nimport { isArray } from \"../utils/values.mjs\";\nexport let has = (obj, key) => ((has = Object.hasOwn ?? Function.prototype.call.bind(Object.prototype.hasOwnProperty)),\n has(obj, key));\nconst hex_table = /* @__PURE__ */ (() => {\n const array = [];\n for (let i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n return array;\n})();\nfunction compact_queue(queue) {\n while (queue.length > 1) {\n const item = queue.pop();\n if (!item)\n continue;\n const obj = item.obj[item.prop];\n if (isArray(obj)) {\n const compacted = [];\n for (let j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n // @ts-ignore\n item.obj[item.prop] = compacted;\n }\n }\n}\nfunction array_to_object(source, options) {\n const obj = options && options.plainObjects ? Object.create(null) : {};\n for (let i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n return obj;\n}\nexport function merge(target, source, options = {}) {\n if (!source) {\n return target;\n }\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n }\n else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has(Object.prototype, source)) {\n target[source] = true;\n }\n }\n else {\n return [target, source];\n }\n return target;\n }\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n let mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n // @ts-ignore\n mergeTarget = array_to_object(target, options);\n }\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has(target, i)) {\n const targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n }\n else {\n target.push(item);\n }\n }\n else {\n target[i] = item;\n }\n });\n return target;\n }\n return Object.keys(source).reduce(function (acc, key) {\n const value = source[key];\n if (has(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n }\n else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n}\nexport function assign_single_source(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n}\nexport function decode(str, _, charset) {\n const strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n }\n catch (e) {\n return strWithoutPlus;\n }\n}\nconst limit = 1024;\nexport const encode = (str, _defaultEncoder, charset, _kind, format) => {\n // This code was originally written by Brian White for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n let string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n }\n else if (typeof str !== 'string') {\n string = String(str);\n }\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n let out = '';\n for (let j = 0; j < string.length; j += limit) {\n const segment = string.length >= limit ? string.slice(j, j + limit) : string;\n const arr = [];\n for (let i = 0; i < segment.length; ++i) {\n let c = segment.charCodeAt(i);\n if (c === 0x2d || // -\n c === 0x2e || // .\n c === 0x5f || // _\n c === 0x7e || // ~\n (c >= 0x30 && c <= 0x39) || // 0-9\n (c >= 0x41 && c <= 0x5a) || // a-z\n (c >= 0x61 && c <= 0x7a) || // A-Z\n (format === RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n if (c < 0x80) {\n arr[arr.length] = hex_table[c];\n continue;\n }\n if (c < 0x800) {\n arr[arr.length] = hex_table[0xc0 | (c >> 6)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n if (c < 0xd800 || c >= 0xe000) {\n arr[arr.length] =\n hex_table[0xe0 | (c >> 12)] + hex_table[0x80 | ((c >> 6) & 0x3f)] + hex_table[0x80 | (c & 0x3f)];\n continue;\n }\n i += 1;\n c = 0x10000 + (((c & 0x3ff) << 10) | (segment.charCodeAt(i) & 0x3ff));\n arr[arr.length] =\n hex_table[0xf0 | (c >> 18)] +\n hex_table[0x80 | ((c >> 12) & 0x3f)] +\n hex_table[0x80 | ((c >> 6) & 0x3f)] +\n hex_table[0x80 | (c & 0x3f)];\n }\n out += arr.join('');\n }\n return out;\n};\nexport function compact(value) {\n const queue = [{ obj: { o: value }, prop: 'o' }];\n const refs = [];\n for (let i = 0; i < queue.length; ++i) {\n const item = queue[i];\n // @ts-ignore\n const obj = item.obj[item.prop];\n const keys = Object.keys(obj);\n for (let j = 0; j < keys.length; ++j) {\n const key = keys[j];\n const val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n compact_queue(queue);\n return value;\n}\nexport function is_regexp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\nexport function is_buffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n}\nexport function combine(a, b) {\n return [].concat(a, b);\n}\nexport function maybe_map(val, fn) {\n if (isArray(val)) {\n const mapped = [];\n for (let i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n}\n//# sourceMappingURL=utils.mjs.map","import { encode, is_buffer, maybe_map, has } from \"./utils.mjs\";\nimport { default_format, default_formatter, formatters } from \"./formats.mjs\";\nimport { isArray } from \"../utils/values.mjs\";\nconst array_prefix_generators = {\n brackets(prefix) {\n return String(prefix) + '[]';\n },\n comma: 'comma',\n indices(prefix, key) {\n return String(prefix) + '[' + key + ']';\n },\n repeat(prefix) {\n return String(prefix);\n },\n};\nconst push_to_array = function (arr, value_or_array) {\n Array.prototype.push.apply(arr, isArray(value_or_array) ? value_or_array : [value_or_array]);\n};\nlet toISOString;\nconst defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: encode,\n encodeValuesOnly: false,\n format: default_format,\n formatter: default_formatter,\n /** @deprecated */\n indices: false,\n serializeDate(date) {\n return (toISOString ?? (toISOString = Function.prototype.call.bind(Date.prototype.toISOString)))(date);\n },\n skipNulls: false,\n strictNullHandling: false,\n};\nfunction is_non_nullish_primitive(v) {\n return (typeof v === 'string' ||\n typeof v === 'number' ||\n typeof v === 'boolean' ||\n typeof v === 'symbol' ||\n typeof v === 'bigint');\n}\nconst sentinel = {};\nfunction inner_stringify(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {\n let obj = object;\n let tmp_sc = sideChannel;\n let step = 0;\n let find_flag = false;\n while ((tmp_sc = tmp_sc.get(sentinel)) !== void undefined && !find_flag) {\n // Where object last appeared in the ref tree\n const pos = tmp_sc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n }\n else {\n find_flag = true; // Break while\n }\n }\n if (typeof tmp_sc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n }\n else if (obj instanceof Date) {\n obj = serializeDate?.(obj);\n }\n else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = maybe_map(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate?.(value);\n }\n return value;\n });\n }\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ?\n // @ts-expect-error\n encoder(prefix, defaults.encoder, charset, 'key', format)\n : prefix;\n }\n obj = '';\n }\n if (is_non_nullish_primitive(obj) || is_buffer(obj)) {\n if (encoder) {\n const key_value = encodeValuesOnly ? prefix\n // @ts-expect-error\n : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [\n formatter?.(key_value) +\n '=' +\n // @ts-expect-error\n formatter?.(encoder(obj, defaults.encoder, charset, 'value', format)),\n ];\n }\n return [formatter?.(prefix) + '=' + formatter?.(String(obj))];\n }\n const values = [];\n if (typeof obj === 'undefined') {\n return values;\n }\n let obj_keys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n // @ts-expect-error values only\n obj = maybe_map(obj, encoder);\n }\n obj_keys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n }\n else if (isArray(filter)) {\n obj_keys = filter;\n }\n else {\n const keys = Object.keys(obj);\n obj_keys = sort ? keys.sort(sort) : keys;\n }\n const encoded_prefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n const adjusted_prefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encoded_prefix + '[]' : encoded_prefix;\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjusted_prefix + '[]';\n }\n for (let j = 0; j < obj_keys.length; ++j) {\n const key = obj_keys[j];\n const value = \n // @ts-ignore\n typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n if (skipNulls && value === null) {\n continue;\n }\n // @ts-ignore\n const encoded_key = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n const key_prefix = isArray(obj) ?\n typeof generateArrayPrefix === 'function' ?\n generateArrayPrefix(adjusted_prefix, encoded_key)\n : adjusted_prefix\n : adjusted_prefix + (allowDots ? '.' + encoded_key : '[' + encoded_key + ']');\n sideChannel.set(object, step);\n const valueSideChannel = new WeakMap();\n valueSideChannel.set(sentinel, sideChannel);\n push_to_array(values, inner_stringify(value, key_prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, \n // @ts-ignore\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, valueSideChannel));\n }\n return values;\n}\nfunction normalize_stringify_options(opts = defaults) {\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n const charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n let format = default_format;\n if (typeof opts.format !== 'undefined') {\n if (!has(formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n const formatter = formatters[format];\n let filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n let arrayFormat;\n if (opts.arrayFormat && opts.arrayFormat in array_prefix_generators) {\n arrayFormat = opts.arrayFormat;\n }\n else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n }\n else {\n arrayFormat = defaults.arrayFormat;\n }\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n const allowDots = typeof opts.allowDots === 'undefined' ?\n !!opts.encodeDotInKeys === true ?\n true\n : defaults.allowDots\n : !!opts.allowDots;\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n // @ts-ignore\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: !!opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n // @ts-ignore\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n };\n}\nexport function stringify(object, opts = {}) {\n let obj = object;\n const options = normalize_stringify_options(opts);\n let obj_keys;\n let filter;\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n }\n else if (isArray(options.filter)) {\n filter = options.filter;\n obj_keys = filter;\n }\n const keys = [];\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n const generateArrayPrefix = array_prefix_generators[options.arrayFormat];\n const commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n if (!obj_keys) {\n obj_keys = Object.keys(obj);\n }\n if (options.sort) {\n obj_keys.sort(options.sort);\n }\n const sideChannel = new WeakMap();\n for (let i = 0; i < obj_keys.length; ++i) {\n const key = obj_keys[i];\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n push_to_array(keys, inner_stringify(obj[key], key, \n // @ts-expect-error\n generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));\n }\n const joined = keys.join(options.delimiter);\n let prefix = options.addQueryPrefix === true ? '?' : '';\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n }\n else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n return joined.length > 0 ? prefix + joined : '';\n}\n//# sourceMappingURL=stringify.mjs.map","export function concatBytes(buffers) {\n let length = 0;\n for (const buffer of buffers) {\n length += buffer.length;\n }\n const output = new Uint8Array(length);\n let index = 0;\n for (const buffer of buffers) {\n output.set(buffer, index);\n index += buffer.length;\n }\n return output;\n}\nlet encodeUTF8_;\nexport function encodeUTF8(str) {\n let encoder;\n return (encodeUTF8_ ??\n ((encoder = new globalThis.TextEncoder()), (encodeUTF8_ = encoder.encode.bind(encoder))))(str);\n}\nlet decodeUTF8_;\nexport function decodeUTF8(bytes) {\n let decoder;\n return (decodeUTF8_ ??\n ((decoder = new globalThis.TextDecoder()), (decodeUTF8_ = decoder.decode.bind(decoder))))(bytes);\n}\n//# sourceMappingURL=bytes.mjs.map","var _LineDecoder_buffer, _LineDecoder_carriageReturnIndex;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../tslib.mjs\";\nimport { concatBytes, decodeUTF8, encodeUTF8 } from \"../utils/bytes.mjs\";\n/**\n * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally\n * reading lines from text.\n *\n * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258\n */\nexport class LineDecoder {\n constructor() {\n _LineDecoder_buffer.set(this, void 0);\n _LineDecoder_carriageReturnIndex.set(this, void 0);\n __classPrivateFieldSet(this, _LineDecoder_buffer, new Uint8Array(), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n decode(chunk) {\n if (chunk == null) {\n return [];\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n __classPrivateFieldSet(this, _LineDecoder_buffer, concatBytes([__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\"), binaryChunk]), \"f\");\n const lines = [];\n let patternIndex;\n while ((patternIndex = findNewlineIndex(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\"), __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\"))) != null) {\n if (patternIndex.carriage && __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") == null) {\n // skip until we either get a corresponding `\\n`, a new `\\r` or nothing\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, patternIndex.index, \"f\");\n continue;\n }\n // we got double \\r or \\rtext\\n\n if (__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") != null &&\n (patternIndex.index !== __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") + 1 || patternIndex.carriage)) {\n lines.push(decodeUTF8(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(0, __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") - 1)));\n __classPrivateFieldSet(this, _LineDecoder_buffer, __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(__classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\")), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n continue;\n }\n const endIndex = __classPrivateFieldGet(this, _LineDecoder_carriageReturnIndex, \"f\") !== null ? patternIndex.preceding - 1 : patternIndex.preceding;\n const line = decodeUTF8(__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(0, endIndex));\n lines.push(line);\n __classPrivateFieldSet(this, _LineDecoder_buffer, __classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").subarray(patternIndex.index), \"f\");\n __classPrivateFieldSet(this, _LineDecoder_carriageReturnIndex, null, \"f\");\n }\n return lines;\n }\n flush() {\n if (!__classPrivateFieldGet(this, _LineDecoder_buffer, \"f\").length) {\n return [];\n }\n return this.decode('\\n');\n }\n}\n_LineDecoder_buffer = new WeakMap(), _LineDecoder_carriageReturnIndex = new WeakMap();\n// prettier-ignore\nLineDecoder.NEWLINE_CHARS = new Set(['\\n', '\\r']);\nLineDecoder.NEWLINE_REGEXP = /\\r\\n|[\\n\\r]/g;\n/**\n * This function searches the buffer for the end patterns, (\\r or \\n)\n * and returns an object with the index preceding the matched newline and the\n * index after the newline char. `null` is returned if no new line is found.\n *\n * ```ts\n * findNewLineIndex('abc\\ndef') -> { preceding: 2, index: 3 }\n * ```\n */\nfunction findNewlineIndex(buffer, startIndex) {\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = startIndex ?? 0; i < buffer.length; i++) {\n if (buffer[i] === newline) {\n return { preceding: i, index: i + 1, carriage: false };\n }\n if (buffer[i] === carriage) {\n return { preceding: i, index: i + 1, carriage: true };\n }\n }\n return null;\n}\nexport function findDoubleNewlineIndex(buffer) {\n // This function searches the buffer for the end patterns (\\r\\r, \\n\\n, \\r\\n\\r\\n)\n // and returns the index right after the first occurrence of any pattern,\n // or -1 if none of the patterns are found.\n const newline = 0x0a; // \\n\n const carriage = 0x0d; // \\r\n for (let i = 0; i < buffer.length - 1; i++) {\n if (buffer[i] === newline && buffer[i + 1] === newline) {\n // \\n\\n\n return i + 2;\n }\n if (buffer[i] === carriage && buffer[i + 1] === carriage) {\n // \\r\\r\n return i + 2;\n }\n if (buffer[i] === carriage &&\n buffer[i + 1] === newline &&\n i + 3 < buffer.length &&\n buffer[i + 2] === carriage &&\n buffer[i + 3] === newline) {\n // \\r\\n\\r\\n\n return i + 4;\n }\n }\n return -1;\n}\n//# sourceMappingURL=line.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { hasOwn } from \"./values.mjs\";\nconst levelNumbers = {\n off: 0,\n error: 200,\n warn: 300,\n info: 400,\n debug: 500,\n};\nexport const parseLogLevel = (maybeLevel, sourceName, client) => {\n if (!maybeLevel) {\n return undefined;\n }\n if (hasOwn(levelNumbers, maybeLevel)) {\n return maybeLevel;\n }\n loggerFor(client).warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);\n return undefined;\n};\nfunction noop() { }\nfunction makeLogFn(fnLevel, logger, logLevel) {\n if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {\n return noop;\n }\n else {\n // Don't wrap logger functions, we want the stacktrace intact!\n return logger[fnLevel].bind(logger);\n }\n}\nconst noopLogger = {\n error: noop,\n warn: noop,\n info: noop,\n debug: noop,\n};\nlet cachedLoggers = /* @__PURE__ */ new WeakMap();\nexport function loggerFor(client) {\n const logger = client.logger;\n const logLevel = client.logLevel ?? 'off';\n if (!logger) {\n return noopLogger;\n }\n const cachedLogger = cachedLoggers.get(logger);\n if (cachedLogger && cachedLogger[0] === logLevel) {\n return cachedLogger[1];\n }\n const levelLogger = {\n error: makeLogFn('error', logger, logLevel),\n warn: makeLogFn('warn', logger, logLevel),\n info: makeLogFn('info', logger, logLevel),\n debug: makeLogFn('debug', logger, logLevel),\n };\n cachedLoggers.set(logger, [logLevel, levelLogger]);\n return levelLogger;\n}\nexport const formatRequestDetails = (details) => {\n if (details.options) {\n details.options = { ...details.options };\n delete details.options['headers']; // redundant + leaks internals\n }\n if (details.headers) {\n details.headers = Object.fromEntries((details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(([name, value]) => [\n name,\n (name.toLowerCase() === 'authorization' ||\n name.toLowerCase() === 'cookie' ||\n name.toLowerCase() === 'set-cookie') ?\n '***'\n : value,\n ]));\n }\n if ('retryOfRequestLogID' in details) {\n if (details.retryOfRequestLogID) {\n details.retryOf = details.retryOfRequestLogID;\n }\n delete details.retryOfRequestLogID;\n }\n return details;\n};\n//# sourceMappingURL=log.mjs.map","var _Stream_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"./error.mjs\";\nimport { makeReadableStream } from \"../internal/shims.mjs\";\nimport { findDoubleNewlineIndex, LineDecoder } from \"../internal/decoders/line.mjs\";\nimport { ReadableStreamToAsyncIterable } from \"../internal/shims.mjs\";\nimport { isAbortError } from \"../internal/errors.mjs\";\nimport { encodeUTF8 } from \"../internal/utils/bytes.mjs\";\nimport { loggerFor } from \"../internal/utils/log.mjs\";\nimport { APIError } from \"./error.mjs\";\nexport class Stream {\n constructor(iterator, controller, client) {\n this.iterator = iterator;\n _Stream_client.set(this, void 0);\n this.controller = controller;\n __classPrivateFieldSet(this, _Stream_client, client, \"f\");\n }\n static fromSSEResponse(response, controller, client) {\n let consumed = false;\n const logger = client ? loggerFor(client) : console;\n async function* iterator() {\n if (consumed) {\n throw new OpenAIError('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const sse of _iterSSEMessages(response, controller)) {\n if (done)\n continue;\n if (sse.data.startsWith('[DONE]')) {\n done = true;\n continue;\n }\n if (sse.event === null || !sse.event.startsWith('thread.')) {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n logger.error(`Could not parse message into JSON:`, sse.data);\n logger.error(`From chunk:`, sse.raw);\n throw e;\n }\n if (data && data.error) {\n throw new APIError(undefined, data.error, undefined, response.headers);\n }\n yield data;\n }\n else {\n let data;\n try {\n data = JSON.parse(sse.data);\n }\n catch (e) {\n console.error(`Could not parse message into JSON:`, sse.data);\n console.error(`From chunk:`, sse.raw);\n throw e;\n }\n // TODO: Is this where the error should be thrown?\n if (sse.event == 'error') {\n throw new APIError(undefined, data.error, data.message, undefined);\n }\n yield { event: sse.event, data: data };\n }\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e))\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller, client);\n }\n /**\n * Generates a Stream from a newline-separated ReadableStream\n * where each item is a JSON value.\n */\n static fromReadableStream(readableStream, controller, client) {\n let consumed = false;\n async function* iterLines() {\n const lineDecoder = new LineDecoder();\n const iter = ReadableStreamToAsyncIterable(readableStream);\n for await (const chunk of iter) {\n for (const line of lineDecoder.decode(chunk)) {\n yield line;\n }\n }\n for (const line of lineDecoder.flush()) {\n yield line;\n }\n }\n async function* iterator() {\n if (consumed) {\n throw new OpenAIError('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');\n }\n consumed = true;\n let done = false;\n try {\n for await (const line of iterLines()) {\n if (done)\n continue;\n if (line)\n yield JSON.parse(line);\n }\n done = true;\n }\n catch (e) {\n // If the user calls `stream.controller.abort()`, we should exit without throwing.\n if (isAbortError(e))\n return;\n throw e;\n }\n finally {\n // If the user `break`s, abort the ongoing request.\n if (!done)\n controller.abort();\n }\n }\n return new Stream(iterator, controller, client);\n }\n [(_Stream_client = new WeakMap(), Symbol.asyncIterator)]() {\n return this.iterator();\n }\n /**\n * Splits the stream into two streams which can be\n * independently read from at different speeds.\n */\n tee() {\n const left = [];\n const right = [];\n const iterator = this.iterator();\n const teeIterator = (queue) => {\n return {\n next: () => {\n if (queue.length === 0) {\n const result = iterator.next();\n left.push(result);\n right.push(result);\n }\n return queue.shift();\n },\n };\n };\n return [\n new Stream(() => teeIterator(left), this.controller, __classPrivateFieldGet(this, _Stream_client, \"f\")),\n new Stream(() => teeIterator(right), this.controller, __classPrivateFieldGet(this, _Stream_client, \"f\")),\n ];\n }\n /**\n * Converts this stream to a newline-separated ReadableStream of\n * JSON stringified values in the stream\n * which can be turned back into a Stream with `Stream.fromReadableStream()`.\n */\n toReadableStream() {\n const self = this;\n let iter;\n return makeReadableStream({\n async start() {\n iter = self[Symbol.asyncIterator]();\n },\n async pull(ctrl) {\n try {\n const { value, done } = await iter.next();\n if (done)\n return ctrl.close();\n const bytes = encodeUTF8(JSON.stringify(value) + '\\n');\n ctrl.enqueue(bytes);\n }\n catch (err) {\n ctrl.error(err);\n }\n },\n async cancel() {\n await iter.return?.();\n },\n });\n }\n}\nexport async function* _iterSSEMessages(response, controller) {\n if (!response.body) {\n controller.abort();\n if (typeof globalThis.navigator !== 'undefined' &&\n globalThis.navigator.product === 'ReactNative') {\n throw new OpenAIError(`The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`);\n }\n throw new OpenAIError(`Attempted to iterate over a response with no body`);\n }\n const sseDecoder = new SSEDecoder();\n const lineDecoder = new LineDecoder();\n const iter = ReadableStreamToAsyncIterable(response.body);\n for await (const sseChunk of iterSSEChunks(iter)) {\n for (const line of lineDecoder.decode(sseChunk)) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n }\n for (const line of lineDecoder.flush()) {\n const sse = sseDecoder.decode(line);\n if (sse)\n yield sse;\n }\n}\n/**\n * Given an async iterable iterator, iterates over it and yields full\n * SSE chunks, i.e. yields when a double new-line is encountered.\n */\nasync function* iterSSEChunks(iterator) {\n let data = new Uint8Array();\n for await (const chunk of iterator) {\n if (chunk == null) {\n continue;\n }\n const binaryChunk = chunk instanceof ArrayBuffer ? new Uint8Array(chunk)\n : typeof chunk === 'string' ? encodeUTF8(chunk)\n : chunk;\n let newData = new Uint8Array(data.length + binaryChunk.length);\n newData.set(data);\n newData.set(binaryChunk, data.length);\n data = newData;\n let patternIndex;\n while ((patternIndex = findDoubleNewlineIndex(data)) !== -1) {\n yield data.slice(0, patternIndex);\n data = data.slice(patternIndex);\n }\n }\n if (data.length > 0) {\n yield data;\n }\n}\nclass SSEDecoder {\n constructor() {\n this.event = null;\n this.data = [];\n this.chunks = [];\n }\n decode(line) {\n if (line.endsWith('\\r')) {\n line = line.substring(0, line.length - 1);\n }\n if (!line) {\n // empty line and we didn't previously encounter any messages\n if (!this.event && !this.data.length)\n return null;\n const sse = {\n event: this.event,\n data: this.data.join('\\n'),\n raw: this.chunks,\n };\n this.event = null;\n this.data = [];\n this.chunks = [];\n return sse;\n }\n this.chunks.push(line);\n if (line.startsWith(':')) {\n return null;\n }\n let [fieldname, _, value] = partition(line, ':');\n if (value.startsWith(' ')) {\n value = value.substring(1);\n }\n if (fieldname === 'event') {\n this.event = value;\n }\n else if (fieldname === 'data') {\n this.data.push(value);\n }\n return null;\n }\n}\nfunction partition(str, delimiter) {\n const index = str.indexOf(delimiter);\n if (index !== -1) {\n return [str.substring(0, index), delimiter, str.substring(index + delimiter.length)];\n }\n return [str, '', ''];\n}\n//# sourceMappingURL=streaming.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { Stream } from \"../core/streaming.mjs\";\nimport { formatRequestDetails, loggerFor } from \"./utils/log.mjs\";\nexport async function defaultParseResponse(client, props) {\n const { response, requestLogID, retryOfRequestLogID, startTime } = props;\n const body = await (async () => {\n if (props.options.stream) {\n loggerFor(client).debug('response', response.status, response.url, response.headers, response.body);\n // Note: there is an invariant here that isn't represented in the type system\n // that if you set `stream: true` the response type must also be `Stream<T>`\n if (props.options.__streamClass) {\n return props.options.__streamClass.fromSSEResponse(response, props.controller, client);\n }\n return Stream.fromSSEResponse(response, props.controller, client);\n }\n // fetch refuses to read the body when the status code is 204.\n if (response.status === 204) {\n return null;\n }\n if (props.options.__binaryResponse) {\n return response;\n }\n const contentType = response.headers.get('content-type');\n const mediaType = contentType?.split(';')[0]?.trim();\n const isJSON = mediaType?.includes('application/json') || mediaType?.endsWith('+json');\n if (isJSON) {\n const json = await response.json();\n return addRequestID(json, response);\n }\n const text = await response.text();\n return text;\n })();\n loggerFor(client).debug(`[${requestLogID}] response parsed`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n body,\n durationMs: Date.now() - startTime,\n }));\n return body;\n}\nexport function addRequestID(value, response) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return value;\n }\n return Object.defineProperty(value, '_request_id', {\n value: response.headers.get('x-request-id'),\n enumerable: false,\n });\n}\n//# sourceMappingURL=parse.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _APIPromise_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { defaultParseResponse, addRequestID, } from \"../internal/parse.mjs\";\n/**\n * A subclass of `Promise` providing additional helper methods\n * for interacting with the SDK.\n */\nexport class APIPromise extends Promise {\n constructor(client, responsePromise, parseResponse = defaultParseResponse) {\n super((resolve) => {\n // this is maybe a bit weird but this has to be a no-op to not implicitly\n // parse the response body; instead .then, .catch, .finally are overridden\n // to parse the response\n resolve(null);\n });\n this.responsePromise = responsePromise;\n this.parseResponse = parseResponse;\n _APIPromise_client.set(this, void 0);\n __classPrivateFieldSet(this, _APIPromise_client, client, \"f\");\n }\n _thenUnwrap(transform) {\n return new APIPromise(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), this.responsePromise, async (client, props) => addRequestID(transform(await this.parseResponse(client, props), props), props.response));\n }\n /**\n * Gets the raw `Response` instance instead of parsing the response\n * data.\n *\n * If you want to parse the response body but still get the `Response`\n * instance, you can use {@link withResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n asResponse() {\n return this.responsePromise.then((p) => p.response);\n }\n /**\n * Gets the parsed response data, the raw `Response` instance and the ID of the request,\n * returned via the X-Request-ID header which is useful for debugging requests and reporting\n * issues to OpenAI.\n *\n * If you just want to get the raw `Response` instance without parsing it,\n * you can use {@link asResponse()}.\n *\n * 👋 Getting the wrong TypeScript type for `Response`?\n * Try setting `\"moduleResolution\": \"NodeNext\"` or add `\"lib\": [\"DOM\"]`\n * to your `tsconfig.json`.\n */\n async withResponse() {\n const [data, response] = await Promise.all([this.parse(), this.asResponse()]);\n return { data, response, request_id: response.headers.get('x-request-id') };\n }\n parse() {\n if (!this.parsedPromise) {\n this.parsedPromise = this.responsePromise.then((data) => this.parseResponse(__classPrivateFieldGet(this, _APIPromise_client, \"f\"), data));\n }\n return this.parsedPromise;\n }\n then(onfulfilled, onrejected) {\n return this.parse().then(onfulfilled, onrejected);\n }\n catch(onrejected) {\n return this.parse().catch(onrejected);\n }\n finally(onfinally) {\n return this.parse().finally(onfinally);\n }\n}\n_APIPromise_client = new WeakMap();\n//# sourceMappingURL=api-promise.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _AbstractPage_client;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"./error.mjs\";\nimport { defaultParseResponse } from \"../internal/parse.mjs\";\nimport { APIPromise } from \"./api-promise.mjs\";\nimport { maybeObj } from \"../internal/utils/values.mjs\";\nexport class AbstractPage {\n constructor(client, response, body, options) {\n _AbstractPage_client.set(this, void 0);\n __classPrivateFieldSet(this, _AbstractPage_client, client, \"f\");\n this.options = options;\n this.response = response;\n this.body = body;\n }\n hasNextPage() {\n const items = this.getPaginatedItems();\n if (!items.length)\n return false;\n return this.nextPageRequestOptions() != null;\n }\n async getNextPage() {\n const nextOptions = this.nextPageRequestOptions();\n if (!nextOptions) {\n throw new OpenAIError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');\n }\n return await __classPrivateFieldGet(this, _AbstractPage_client, \"f\").requestAPIList(this.constructor, nextOptions);\n }\n async *iterPages() {\n let page = this;\n yield page;\n while (page.hasNextPage()) {\n page = await page.getNextPage();\n yield page;\n }\n }\n async *[(_AbstractPage_client = new WeakMap(), Symbol.asyncIterator)]() {\n for await (const page of this.iterPages()) {\n for (const item of page.getPaginatedItems()) {\n yield item;\n }\n }\n }\n}\n/**\n * This subclass of Promise will resolve to an instantiated Page once the request completes.\n *\n * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\nexport class PagePromise extends APIPromise {\n constructor(client, request, Page) {\n super(client, request, async (client, props) => new Page(client, props.response, await defaultParseResponse(client, props), props.options));\n }\n /**\n * Allow auto-paginating iteration on an unawaited list call, eg:\n *\n * for await (const item of client.items.list()) {\n * console.log(item)\n * }\n */\n async *[Symbol.asyncIterator]() {\n const page = await this;\n for await (const item of page) {\n yield item;\n }\n }\n}\n/**\n * Note: no pagination actually occurs yet, this is for forwards-compatibility.\n */\nexport class Page extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.object = body.object;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n nextPageRequestOptions() {\n return null;\n }\n}\nexport class CursorPage extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return super.hasNextPage();\n }\n nextPageRequestOptions() {\n const data = this.getPaginatedItems();\n const id = data[data.length - 1]?.id;\n if (!id) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after: id,\n },\n };\n }\n}\nexport class ConversationCursorPage extends AbstractPage {\n constructor(client, response, body, options) {\n super(client, response, body, options);\n this.data = body.data || [];\n this.has_more = body.has_more || false;\n this.last_id = body.last_id || '';\n }\n getPaginatedItems() {\n return this.data ?? [];\n }\n hasNextPage() {\n if (this.has_more === false) {\n return false;\n }\n return super.hasNextPage();\n }\n nextPageRequestOptions() {\n const cursor = this.last_id;\n if (!cursor) {\n return null;\n }\n return {\n ...this.options,\n query: {\n ...maybeObj(this.options.query),\n after: cursor,\n },\n };\n }\n}\n//# sourceMappingURL=pagination.mjs.map","import { ReadableStreamFrom } from \"./shims.mjs\";\nexport const checkFileSupport = () => {\n if (typeof File === 'undefined') {\n const { process } = globalThis;\n const isOldNode = typeof process?.versions?.node === 'string' && parseInt(process.versions.node.split('.')) < 20;\n throw new Error('`File` is not defined as a global, which is required for file uploads.' +\n (isOldNode ?\n \" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.\"\n : ''));\n }\n};\n/**\n * Construct a `File` instance. This is used to ensure a helpful error is thrown\n * for environments that don't define a global `File` yet.\n */\nexport function makeFile(fileBits, fileName, options) {\n checkFileSupport();\n return new File(fileBits, fileName ?? 'unknown_file', options);\n}\nexport function getName(value) {\n return (((typeof value === 'object' &&\n value !== null &&\n (('name' in value && value.name && String(value.name)) ||\n ('url' in value && value.url && String(value.url)) ||\n ('filename' in value && value.filename && String(value.filename)) ||\n ('path' in value && value.path && String(value.path)))) ||\n '')\n .split(/[\\\\/]/)\n .pop() || undefined);\n}\nexport const isAsyncIterable = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';\n/**\n * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.\n * Otherwise returns the request as is.\n */\nexport const maybeMultipartFormRequestOptions = async (opts, fetch) => {\n if (!hasUploadableValue(opts.body))\n return opts;\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nexport const multipartFormRequestOptions = async (opts, fetch) => {\n return { ...opts, body: await createForm(opts.body, fetch) };\n};\nconst supportsFormDataMap = /* @__PURE__ */ new WeakMap();\n/**\n * node-fetch doesn't support the global FormData object in recent node versions. Instead of sending\n * properly-encoded form data, it just stringifies the object, resulting in a request body of \"[object FormData]\".\n * This function detects if the fetch function provided supports the global FormData object to avoid\n * confusing error messages later on.\n */\nfunction supportsFormData(fetchObject) {\n const fetch = typeof fetchObject === 'function' ? fetchObject : fetchObject.fetch;\n const cached = supportsFormDataMap.get(fetch);\n if (cached)\n return cached;\n const promise = (async () => {\n try {\n const FetchResponse = ('Response' in fetch ?\n fetch.Response\n : (await fetch('data:,')).constructor);\n const data = new FormData();\n if (data.toString() === (await new FetchResponse(data).text())) {\n return false;\n }\n return true;\n }\n catch {\n // avoid false negatives\n return true;\n }\n })();\n supportsFormDataMap.set(fetch, promise);\n return promise;\n}\nexport const createForm = async (body, fetch) => {\n if (!(await supportsFormData(fetch))) {\n throw new TypeError('The provided fetch function does not support file uploads with the current global FormData class.');\n }\n const form = new FormData();\n await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));\n return form;\n};\n// We check for Blob not File because Bun.File doesn't inherit from File,\n// but they both inherit from Blob and have a `name` property at runtime.\nconst isNamedBlob = (value) => value instanceof Blob && 'name' in value;\nconst isUploadable = (value) => typeof value === 'object' &&\n value !== null &&\n (value instanceof Response || isAsyncIterable(value) || isNamedBlob(value));\nconst hasUploadableValue = (value) => {\n if (isUploadable(value))\n return true;\n if (Array.isArray(value))\n return value.some(hasUploadableValue);\n if (value && typeof value === 'object') {\n for (const k in value) {\n if (hasUploadableValue(value[k]))\n return true;\n }\n }\n return false;\n};\nconst addFormValue = async (form, key, value) => {\n if (value === undefined)\n return;\n if (value == null) {\n throw new TypeError(`Received null for \"${key}\"; to pass null in FormData, you must use the string 'null'`);\n }\n // TODO: make nested formats configurable\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n form.append(key, String(value));\n }\n else if (value instanceof Response) {\n form.append(key, makeFile([await value.blob()], getName(value)));\n }\n else if (isAsyncIterable(value)) {\n form.append(key, makeFile([await new Response(ReadableStreamFrom(value)).blob()], getName(value)));\n }\n else if (isNamedBlob(value)) {\n form.append(key, value, getName(value));\n }\n else if (Array.isArray(value)) {\n await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));\n }\n else if (typeof value === 'object') {\n await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)));\n }\n else {\n throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);\n }\n};\n//# sourceMappingURL=uploads.mjs.map","import { getName, makeFile, isAsyncIterable } from \"./uploads.mjs\";\nimport { checkFileSupport } from \"./uploads.mjs\";\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isBlobLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.size === 'number' &&\n typeof value.type === 'string' &&\n typeof value.text === 'function' &&\n typeof value.slice === 'function' &&\n typeof value.arrayBuffer === 'function';\n/**\n * This check adds the arrayBuffer() method type because it is available and used at runtime\n */\nconst isFileLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.name === 'string' &&\n typeof value.lastModified === 'number' &&\n isBlobLike(value);\nconst isResponseLike = (value) => value != null &&\n typeof value === 'object' &&\n typeof value.url === 'string' &&\n typeof value.blob === 'function';\n/**\n * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats\n * @param value the raw content of the file. Can be an {@link Uploadable}, BlobLikePart, or AsyncIterable of BlobLikeParts\n * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible\n * @param {Object=} options additional properties\n * @param {string=} options.type the MIME type of the content\n * @param {number=} options.lastModified the last modified timestamp\n * @returns a {@link File} with the given properties\n */\nexport async function toFile(value, name, options) {\n checkFileSupport();\n // If it's a promise, resolve it.\n value = await value;\n // If we've been given a `File` we don't need to do anything\n if (isFileLike(value)) {\n if (value instanceof File) {\n return value;\n }\n return makeFile([await value.arrayBuffer()], value.name);\n }\n if (isResponseLike(value)) {\n const blob = await value.blob();\n name || (name = new URL(value.url).pathname.split(/[\\\\/]/).pop());\n return makeFile(await getBytes(blob), name, options);\n }\n const parts = await getBytes(value);\n name || (name = getName(value));\n if (!options?.type) {\n const type = parts.find((part) => typeof part === 'object' && 'type' in part && part.type);\n if (typeof type === 'string') {\n options = { ...options, type };\n }\n }\n return makeFile(parts, name, options);\n}\nasync function getBytes(value) {\n let parts = [];\n if (typeof value === 'string' ||\n ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.\n value instanceof ArrayBuffer) {\n parts.push(value);\n }\n else if (isBlobLike(value)) {\n parts.push(value instanceof Blob ? value : await value.arrayBuffer());\n }\n else if (isAsyncIterable(value) // includes Readable, ReadableStream, etc.\n ) {\n for await (const chunk of value) {\n parts.push(...(await getBytes(chunk))); // TODO, consider validating?\n }\n }\n else {\n const constructor = value?.constructor?.name;\n throw new Error(`Unexpected data type: ${typeof value}${constructor ? `; constructor: ${constructor}` : ''}${propsForError(value)}`);\n }\n return parts;\n}\nfunction propsForError(value) {\n if (typeof value !== 'object' || value === null)\n return '';\n const props = Object.getOwnPropertyNames(value);\n return `; props: [${props.map((p) => `\"${p}\"`).join(', ')}]`;\n}\n//# sourceMappingURL=to-file.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nexport class APIResource {\n constructor(client) {\n this._client = client;\n }\n}\n//# sourceMappingURL=resource.mjs.map","import { OpenAIError } from \"../../core/error.mjs\";\n/**\n * Percent-encode everything that isn't safe to have in a path without encoding safe chars.\n *\n * Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:\n * > unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n * > sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n * > pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n */\nexport function encodeURIPath(str) {\n return str.replace(/[^A-Za-z0-9\\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);\n}\nconst EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));\nexport const createPathTagFunction = (pathEncoder = encodeURIPath) => function path(statics, ...params) {\n // If there are no params, no processing is needed.\n if (statics.length === 1)\n return statics[0];\n let postPath = false;\n const invalidSegments = [];\n const path = statics.reduce((previousValue, currentValue, index) => {\n if (/[?#]/.test(currentValue)) {\n postPath = true;\n }\n const value = params[index];\n let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);\n if (index !== params.length &&\n (value == null ||\n (typeof value === 'object' &&\n // handle values from other realms\n value.toString ===\n Object.getPrototypeOf(Object.getPrototypeOf(value.hasOwnProperty ?? EMPTY) ?? EMPTY)\n ?.toString))) {\n encoded = value + '';\n invalidSegments.push({\n start: previousValue.length + currentValue.length,\n length: encoded.length,\n error: `Value of type ${Object.prototype.toString\n .call(value)\n .slice(8, -1)} is not a valid path parameter`,\n });\n }\n return previousValue + currentValue + (index === params.length ? '' : encoded);\n }, '');\n const pathOnly = path.split(/[?#]/, 1)[0];\n const invalidSegmentPattern = /(?<=^|\\/)(?:\\.|%2e){1,2}(?=\\/|$)/gi;\n let match;\n // Find all invalid segments\n while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {\n invalidSegments.push({\n start: match.index,\n length: match[0].length,\n error: `Value \"${match[0]}\" can\\'t be safely passed as a path parameter`,\n });\n }\n invalidSegments.sort((a, b) => a.start - b.start);\n if (invalidSegments.length > 0) {\n let lastEnd = 0;\n const underline = invalidSegments.reduce((acc, segment) => {\n const spaces = ' '.repeat(segment.start - lastEnd);\n const arrows = '^'.repeat(segment.length);\n lastEnd = segment.start + segment.length;\n return acc + spaces + arrows;\n }, '');\n throw new OpenAIError(`Path parameters result in path with invalid segments:\\n${invalidSegments\n .map((e) => e.error)\n .join('\\n')}\\n${path}\\n${underline}`);\n }\n return path;\n};\n/**\n * URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.\n */\nexport const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);\n//# sourceMappingURL=path.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Messages extends APIResource {\n /**\n * Get the messages in a stored chat completion. Only Chat Completions that have\n * been created with the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatCompletionStoreMessage of client.chat.completions.messages.list(\n * 'completion_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(completionID, query = {}, options) {\n return this._client.getAPIList(path `/chat/completions/${completionID}/messages`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=messages.mjs.map","import { ContentFilterFinishReasonError, LengthFinishReasonError, OpenAIError } from \"../error.mjs\";\nexport function isChatCompletionFunctionTool(tool) {\n return tool !== undefined && 'function' in tool && tool.function !== undefined;\n}\nexport function makeParseableResponseFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function makeParseableTextFormat(response_format, parser) {\n const obj = { ...response_format };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-response-format',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableResponseFormat(response_format) {\n return response_format?.['$brand'] === 'auto-parseable-response-format';\n}\nexport function makeParseableTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nexport function maybeParseChatCompletion(completion, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...completion,\n choices: completion.choices.map((choice) => {\n assertToolCallsAreChatCompletionFunctionToolCalls(choice.message.tool_calls);\n return {\n ...choice,\n message: {\n ...choice.message,\n parsed: null,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls,\n }\n : undefined),\n },\n };\n }),\n };\n }\n return parseChatCompletion(completion, params);\n}\nexport function parseChatCompletion(completion, params) {\n const choices = completion.choices.map((choice) => {\n if (choice.finish_reason === 'length') {\n throw new LengthFinishReasonError();\n }\n if (choice.finish_reason === 'content_filter') {\n throw new ContentFilterFinishReasonError();\n }\n assertToolCallsAreChatCompletionFunctionToolCalls(choice.message.tool_calls);\n return {\n ...choice,\n message: {\n ...choice.message,\n ...(choice.message.tool_calls ?\n {\n tool_calls: choice.message.tool_calls?.map((toolCall) => parseToolCall(params, toolCall)) ?? undefined,\n }\n : undefined),\n parsed: choice.message.content && !choice.message.refusal ?\n parseResponseFormat(params, choice.message.content)\n : null,\n },\n };\n });\n return { ...completion, choices };\n}\nfunction parseResponseFormat(params, content) {\n if (params.response_format?.type !== 'json_schema') {\n return null;\n }\n if (params.response_format?.type === 'json_schema') {\n if ('$parseRaw' in params.response_format) {\n const response_format = params.response_format;\n return response_format.$parseRaw(content);\n }\n return JSON.parse(content);\n }\n return null;\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = params.tools?.find((inputTool) => isChatCompletionFunctionTool(inputTool) && inputTool.function?.name === toolCall.function.name); // TS doesn't narrow based on isChatCompletionTool\n return {\n ...toolCall,\n function: {\n ...toolCall.function,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCall.function.arguments)\n : null,\n },\n };\n}\nexport function shouldParseToolCall(params, toolCall) {\n if (!params || !('tools' in params) || !params.tools) {\n return false;\n }\n const inputTool = params.tools?.find((inputTool) => isChatCompletionFunctionTool(inputTool) && inputTool.function?.name === toolCall.function.name);\n return (isChatCompletionFunctionTool(inputTool) &&\n (isAutoParsableTool(inputTool) || inputTool?.function.strict || false));\n}\nexport function hasAutoParseableInput(params) {\n if (isAutoParsableResponseFormat(params.response_format)) {\n return true;\n }\n return (params.tools?.some((t) => isAutoParsableTool(t) || (t.type === 'function' && t.function.strict === true)) ?? false);\n}\nexport function assertToolCallsAreChatCompletionFunctionToolCalls(toolCalls) {\n for (const toolCall of toolCalls || []) {\n if (toolCall.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool calls are supported; Received \\`${toolCall.type}\\``);\n }\n }\n}\nexport function validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\n//# sourceMappingURL=parser.mjs.map","export const isAssistantMessage = (message) => {\n return message?.role === 'assistant';\n};\nexport const isToolMessage = (message) => {\n return message?.role === 'tool';\n};\nexport function isPresent(obj) {\n return obj != null;\n}\n//# sourceMappingURL=chatCompletionUtils.mjs.map","var _EventStream_instances, _EventStream_connectedPromise, _EventStream_resolveConnectedPromise, _EventStream_rejectConnectedPromise, _EventStream_endPromise, _EventStream_resolveEndPromise, _EventStream_rejectEndPromise, _EventStream_listeners, _EventStream_ended, _EventStream_errored, _EventStream_aborted, _EventStream_catchingPromiseCreated, _EventStream_handleError;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../error.mjs\";\nexport class EventStream {\n constructor() {\n _EventStream_instances.add(this);\n this.controller = new AbortController();\n _EventStream_connectedPromise.set(this, void 0);\n _EventStream_resolveConnectedPromise.set(this, () => { });\n _EventStream_rejectConnectedPromise.set(this, () => { });\n _EventStream_endPromise.set(this, void 0);\n _EventStream_resolveEndPromise.set(this, () => { });\n _EventStream_rejectEndPromise.set(this, () => { });\n _EventStream_listeners.set(this, {});\n _EventStream_ended.set(this, false);\n _EventStream_errored.set(this, false);\n _EventStream_aborted.set(this, false);\n _EventStream_catchingPromiseCreated.set(this, false);\n __classPrivateFieldSet(this, _EventStream_connectedPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveConnectedPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectConnectedPromise, reject, \"f\");\n }), \"f\");\n __classPrivateFieldSet(this, _EventStream_endPromise, new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_resolveEndPromise, resolve, \"f\");\n __classPrivateFieldSet(this, _EventStream_rejectEndPromise, reject, \"f\");\n }), \"f\");\n // Don't let these promises cause unhandled rejection errors.\n // we will manually cause an unhandled rejection error later\n // if the user hasn't registered any error listener or called\n // any promise-returning method.\n __classPrivateFieldGet(this, _EventStream_connectedPromise, \"f\").catch(() => { });\n __classPrivateFieldGet(this, _EventStream_endPromise, \"f\").catch(() => { });\n }\n _run(executor) {\n // Unfortunately if we call `executor()` immediately we get runtime errors about\n // references to `this` before the `super()` constructor call returns.\n setTimeout(() => {\n executor().then(() => {\n this._emitFinal();\n this._emit('end');\n }, __classPrivateFieldGet(this, _EventStream_instances, \"m\", _EventStream_handleError).bind(this));\n }, 0);\n }\n _connected() {\n if (this.ended)\n return;\n __classPrivateFieldGet(this, _EventStream_resolveConnectedPromise, \"f\").call(this);\n this._emit('connect');\n }\n get ended() {\n return __classPrivateFieldGet(this, _EventStream_ended, \"f\");\n }\n get errored() {\n return __classPrivateFieldGet(this, _EventStream_errored, \"f\");\n }\n get aborted() {\n return __classPrivateFieldGet(this, _EventStream_aborted, \"f\");\n }\n abort() {\n this.controller.abort();\n }\n /**\n * Adds the listener function to the end of the listeners array for the event.\n * No checks are made to see if the listener has already been added. Multiple calls passing\n * the same combination of event and listener will result in the listener being added, and\n * called, multiple times.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n on(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener });\n return this;\n }\n /**\n * Removes the specified listener from the listener array for the event.\n * off() will remove, at most, one instance of a listener from the listener array. If any single\n * listener has been added multiple times to the listener array for the specified event, then\n * off() must be called multiple times to remove each instance.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n off(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (!listeners)\n return this;\n const index = listeners.findIndex((l) => l.listener === listener);\n if (index >= 0)\n listeners.splice(index, 1);\n return this;\n }\n /**\n * Adds a one-time listener function for the event. The next time the event is triggered,\n * this listener is removed and then invoked.\n * @returns this ChatCompletionStream, so that calls can be chained\n */\n once(event, listener) {\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] || (__classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = []);\n listeners.push({ listener, once: true });\n return this;\n }\n /**\n * This is similar to `.once()`, but returns a Promise that resolves the next time\n * the event is triggered, instead of calling a listener callback.\n * @returns a Promise that resolves the next time given event is triggered,\n * or rejects if an error is emitted. (If you request the 'error' event,\n * returns a promise that resolves with the error).\n *\n * Example:\n *\n * const message = await stream.emitted('message') // rejects if the stream errors\n */\n emitted(event) {\n return new Promise((resolve, reject) => {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n if (event !== 'error')\n this.once('error', reject);\n this.once(event, resolve);\n });\n }\n async done() {\n __classPrivateFieldSet(this, _EventStream_catchingPromiseCreated, true, \"f\");\n await __classPrivateFieldGet(this, _EventStream_endPromise, \"f\");\n }\n _emit(event, ...args) {\n // make sure we don't emit any events after end\n if (__classPrivateFieldGet(this, _EventStream_ended, \"f\")) {\n return;\n }\n if (event === 'end') {\n __classPrivateFieldSet(this, _EventStream_ended, true, \"f\");\n __classPrivateFieldGet(this, _EventStream_resolveEndPromise, \"f\").call(this);\n }\n const listeners = __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event];\n if (listeners) {\n __classPrivateFieldGet(this, _EventStream_listeners, \"f\")[event] = listeners.filter((l) => !l.once);\n listeners.forEach(({ listener }) => listener(...args));\n }\n if (event === 'abort') {\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n return;\n }\n if (event === 'error') {\n // NOTE: _emit('error', error) should only be called from #handleError().\n const error = args[0];\n if (!__classPrivateFieldGet(this, _EventStream_catchingPromiseCreated, \"f\") && !listeners?.length) {\n // Trigger an unhandled rejection if the user hasn't registered any error handlers.\n // If you are seeing stack traces here, make sure to handle errors via either:\n // - runner.on('error', () => ...)\n // - await runner.done()\n // - await runner.finalChatCompletion()\n // - etc.\n Promise.reject(error);\n }\n __classPrivateFieldGet(this, _EventStream_rejectConnectedPromise, \"f\").call(this, error);\n __classPrivateFieldGet(this, _EventStream_rejectEndPromise, \"f\").call(this, error);\n this._emit('end');\n }\n }\n _emitFinal() { }\n}\n_EventStream_connectedPromise = new WeakMap(), _EventStream_resolveConnectedPromise = new WeakMap(), _EventStream_rejectConnectedPromise = new WeakMap(), _EventStream_endPromise = new WeakMap(), _EventStream_resolveEndPromise = new WeakMap(), _EventStream_rejectEndPromise = new WeakMap(), _EventStream_listeners = new WeakMap(), _EventStream_ended = new WeakMap(), _EventStream_errored = new WeakMap(), _EventStream_aborted = new WeakMap(), _EventStream_catchingPromiseCreated = new WeakMap(), _EventStream_instances = new WeakSet(), _EventStream_handleError = function _EventStream_handleError(error) {\n __classPrivateFieldSet(this, _EventStream_errored, true, \"f\");\n if (error instanceof Error && error.name === 'AbortError') {\n error = new APIUserAbortError();\n }\n if (error instanceof APIUserAbortError) {\n __classPrivateFieldSet(this, _EventStream_aborted, true, \"f\");\n return this._emit('abort', error);\n }\n if (error instanceof OpenAIError) {\n return this._emit('error', error);\n }\n if (error instanceof Error) {\n const openAIError = new OpenAIError(error.message);\n // @ts-ignore\n openAIError.cause = error;\n return this._emit('error', openAIError);\n }\n return this._emit('error', new OpenAIError(String(error)));\n};\n//# sourceMappingURL=EventStream.mjs.map","export function isRunnableFunctionWithParse(fn) {\n return typeof fn.parse === 'function';\n}\n/**\n * This is helper class for passing a `function` and `parse` where the `function`\n * argument type matches the `parse` return type.\n */\nexport class ParsingToolFunction {\n constructor(input) {\n this.type = 'function';\n this.function = input;\n }\n}\n//# sourceMappingURL=RunnableFunction.mjs.map","var _AbstractChatCompletionRunner_instances, _AbstractChatCompletionRunner_getFinalContent, _AbstractChatCompletionRunner_getFinalMessage, _AbstractChatCompletionRunner_getFinalFunctionToolCall, _AbstractChatCompletionRunner_getFinalFunctionToolCallResult, _AbstractChatCompletionRunner_calculateTotalUsage, _AbstractChatCompletionRunner_validateParams, _AbstractChatCompletionRunner_stringifyFunctionCallResult;\nimport { __classPrivateFieldGet } from \"../internal/tslib.mjs\";\nimport { OpenAIError } from \"../error.mjs\";\nimport { isAutoParsableTool, parseChatCompletion } from \"../lib/parser.mjs\";\nimport { isAssistantMessage, isToolMessage } from \"./chatCompletionUtils.mjs\";\nimport { EventStream } from \"./EventStream.mjs\";\nimport { isRunnableFunctionWithParse, } from \"./RunnableFunction.mjs\";\nconst DEFAULT_MAX_CHAT_COMPLETIONS = 10;\nexport class AbstractChatCompletionRunner extends EventStream {\n constructor() {\n super(...arguments);\n _AbstractChatCompletionRunner_instances.add(this);\n this._chatCompletions = [];\n this.messages = [];\n }\n _addChatCompletion(chatCompletion) {\n this._chatCompletions.push(chatCompletion);\n this._emit('chatCompletion', chatCompletion);\n const message = chatCompletion.choices[0]?.message;\n if (message)\n this._addMessage(message);\n return chatCompletion;\n }\n _addMessage(message, emit = true) {\n if (!('content' in message))\n message.content = null;\n this.messages.push(message);\n if (emit) {\n this._emit('message', message);\n if (isToolMessage(message) && message.content) {\n // Note, this assumes that {role: 'tool', content: …} is always the result of a call of tool of type=function.\n this._emit('functionToolCallResult', message.content);\n }\n else if (isAssistantMessage(message) && message.tool_calls) {\n for (const tool_call of message.tool_calls) {\n if (tool_call.type === 'function') {\n this._emit('functionToolCall', tool_call.function);\n }\n }\n }\n }\n }\n /**\n * @returns a promise that resolves with the final ChatCompletion, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletion.\n */\n async finalChatCompletion() {\n await this.done();\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (!completion)\n throw new OpenAIError('stream ended without producing a ChatCompletion');\n return completion;\n }\n /**\n * @returns a promise that resolves with the content of the final ChatCompletionMessage, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalContent() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n }\n /**\n * @returns a promise that resolves with the the final assistant ChatCompletionMessage response,\n * or rejects if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalMessage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n }\n /**\n * @returns a promise that resolves with the content of the final FunctionCall, or rejects\n * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.\n */\n async finalFunctionToolCall() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this);\n }\n async finalFunctionToolCallResult() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this);\n }\n async totalUsage() {\n await this.done();\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this);\n }\n allChatCompletions() {\n return [...this._chatCompletions];\n }\n _emitFinal() {\n const completion = this._chatCompletions[this._chatCompletions.length - 1];\n if (completion)\n this._emit('finalChatCompletion', completion);\n const finalMessage = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this);\n if (finalMessage)\n this._emit('finalMessage', finalMessage);\n const finalContent = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalContent).call(this);\n if (finalContent)\n this._emit('finalContent', finalContent);\n const finalFunctionCall = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCall).call(this);\n if (finalFunctionCall)\n this._emit('finalFunctionToolCall', finalFunctionCall);\n const finalFunctionCallResult = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalFunctionToolCallResult).call(this);\n if (finalFunctionCallResult != null)\n this._emit('finalFunctionToolCallResult', finalFunctionCallResult);\n if (this._chatCompletions.some((c) => c.usage)) {\n this._emit('totalUsage', __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_calculateTotalUsage).call(this));\n }\n }\n async _createChatCompletion(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_validateParams).call(this, params);\n const chatCompletion = await client.chat.completions.create({ ...params, stream: false }, { ...options, signal: this.controller.signal });\n this._connected();\n return this._addChatCompletion(parseChatCompletion(chatCompletion, params));\n }\n async _runChatCompletion(client, params, options) {\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n return await this._createChatCompletion(client, params, options);\n }\n async _runTools(client, params, options) {\n const role = 'tool';\n const { tool_choice = 'auto', stream, ...restParams } = params;\n const singleFunctionToCall = typeof tool_choice !== 'string' && tool_choice.type === 'function' && tool_choice?.function?.name;\n const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {};\n // TODO(someday): clean this logic up\n const inputTools = params.tools.map((tool) => {\n if (isAutoParsableTool(tool)) {\n if (!tool.$callback) {\n throw new OpenAIError('Tool given to `.runTools()` that does not have an associated function');\n }\n return {\n type: 'function',\n function: {\n function: tool.$callback,\n name: tool.function.name,\n description: tool.function.description || '',\n parameters: tool.function.parameters,\n parse: tool.$parseRaw,\n strict: true,\n },\n };\n }\n return tool;\n });\n const functionsByName = {};\n for (const f of inputTools) {\n if (f.type === 'function') {\n functionsByName[f.function.name || f.function.function.name] = f.function;\n }\n }\n const tools = 'tools' in params ?\n inputTools.map((t) => t.type === 'function' ?\n {\n type: 'function',\n function: {\n name: t.function.name || t.function.function.name,\n parameters: t.function.parameters,\n description: t.function.description,\n strict: t.function.strict,\n },\n }\n : t)\n : undefined;\n for (const message of params.messages) {\n this._addMessage(message, false);\n }\n for (let i = 0; i < maxChatCompletions; ++i) {\n const chatCompletion = await this._createChatCompletion(client, {\n ...restParams,\n tool_choice,\n tools,\n messages: [...this.messages],\n }, options);\n const message = chatCompletion.choices[0]?.message;\n if (!message) {\n throw new OpenAIError(`missing message in ChatCompletion response`);\n }\n if (!message.tool_calls?.length) {\n return;\n }\n for (const tool_call of message.tool_calls) {\n if (tool_call.type !== 'function')\n continue;\n const tool_call_id = tool_call.id;\n const { name, arguments: args } = tool_call.function;\n const fn = functionsByName[name];\n if (!fn) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. Available options are: ${Object.keys(functionsByName)\n .map((name) => JSON.stringify(name))\n .join(', ')}. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n else if (singleFunctionToCall && singleFunctionToCall !== name) {\n const content = `Invalid tool_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n let parsed;\n try {\n parsed = isRunnableFunctionWithParse(fn) ? await fn.parse(args) : args;\n }\n catch (error) {\n const content = error instanceof Error ? error.message : String(error);\n this._addMessage({ role, tool_call_id, content });\n continue;\n }\n // @ts-expect-error it can't rule out `never` type.\n const rawContent = await fn.function(parsed, this);\n const content = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_stringifyFunctionCallResult).call(this, rawContent);\n this._addMessage({ role, tool_call_id, content });\n if (singleFunctionToCall) {\n return;\n }\n }\n }\n return;\n }\n}\n_AbstractChatCompletionRunner_instances = new WeakSet(), _AbstractChatCompletionRunner_getFinalContent = function _AbstractChatCompletionRunner_getFinalContent() {\n return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, \"m\", _AbstractChatCompletionRunner_getFinalMessage).call(this).content ?? null;\n}, _AbstractChatCompletionRunner_getFinalMessage = function _AbstractChatCompletionRunner_getFinalMessage() {\n let i = this.messages.length;\n while (i-- > 0) {\n const message = this.messages[i];\n if (isAssistantMessage(message)) {\n // TODO: support audio here\n const ret = {\n ...message,\n content: message.content ?? null,\n refusal: message.refusal ?? null,\n };\n return ret;\n }\n }\n throw new OpenAIError('stream ended without producing a ChatCompletionMessage with role=assistant');\n}, _AbstractChatCompletionRunner_getFinalFunctionToolCall = function _AbstractChatCompletionRunner_getFinalFunctionToolCall() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if (isAssistantMessage(message) && message?.tool_calls?.length) {\n return message.tool_calls.filter((x) => x.type === 'function').at(-1)?.function;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_getFinalFunctionToolCallResult = function _AbstractChatCompletionRunner_getFinalFunctionToolCallResult() {\n for (let i = this.messages.length - 1; i >= 0; i--) {\n const message = this.messages[i];\n if (isToolMessage(message) &&\n message.content != null &&\n typeof message.content === 'string' &&\n this.messages.some((x) => x.role === 'assistant' &&\n x.tool_calls?.some((y) => y.type === 'function' && y.id === message.tool_call_id))) {\n return message.content;\n }\n }\n return;\n}, _AbstractChatCompletionRunner_calculateTotalUsage = function _AbstractChatCompletionRunner_calculateTotalUsage() {\n const total = {\n completion_tokens: 0,\n prompt_tokens: 0,\n total_tokens: 0,\n };\n for (const { usage } of this._chatCompletions) {\n if (usage) {\n total.completion_tokens += usage.completion_tokens;\n total.prompt_tokens += usage.prompt_tokens;\n total.total_tokens += usage.total_tokens;\n }\n }\n return total;\n}, _AbstractChatCompletionRunner_validateParams = function _AbstractChatCompletionRunner_validateParams(params) {\n if (params.n != null && params.n > 1) {\n throw new OpenAIError('ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.');\n }\n}, _AbstractChatCompletionRunner_stringifyFunctionCallResult = function _AbstractChatCompletionRunner_stringifyFunctionCallResult(rawContent) {\n return (typeof rawContent === 'string' ? rawContent\n : rawContent === undefined ? 'undefined'\n : JSON.stringify(rawContent));\n};\n//# sourceMappingURL=AbstractChatCompletionRunner.mjs.map","import { AbstractChatCompletionRunner, } from \"./AbstractChatCompletionRunner.mjs\";\nimport { isAssistantMessage } from \"./chatCompletionUtils.mjs\";\nexport class ChatCompletionRunner extends AbstractChatCompletionRunner {\n static runTools(client, params, options) {\n const runner = new ChatCompletionRunner();\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n _addMessage(message, emit = true) {\n super._addMessage(message, emit);\n if (isAssistantMessage(message) && message.content) {\n this._emit('content', message.content);\n }\n }\n}\n//# sourceMappingURL=ChatCompletionRunner.mjs.map","const STR = 0b000000001;\nconst NUM = 0b000000010;\nconst ARR = 0b000000100;\nconst OBJ = 0b000001000;\nconst NULL = 0b000010000;\nconst BOOL = 0b000100000;\nconst NAN = 0b001000000;\nconst INFINITY = 0b010000000;\nconst MINUS_INFINITY = 0b100000000;\nconst INF = INFINITY | MINUS_INFINITY;\nconst SPECIAL = NULL | BOOL | INF | NAN;\nconst ATOM = STR | NUM | SPECIAL;\nconst COLLECTION = ARR | OBJ;\nconst ALL = ATOM | COLLECTION;\nconst Allow = {\n STR,\n NUM,\n ARR,\n OBJ,\n NULL,\n BOOL,\n NAN,\n INFINITY,\n MINUS_INFINITY,\n INF,\n SPECIAL,\n ATOM,\n COLLECTION,\n ALL,\n};\n// The JSON string segment was unable to be parsed completely\nclass PartialJSON extends Error {\n}\nclass MalformedJSON extends Error {\n}\n/**\n * Parse incomplete JSON\n * @param {string} jsonString Partial JSON to be parsed\n * @param {number} allowPartial Specify what types are allowed to be partial, see {@link Allow} for details\n * @returns The parsed JSON\n * @throws {PartialJSON} If the JSON is incomplete (related to the `allow` parameter)\n * @throws {MalformedJSON} If the JSON is malformed\n */\nfunction parseJSON(jsonString, allowPartial = Allow.ALL) {\n if (typeof jsonString !== 'string') {\n throw new TypeError(`expecting str, got ${typeof jsonString}`);\n }\n if (!jsonString.trim()) {\n throw new Error(`${jsonString} is empty`);\n }\n return _parseJSON(jsonString.trim(), allowPartial);\n}\nconst _parseJSON = (jsonString, allow) => {\n const length = jsonString.length;\n let index = 0;\n const markPartialJSON = (msg) => {\n throw new PartialJSON(`${msg} at position ${index}`);\n };\n const throwMalformedError = (msg) => {\n throw new MalformedJSON(`${msg} at position ${index}`);\n };\n const parseAny = () => {\n skipBlank();\n if (index >= length)\n markPartialJSON('Unexpected end of input');\n if (jsonString[index] === '\"')\n return parseStr();\n if (jsonString[index] === '{')\n return parseObj();\n if (jsonString[index] === '[')\n return parseArr();\n if (jsonString.substring(index, index + 4) === 'null' ||\n (Allow.NULL & allow && length - index < 4 && 'null'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return null;\n }\n if (jsonString.substring(index, index + 4) === 'true' ||\n (Allow.BOOL & allow && length - index < 4 && 'true'.startsWith(jsonString.substring(index)))) {\n index += 4;\n return true;\n }\n if (jsonString.substring(index, index + 5) === 'false' ||\n (Allow.BOOL & allow && length - index < 5 && 'false'.startsWith(jsonString.substring(index)))) {\n index += 5;\n return false;\n }\n if (jsonString.substring(index, index + 8) === 'Infinity' ||\n (Allow.INFINITY & allow && length - index < 8 && 'Infinity'.startsWith(jsonString.substring(index)))) {\n index += 8;\n return Infinity;\n }\n if (jsonString.substring(index, index + 9) === '-Infinity' ||\n (Allow.MINUS_INFINITY & allow &&\n 1 < length - index &&\n length - index < 9 &&\n '-Infinity'.startsWith(jsonString.substring(index)))) {\n index += 9;\n return -Infinity;\n }\n if (jsonString.substring(index, index + 3) === 'NaN' ||\n (Allow.NAN & allow && length - index < 3 && 'NaN'.startsWith(jsonString.substring(index)))) {\n index += 3;\n return NaN;\n }\n return parseNum();\n };\n const parseStr = () => {\n const start = index;\n let escape = false;\n index++; // skip initial quote\n while (index < length && (jsonString[index] !== '\"' || (escape && jsonString[index - 1] === '\\\\'))) {\n escape = jsonString[index] === '\\\\' ? !escape : false;\n index++;\n }\n if (jsonString.charAt(index) == '\"') {\n try {\n return JSON.parse(jsonString.substring(start, ++index - Number(escape)));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n else if (Allow.STR & allow) {\n try {\n return JSON.parse(jsonString.substring(start, index - Number(escape)) + '\"');\n }\n catch (e) {\n // SyntaxError: Invalid escape sequence\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('\\\\')) + '\"');\n }\n }\n markPartialJSON('Unterminated string literal');\n };\n const parseObj = () => {\n index++; // skip initial brace\n skipBlank();\n const obj = {};\n try {\n while (jsonString[index] !== '}') {\n skipBlank();\n if (index >= length && Allow.OBJ & allow)\n return obj;\n const key = parseStr();\n skipBlank();\n index++; // skip colon\n try {\n const value = parseAny();\n Object.defineProperty(obj, key, { value, writable: true, enumerable: true, configurable: true });\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n throw e;\n }\n skipBlank();\n if (jsonString[index] === ',')\n index++; // skip comma\n }\n }\n catch (e) {\n if (Allow.OBJ & allow)\n return obj;\n else\n markPartialJSON(\"Expected '}' at end of object\");\n }\n index++; // skip final brace\n return obj;\n };\n const parseArr = () => {\n index++; // skip initial bracket\n const arr = [];\n try {\n while (jsonString[index] !== ']') {\n arr.push(parseAny());\n skipBlank();\n if (jsonString[index] === ',') {\n index++; // skip comma\n }\n }\n }\n catch (e) {\n if (Allow.ARR & allow) {\n return arr;\n }\n markPartialJSON(\"Expected ']' at end of array\");\n }\n index++; // skip final bracket\n return arr;\n };\n const parseNum = () => {\n if (index === 0) {\n if (jsonString === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString);\n }\n catch (e) {\n if (Allow.NUM & allow) {\n try {\n if ('.' === jsonString[jsonString.length - 1])\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('.')));\n return JSON.parse(jsonString.substring(0, jsonString.lastIndexOf('e')));\n }\n catch (e) { }\n }\n throwMalformedError(String(e));\n }\n }\n const start = index;\n if (jsonString[index] === '-')\n index++;\n while (jsonString[index] && !',]}'.includes(jsonString[index]))\n index++;\n if (index == length && !(Allow.NUM & allow))\n markPartialJSON('Unterminated number literal');\n try {\n return JSON.parse(jsonString.substring(start, index));\n }\n catch (e) {\n if (jsonString.substring(start, index) === '-' && Allow.NUM & allow)\n markPartialJSON(\"Not sure what '-' is\");\n try {\n return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('e')));\n }\n catch (e) {\n throwMalformedError(String(e));\n }\n }\n };\n const skipBlank = () => {\n while (index < length && ' \\n\\r\\t'.includes(jsonString[index])) {\n index++;\n }\n };\n return parseAny();\n};\n// using this function with malformed JSON is undefined behavior\nconst partialParse = (input) => parseJSON(input, Allow.ALL ^ Allow.NUM);\nexport { partialParse, PartialJSON, MalformedJSON };\n//# sourceMappingURL=parser.mjs.map","var _ChatCompletionStream_instances, _ChatCompletionStream_params, _ChatCompletionStream_choiceEventStates, _ChatCompletionStream_currentChatCompletionSnapshot, _ChatCompletionStream_beginRequest, _ChatCompletionStream_getChoiceEventState, _ChatCompletionStream_addChunk, _ChatCompletionStream_emitToolCallDoneEvent, _ChatCompletionStream_emitContentDoneEvents, _ChatCompletionStream_endRequest, _ChatCompletionStream_getAutoParseableResponseFormat, _ChatCompletionStream_accumulateChatCompletion;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { partialParse } from \"../_vendor/partial-json-parser/parser.mjs\";\nimport { APIUserAbortError, ContentFilterFinishReasonError, LengthFinishReasonError, OpenAIError, } from \"../error.mjs\";\nimport { hasAutoParseableInput, isAutoParsableResponseFormat, isAutoParsableTool, isChatCompletionFunctionTool, maybeParseChatCompletion, shouldParseToolCall, } from \"../lib/parser.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { AbstractChatCompletionRunner, } from \"./AbstractChatCompletionRunner.mjs\";\nexport class ChatCompletionStream extends AbstractChatCompletionRunner {\n constructor(params) {\n super();\n _ChatCompletionStream_instances.add(this);\n _ChatCompletionStream_params.set(this, void 0);\n _ChatCompletionStream_choiceEventStates.set(this, void 0);\n _ChatCompletionStream_currentChatCompletionSnapshot.set(this, void 0);\n __classPrivateFieldSet(this, _ChatCompletionStream_params, params, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n }\n get currentChatCompletionSnapshot() {\n return __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n }\n /**\n * Intended for use on the frontend, consuming a stream produced with\n * `.toReadableStream()` on the backend.\n *\n * Note that messages sent to the model do not appear in `.on('message')`\n * in this context.\n */\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStream(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static createChatCompletion(client, params, options) {\n const runner = new ChatCompletionStream(params);\n runner._run(() => runner._runChatCompletion(client, { ...params, stream: true }, { ...options, headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' } }));\n return runner;\n }\n async _createChatCompletion(client, params, options) {\n super._createChatCompletion;\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n const stream = await client.chat.completions.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const chunk of stream) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_beginRequest).call(this);\n this._connected();\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n let chatId;\n for await (const chunk of stream) {\n if (chatId && chatId !== chunk.id) {\n // A new request has been made.\n this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_addChunk).call(this, chunk);\n chatId = chunk.id;\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_endRequest).call(this));\n }\n [(_ChatCompletionStream_params = new WeakMap(), _ChatCompletionStream_choiceEventStates = new WeakMap(), _ChatCompletionStream_currentChatCompletionSnapshot = new WeakMap(), _ChatCompletionStream_instances = new WeakSet(), _ChatCompletionStream_beginRequest = function _ChatCompletionStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n }, _ChatCompletionStream_getChoiceEventState = function _ChatCompletionStream_getChoiceEventState(choice) {\n let state = __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index];\n if (state) {\n return state;\n }\n state = {\n content_done: false,\n refusal_done: false,\n logprobs_content_done: false,\n logprobs_refusal_done: false,\n done_tool_calls: new Set(),\n current_tool_call_index: null,\n };\n __classPrivateFieldGet(this, _ChatCompletionStream_choiceEventStates, \"f\")[choice.index] = state;\n return state;\n }, _ChatCompletionStream_addChunk = function _ChatCompletionStream_addChunk(chunk) {\n if (this.ended)\n return;\n const completion = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_accumulateChatCompletion).call(this, chunk);\n this._emit('chunk', chunk, completion);\n for (const choice of chunk.choices) {\n const choiceSnapshot = completion.choices[choice.index];\n if (choice.delta.content != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.content) {\n this._emit('content', choice.delta.content, choiceSnapshot.message.content);\n this._emit('content.delta', {\n delta: choice.delta.content,\n snapshot: choiceSnapshot.message.content,\n parsed: choiceSnapshot.message.parsed,\n });\n }\n if (choice.delta.refusal != null &&\n choiceSnapshot.message?.role === 'assistant' &&\n choiceSnapshot.message?.refusal) {\n this._emit('refusal.delta', {\n delta: choice.delta.refusal,\n snapshot: choiceSnapshot.message.refusal,\n });\n }\n if (choice.logprobs?.content != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.content.delta', {\n content: choice.logprobs?.content,\n snapshot: choiceSnapshot.logprobs?.content ?? [],\n });\n }\n if (choice.logprobs?.refusal != null && choiceSnapshot.message?.role === 'assistant') {\n this._emit('logprobs.refusal.delta', {\n refusal: choice.logprobs?.refusal,\n snapshot: choiceSnapshot.logprobs?.refusal ?? [],\n });\n }\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.finish_reason) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n for (const toolCall of choice.delta.tool_calls ?? []) {\n if (state.current_tool_call_index !== toolCall.index) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitContentDoneEvents).call(this, choiceSnapshot);\n // new tool call started, the previous one is done\n if (state.current_tool_call_index != null) {\n __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_emitToolCallDoneEvent).call(this, choiceSnapshot, state.current_tool_call_index);\n }\n }\n state.current_tool_call_index = toolCall.index;\n }\n for (const toolCallDelta of choice.delta.tool_calls ?? []) {\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallDelta.index];\n if (!toolCallSnapshot?.type) {\n continue;\n }\n if (toolCallSnapshot?.type === 'function') {\n this._emit('tool_calls.function.arguments.delta', {\n name: toolCallSnapshot.function?.name,\n index: toolCallDelta.index,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: toolCallSnapshot.function.parsed_arguments,\n arguments_delta: toolCallDelta.function?.arguments ?? '',\n });\n }\n else {\n assertNever(toolCallSnapshot?.type);\n }\n }\n }\n }, _ChatCompletionStream_emitToolCallDoneEvent = function _ChatCompletionStream_emitToolCallDoneEvent(choiceSnapshot, toolCallIndex) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (state.done_tool_calls.has(toolCallIndex)) {\n // we've already fired the done event\n return;\n }\n const toolCallSnapshot = choiceSnapshot.message.tool_calls?.[toolCallIndex];\n if (!toolCallSnapshot) {\n throw new Error('no tool call snapshot');\n }\n if (!toolCallSnapshot.type) {\n throw new Error('tool call snapshot missing `type`');\n }\n if (toolCallSnapshot.type === 'function') {\n const inputTool = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.tools?.find((tool) => isChatCompletionFunctionTool(tool) && tool.function.name === toolCallSnapshot.function.name); // TS doesn't narrow based on isChatCompletionTool\n this._emit('tool_calls.function.arguments.done', {\n name: toolCallSnapshot.function.name,\n index: toolCallIndex,\n arguments: toolCallSnapshot.function.arguments,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCallSnapshot.function.arguments)\n : inputTool?.function.strict ? JSON.parse(toolCallSnapshot.function.arguments)\n : null,\n });\n }\n else {\n assertNever(toolCallSnapshot.type);\n }\n }, _ChatCompletionStream_emitContentDoneEvents = function _ChatCompletionStream_emitContentDoneEvents(choiceSnapshot) {\n const state = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getChoiceEventState).call(this, choiceSnapshot);\n if (choiceSnapshot.message.content && !state.content_done) {\n state.content_done = true;\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this);\n this._emit('content.done', {\n content: choiceSnapshot.message.content,\n parsed: responseFormat ? responseFormat.$parseRaw(choiceSnapshot.message.content) : null,\n });\n }\n if (choiceSnapshot.message.refusal && !state.refusal_done) {\n state.refusal_done = true;\n this._emit('refusal.done', { refusal: choiceSnapshot.message.refusal });\n }\n if (choiceSnapshot.logprobs?.content && !state.logprobs_content_done) {\n state.logprobs_content_done = true;\n this._emit('logprobs.content.done', { content: choiceSnapshot.logprobs.content });\n }\n if (choiceSnapshot.logprobs?.refusal && !state.logprobs_refusal_done) {\n state.logprobs_refusal_done = true;\n this._emit('logprobs.refusal.done', { refusal: choiceSnapshot.logprobs.refusal });\n }\n }, _ChatCompletionStream_endRequest = function _ChatCompletionStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n if (!snapshot) {\n throw new OpenAIError(`request ended without sending any chunks`);\n }\n __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, \"f\");\n __classPrivateFieldSet(this, _ChatCompletionStream_choiceEventStates, [], \"f\");\n return finalizeChatCompletion(snapshot, __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"));\n }, _ChatCompletionStream_getAutoParseableResponseFormat = function _ChatCompletionStream_getAutoParseableResponseFormat() {\n const responseFormat = __classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\")?.response_format;\n if (isAutoParsableResponseFormat(responseFormat)) {\n return responseFormat;\n }\n return null;\n }, _ChatCompletionStream_accumulateChatCompletion = function _ChatCompletionStream_accumulateChatCompletion(chunk) {\n var _a, _b, _c, _d;\n let snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, \"f\");\n const { choices, ...rest } = chunk;\n if (!snapshot) {\n snapshot = __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, {\n ...rest,\n choices: [],\n }, \"f\");\n }\n else {\n Object.assign(snapshot, rest);\n }\n for (const { delta, finish_reason, index, logprobs = null, ...other } of chunk.choices) {\n let choice = snapshot.choices[index];\n if (!choice) {\n choice = snapshot.choices[index] = { finish_reason, index, message: {}, logprobs, ...other };\n }\n if (logprobs) {\n if (!choice.logprobs) {\n choice.logprobs = Object.assign({}, logprobs);\n }\n else {\n const { content, refusal, ...rest } = logprobs;\n assertIsEmpty(rest);\n Object.assign(choice.logprobs, rest);\n if (content) {\n (_a = choice.logprobs).content ?? (_a.content = []);\n choice.logprobs.content.push(...content);\n }\n if (refusal) {\n (_b = choice.logprobs).refusal ?? (_b.refusal = []);\n choice.logprobs.refusal.push(...refusal);\n }\n }\n }\n if (finish_reason) {\n choice.finish_reason = finish_reason;\n if (__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\") && hasAutoParseableInput(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"))) {\n if (finish_reason === 'length') {\n throw new LengthFinishReasonError();\n }\n if (finish_reason === 'content_filter') {\n throw new ContentFilterFinishReasonError();\n }\n }\n }\n Object.assign(choice, other);\n if (!delta)\n continue; // Shouldn't happen; just in case.\n const { content, refusal, function_call, role, tool_calls, ...rest } = delta;\n assertIsEmpty(rest);\n Object.assign(choice.message, rest);\n if (refusal) {\n choice.message.refusal = (choice.message.refusal || '') + refusal;\n }\n if (role)\n choice.message.role = role;\n if (function_call) {\n if (!choice.message.function_call) {\n choice.message.function_call = function_call;\n }\n else {\n if (function_call.name)\n choice.message.function_call.name = function_call.name;\n if (function_call.arguments) {\n (_c = choice.message.function_call).arguments ?? (_c.arguments = '');\n choice.message.function_call.arguments += function_call.arguments;\n }\n }\n }\n if (content) {\n choice.message.content = (choice.message.content || '') + content;\n if (!choice.message.refusal && __classPrivateFieldGet(this, _ChatCompletionStream_instances, \"m\", _ChatCompletionStream_getAutoParseableResponseFormat).call(this)) {\n choice.message.parsed = partialParse(choice.message.content);\n }\n }\n if (tool_calls) {\n if (!choice.message.tool_calls)\n choice.message.tool_calls = [];\n for (const { index, id, type, function: fn, ...rest } of tool_calls) {\n const tool_call = ((_d = choice.message.tool_calls)[index] ?? (_d[index] = {}));\n Object.assign(tool_call, rest);\n if (id)\n tool_call.id = id;\n if (type)\n tool_call.type = type;\n if (fn)\n tool_call.function ?? (tool_call.function = { name: fn.name ?? '', arguments: '' });\n if (fn?.name)\n tool_call.function.name = fn.name;\n if (fn?.arguments) {\n tool_call.function.arguments += fn.arguments;\n if (shouldParseToolCall(__classPrivateFieldGet(this, _ChatCompletionStream_params, \"f\"), tool_call)) {\n tool_call.function.parsed_arguments = partialParse(tool_call.function.arguments);\n }\n }\n }\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('chunk', (chunk) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(chunk);\n }\n else {\n pushQueue.push(chunk);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n}\nfunction finalizeChatCompletion(snapshot, params) {\n const { id, choices, created, model, system_fingerprint, ...rest } = snapshot;\n const completion = {\n ...rest,\n id,\n choices: choices.map(({ message, finish_reason, index, logprobs, ...choiceRest }) => {\n if (!finish_reason) {\n throw new OpenAIError(`missing finish_reason for choice ${index}`);\n }\n const { content = null, function_call, tool_calls, ...messageRest } = message;\n const role = message.role; // this is what we expect; in theory it could be different which would make our types a slight lie but would be fine.\n if (!role) {\n throw new OpenAIError(`missing role for choice ${index}`);\n }\n if (function_call) {\n const { arguments: args, name } = function_call;\n if (args == null) {\n throw new OpenAIError(`missing function_call.arguments for choice ${index}`);\n }\n if (!name) {\n throw new OpenAIError(`missing function_call.name for choice ${index}`);\n }\n return {\n ...choiceRest,\n message: {\n content,\n function_call: { arguments: args, name },\n role,\n refusal: message.refusal ?? null,\n },\n finish_reason,\n index,\n logprobs,\n };\n }\n if (tool_calls) {\n return {\n ...choiceRest,\n index,\n finish_reason,\n logprobs,\n message: {\n ...messageRest,\n role,\n content,\n refusal: message.refusal ?? null,\n tool_calls: tool_calls.map((tool_call, i) => {\n const { function: fn, type, id, ...toolRest } = tool_call;\n const { arguments: args, name, ...fnRest } = fn || {};\n if (id == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].id\\n${str(snapshot)}`);\n }\n if (type == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].type\\n${str(snapshot)}`);\n }\n if (name == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.name\\n${str(snapshot)}`);\n }\n if (args == null) {\n throw new OpenAIError(`missing choices[${index}].tool_calls[${i}].function.arguments\\n${str(snapshot)}`);\n }\n return { ...toolRest, id, type, function: { ...fnRest, name, arguments: args } };\n }),\n },\n };\n }\n return {\n ...choiceRest,\n message: { ...messageRest, content, role, refusal: message.refusal ?? null },\n finish_reason,\n index,\n logprobs,\n };\n }),\n created,\n model,\n object: 'chat.completion',\n ...(system_fingerprint ? { system_fingerprint } : {}),\n };\n return maybeParseChatCompletion(completion, params);\n}\nfunction str(x) {\n return JSON.stringify(x);\n}\n/**\n * Ensures the given argument is an empty object, useful for\n * asserting that all known properties on an object have been\n * destructured.\n */\nfunction assertIsEmpty(obj) {\n return;\n}\nfunction assertNever(_x) { }\n//# sourceMappingURL=ChatCompletionStream.mjs.map","import { ChatCompletionStream } from \"./ChatCompletionStream.mjs\";\nexport class ChatCompletionStreamingRunner extends ChatCompletionStream {\n static fromReadableStream(stream) {\n const runner = new ChatCompletionStreamingRunner(null);\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n static runTools(client, params, options) {\n const runner = new ChatCompletionStreamingRunner(\n // @ts-expect-error TODO these types are incompatible\n params);\n const opts = {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },\n };\n runner._run(() => runner._runTools(client, params, opts));\n return runner;\n }\n}\n//# sourceMappingURL=ChatCompletionStreamingRunner.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as MessagesAPI from \"./messages.mjs\";\nimport { Messages } from \"./messages.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nimport { ChatCompletionRunner } from \"../../../lib/ChatCompletionRunner.mjs\";\nimport { ChatCompletionStreamingRunner } from \"../../../lib/ChatCompletionStreamingRunner.mjs\";\nimport { ChatCompletionStream } from \"../../../lib/ChatCompletionStream.mjs\";\nimport { parseChatCompletion, validateInputTools } from \"../../../lib/parser.mjs\";\nexport class Completions extends APIResource {\n constructor() {\n super(...arguments);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n create(body, options) {\n return this._client.post('/chat/completions', { body, ...options, stream: body.stream ?? false });\n }\n /**\n * Get a stored chat completion. Only Chat Completions that have been created with\n * the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * const chatCompletion =\n * await client.chat.completions.retrieve('completion_id');\n * ```\n */\n retrieve(completionID, options) {\n return this._client.get(path `/chat/completions/${completionID}`, options);\n }\n /**\n * Modify a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be modified. Currently, the only\n * supported modification is to update the `metadata` field.\n *\n * @example\n * ```ts\n * const chatCompletion = await client.chat.completions.update(\n * 'completion_id',\n * { metadata: { foo: 'string' } },\n * );\n * ```\n */\n update(completionID, body, options) {\n return this._client.post(path `/chat/completions/${completionID}`, { body, ...options });\n }\n /**\n * List stored Chat Completions. Only Chat Completions that have been stored with\n * the `store` parameter set to `true` will be returned.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatCompletion of client.chat.completions.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/chat/completions', (CursorPage), { query, ...options });\n }\n /**\n * Delete a stored chat completion. Only Chat Completions that have been created\n * with the `store` parameter set to `true` can be deleted.\n *\n * @example\n * ```ts\n * const chatCompletionDeleted =\n * await client.chat.completions.delete('completion_id');\n * ```\n */\n delete(completionID, options) {\n return this._client.delete(path `/chat/completions/${completionID}`, options);\n }\n parse(body, options) {\n validateInputTools(body.tools);\n return this._client.chat.completions\n .create(body, {\n ...options,\n headers: {\n ...options?.headers,\n 'X-Stainless-Helper-Method': 'chat.completions.parse',\n },\n })\n ._thenUnwrap((completion) => parseChatCompletion(completion, body));\n }\n runTools(body, options) {\n if (body.stream) {\n return ChatCompletionStreamingRunner.runTools(this._client, body, options);\n }\n return ChatCompletionRunner.runTools(this._client, body, options);\n }\n /**\n * Creates a chat completion stream\n */\n stream(body, options) {\n return ChatCompletionStream.createChatCompletion(this._client, body, options);\n }\n}\nexport { ChatCompletionStreamingRunner } from \"../../../lib/ChatCompletionStreamingRunner.mjs\";\nexport { ParsingToolFunction, } from \"../../../lib/RunnableFunction.mjs\";\nexport { ChatCompletionStream } from \"../../../lib/ChatCompletionStream.mjs\";\nexport { ChatCompletionRunner } from \"../../../lib/ChatCompletionRunner.mjs\";\nCompletions.Messages = Messages;\n//# sourceMappingURL=completions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as CompletionsAPI from \"./completions/completions.mjs\";\nimport { Completions, } from \"./completions/completions.mjs\";\nexport class Chat extends APIResource {\n constructor() {\n super(...arguments);\n this.completions = new CompletionsAPI.Completions(this._client);\n }\n}\nChat.Completions = Completions;\n//# sourceMappingURL=chat.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { isReadonlyArray } from \"./utils/values.mjs\";\nconst brand_privateNullableHeaders = /* @__PURE__ */ Symbol('brand.privateNullableHeaders');\nfunction* iterateHeaders(headers) {\n if (!headers)\n return;\n if (brand_privateNullableHeaders in headers) {\n const { values, nulls } = headers;\n yield* values.entries();\n for (const name of nulls) {\n yield [name, null];\n }\n return;\n }\n let shouldClear = false;\n let iter;\n if (headers instanceof Headers) {\n iter = headers.entries();\n }\n else if (isReadonlyArray(headers)) {\n iter = headers;\n }\n else {\n shouldClear = true;\n iter = Object.entries(headers ?? {});\n }\n for (let row of iter) {\n const name = row[0];\n if (typeof name !== 'string')\n throw new TypeError('expected header name to be a string');\n const values = isReadonlyArray(row[1]) ? row[1] : [row[1]];\n let didClear = false;\n for (const value of values) {\n if (value === undefined)\n continue;\n // Objects keys always overwrite older headers, they never append.\n // Yield a null to clear the header before adding the new values.\n if (shouldClear && !didClear) {\n didClear = true;\n yield [name, null];\n }\n yield [name, value];\n }\n }\n}\nexport const buildHeaders = (newHeaders) => {\n const targetHeaders = new Headers();\n const nullHeaders = new Set();\n for (const headers of newHeaders) {\n const seenHeaders = new Set();\n for (const [name, value] of iterateHeaders(headers)) {\n const lowerName = name.toLowerCase();\n if (!seenHeaders.has(lowerName)) {\n targetHeaders.delete(name);\n seenHeaders.add(lowerName);\n }\n if (value === null) {\n targetHeaders.delete(name);\n nullHeaders.add(lowerName);\n }\n else {\n targetHeaders.append(name, value);\n nullHeaders.delete(lowerName);\n }\n }\n }\n return { [brand_privateNullableHeaders]: true, values: targetHeaders, nulls: nullHeaders };\n};\nexport const isEmptyHeaders = (headers) => {\n for (const _ of iterateHeaders(headers))\n return false;\n return true;\n};\n//# sourceMappingURL=headers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nexport class Speech extends APIResource {\n /**\n * Generates audio from the input text.\n *\n * @example\n * ```ts\n * const speech = await client.audio.speech.create({\n * input: 'input',\n * model: 'string',\n * voice: 'ash',\n * });\n *\n * const content = await speech.blob();\n * console.log(content);\n * ```\n */\n create(body, options) {\n return this._client.post('/audio/speech', {\n body,\n ...options,\n headers: buildHeaders([{ Accept: 'application/octet-stream' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=speech.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nexport class Transcriptions extends APIResource {\n create(body, options) {\n return this._client.post('/audio/transcriptions', multipartFormRequestOptions({\n body,\n ...options,\n stream: body.stream ?? false,\n __metadata: { model: body.model },\n }, this._client));\n }\n}\n//# sourceMappingURL=transcriptions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nexport class Translations extends APIResource {\n create(body, options) {\n return this._client.post('/audio/translations', multipartFormRequestOptions({ body, ...options, __metadata: { model: body.model } }, this._client));\n }\n}\n//# sourceMappingURL=translations.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as SpeechAPI from \"./speech.mjs\";\nimport { Speech } from \"./speech.mjs\";\nimport * as TranscriptionsAPI from \"./transcriptions.mjs\";\nimport { Transcriptions, } from \"./transcriptions.mjs\";\nimport * as TranslationsAPI from \"./translations.mjs\";\nimport { Translations, } from \"./translations.mjs\";\nexport class Audio extends APIResource {\n constructor() {\n super(...arguments);\n this.transcriptions = new TranscriptionsAPI.Transcriptions(this._client);\n this.translations = new TranslationsAPI.Translations(this._client);\n this.speech = new SpeechAPI.Speech(this._client);\n }\n}\nAudio.Transcriptions = Transcriptions;\nAudio.Translations = Translations;\nAudio.Speech = Speech;\n//# sourceMappingURL=audio.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { CursorPage } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Batches extends APIResource {\n /**\n * Creates and executes a batch from an uploaded file of requests\n */\n create(body, options) {\n return this._client.post('/batches', { body, ...options });\n }\n /**\n * Retrieves a batch.\n */\n retrieve(batchID, options) {\n return this._client.get(path `/batches/${batchID}`, options);\n }\n /**\n * List your organization's batches.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/batches', (CursorPage), { query, ...options });\n }\n /**\n * Cancels an in-progress batch. The batch will be in status `cancelling` for up to\n * 10 minutes, before changing to `cancelled`, where it will have partial results\n * (if any) available in the output file.\n */\n cancel(batchID, options) {\n return this._client.post(path `/batches/${batchID}/cancel`, options);\n }\n}\n//# sourceMappingURL=batches.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Assistants extends APIResource {\n /**\n * Create an assistant with a model and instructions.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.create({\n * model: 'gpt-4o',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/assistants', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves an assistant.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.retrieve(\n * 'assistant_id',\n * );\n * ```\n */\n retrieve(assistantID, options) {\n return this._client.get(path `/assistants/${assistantID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies an assistant.\n *\n * @example\n * ```ts\n * const assistant = await client.beta.assistants.update(\n * 'assistant_id',\n * );\n * ```\n */\n update(assistantID, body, options) {\n return this._client.post(path `/assistants/${assistantID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of assistants.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const assistant of client.beta.assistants.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/assistants', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete an assistant.\n *\n * @example\n * ```ts\n * const assistantDeleted =\n * await client.beta.assistants.delete('assistant_id');\n * ```\n */\n delete(assistantID, options) {\n return this._client.delete(path `/assistants/${assistantID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=assistants.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nexport class Sessions extends APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API. Can be configured with the same session parameters as the\n * `session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n *\n * @example\n * ```ts\n * const session =\n * await client.beta.realtime.sessions.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nexport class TranscriptionSessions extends APIResource {\n /**\n * Create an ephemeral API token for use in client-side applications with the\n * Realtime API specifically for realtime transcriptions. Can be configured with\n * the same session parameters as the `transcription_session.update` client event.\n *\n * It responds with a session object, plus a `client_secret` key which contains a\n * usable ephemeral API token that can be used to authenticate browser clients for\n * the Realtime API.\n *\n * @example\n * ```ts\n * const transcriptionSession =\n * await client.beta.realtime.transcriptionSessions.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/transcription_sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=transcription-sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as SessionsAPI from \"./sessions.mjs\";\nimport { Sessions, } from \"./sessions.mjs\";\nimport * as TranscriptionSessionsAPI from \"./transcription-sessions.mjs\";\nimport { TranscriptionSessions, } from \"./transcription-sessions.mjs\";\n/**\n * @deprecated Realtime has now launched and is generally available. The old beta API is now deprecated.\n */\nexport class Realtime extends APIResource {\n constructor() {\n super(...arguments);\n this.sessions = new SessionsAPI.Sessions(this._client);\n this.transcriptionSessions = new TranscriptionSessionsAPI.TranscriptionSessions(this._client);\n }\n}\nRealtime.Sessions = Sessions;\nRealtime.TranscriptionSessions = TranscriptionSessions;\n//# sourceMappingURL=realtime.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Sessions extends APIResource {\n /**\n * Create a ChatKit session\n *\n * @example\n * ```ts\n * const chatSession =\n * await client.beta.chatkit.sessions.create({\n * user: 'x',\n * workflow: { id: 'id' },\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/chatkit/sessions', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * Cancel a ChatKit session\n *\n * @example\n * ```ts\n * const chatSession =\n * await client.beta.chatkit.sessions.cancel('cksess_123');\n * ```\n */\n cancel(sessionID, options) {\n return this._client.post(path `/chatkit/sessions/${sessionID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=sessions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Threads extends APIResource {\n /**\n * Retrieve a ChatKit thread\n *\n * @example\n * ```ts\n * const chatkitThread =\n * await client.beta.chatkit.threads.retrieve('cthr_123');\n * ```\n */\n retrieve(threadID, options) {\n return this._client.get(path `/chatkit/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * List ChatKit threads\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const chatkitThread of client.beta.chatkit.threads.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/chatkit/threads', (ConversationCursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * Delete a ChatKit thread\n *\n * @example\n * ```ts\n * const thread = await client.beta.chatkit.threads.delete(\n * 'cthr_123',\n * );\n * ```\n */\n delete(threadID, options) {\n return this._client.delete(path `/chatkit/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]),\n });\n }\n /**\n * List ChatKit thread items\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const thread of client.beta.chatkit.threads.listItems(\n * 'cthr_123',\n * )) {\n * // ...\n * }\n * ```\n */\n listItems(threadID, query = {}, options) {\n return this._client.getAPIList(path `/chatkit/threads/${threadID}/items`, (ConversationCursorPage), { query, ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'chatkit_beta=v1' }, options?.headers]) });\n }\n}\n//# sourceMappingURL=threads.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as SessionsAPI from \"./sessions.mjs\";\nimport { Sessions } from \"./sessions.mjs\";\nimport * as ThreadsAPI from \"./threads.mjs\";\nimport { Threads, } from \"./threads.mjs\";\nexport class ChatKit extends APIResource {\n constructor() {\n super(...arguments);\n this.sessions = new SessionsAPI.Sessions(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n}\nChatKit.Sessions = Sessions;\nChatKit.Threads = Threads;\n//# sourceMappingURL=chatkit.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Messages extends APIResource {\n /**\n * Create a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n create(threadID, body, options) {\n return this._client.post(path `/threads/${threadID}/messages`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieve a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(messageID, params, options) {\n const { thread_id } = params;\n return this._client.get(path `/threads/${thread_id}/messages/${messageID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(messageID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/messages/${messageID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of messages for a given thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(threadID, query = {}, options) {\n return this._client.getAPIList(path `/threads/${threadID}/messages`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Deletes a message.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n delete(messageID, params, options) {\n const { thread_id } = params;\n return this._client.delete(path `/threads/${thread_id}/messages/${messageID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=messages.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Steps extends APIResource {\n /**\n * Retrieves a run step.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(stepID, params, options) {\n const { thread_id, run_id, ...query } = params;\n return this._client.get(path `/threads/${thread_id}/runs/${run_id}/steps/${stepID}`, {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of run steps belonging to a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(runID, params, options) {\n const { thread_id, ...query } = params;\n return this._client.getAPIList(path `/threads/${thread_id}/runs/${runID}/steps`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=steps.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { OpenAIError } from \"../../core/error.mjs\";\nimport { encodeUTF8 } from \"./bytes.mjs\";\nexport const toBase64 = (data) => {\n if (!data)\n return '';\n if (typeof globalThis.Buffer !== 'undefined') {\n return globalThis.Buffer.from(data).toString('base64');\n }\n if (typeof data === 'string') {\n data = encodeUTF8(data);\n }\n if (typeof btoa !== 'undefined') {\n return btoa(String.fromCharCode.apply(null, data));\n }\n throw new OpenAIError('Cannot generate base64 string; Expected `Buffer` or `btoa` to be defined');\n};\nexport const fromBase64 = (str) => {\n if (typeof globalThis.Buffer !== 'undefined') {\n const buf = globalThis.Buffer.from(str, 'base64');\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n if (typeof atob !== 'undefined') {\n const bstr = atob(str);\n const buf = new Uint8Array(bstr.length);\n for (let i = 0; i < bstr.length; i++) {\n buf[i] = bstr.charCodeAt(i);\n }\n return buf;\n }\n throw new OpenAIError('Cannot decode base64 string; Expected `Buffer` or `atob` to be defined');\n};\n/**\n * Converts a Base64 encoded string to a Float32Array.\n * @param base64Str - The Base64 encoded string.\n * @returns An Array of numbers interpreted as Float32 values.\n */\nexport const toFloat32Array = (base64Str) => {\n if (typeof Buffer !== 'undefined') {\n // for Node.js environment\n const buf = Buffer.from(base64Str, 'base64');\n return Array.from(new Float32Array(buf.buffer, buf.byteOffset, buf.length / Float32Array.BYTES_PER_ELEMENT));\n }\n else {\n // for legacy web platform APIs\n const binaryStr = atob(base64Str);\n const len = binaryStr.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryStr.charCodeAt(i);\n }\n return Array.from(new Float32Array(bytes.buffer));\n }\n};\n//# sourceMappingURL=base64.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\n/**\n * Read an environment variable.\n *\n * Trims beginning and trailing whitespace.\n *\n * Will return undefined if the environment variable doesn't exist or cannot be accessed.\n */\nexport const readEnv = (env) => {\n if (typeof globalThis.process !== 'undefined') {\n return globalThis.process.env?.[env]?.trim() ?? undefined;\n }\n if (typeof globalThis.Deno !== 'undefined') {\n return globalThis.Deno.env?.get?.(env)?.trim();\n }\n return undefined;\n};\n//# sourceMappingURL=env.mjs.map","var _AssistantStream_instances, _a, _AssistantStream_events, _AssistantStream_runStepSnapshots, _AssistantStream_messageSnapshots, _AssistantStream_messageSnapshot, _AssistantStream_finalRun, _AssistantStream_currentContentIndex, _AssistantStream_currentContent, _AssistantStream_currentToolCallIndex, _AssistantStream_currentToolCall, _AssistantStream_currentEvent, _AssistantStream_currentRunSnapshot, _AssistantStream_currentRunStepSnapshot, _AssistantStream_addEvent, _AssistantStream_endRequest, _AssistantStream_handleMessage, _AssistantStream_handleRunStep, _AssistantStream_handleEvent, _AssistantStream_accumulateRunStep, _AssistantStream_accumulateMessage, _AssistantStream_accumulateContent, _AssistantStream_handleRun;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../internal/tslib.mjs\";\nimport { Stream } from \"../streaming.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../error.mjs\";\nimport { EventStream } from \"./EventStream.mjs\";\nimport { isObj } from \"../internal/utils.mjs\";\nexport class AssistantStream extends EventStream {\n constructor() {\n super(...arguments);\n _AssistantStream_instances.add(this);\n //Track all events in a single list for reference\n _AssistantStream_events.set(this, []);\n //Used to accumulate deltas\n //We are accumulating many types so the value here is not strict\n _AssistantStream_runStepSnapshots.set(this, {});\n _AssistantStream_messageSnapshots.set(this, {});\n _AssistantStream_messageSnapshot.set(this, void 0);\n _AssistantStream_finalRun.set(this, void 0);\n _AssistantStream_currentContentIndex.set(this, void 0);\n _AssistantStream_currentContent.set(this, void 0);\n _AssistantStream_currentToolCallIndex.set(this, void 0);\n _AssistantStream_currentToolCall.set(this, void 0);\n //For current snapshot methods\n _AssistantStream_currentEvent.set(this, void 0);\n _AssistantStream_currentRunSnapshot.set(this, void 0);\n _AssistantStream_currentRunStepSnapshot.set(this, void 0);\n }\n [(_AssistantStream_events = new WeakMap(), _AssistantStream_runStepSnapshots = new WeakMap(), _AssistantStream_messageSnapshots = new WeakMap(), _AssistantStream_messageSnapshot = new WeakMap(), _AssistantStream_finalRun = new WeakMap(), _AssistantStream_currentContentIndex = new WeakMap(), _AssistantStream_currentContent = new WeakMap(), _AssistantStream_currentToolCallIndex = new WeakMap(), _AssistantStream_currentToolCall = new WeakMap(), _AssistantStream_currentEvent = new WeakMap(), _AssistantStream_currentRunSnapshot = new WeakMap(), _AssistantStream_currentRunStepSnapshot = new WeakMap(), _AssistantStream_instances = new WeakSet(), Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n //Catch all for passing along all events\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));\n }\n const chunk = pushQueue.shift();\n return { value: chunk, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n static fromReadableStream(stream) {\n const runner = new _a();\n runner._run(() => runner._fromReadableStream(stream));\n return runner;\n }\n async _fromReadableStream(readableStream, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n this._connected();\n const stream = Stream.fromReadableStream(readableStream, this.controller);\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n toReadableStream() {\n const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);\n return stream.toReadableStream();\n }\n static createToolAssistantStream(runId, runs, params, options) {\n const runner = new _a();\n runner._run(() => runner._runToolAssistantStream(runId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createToolAssistantStream(run, runId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.submitToolOutputs(runId, body, {\n ...options,\n signal: this.controller.signal,\n });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static createThreadAssistantStream(params, thread, options) {\n const runner = new _a();\n runner._run(() => runner._threadAssistantStream(params, thread, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n static createAssistantStream(threadId, runs, params, options) {\n const runner = new _a();\n runner._run(() => runner._runAssistantStream(threadId, runs, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n currentEvent() {\n return __classPrivateFieldGet(this, _AssistantStream_currentEvent, \"f\");\n }\n currentRun() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunSnapshot, \"f\");\n }\n currentMessageSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\");\n }\n currentRunStepSnapshot() {\n return __classPrivateFieldGet(this, _AssistantStream_currentRunStepSnapshot, \"f\");\n }\n async finalRunSteps() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\"));\n }\n async finalMessages() {\n await this.done();\n return Object.values(__classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\"));\n }\n async finalRun() {\n await this.done();\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run was not received.');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n }\n async _createThreadAssistantStream(thread, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await thread.createAndRun(body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n async _createAssistantStream(run, threadId, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n const body = { ...params, stream: true };\n const stream = await run.create(threadId, body, { ...options, signal: this.controller.signal });\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_addEvent).call(this, event);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return this._addRun(__classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_endRequest).call(this));\n }\n static accumulateDelta(acc, delta) {\n for (const [key, deltaValue] of Object.entries(delta)) {\n if (!acc.hasOwnProperty(key)) {\n acc[key] = deltaValue;\n continue;\n }\n let accValue = acc[key];\n if (accValue === null || accValue === undefined) {\n acc[key] = deltaValue;\n continue;\n }\n // We don't accumulate these special properties\n if (key === 'index' || key === 'type') {\n acc[key] = deltaValue;\n continue;\n }\n // Type-specific accumulation logic\n if (typeof accValue === 'string' && typeof deltaValue === 'string') {\n accValue += deltaValue;\n }\n else if (typeof accValue === 'number' && typeof deltaValue === 'number') {\n accValue += deltaValue;\n }\n else if (isObj(accValue) && isObj(deltaValue)) {\n accValue = this.accumulateDelta(accValue, deltaValue);\n }\n else if (Array.isArray(accValue) && Array.isArray(deltaValue)) {\n if (accValue.every((x) => typeof x === 'string' || typeof x === 'number')) {\n accValue.push(...deltaValue); // Use spread syntax for efficient addition\n continue;\n }\n for (const deltaEntry of deltaValue) {\n if (!isObj(deltaEntry)) {\n throw new Error(`Expected array delta entry to be an object but got: ${deltaEntry}`);\n }\n const index = deltaEntry['index'];\n if (index == null) {\n console.error(deltaEntry);\n throw new Error('Expected array delta entry to have an `index` property');\n }\n if (typeof index !== 'number') {\n throw new Error(`Expected array delta entry \\`index\\` property to be a number but got ${index}`);\n }\n const accEntry = accValue[index];\n if (accEntry == null) {\n accValue.push(deltaEntry);\n }\n else {\n accValue[index] = this.accumulateDelta(accEntry, deltaEntry);\n }\n }\n continue;\n }\n else {\n throw Error(`Unhandled record type: ${key}, deltaValue: ${deltaValue}, accValue: ${accValue}`);\n }\n acc[key] = accValue;\n }\n return acc;\n }\n _addRun(run) {\n return run;\n }\n async _threadAssistantStream(params, thread, options) {\n return await this._createThreadAssistantStream(thread, params, options);\n }\n async _runAssistantStream(threadId, runs, params, options) {\n return await this._createAssistantStream(runs, threadId, params, options);\n }\n async _runToolAssistantStream(runId, runs, params, options) {\n return await this._createToolAssistantStream(runs, runId, params, options);\n }\n}\n_a = AssistantStream, _AssistantStream_addEvent = function _AssistantStream_addEvent(event) {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _AssistantStream_currentEvent, event, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleEvent).call(this, event);\n switch (event.event) {\n case 'thread.created':\n //No action on this event.\n break;\n case 'thread.run.created':\n case 'thread.run.queued':\n case 'thread.run.in_progress':\n case 'thread.run.requires_action':\n case 'thread.run.completed':\n case 'thread.run.incomplete':\n case 'thread.run.failed':\n case 'thread.run.cancelling':\n case 'thread.run.cancelled':\n case 'thread.run.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRun).call(this, event);\n break;\n case 'thread.run.step.created':\n case 'thread.run.step.in_progress':\n case 'thread.run.step.delta':\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleRunStep).call(this, event);\n break;\n case 'thread.message.created':\n case 'thread.message.in_progress':\n case 'thread.message.delta':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_handleMessage).call(this, event);\n break;\n case 'error':\n //This is included for completeness, but errors are processed in the SSE event processing so this should not occur\n throw new Error('Encountered an error event in event processing - errors should be processed earlier');\n default:\n assertNever(event);\n }\n}, _AssistantStream_endRequest = function _AssistantStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n if (!__classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\"))\n throw Error('Final run has not been received');\n return __classPrivateFieldGet(this, _AssistantStream_finalRun, \"f\");\n}, _AssistantStream_handleMessage = function _AssistantStream_handleMessage(event) {\n const [accumulatedMessage, newContent] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateMessage).call(this, event, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, accumulatedMessage, \"f\");\n __classPrivateFieldGet(this, _AssistantStream_messageSnapshots, \"f\")[accumulatedMessage.id] = accumulatedMessage;\n for (const content of newContent) {\n const snapshotContent = accumulatedMessage.content[content.index];\n if (snapshotContent?.type == 'text') {\n this._emit('textCreated', snapshotContent.text);\n }\n }\n switch (event.event) {\n case 'thread.message.created':\n this._emit('messageCreated', event.data);\n break;\n case 'thread.message.in_progress':\n break;\n case 'thread.message.delta':\n this._emit('messageDelta', event.data.delta, accumulatedMessage);\n if (event.data.delta.content) {\n for (const content of event.data.delta.content) {\n //If it is text delta, emit a text delta event\n if (content.type == 'text' && content.text) {\n let textDelta = content.text;\n let snapshot = accumulatedMessage.content[content.index];\n if (snapshot && snapshot.type == 'text') {\n this._emit('textDelta', textDelta, snapshot.text);\n }\n else {\n throw Error('The snapshot associated with this text delta is not text or missing');\n }\n }\n if (content.index != __classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")) {\n //See if we have in progress content\n if (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\")) {\n switch (__classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").type) {\n case 'text':\n this._emit('textDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'image_file':\n this._emit('imageFileDone', __classPrivateFieldGet(this, _AssistantStream_currentContent, \"f\").image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContentIndex, content.index, \"f\");\n }\n __classPrivateFieldSet(this, _AssistantStream_currentContent, accumulatedMessage.content[content.index], \"f\");\n }\n }\n break;\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //We emit the latest content we were working on on completion (including incomplete)\n if (__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\") !== undefined) {\n const currentContent = event.data.content[__classPrivateFieldGet(this, _AssistantStream_currentContentIndex, \"f\")];\n if (currentContent) {\n switch (currentContent.type) {\n case 'image_file':\n this._emit('imageFileDone', currentContent.image_file, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n case 'text':\n this._emit('textDone', currentContent.text, __classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\"));\n break;\n }\n }\n }\n if (__classPrivateFieldGet(this, _AssistantStream_messageSnapshot, \"f\")) {\n this._emit('messageDone', event.data);\n }\n __classPrivateFieldSet(this, _AssistantStream_messageSnapshot, undefined, \"f\");\n }\n}, _AssistantStream_handleRunStep = function _AssistantStream_handleRunStep(event) {\n const accumulatedRunStep = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateRunStep).call(this, event);\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, accumulatedRunStep, \"f\");\n switch (event.event) {\n case 'thread.run.step.created':\n this._emit('runStepCreated', event.data);\n break;\n case 'thread.run.step.delta':\n const delta = event.data.delta;\n if (delta.step_details &&\n delta.step_details.type == 'tool_calls' &&\n delta.step_details.tool_calls &&\n accumulatedRunStep.step_details.type == 'tool_calls') {\n for (const toolCall of delta.step_details.tool_calls) {\n if (toolCall.index == __classPrivateFieldGet(this, _AssistantStream_currentToolCallIndex, \"f\")) {\n this._emit('toolCallDelta', toolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index]);\n }\n else {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n __classPrivateFieldSet(this, _AssistantStream_currentToolCallIndex, toolCall.index, \"f\");\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, accumulatedRunStep.step_details.tool_calls[toolCall.index], \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"))\n this._emit('toolCallCreated', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n }\n }\n }\n this._emit('runStepDelta', event.data.delta, accumulatedRunStep);\n break;\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n __classPrivateFieldSet(this, _AssistantStream_currentRunStepSnapshot, undefined, \"f\");\n const details = event.data.step_details;\n if (details.type == 'tool_calls') {\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n }\n this._emit('runStepDone', event.data, accumulatedRunStep);\n break;\n case 'thread.run.step.in_progress':\n break;\n }\n}, _AssistantStream_handleEvent = function _AssistantStream_handleEvent(event) {\n __classPrivateFieldGet(this, _AssistantStream_events, \"f\").push(event);\n this._emit('event', event);\n}, _AssistantStream_accumulateRunStep = function _AssistantStream_accumulateRunStep(event) {\n switch (event.event) {\n case 'thread.run.step.created':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n return event.data;\n case 'thread.run.step.delta':\n let snapshot = __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n if (!snapshot) {\n throw Error('Received a RunStepDelta before creation of a snapshot');\n }\n let data = event.data;\n if (data.delta) {\n const accumulated = _a.accumulateDelta(snapshot, data.delta);\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = accumulated;\n }\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n case 'thread.run.step.completed':\n case 'thread.run.step.failed':\n case 'thread.run.step.cancelled':\n case 'thread.run.step.expired':\n case 'thread.run.step.in_progress':\n __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id] = event.data;\n break;\n }\n if (__classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id])\n return __classPrivateFieldGet(this, _AssistantStream_runStepSnapshots, \"f\")[event.data.id];\n throw new Error('No snapshot available');\n}, _AssistantStream_accumulateMessage = function _AssistantStream_accumulateMessage(event, snapshot) {\n let newContent = [];\n switch (event.event) {\n case 'thread.message.created':\n //On creation the snapshot is just the initial message\n return [event.data, newContent];\n case 'thread.message.delta':\n if (!snapshot) {\n throw Error('Received a delta with no existing snapshot (there should be one from message creation)');\n }\n let data = event.data;\n //If this delta does not have content, nothing to process\n if (data.delta.content) {\n for (const contentElement of data.delta.content) {\n if (contentElement.index in snapshot.content) {\n let currentContent = snapshot.content[contentElement.index];\n snapshot.content[contentElement.index] = __classPrivateFieldGet(this, _AssistantStream_instances, \"m\", _AssistantStream_accumulateContent).call(this, contentElement, currentContent);\n }\n else {\n snapshot.content[contentElement.index] = contentElement;\n // This is a new element\n newContent.push(contentElement);\n }\n }\n }\n return [snapshot, newContent];\n case 'thread.message.in_progress':\n case 'thread.message.completed':\n case 'thread.message.incomplete':\n //No changes on other thread events\n if (snapshot) {\n return [snapshot, newContent];\n }\n else {\n throw Error('Received thread message event with no existing snapshot');\n }\n }\n throw Error('Tried to accumulate a non-message event');\n}, _AssistantStream_accumulateContent = function _AssistantStream_accumulateContent(contentElement, currentContent) {\n return _a.accumulateDelta(currentContent, contentElement);\n}, _AssistantStream_handleRun = function _AssistantStream_handleRun(event) {\n __classPrivateFieldSet(this, _AssistantStream_currentRunSnapshot, event.data, \"f\");\n switch (event.event) {\n case 'thread.run.created':\n break;\n case 'thread.run.queued':\n break;\n case 'thread.run.in_progress':\n break;\n case 'thread.run.requires_action':\n case 'thread.run.cancelled':\n case 'thread.run.failed':\n case 'thread.run.completed':\n case 'thread.run.expired':\n case 'thread.run.incomplete':\n __classPrivateFieldSet(this, _AssistantStream_finalRun, event.data, \"f\");\n if (__classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\")) {\n this._emit('toolCallDone', __classPrivateFieldGet(this, _AssistantStream_currentToolCall, \"f\"));\n __classPrivateFieldSet(this, _AssistantStream_currentToolCall, undefined, \"f\");\n }\n break;\n case 'thread.run.cancelling':\n break;\n }\n};\nfunction assertNever(_x) { }\n//# sourceMappingURL=AssistantStream.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../../core/resource.mjs\";\nimport * as StepsAPI from \"./steps.mjs\";\nimport { Steps, } from \"./steps.mjs\";\nimport { CursorPage } from \"../../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../../internal/headers.mjs\";\nimport { AssistantStream } from \"../../../../lib/AssistantStream.mjs\";\nimport { sleep } from \"../../../../internal/utils/sleep.mjs\";\nimport { path } from \"../../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Runs extends APIResource {\n constructor() {\n super(...arguments);\n this.steps = new StepsAPI.Steps(this._client);\n }\n create(threadID, params, options) {\n const { include, ...body } = params;\n return this._client.post(path `/threads/${threadID}/runs`, {\n query: { include },\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: params.stream ?? false,\n });\n }\n /**\n * Retrieves a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(runID, params, options) {\n const { thread_id } = params;\n return this._client.get(path `/threads/${thread_id}/runs/${runID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a run.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(runID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of runs belonging to a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n list(threadID, query = {}, options) {\n return this._client.getAPIList(path `/threads/${threadID}/runs`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Cancels a run that is `in_progress`.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n cancel(runID, params, options) {\n const { thread_id } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * A helper to create a run an poll for a terminal state. More information on Run\n * lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndPoll(threadId, body, options) {\n const run = await this.create(threadId, body, options);\n return await this.poll(run.id, { thread_id: threadId }, options);\n }\n /**\n * Create a Run stream\n *\n * @deprecated use `stream` instead\n */\n createAndStream(threadId, body, options) {\n return AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n /**\n * A helper to poll a run status until it reaches a terminal state. More\n * information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async poll(runId, params, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const { data: run, response } = await this.retrieve(runId, params, {\n ...options,\n headers: { ...options?.headers, ...headers },\n }).withResponse();\n switch (run.status) {\n //If we are in any sort of intermediate state we poll\n case 'queued':\n case 'in_progress':\n case 'cancelling':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n //We return the run in any terminal state.\n case 'requires_action':\n case 'incomplete':\n case 'cancelled':\n case 'completed':\n case 'failed':\n case 'expired':\n return run;\n }\n }\n }\n /**\n * Create a Run stream\n */\n stream(threadId, body, options) {\n return AssistantStream.createAssistantStream(threadId, this._client.beta.threads.runs, body, options);\n }\n submitToolOutputs(runID, params, options) {\n const { thread_id, ...body } = params;\n return this._client.post(path `/threads/${thread_id}/runs/${runID}/submit_tool_outputs`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: params.stream ?? false,\n });\n }\n /**\n * A helper to submit a tool output to a run and poll for a terminal run state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async submitToolOutputsAndPoll(runId, params, options) {\n const run = await this.submitToolOutputs(runId, params, options);\n return await this.poll(run.id, params, options);\n }\n /**\n * Submit the tool outputs from a previous run and stream the run to a terminal\n * state. More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n submitToolOutputsStream(runId, params, options) {\n return AssistantStream.createToolAssistantStream(runId, this._client.beta.threads.runs, params, options);\n }\n}\nRuns.Steps = Steps;\n//# sourceMappingURL=runs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as MessagesAPI from \"./messages.mjs\";\nimport { Messages, } from \"./messages.mjs\";\nimport * as RunsAPI from \"./runs/runs.mjs\";\nimport { Runs, } from \"./runs/runs.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { AssistantStream } from \"../../../lib/AssistantStream.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\n/**\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\nexport class Threads extends APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n this.messages = new MessagesAPI.Messages(this._client);\n }\n /**\n * Create a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n create(body = {}, options) {\n return this._client.post('/threads', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n retrieve(threadID, options) {\n return this._client.get(path `/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n update(threadID, body, options) {\n return this._client.post(path `/threads/${threadID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a thread.\n *\n * @deprecated The Assistants API is deprecated in favor of the Responses API\n */\n delete(threadID, options) {\n return this._client.delete(path `/threads/${threadID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n createAndRun(body, options) {\n return this._client.post('/threads/runs', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n stream: body.stream ?? false,\n });\n }\n /**\n * A helper to create a thread, start a run and then poll for a terminal state.\n * More information on Run lifecycles can be found here:\n * https://platform.openai.com/docs/assistants/how-it-works/runs-and-run-steps\n */\n async createAndRunPoll(body, options) {\n const run = await this.createAndRun(body, options);\n return await this.runs.poll(run.id, { thread_id: run.thread_id }, options);\n }\n /**\n * Create a thread and stream the run back\n */\n createAndRunStream(body, options) {\n return AssistantStream.createThreadAssistantStream(body, this._client.beta.threads, options);\n }\n}\nThreads.Runs = Runs;\nThreads.Messages = Messages;\n//# sourceMappingURL=threads.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as AssistantsAPI from \"./assistants.mjs\";\nimport { Assistants, } from \"./assistants.mjs\";\nimport * as RealtimeAPI from \"./realtime/realtime.mjs\";\nimport { Realtime, } from \"./realtime/realtime.mjs\";\nimport * as ChatKitAPI from \"./chatkit/chatkit.mjs\";\nimport { ChatKit } from \"./chatkit/chatkit.mjs\";\nimport * as ThreadsAPI from \"./threads/threads.mjs\";\nimport { Threads, } from \"./threads/threads.mjs\";\nexport class Beta extends APIResource {\n constructor() {\n super(...arguments);\n this.realtime = new RealtimeAPI.Realtime(this._client);\n this.chatkit = new ChatKitAPI.ChatKit(this._client);\n this.assistants = new AssistantsAPI.Assistants(this._client);\n this.threads = new ThreadsAPI.Threads(this._client);\n }\n}\nBeta.Realtime = Realtime;\nBeta.ChatKit = ChatKit;\nBeta.Assistants = Assistants;\nBeta.Threads = Threads;\n//# sourceMappingURL=beta.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class Completions extends APIResource {\n create(body, options) {\n return this._client.post('/completions', { body, ...options, stream: body.stream ?? false });\n }\n}\n//# sourceMappingURL=completions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Content extends APIResource {\n /**\n * Retrieve Container File Content\n */\n retrieve(fileID, params, options) {\n const { container_id } = params;\n return this._client.get(path `/containers/${container_id}/files/${fileID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n}\n//# sourceMappingURL=content.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as ContentAPI from \"./content.mjs\";\nimport { Content } from \"./content.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../../internal/headers.mjs\";\nimport { multipartFormRequestOptions } from \"../../../internal/uploads.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n constructor() {\n super(...arguments);\n this.content = new ContentAPI.Content(this._client);\n }\n /**\n * Create a Container File\n *\n * You can send either a multipart/form-data request with the raw file content, or\n * a JSON request with a file ID.\n */\n create(containerID, body, options) {\n return this._client.post(path `/containers/${containerID}/files`, multipartFormRequestOptions({ body, ...options }, this._client));\n }\n /**\n * Retrieve Container File\n */\n retrieve(fileID, params, options) {\n const { container_id } = params;\n return this._client.get(path `/containers/${container_id}/files/${fileID}`, options);\n }\n /**\n * List Container files\n */\n list(containerID, query = {}, options) {\n return this._client.getAPIList(path `/containers/${containerID}/files`, (CursorPage), {\n query,\n ...options,\n });\n }\n /**\n * Delete Container File\n */\n delete(fileID, params, options) {\n const { container_id } = params;\n return this._client.delete(path `/containers/${container_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\nFiles.Content = Content;\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as FilesAPI from \"./files/files.mjs\";\nimport { Files, } from \"./files/files.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Containers extends APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n }\n /**\n * Create Container\n */\n create(body, options) {\n return this._client.post('/containers', { body, ...options });\n }\n /**\n * Retrieve Container\n */\n retrieve(containerID, options) {\n return this._client.get(path `/containers/${containerID}`, options);\n }\n /**\n * List Containers\n */\n list(query = {}, options) {\n return this._client.getAPIList('/containers', (CursorPage), { query, ...options });\n }\n /**\n * Delete Container\n */\n delete(containerID, options) {\n return this._client.delete(path `/containers/${containerID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\nContainers.Files = Files;\n//# sourceMappingURL=containers.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { ConversationCursorPage, } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Items extends APIResource {\n /**\n * Create items in a conversation with the given ID.\n */\n create(conversationID, params, options) {\n const { include, ...body } = params;\n return this._client.post(path `/conversations/${conversationID}/items`, {\n query: { include },\n body,\n ...options,\n });\n }\n /**\n * Get a single item from a conversation with the given IDs.\n */\n retrieve(itemID, params, options) {\n const { conversation_id, ...query } = params;\n return this._client.get(path `/conversations/${conversation_id}/items/${itemID}`, { query, ...options });\n }\n /**\n * List all items for a conversation with the given ID.\n */\n list(conversationID, query = {}, options) {\n return this._client.getAPIList(path `/conversations/${conversationID}/items`, (ConversationCursorPage), { query, ...options });\n }\n /**\n * Delete an item from a conversation with the given IDs.\n */\n delete(itemID, params, options) {\n const { conversation_id } = params;\n return this._client.delete(path `/conversations/${conversation_id}/items/${itemID}`, options);\n }\n}\n//# sourceMappingURL=items.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as ItemsAPI from \"./items.mjs\";\nimport { Items, } from \"./items.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Conversations extends APIResource {\n constructor() {\n super(...arguments);\n this.items = new ItemsAPI.Items(this._client);\n }\n /**\n * Create a conversation.\n */\n create(body = {}, options) {\n return this._client.post('/conversations', { body, ...options });\n }\n /**\n * Get a conversation\n */\n retrieve(conversationID, options) {\n return this._client.get(path `/conversations/${conversationID}`, options);\n }\n /**\n * Update a conversation\n */\n update(conversationID, body, options) {\n return this._client.post(path `/conversations/${conversationID}`, { body, ...options });\n }\n /**\n * Delete a conversation. Items in the conversation will not be deleted.\n */\n delete(conversationID, options) {\n return this._client.delete(path `/conversations/${conversationID}`, options);\n }\n}\nConversations.Items = Items;\n//# sourceMappingURL=conversations.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { loggerFor, toFloat32Array } from \"../internal/utils.mjs\";\nexport class Embeddings extends APIResource {\n /**\n * Creates an embedding vector representing the input text.\n *\n * @example\n * ```ts\n * const createEmbeddingResponse =\n * await client.embeddings.create({\n * input: 'The quick brown fox jumped over the lazy dog',\n * model: 'text-embedding-3-small',\n * });\n * ```\n */\n create(body, options) {\n const hasUserProvidedEncodingFormat = !!body.encoding_format;\n // No encoding_format specified, defaulting to base64 for performance reasons\n // See https://github.com/openai/openai-node/pull/1312\n let encoding_format = hasUserProvidedEncodingFormat ? body.encoding_format : 'base64';\n if (hasUserProvidedEncodingFormat) {\n loggerFor(this._client).debug('embeddings/user defined encoding_format:', body.encoding_format);\n }\n const response = this._client.post('/embeddings', {\n body: {\n ...body,\n encoding_format: encoding_format,\n },\n ...options,\n });\n // if the user specified an encoding_format, return the response as-is\n if (hasUserProvidedEncodingFormat) {\n return response;\n }\n // in this stage, we are sure the user did not specify an encoding_format\n // and we defaulted to base64 for performance reasons\n // we are sure then that the response is base64 encoded, let's decode it\n // the returned result will be a float32 array since this is OpenAI API's default encoding\n loggerFor(this._client).debug('embeddings/decoding base64 embeddings from base64');\n return response._thenUnwrap((response) => {\n if (response && response.data) {\n response.data.forEach((embeddingBase64Obj) => {\n const embeddingBase64Str = embeddingBase64Obj.embedding;\n embeddingBase64Obj.embedding = toFloat32Array(embeddingBase64Str);\n });\n }\n return response;\n });\n }\n}\n//# sourceMappingURL=embeddings.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class OutputItems extends APIResource {\n /**\n * Get an evaluation run output item by ID.\n */\n retrieve(outputItemID, params, options) {\n const { eval_id, run_id } = params;\n return this._client.get(path `/evals/${eval_id}/runs/${run_id}/output_items/${outputItemID}`, options);\n }\n /**\n * Get a list of output items for an evaluation run.\n */\n list(runID, params, options) {\n const { eval_id, ...query } = params;\n return this._client.getAPIList(path `/evals/${eval_id}/runs/${runID}/output_items`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=output-items.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as OutputItemsAPI from \"./output-items.mjs\";\nimport { OutputItems, } from \"./output-items.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Runs extends APIResource {\n constructor() {\n super(...arguments);\n this.outputItems = new OutputItemsAPI.OutputItems(this._client);\n }\n /**\n * Kicks off a new run for a given evaluation, specifying the data source, and what\n * model configuration to use to test. The datasource will be validated against the\n * schema specified in the config of the evaluation.\n */\n create(evalID, body, options) {\n return this._client.post(path `/evals/${evalID}/runs`, { body, ...options });\n }\n /**\n * Get an evaluation run by ID.\n */\n retrieve(runID, params, options) {\n const { eval_id } = params;\n return this._client.get(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n /**\n * Get a list of runs for an evaluation.\n */\n list(evalID, query = {}, options) {\n return this._client.getAPIList(path `/evals/${evalID}/runs`, (CursorPage), {\n query,\n ...options,\n });\n }\n /**\n * Delete an eval run.\n */\n delete(runID, params, options) {\n const { eval_id } = params;\n return this._client.delete(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n /**\n * Cancel an ongoing evaluation run.\n */\n cancel(runID, params, options) {\n const { eval_id } = params;\n return this._client.post(path `/evals/${eval_id}/runs/${runID}`, options);\n }\n}\nRuns.OutputItems = OutputItems;\n//# sourceMappingURL=runs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as RunsAPI from \"./runs/runs.mjs\";\nimport { Runs, } from \"./runs/runs.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Evals extends APIResource {\n constructor() {\n super(...arguments);\n this.runs = new RunsAPI.Runs(this._client);\n }\n /**\n * Create the structure of an evaluation that can be used to test a model's\n * performance. An evaluation is a set of testing criteria and the config for a\n * data source, which dictates the schema of the data used in the evaluation. After\n * creating an evaluation, you can run it on different models and model parameters.\n * We support several types of graders and datasources. For more information, see\n * the [Evals guide](https://platform.openai.com/docs/guides/evals).\n */\n create(body, options) {\n return this._client.post('/evals', { body, ...options });\n }\n /**\n * Get an evaluation by ID.\n */\n retrieve(evalID, options) {\n return this._client.get(path `/evals/${evalID}`, options);\n }\n /**\n * Update certain properties of an evaluation.\n */\n update(evalID, body, options) {\n return this._client.post(path `/evals/${evalID}`, { body, ...options });\n }\n /**\n * List evaluations for a project.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/evals', (CursorPage), { query, ...options });\n }\n /**\n * Delete an evaluation.\n */\n delete(evalID, options) {\n return this._client.delete(path `/evals/${evalID}`, options);\n }\n}\nEvals.Runs = Runs;\n//# sourceMappingURL=evals.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { CursorPage } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { sleep } from \"../internal/utils/sleep.mjs\";\nimport { APIConnectionTimeoutError } from \"../error.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * Upload a file that can be used across various endpoints. Individual files can be\n * up to 512 MB, and the size of all files uploaded by one organization can be up\n * to 1 TB.\n *\n * - The Assistants API supports files up to 2 million tokens and of specific file\n * types. See the\n * [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools)\n * for details.\n * - The Fine-tuning API only supports `.jsonl` files. The input also has certain\n * required formats for fine-tuning\n * [chat](https://platform.openai.com/docs/api-reference/fine-tuning/chat-input)\n * or\n * [completions](https://platform.openai.com/docs/api-reference/fine-tuning/completions-input)\n * models.\n * - The Batch API only supports `.jsonl` files up to 200 MB in size. The input\n * also has a specific required\n * [format](https://platform.openai.com/docs/api-reference/batch/request-input).\n *\n * Please [contact us](https://help.openai.com/) if you need to increase these\n * storage limits.\n */\n create(body, options) {\n return this._client.post('/files', multipartFormRequestOptions({ body, ...options }, this._client));\n }\n /**\n * Returns information about a specific file.\n */\n retrieve(fileID, options) {\n return this._client.get(path `/files/${fileID}`, options);\n }\n /**\n * Returns a list of files.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/files', (CursorPage), { query, ...options });\n }\n /**\n * Delete a file and remove it from all vector stores.\n */\n delete(fileID, options) {\n return this._client.delete(path `/files/${fileID}`, options);\n }\n /**\n * Returns the contents of the specified file.\n */\n content(fileID, options) {\n return this._client.get(path `/files/${fileID}/content`, {\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n /**\n * Waits for the given file to be processed, default timeout is 30 mins.\n */\n async waitForProcessing(id, { pollInterval = 5000, maxWait = 30 * 60 * 1000 } = {}) {\n const TERMINAL_STATES = new Set(['processed', 'error', 'deleted']);\n const start = Date.now();\n let file = await this.retrieve(id);\n while (!file.status || !TERMINAL_STATES.has(file.status)) {\n await sleep(pollInterval);\n file = await this.retrieve(id);\n if (Date.now() - start > maxWait) {\n throw new APIConnectionTimeoutError({\n message: `Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`,\n });\n }\n }\n return file;\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class Methods extends APIResource {\n}\n//# sourceMappingURL=methods.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nexport class Graders extends APIResource {\n /**\n * Run a grader.\n *\n * @example\n * ```ts\n * const response = await client.fineTuning.alpha.graders.run({\n * grader: {\n * input: 'input',\n * name: 'name',\n * operation: 'eq',\n * reference: 'reference',\n * type: 'string_check',\n * },\n * model_sample: 'model_sample',\n * });\n * ```\n */\n run(body, options) {\n return this._client.post('/fine_tuning/alpha/graders/run', { body, ...options });\n }\n /**\n * Validate a grader.\n *\n * @example\n * ```ts\n * const response =\n * await client.fineTuning.alpha.graders.validate({\n * grader: {\n * input: 'input',\n * name: 'name',\n * operation: 'eq',\n * reference: 'reference',\n * type: 'string_check',\n * },\n * });\n * ```\n */\n validate(body, options) {\n return this._client.post('/fine_tuning/alpha/graders/validate', { body, ...options });\n }\n}\n//# sourceMappingURL=graders.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as GradersAPI from \"./graders.mjs\";\nimport { Graders, } from \"./graders.mjs\";\nexport class Alpha extends APIResource {\n constructor() {\n super(...arguments);\n this.graders = new GradersAPI.Graders(this._client);\n }\n}\nAlpha.Graders = Graders;\n//# sourceMappingURL=alpha.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { Page } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Permissions extends APIResource {\n /**\n * **NOTE:** Calling this endpoint requires an [admin API key](../admin-api-keys).\n *\n * This enables organization owners to share fine-tuned models with other projects\n * in their organization.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const permissionCreateResponse of client.fineTuning.checkpoints.permissions.create(\n * 'ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd',\n * { project_ids: ['string'] },\n * )) {\n * // ...\n * }\n * ```\n */\n create(fineTunedModelCheckpoint, body, options) {\n return this._client.getAPIList(path `/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`, (Page), { body, method: 'post', ...options });\n }\n /**\n * **NOTE:** This endpoint requires an [admin API key](../admin-api-keys).\n *\n * Organization owners can use this endpoint to view all permissions for a\n * fine-tuned model checkpoint.\n *\n * @example\n * ```ts\n * const permission =\n * await client.fineTuning.checkpoints.permissions.retrieve(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n retrieve(fineTunedModelCheckpoint, query = {}, options) {\n return this._client.get(path `/fine_tuning/checkpoints/${fineTunedModelCheckpoint}/permissions`, {\n query,\n ...options,\n });\n }\n /**\n * **NOTE:** This endpoint requires an [admin API key](../admin-api-keys).\n *\n * Organization owners can use this endpoint to delete a permission for a\n * fine-tuned model checkpoint.\n *\n * @example\n * ```ts\n * const permission =\n * await client.fineTuning.checkpoints.permissions.delete(\n * 'cp_zc4Q7MP6XxulcVzj4MZdwsAB',\n * {\n * fine_tuned_model_checkpoint:\n * 'ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd',\n * },\n * );\n * ```\n */\n delete(permissionID, params, options) {\n const { fine_tuned_model_checkpoint } = params;\n return this._client.delete(path `/fine_tuning/checkpoints/${fine_tuned_model_checkpoint}/permissions/${permissionID}`, options);\n }\n}\n//# sourceMappingURL=permissions.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as PermissionsAPI from \"./permissions.mjs\";\nimport { Permissions, } from \"./permissions.mjs\";\nexport class Checkpoints extends APIResource {\n constructor() {\n super(...arguments);\n this.permissions = new PermissionsAPI.Permissions(this._client);\n }\n}\nCheckpoints.Permissions = Permissions;\n//# sourceMappingURL=checkpoints.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Checkpoints extends APIResource {\n /**\n * List checkpoints for a fine-tuning job.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJobCheckpoint of client.fineTuning.jobs.checkpoints.list(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * )) {\n * // ...\n * }\n * ```\n */\n list(fineTuningJobID, query = {}, options) {\n return this._client.getAPIList(path `/fine_tuning/jobs/${fineTuningJobID}/checkpoints`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=checkpoints.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../../core/resource.mjs\";\nimport * as CheckpointsAPI from \"./checkpoints.mjs\";\nimport { Checkpoints, } from \"./checkpoints.mjs\";\nimport { CursorPage } from \"../../../core/pagination.mjs\";\nimport { path } from \"../../../internal/utils/path.mjs\";\nexport class Jobs extends APIResource {\n constructor() {\n super(...arguments);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n }\n /**\n * Creates a fine-tuning job which begins the process of creating a new model from\n * a given dataset.\n *\n * Response includes details of the enqueued job including job status and the name\n * of the fine-tuned models once complete.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/model-optimization)\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.create({\n * model: 'gpt-4o-mini',\n * training_file: 'file-abc123',\n * });\n * ```\n */\n create(body, options) {\n return this._client.post('/fine_tuning/jobs', { body, ...options });\n }\n /**\n * Get info about a fine-tuning job.\n *\n * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/model-optimization)\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.retrieve(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n retrieve(fineTuningJobID, options) {\n return this._client.get(path `/fine_tuning/jobs/${fineTuningJobID}`, options);\n }\n /**\n * List your organization's fine-tuning jobs\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJob of client.fineTuning.jobs.list()) {\n * // ...\n * }\n * ```\n */\n list(query = {}, options) {\n return this._client.getAPIList('/fine_tuning/jobs', (CursorPage), { query, ...options });\n }\n /**\n * Immediately cancel a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.cancel(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n cancel(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/cancel`, options);\n }\n /**\n * Get status updates for a fine-tuning job.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const fineTuningJobEvent of client.fineTuning.jobs.listEvents(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * )) {\n * // ...\n * }\n * ```\n */\n listEvents(fineTuningJobID, query = {}, options) {\n return this._client.getAPIList(path `/fine_tuning/jobs/${fineTuningJobID}/events`, (CursorPage), { query, ...options });\n }\n /**\n * Pause a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.pause(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n pause(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/pause`, options);\n }\n /**\n * Resume a fine-tune job.\n *\n * @example\n * ```ts\n * const fineTuningJob = await client.fineTuning.jobs.resume(\n * 'ft-AF1WoRqd3aJAHsqc9NY7iL8F',\n * );\n * ```\n */\n resume(fineTuningJobID, options) {\n return this._client.post(path `/fine_tuning/jobs/${fineTuningJobID}/resume`, options);\n }\n}\nJobs.Checkpoints = Checkpoints;\n//# sourceMappingURL=jobs.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as MethodsAPI from \"./methods.mjs\";\nimport { Methods, } from \"./methods.mjs\";\nimport * as AlphaAPI from \"./alpha/alpha.mjs\";\nimport { Alpha } from \"./alpha/alpha.mjs\";\nimport * as CheckpointsAPI from \"./checkpoints/checkpoints.mjs\";\nimport { Checkpoints } from \"./checkpoints/checkpoints.mjs\";\nimport * as JobsAPI from \"./jobs/jobs.mjs\";\nimport { Jobs, } from \"./jobs/jobs.mjs\";\nexport class FineTuning extends APIResource {\n constructor() {\n super(...arguments);\n this.methods = new MethodsAPI.Methods(this._client);\n this.jobs = new JobsAPI.Jobs(this._client);\n this.checkpoints = new CheckpointsAPI.Checkpoints(this._client);\n this.alpha = new AlphaAPI.Alpha(this._client);\n }\n}\nFineTuning.Methods = Methods;\nFineTuning.Jobs = Jobs;\nFineTuning.Checkpoints = Checkpoints;\nFineTuning.Alpha = Alpha;\n//# sourceMappingURL=fine-tuning.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class GraderModels extends APIResource {\n}\n//# sourceMappingURL=grader-models.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as GraderModelsAPI from \"./grader-models.mjs\";\nimport { GraderModels, } from \"./grader-models.mjs\";\nexport class Graders extends APIResource {\n constructor() {\n super(...arguments);\n this.graderModels = new GraderModelsAPI.GraderModels(this._client);\n }\n}\nGraders.GraderModels = GraderModels;\n//# sourceMappingURL=graders.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../internal/uploads.mjs\";\nexport class Images extends APIResource {\n /**\n * Creates a variation of a given image. This endpoint only supports `dall-e-2`.\n *\n * @example\n * ```ts\n * const imagesResponse = await client.images.createVariation({\n * image: fs.createReadStream('otter.png'),\n * });\n * ```\n */\n createVariation(body, options) {\n return this._client.post('/images/variations', multipartFormRequestOptions({ body, ...options }, this._client));\n }\n edit(body, options) {\n return this._client.post('/images/edits', multipartFormRequestOptions({ body, ...options, stream: body.stream ?? false }, this._client));\n }\n generate(body, options) {\n return this._client.post('/images/generations', { body, ...options, stream: body.stream ?? false });\n }\n}\n//# sourceMappingURL=images.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { Page } from \"../core/pagination.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Models extends APIResource {\n /**\n * Retrieves a model instance, providing basic information about the model such as\n * the owner and permissioning.\n */\n retrieve(model, options) {\n return this._client.get(path `/models/${model}`, options);\n }\n /**\n * Lists the currently available models, and provides basic information about each\n * one such as the owner and availability.\n */\n list(options) {\n return this._client.getAPIList('/models', (Page), options);\n }\n /**\n * Delete a fine-tuned model. You must have the Owner role in your organization to\n * delete a model.\n */\n delete(model, options) {\n return this._client.delete(path `/models/${model}`, options);\n }\n}\n//# sourceMappingURL=models.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nexport class Moderations extends APIResource {\n /**\n * Classifies if text and/or image inputs are potentially harmful. Learn more in\n * the [moderation guide](https://platform.openai.com/docs/guides/moderation).\n */\n create(body, options) {\n return this._client.post('/moderations', { body, ...options });\n }\n}\n//# sourceMappingURL=moderations.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Calls extends APIResource {\n /**\n * Accept an incoming SIP call and configure the realtime session that will handle\n * it.\n *\n * @example\n * ```ts\n * await client.realtime.calls.accept('call_id', {\n * type: 'realtime',\n * });\n * ```\n */\n accept(callID, body, options) {\n return this._client.post(path `/realtime/calls/${callID}/accept`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * End an active Realtime API call, whether it was initiated over SIP or WebRTC.\n *\n * @example\n * ```ts\n * await client.realtime.calls.hangup('call_id');\n * ```\n */\n hangup(callID, options) {\n return this._client.post(path `/realtime/calls/${callID}/hangup`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * Transfer an active SIP call to a new destination using the SIP REFER verb.\n *\n * @example\n * ```ts\n * await client.realtime.calls.refer('call_id', {\n * target_uri: 'tel:+14155550123',\n * });\n * ```\n */\n refer(callID, body, options) {\n return this._client.post(path `/realtime/calls/${callID}/refer`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n /**\n * Decline an incoming SIP call by returning a SIP status code to the caller.\n *\n * @example\n * ```ts\n * await client.realtime.calls.reject('call_id');\n * ```\n */\n reject(callID, body = {}, options) {\n return this._client.post(path `/realtime/calls/${callID}/reject`, {\n body,\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n}\n//# sourceMappingURL=calls.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class ClientSecrets extends APIResource {\n /**\n * Create a Realtime client secret with an associated session configuration.\n *\n * @example\n * ```ts\n * const clientSecret =\n * await client.realtime.clientSecrets.create();\n * ```\n */\n create(body, options) {\n return this._client.post('/realtime/client_secrets', { body, ...options });\n }\n}\n//# sourceMappingURL=client-secrets.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as CallsAPI from \"./calls.mjs\";\nimport { Calls } from \"./calls.mjs\";\nimport * as ClientSecretsAPI from \"./client-secrets.mjs\";\nimport { ClientSecrets, } from \"./client-secrets.mjs\";\nexport class Realtime extends APIResource {\n constructor() {\n super(...arguments);\n this.clientSecrets = new ClientSecretsAPI.ClientSecrets(this._client);\n this.calls = new CallsAPI.Calls(this._client);\n }\n}\nRealtime.ClientSecrets = ClientSecrets;\nRealtime.Calls = Calls;\n//# sourceMappingURL=realtime.mjs.map","import { OpenAIError } from \"../error.mjs\";\nimport { isAutoParsableResponseFormat } from \"../lib/parser.mjs\";\nexport function maybeParseResponse(response, params) {\n if (!params || !hasAutoParseableInput(params)) {\n return {\n ...response,\n output_parsed: null,\n output: response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: null,\n };\n }\n if (item.type === 'message') {\n return {\n ...item,\n content: item.content.map((content) => ({\n ...content,\n parsed: null,\n })),\n };\n }\n else {\n return item;\n }\n }),\n };\n }\n return parseResponse(response, params);\n}\nexport function parseResponse(response, params) {\n const output = response.output.map((item) => {\n if (item.type === 'function_call') {\n return {\n ...item,\n parsed_arguments: parseToolCall(params, item),\n };\n }\n if (item.type === 'message') {\n const content = item.content.map((content) => {\n if (content.type === 'output_text') {\n return {\n ...content,\n parsed: parseTextFormat(params, content.text),\n };\n }\n return content;\n });\n return {\n ...item,\n content,\n };\n }\n return item;\n });\n const parsed = Object.assign({}, response, { output });\n if (!Object.getOwnPropertyDescriptor(response, 'output_text')) {\n addOutputText(parsed);\n }\n Object.defineProperty(parsed, 'output_parsed', {\n enumerable: true,\n get() {\n for (const output of parsed.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text' && content.parsed !== null) {\n return content.parsed;\n }\n }\n }\n return null;\n },\n });\n return parsed;\n}\nfunction parseTextFormat(params, content) {\n if (params.text?.format?.type !== 'json_schema') {\n return null;\n }\n if ('$parseRaw' in params.text?.format) {\n const text_format = params.text?.format;\n return text_format.$parseRaw(content);\n }\n return JSON.parse(content);\n}\nexport function hasAutoParseableInput(params) {\n if (isAutoParsableResponseFormat(params.text?.format)) {\n return true;\n }\n return false;\n}\nexport function makeParseableResponseTool(tool, { parser, callback, }) {\n const obj = { ...tool };\n Object.defineProperties(obj, {\n $brand: {\n value: 'auto-parseable-tool',\n enumerable: false,\n },\n $parseRaw: {\n value: parser,\n enumerable: false,\n },\n $callback: {\n value: callback,\n enumerable: false,\n },\n });\n return obj;\n}\nexport function isAutoParsableTool(tool) {\n return tool?.['$brand'] === 'auto-parseable-tool';\n}\nfunction getInputToolByName(input_tools, name) {\n return input_tools.find((tool) => tool.type === 'function' && tool.name === name);\n}\nfunction parseToolCall(params, toolCall) {\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return {\n ...toolCall,\n ...toolCall,\n parsed_arguments: isAutoParsableTool(inputTool) ? inputTool.$parseRaw(toolCall.arguments)\n : inputTool?.strict ? JSON.parse(toolCall.arguments)\n : null,\n };\n}\nexport function shouldParseToolCall(params, toolCall) {\n if (!params) {\n return false;\n }\n const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);\n return isAutoParsableTool(inputTool) || inputTool?.strict || false;\n}\nexport function validateInputTools(tools) {\n for (const tool of tools ?? []) {\n if (tool.type !== 'function') {\n throw new OpenAIError(`Currently only \\`function\\` tool types support auto-parsing; Received \\`${tool.type}\\``);\n }\n if (tool.function.strict !== true) {\n throw new OpenAIError(`The \\`${tool.function.name}\\` tool is not marked with \\`strict: true\\`. Only strict function tools can be auto-parsed`);\n }\n }\n}\nexport function addOutputText(rsp) {\n const texts = [];\n for (const output of rsp.output) {\n if (output.type !== 'message') {\n continue;\n }\n for (const content of output.content) {\n if (content.type === 'output_text') {\n texts.push(content.text);\n }\n }\n }\n rsp.output_text = texts.join('');\n}\n//# sourceMappingURL=ResponsesParser.mjs.map","var _ResponseStream_instances, _ResponseStream_params, _ResponseStream_currentResponseSnapshot, _ResponseStream_finalResponse, _ResponseStream_beginRequest, _ResponseStream_addEvent, _ResponseStream_endRequest, _ResponseStream_accumulateResponse;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"../../internal/tslib.mjs\";\nimport { APIUserAbortError, OpenAIError } from \"../../error.mjs\";\nimport { EventStream } from \"../EventStream.mjs\";\nimport { maybeParseResponse } from \"../ResponsesParser.mjs\";\nexport class ResponseStream extends EventStream {\n constructor(params) {\n super();\n _ResponseStream_instances.add(this);\n _ResponseStream_params.set(this, void 0);\n _ResponseStream_currentResponseSnapshot.set(this, void 0);\n _ResponseStream_finalResponse.set(this, void 0);\n __classPrivateFieldSet(this, _ResponseStream_params, params, \"f\");\n }\n static createResponse(client, params, options) {\n const runner = new ResponseStream(params);\n runner._run(() => runner._createOrRetrieveResponse(client, params, {\n ...options,\n headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' },\n }));\n return runner;\n }\n async _createOrRetrieveResponse(client, params, options) {\n const signal = options?.signal;\n if (signal) {\n if (signal.aborted)\n this.controller.abort();\n signal.addEventListener('abort', () => this.controller.abort());\n }\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_beginRequest).call(this);\n let stream;\n let starting_after = null;\n if ('response_id' in params) {\n stream = await client.responses.retrieve(params.response_id, { stream: true }, { ...options, signal: this.controller.signal, stream: true });\n starting_after = params.starting_after ?? null;\n }\n else {\n stream = await client.responses.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });\n }\n this._connected();\n for await (const event of stream) {\n __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_addEvent).call(this, event, starting_after);\n }\n if (stream.controller.signal?.aborted) {\n throw new APIUserAbortError();\n }\n return __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_endRequest).call(this);\n }\n [(_ResponseStream_params = new WeakMap(), _ResponseStream_currentResponseSnapshot = new WeakMap(), _ResponseStream_finalResponse = new WeakMap(), _ResponseStream_instances = new WeakSet(), _ResponseStream_beginRequest = function _ResponseStream_beginRequest() {\n if (this.ended)\n return;\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n }, _ResponseStream_addEvent = function _ResponseStream_addEvent(event, starting_after) {\n if (this.ended)\n return;\n const maybeEmit = (name, event) => {\n if (starting_after == null || event.sequence_number > starting_after) {\n this._emit(name, event);\n }\n };\n const response = __classPrivateFieldGet(this, _ResponseStream_instances, \"m\", _ResponseStream_accumulateResponse).call(this, event);\n maybeEmit('event', event);\n switch (event.type) {\n case 'response.output_text.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n maybeEmit('response.output_text.delta', {\n ...event,\n snapshot: content.text,\n });\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = response.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n maybeEmit('response.function_call_arguments.delta', {\n ...event,\n snapshot: output.arguments,\n });\n }\n break;\n }\n default:\n maybeEmit(event.type, event);\n break;\n }\n }, _ResponseStream_endRequest = function _ResponseStream_endRequest() {\n if (this.ended) {\n throw new OpenAIError(`stream has ended, this shouldn't happen`);\n }\n const snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n throw new OpenAIError(`request ended without sending any events`);\n }\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, undefined, \"f\");\n const parsedResponse = finalizeResponse(snapshot, __classPrivateFieldGet(this, _ResponseStream_params, \"f\"));\n __classPrivateFieldSet(this, _ResponseStream_finalResponse, parsedResponse, \"f\");\n return parsedResponse;\n }, _ResponseStream_accumulateResponse = function _ResponseStream_accumulateResponse(event) {\n let snapshot = __classPrivateFieldGet(this, _ResponseStream_currentResponseSnapshot, \"f\");\n if (!snapshot) {\n if (event.type !== 'response.created') {\n throw new OpenAIError(`When snapshot hasn't been set yet, expected 'response.created' event, got ${event.type}`);\n }\n snapshot = __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n return snapshot;\n }\n switch (event.type) {\n case 'response.output_item.added': {\n snapshot.output.push(event.item);\n break;\n }\n case 'response.content_part.added': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n const type = output.type;\n const part = event.part;\n if (type === 'message' && part.type !== 'reasoning_text') {\n output.content.push(part);\n }\n else if (type === 'reasoning' && part.type === 'reasoning_text') {\n if (!output.content) {\n output.content = [];\n }\n output.content.push(part);\n }\n break;\n }\n case 'response.output_text.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'message') {\n const content = output.content[event.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'output_text') {\n throw new OpenAIError(`expected content to be 'output_text', got ${content.type}`);\n }\n content.text += event.delta;\n }\n break;\n }\n case 'response.function_call_arguments.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'function_call') {\n output.arguments += event.delta;\n }\n break;\n }\n case 'response.reasoning_text.delta': {\n const output = snapshot.output[event.output_index];\n if (!output) {\n throw new OpenAIError(`missing output at index ${event.output_index}`);\n }\n if (output.type === 'reasoning') {\n const content = output.content?.[event.content_index];\n if (!content) {\n throw new OpenAIError(`missing content at index ${event.content_index}`);\n }\n if (content.type !== 'reasoning_text') {\n throw new OpenAIError(`expected content to be 'reasoning_text', got ${content.type}`);\n }\n content.text += event.delta;\n }\n break;\n }\n case 'response.completed': {\n __classPrivateFieldSet(this, _ResponseStream_currentResponseSnapshot, event.response, \"f\");\n break;\n }\n }\n return snapshot;\n }, Symbol.asyncIterator)]() {\n const pushQueue = [];\n const readQueue = [];\n let done = false;\n this.on('event', (event) => {\n const reader = readQueue.shift();\n if (reader) {\n reader.resolve(event);\n }\n else {\n pushQueue.push(event);\n }\n });\n this.on('end', () => {\n done = true;\n for (const reader of readQueue) {\n reader.resolve(undefined);\n }\n readQueue.length = 0;\n });\n this.on('abort', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n this.on('error', (err) => {\n done = true;\n for (const reader of readQueue) {\n reader.reject(err);\n }\n readQueue.length = 0;\n });\n return {\n next: async () => {\n if (!pushQueue.length) {\n if (done) {\n return { value: undefined, done: true };\n }\n return new Promise((resolve, reject) => readQueue.push({ resolve, reject })).then((event) => (event ? { value: event, done: false } : { value: undefined, done: true }));\n }\n const event = pushQueue.shift();\n return { value: event, done: false };\n },\n return: async () => {\n this.abort();\n return { value: undefined, done: true };\n },\n };\n }\n /**\n * @returns a promise that resolves with the final Response, or rejects\n * if an error occurred or the stream ended prematurely without producing a REsponse.\n */\n async finalResponse() {\n await this.done();\n const response = __classPrivateFieldGet(this, _ResponseStream_finalResponse, \"f\");\n if (!response)\n throw new OpenAIError('stream ended without producing a ChatCompletion');\n return response;\n }\n}\nfunction finalizeResponse(snapshot, params) {\n return maybeParseResponse(snapshot, params);\n}\n//# sourceMappingURL=ResponseStream.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class InputItems extends APIResource {\n /**\n * Returns a list of input items for a given response.\n *\n * @example\n * ```ts\n * // Automatically fetches more pages as needed.\n * for await (const responseItem of client.responses.inputItems.list(\n * 'response_id',\n * )) {\n * // ...\n * }\n * ```\n */\n list(responseID, query = {}, options) {\n return this._client.getAPIList(path `/responses/${responseID}/input_items`, (CursorPage), { query, ...options });\n }\n}\n//# sourceMappingURL=input-items.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nexport class InputTokens extends APIResource {\n /**\n * Get input token counts\n *\n * @example\n * ```ts\n * const response = await client.responses.inputTokens.count();\n * ```\n */\n count(body = {}, options) {\n return this._client.post('/responses/input_tokens', { body, ...options });\n }\n}\n//# sourceMappingURL=input-tokens.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { parseResponse, addOutputText, } from \"../../lib/ResponsesParser.mjs\";\nimport { ResponseStream } from \"../../lib/responses/ResponseStream.mjs\";\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as InputItemsAPI from \"./input-items.mjs\";\nimport { InputItems } from \"./input-items.mjs\";\nimport * as InputTokensAPI from \"./input-tokens.mjs\";\nimport { InputTokens } from \"./input-tokens.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Responses extends APIResource {\n constructor() {\n super(...arguments);\n this.inputItems = new InputItemsAPI.InputItems(this._client);\n this.inputTokens = new InputTokensAPI.InputTokens(this._client);\n }\n create(body, options) {\n return this._client.post('/responses', { body, ...options, stream: body.stream ?? false })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n addOutputText(rsp);\n }\n return rsp;\n });\n }\n retrieve(responseID, query = {}, options) {\n return this._client.get(path `/responses/${responseID}`, {\n query,\n ...options,\n stream: query?.stream ?? false,\n })._thenUnwrap((rsp) => {\n if ('object' in rsp && rsp.object === 'response') {\n addOutputText(rsp);\n }\n return rsp;\n });\n }\n /**\n * Deletes a model response with the given ID.\n *\n * @example\n * ```ts\n * await client.responses.delete(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n delete(responseID, options) {\n return this._client.delete(path `/responses/${responseID}`, {\n ...options,\n headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),\n });\n }\n parse(body, options) {\n return this._client.responses\n .create(body, options)\n ._thenUnwrap((response) => parseResponse(response, body));\n }\n /**\n * Creates a model response stream\n */\n stream(body, options) {\n return ResponseStream.createResponse(this._client, body, options);\n }\n /**\n * Cancels a model response with the given ID. Only responses created with the\n * `background` parameter set to `true` can be cancelled.\n * [Learn more](https://platform.openai.com/docs/guides/background).\n *\n * @example\n * ```ts\n * const response = await client.responses.cancel(\n * 'resp_677efb5139a88190b512bc3fef8e535d',\n * );\n * ```\n */\n cancel(responseID, options) {\n return this._client.post(path `/responses/${responseID}/cancel`, options);\n }\n /**\n * Compact conversation\n *\n * @example\n * ```ts\n * const compactedResponse = await client.responses.compact();\n * ```\n */\n compact(body = {}, options) {\n return this._client.post('/responses/compact', { body, ...options });\n }\n}\nResponses.InputItems = InputItems;\nResponses.InputTokens = InputTokens;\n//# sourceMappingURL=responses.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { multipartFormRequestOptions } from \"../../internal/uploads.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Parts extends APIResource {\n /**\n * Adds a\n * [Part](https://platform.openai.com/docs/api-reference/uploads/part-object) to an\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object.\n * A Part represents a chunk of bytes from the file you are trying to upload.\n *\n * Each Part can be at most 64 MB, and you can add Parts until you hit the Upload\n * maximum of 8 GB.\n *\n * It is possible to add multiple Parts in parallel. You can decide the intended\n * order of the Parts when you\n * [complete the Upload](https://platform.openai.com/docs/api-reference/uploads/complete).\n */\n create(uploadID, body, options) {\n return this._client.post(path `/uploads/${uploadID}/parts`, multipartFormRequestOptions({ body, ...options }, this._client));\n }\n}\n//# sourceMappingURL=parts.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as PartsAPI from \"./parts.mjs\";\nimport { Parts } from \"./parts.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Uploads extends APIResource {\n constructor() {\n super(...arguments);\n this.parts = new PartsAPI.Parts(this._client);\n }\n /**\n * Creates an intermediate\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object) object\n * that you can add\n * [Parts](https://platform.openai.com/docs/api-reference/uploads/part-object) to.\n * Currently, an Upload can accept at most 8 GB in total and expires after an hour\n * after you create it.\n *\n * Once you complete the Upload, we will create a\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * contains all the parts you uploaded. This File is usable in the rest of our\n * platform as a regular File object.\n *\n * For certain `purpose` values, the correct `mime_type` must be specified. Please\n * refer to documentation for the\n * [supported MIME types for your use case](https://platform.openai.com/docs/assistants/tools/file-search#supported-files).\n *\n * For guidance on the proper filename extensions for each purpose, please follow\n * the documentation on\n * [creating a File](https://platform.openai.com/docs/api-reference/files/create).\n */\n create(body, options) {\n return this._client.post('/uploads', { body, ...options });\n }\n /**\n * Cancels the Upload. No Parts may be added after an Upload is cancelled.\n */\n cancel(uploadID, options) {\n return this._client.post(path `/uploads/${uploadID}/cancel`, options);\n }\n /**\n * Completes the\n * [Upload](https://platform.openai.com/docs/api-reference/uploads/object).\n *\n * Within the returned Upload object, there is a nested\n * [File](https://platform.openai.com/docs/api-reference/files/object) object that\n * is ready to use in the rest of the platform.\n *\n * You can specify the order of the Parts by passing in an ordered list of the Part\n * IDs.\n *\n * The number of bytes uploaded upon completion must match the number of bytes\n * initially specified when creating the Upload object. No Parts may be added after\n * an Upload is completed.\n */\n complete(uploadID, body, options) {\n return this._client.post(path `/uploads/${uploadID}/complete`, { body, ...options });\n }\n}\nUploads.Parts = Parts;\n//# sourceMappingURL=uploads.mjs.map","/**\n * Like `Promise.allSettled()` but throws an error if any promises are rejected.\n */\nexport const allSettledWithThrow = async (promises) => {\n const results = await Promise.allSettled(promises);\n const rejected = results.filter((result) => result.status === 'rejected');\n if (rejected.length) {\n for (const result of rejected) {\n console.error(result.reason);\n }\n throw new Error(`${rejected.length} promise(s) failed - see the above errors`);\n }\n // Note: TS was complaining about using `.filter().map()` here for some reason\n const values = [];\n for (const result of results) {\n if (result.status === 'fulfilled') {\n values.push(result.value);\n }\n }\n return values;\n};\n//# sourceMappingURL=Util.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { sleep } from \"../../internal/utils/sleep.mjs\";\nimport { allSettledWithThrow } from \"../../lib/Util.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class FileBatches extends APIResource {\n /**\n * Create a vector store file batch.\n */\n create(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}/file_batches`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store file batch.\n */\n retrieve(batchID, params, options) {\n const { vector_store_id } = params;\n return this._client.get(path `/vector_stores/${vector_store_id}/file_batches/${batchID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Cancel a vector store file batch. This attempts to cancel the processing of\n * files in this batch as soon as possible.\n */\n cancel(batchID, params, options) {\n const { vector_store_id } = params;\n return this._client.post(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/cancel`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Create a vector store batch and poll until all files have been processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const batch = await this.create(vectorStoreId, body);\n return await this.poll(vectorStoreId, batch.id, options);\n }\n /**\n * Returns a list of vector store files in a batch.\n */\n listFiles(batchID, params, options) {\n const { vector_store_id, ...query } = params;\n return this._client.getAPIList(path `/vector_stores/${vector_store_id}/file_batches/${batchID}/files`, (CursorPage), { query, ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]) });\n }\n /**\n * Wait for the given file batch to be processed.\n *\n * Note: this will return even if one of the files failed to process, you need to\n * check batch.file_counts.failed_count to handle this case.\n */\n async poll(vectorStoreID, batchID, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const { data: batch, response } = await this.retrieve(batchID, { vector_store_id: vectorStoreID }, {\n ...options,\n headers,\n }).withResponse();\n switch (batch.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n case 'failed':\n case 'cancelled':\n case 'completed':\n return batch;\n }\n }\n }\n /**\n * Uploads the given files concurrently and then creates a vector store file batch.\n *\n * The concurrency limit is configurable using the `maxConcurrency` parameter.\n */\n async uploadAndPoll(vectorStoreId, { files, fileIds = [] }, options) {\n if (files == null || files.length == 0) {\n throw new Error(`No \\`files\\` provided to process. If you've already uploaded files you should use \\`.createAndPoll()\\` instead`);\n }\n const configuredConcurrency = options?.maxConcurrency ?? 5;\n // We cap the number of workers at the number of files (so we don't start any unnecessary workers)\n const concurrencyLimit = Math.min(configuredConcurrency, files.length);\n const client = this._client;\n const fileIterator = files.values();\n const allFileIds = [...fileIds];\n // This code is based on this design. The libraries don't accommodate our environment limits.\n // https://stackoverflow.com/questions/40639432/what-is-the-best-way-to-limit-concurrency-when-using-es6s-promise-all\n async function processFiles(iterator) {\n for (let item of iterator) {\n const fileObj = await client.files.create({ file: item, purpose: 'assistants' }, options);\n allFileIds.push(fileObj.id);\n }\n }\n // Start workers to process results\n const workers = Array(concurrencyLimit).fill(fileIterator).map(processFiles);\n // Wait for all processing to complete.\n await allSettledWithThrow(workers);\n return await this.createAndPoll(vectorStoreId, {\n file_ids: allFileIds,\n });\n }\n}\n//# sourceMappingURL=file-batches.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport { CursorPage, Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { sleep } from \"../../internal/utils.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class Files extends APIResource {\n /**\n * Create a vector store file by attaching a\n * [File](https://platform.openai.com/docs/api-reference/files) to a\n * [vector store](https://platform.openai.com/docs/api-reference/vector-stores/object).\n */\n create(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}/files`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store file.\n */\n retrieve(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.get(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Update attributes on a vector store file.\n */\n update(fileID, params, options) {\n const { vector_store_id, ...body } = params;\n return this._client.post(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of vector store files.\n */\n list(vectorStoreID, query = {}, options) {\n return this._client.getAPIList(path `/vector_stores/${vectorStoreID}/files`, (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a vector store file. This will remove the file from the vector store but\n * the file itself will not be deleted. To delete the file, use the\n * [delete file](https://platform.openai.com/docs/api-reference/files/delete)\n * endpoint.\n */\n delete(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.delete(path `/vector_stores/${vector_store_id}/files/${fileID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Attach a file to the given vector store and wait for it to be processed.\n */\n async createAndPoll(vectorStoreId, body, options) {\n const file = await this.create(vectorStoreId, body, options);\n return await this.poll(vectorStoreId, file.id, options);\n }\n /**\n * Wait for the vector store file to finish processing.\n *\n * Note: this will return even if the file failed to process, you need to check\n * file.last_error and file.status to handle these cases\n */\n async poll(vectorStoreID, fileID, options) {\n const headers = buildHeaders([\n options?.headers,\n {\n 'X-Stainless-Poll-Helper': 'true',\n 'X-Stainless-Custom-Poll-Interval': options?.pollIntervalMs?.toString() ?? undefined,\n },\n ]);\n while (true) {\n const fileResponse = await this.retrieve(fileID, {\n vector_store_id: vectorStoreID,\n }, { ...options, headers }).withResponse();\n const file = fileResponse.data;\n switch (file.status) {\n case 'in_progress':\n let sleepInterval = 5000;\n if (options?.pollIntervalMs) {\n sleepInterval = options.pollIntervalMs;\n }\n else {\n const headerInterval = fileResponse.response.headers.get('openai-poll-after-ms');\n if (headerInterval) {\n const headerIntervalMs = parseInt(headerInterval);\n if (!isNaN(headerIntervalMs)) {\n sleepInterval = headerIntervalMs;\n }\n }\n }\n await sleep(sleepInterval);\n break;\n case 'failed':\n case 'completed':\n return file;\n }\n }\n }\n /**\n * Upload a file to the `files` API and then attach it to the given vector store.\n *\n * Note the file will be asynchronously processed (you can use the alternative\n * polling helper method to wait for processing to complete).\n */\n async upload(vectorStoreId, file, options) {\n const fileInfo = await this._client.files.create({ file: file, purpose: 'assistants' }, options);\n return this.create(vectorStoreId, { file_id: fileInfo.id }, options);\n }\n /**\n * Add a file to a vector store and poll until processing is complete.\n */\n async uploadAndPoll(vectorStoreId, file, options) {\n const fileInfo = await this.upload(vectorStoreId, file, options);\n return await this.poll(vectorStoreId, fileInfo.id, options);\n }\n /**\n * Retrieve the parsed contents of a vector store file.\n */\n content(fileID, params, options) {\n const { vector_store_id } = params;\n return this._client.getAPIList(path `/vector_stores/${vector_store_id}/files/${fileID}/content`, (Page), { ...options, headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]) });\n }\n}\n//# sourceMappingURL=files.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../../core/resource.mjs\";\nimport * as FileBatchesAPI from \"./file-batches.mjs\";\nimport { FileBatches, } from \"./file-batches.mjs\";\nimport * as FilesAPI from \"./files.mjs\";\nimport { Files, } from \"./files.mjs\";\nimport { CursorPage, Page } from \"../../core/pagination.mjs\";\nimport { buildHeaders } from \"../../internal/headers.mjs\";\nimport { path } from \"../../internal/utils/path.mjs\";\nexport class VectorStores extends APIResource {\n constructor() {\n super(...arguments);\n this.files = new FilesAPI.Files(this._client);\n this.fileBatches = new FileBatchesAPI.FileBatches(this._client);\n }\n /**\n * Create a vector store.\n */\n create(body, options) {\n return this._client.post('/vector_stores', {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Retrieves a vector store.\n */\n retrieve(vectorStoreID, options) {\n return this._client.get(path `/vector_stores/${vectorStoreID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Modifies a vector store.\n */\n update(vectorStoreID, body, options) {\n return this._client.post(path `/vector_stores/${vectorStoreID}`, {\n body,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Returns a list of vector stores.\n */\n list(query = {}, options) {\n return this._client.getAPIList('/vector_stores', (CursorPage), {\n query,\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Delete a vector store.\n */\n delete(vectorStoreID, options) {\n return this._client.delete(path `/vector_stores/${vectorStoreID}`, {\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n /**\n * Search a vector store for relevant chunks based on a query and file attributes\n * filter.\n */\n search(vectorStoreID, body, options) {\n return this._client.getAPIList(path `/vector_stores/${vectorStoreID}/search`, (Page), {\n body,\n method: 'post',\n ...options,\n headers: buildHeaders([{ 'OpenAI-Beta': 'assistants=v2' }, options?.headers]),\n });\n }\n}\nVectorStores.Files = Files;\nVectorStores.FileBatches = FileBatches;\n//# sourceMappingURL=vector-stores.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nimport { APIResource } from \"../core/resource.mjs\";\nimport { ConversationCursorPage } from \"../core/pagination.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nimport { maybeMultipartFormRequestOptions } from \"../internal/uploads.mjs\";\nimport { path } from \"../internal/utils/path.mjs\";\nexport class Videos extends APIResource {\n /**\n * Create a video\n */\n create(body, options) {\n return this._client.post('/videos', maybeMultipartFormRequestOptions({ body, ...options }, this._client));\n }\n /**\n * Retrieve a video\n */\n retrieve(videoID, options) {\n return this._client.get(path `/videos/${videoID}`, options);\n }\n /**\n * List videos\n */\n list(query = {}, options) {\n return this._client.getAPIList('/videos', (ConversationCursorPage), { query, ...options });\n }\n /**\n * Delete a video\n */\n delete(videoID, options) {\n return this._client.delete(path `/videos/${videoID}`, options);\n }\n /**\n * Download video content\n */\n downloadContent(videoID, query = {}, options) {\n return this._client.get(path `/videos/${videoID}/content`, {\n query,\n ...options,\n headers: buildHeaders([{ Accept: 'application/binary' }, options?.headers]),\n __binaryResponse: true,\n });\n }\n /**\n * Create a video remix\n */\n remix(videoID, body, options) {\n return this._client.post(path `/videos/${videoID}/remix`, maybeMultipartFormRequestOptions({ body, ...options }, this._client));\n }\n}\n//# sourceMappingURL=videos.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _Webhooks_instances, _Webhooks_validateSecret, _Webhooks_getRequiredHeader;\nimport { __classPrivateFieldGet } from \"../internal/tslib.mjs\";\nimport { InvalidWebhookSignatureError } from \"../error.mjs\";\nimport { APIResource } from \"../core/resource.mjs\";\nimport { buildHeaders } from \"../internal/headers.mjs\";\nexport class Webhooks extends APIResource {\n constructor() {\n super(...arguments);\n _Webhooks_instances.add(this);\n }\n /**\n * Validates that the given payload was sent by OpenAI and parses the payload.\n */\n async unwrap(payload, headers, secret = this._client.webhookSecret, tolerance = 300) {\n await this.verifySignature(payload, headers, secret, tolerance);\n return JSON.parse(payload);\n }\n /**\n * Validates whether or not the webhook payload was sent by OpenAI.\n *\n * An error will be raised if the webhook payload was not sent by OpenAI.\n *\n * @param payload - The webhook payload\n * @param headers - The webhook headers\n * @param secret - The webhook secret (optional, will use client secret if not provided)\n * @param tolerance - Maximum age of the webhook in seconds (default: 300 = 5 minutes)\n */\n async verifySignature(payload, headers, secret = this._client.webhookSecret, tolerance = 300) {\n if (typeof crypto === 'undefined' ||\n typeof crypto.subtle.importKey !== 'function' ||\n typeof crypto.subtle.verify !== 'function') {\n throw new Error('Webhook signature verification is only supported when the `crypto` global is defined');\n }\n __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_validateSecret).call(this, secret);\n const headersObj = buildHeaders([headers]).values;\n const signatureHeader = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-signature');\n const timestamp = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-timestamp');\n const webhookId = __classPrivateFieldGet(this, _Webhooks_instances, \"m\", _Webhooks_getRequiredHeader).call(this, headersObj, 'webhook-id');\n // Validate timestamp to prevent replay attacks\n const timestampSeconds = parseInt(timestamp, 10);\n if (isNaN(timestampSeconds)) {\n throw new InvalidWebhookSignatureError('Invalid webhook timestamp format');\n }\n const nowSeconds = Math.floor(Date.now() / 1000);\n if (nowSeconds - timestampSeconds > tolerance) {\n throw new InvalidWebhookSignatureError('Webhook timestamp is too old');\n }\n if (timestampSeconds > nowSeconds + tolerance) {\n throw new InvalidWebhookSignatureError('Webhook timestamp is too new');\n }\n // Extract signatures from v1,<base64> format\n // The signature header can have multiple values, separated by spaces.\n // Each value is in the format v1,<base64>. We should accept if any match.\n const signatures = signatureHeader\n .split(' ')\n .map((part) => (part.startsWith('v1,') ? part.substring(3) : part));\n // Decode the secret if it starts with whsec_\n const decodedSecret = secret.startsWith('whsec_') ?\n Buffer.from(secret.replace('whsec_', ''), 'base64')\n : Buffer.from(secret, 'utf-8');\n // Create the signed payload: {webhook_id}.{timestamp}.{payload}\n const signedPayload = webhookId ? `${webhookId}.${timestamp}.${payload}` : `${timestamp}.${payload}`;\n // Import the secret as a cryptographic key for HMAC\n const key = await crypto.subtle.importKey('raw', decodedSecret, { name: 'HMAC', hash: 'SHA-256' }, false, ['verify']);\n // Check if any signature matches using timing-safe WebCrypto verify\n for (const signature of signatures) {\n try {\n const signatureBytes = Buffer.from(signature, 'base64');\n const isValid = await crypto.subtle.verify('HMAC', key, signatureBytes, new TextEncoder().encode(signedPayload));\n if (isValid) {\n return; // Valid signature found\n }\n }\n catch {\n // Invalid base64 or signature format, continue to next signature\n continue;\n }\n }\n throw new InvalidWebhookSignatureError('The given webhook signature does not match the expected signature');\n }\n}\n_Webhooks_instances = new WeakSet(), _Webhooks_validateSecret = function _Webhooks_validateSecret(secret) {\n if (typeof secret !== 'string' || secret.length === 0) {\n throw new Error(`The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function`);\n }\n}, _Webhooks_getRequiredHeader = function _Webhooks_getRequiredHeader(headers, name) {\n if (!headers) {\n throw new Error(`Headers are required`);\n }\n const value = headers.get(name);\n if (value === null || value === undefined) {\n throw new Error(`Missing required header: ${name}`);\n }\n return value;\n};\n//# sourceMappingURL=webhooks.mjs.map","// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.\nvar _OpenAI_instances, _a, _OpenAI_encoder, _OpenAI_baseURLOverridden;\nimport { __classPrivateFieldGet, __classPrivateFieldSet } from \"./internal/tslib.mjs\";\nimport { uuid4 } from \"./internal/utils/uuid.mjs\";\nimport { validatePositiveInteger, isAbsoluteURL, safeJSON } from \"./internal/utils/values.mjs\";\nimport { sleep } from \"./internal/utils/sleep.mjs\";\nimport { castToError, isAbortError } from \"./internal/errors.mjs\";\nimport { getPlatformHeaders } from \"./internal/detect-platform.mjs\";\nimport * as Shims from \"./internal/shims.mjs\";\nimport * as Opts from \"./internal/request-options.mjs\";\nimport * as qs from \"./internal/qs/index.mjs\";\nimport { VERSION } from \"./version.mjs\";\nimport * as Errors from \"./core/error.mjs\";\nimport * as Pagination from \"./core/pagination.mjs\";\nimport * as Uploads from \"./core/uploads.mjs\";\nimport * as API from \"./resources/index.mjs\";\nimport { APIPromise } from \"./core/api-promise.mjs\";\nimport { Batches, } from \"./resources/batches.mjs\";\nimport { Completions, } from \"./resources/completions.mjs\";\nimport { Embeddings, } from \"./resources/embeddings.mjs\";\nimport { Files, } from \"./resources/files.mjs\";\nimport { Images, } from \"./resources/images.mjs\";\nimport { Models } from \"./resources/models.mjs\";\nimport { Moderations, } from \"./resources/moderations.mjs\";\nimport { Videos, } from \"./resources/videos.mjs\";\nimport { Webhooks } from \"./resources/webhooks.mjs\";\nimport { Audio } from \"./resources/audio/audio.mjs\";\nimport { Beta } from \"./resources/beta/beta.mjs\";\nimport { Chat } from \"./resources/chat/chat.mjs\";\nimport { Containers, } from \"./resources/containers/containers.mjs\";\nimport { Conversations } from \"./resources/conversations/conversations.mjs\";\nimport { Evals, } from \"./resources/evals/evals.mjs\";\nimport { FineTuning } from \"./resources/fine-tuning/fine-tuning.mjs\";\nimport { Graders } from \"./resources/graders/graders.mjs\";\nimport { Realtime } from \"./resources/realtime/realtime.mjs\";\nimport { Responses } from \"./resources/responses/responses.mjs\";\nimport { Uploads as UploadsAPIUploads, } from \"./resources/uploads/uploads.mjs\";\nimport { VectorStores, } from \"./resources/vector-stores/vector-stores.mjs\";\nimport { isRunningInBrowser } from \"./internal/detect-platform.mjs\";\nimport { buildHeaders } from \"./internal/headers.mjs\";\nimport { readEnv } from \"./internal/utils/env.mjs\";\nimport { formatRequestDetails, loggerFor, parseLogLevel, } from \"./internal/utils/log.mjs\";\nimport { isEmptyObj } from \"./internal/utils/values.mjs\";\n/**\n * API Client for interfacing with the OpenAI API.\n */\nexport class OpenAI {\n /**\n * API Client for interfacing with the OpenAI API.\n *\n * @param {string | undefined} [opts.apiKey=process.env['OPENAI_API_KEY'] ?? undefined]\n * @param {string | null | undefined} [opts.organization=process.env['OPENAI_ORG_ID'] ?? null]\n * @param {string | null | undefined} [opts.project=process.env['OPENAI_PROJECT_ID'] ?? null]\n * @param {string | null | undefined} [opts.webhookSecret=process.env['OPENAI_WEBHOOK_SECRET'] ?? null]\n * @param {string} [opts.baseURL=process.env['OPENAI_BASE_URL'] ?? https://api.openai.com/v1] - Override the default base URL for the API.\n * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.\n * @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.\n * @param {Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.\n * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.\n * @param {HeadersLike} opts.defaultHeaders - Default headers to include with every request to the API.\n * @param {Record<string, string | undefined>} opts.defaultQuery - Default query parameters to include with every request to the API.\n * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.\n */\n constructor({ baseURL = readEnv('OPENAI_BASE_URL'), apiKey = readEnv('OPENAI_API_KEY'), organization = readEnv('OPENAI_ORG_ID') ?? null, project = readEnv('OPENAI_PROJECT_ID') ?? null, webhookSecret = readEnv('OPENAI_WEBHOOK_SECRET') ?? null, ...opts } = {}) {\n _OpenAI_instances.add(this);\n _OpenAI_encoder.set(this, void 0);\n this.completions = new API.Completions(this);\n this.chat = new API.Chat(this);\n this.embeddings = new API.Embeddings(this);\n this.files = new API.Files(this);\n this.images = new API.Images(this);\n this.audio = new API.Audio(this);\n this.moderations = new API.Moderations(this);\n this.models = new API.Models(this);\n this.fineTuning = new API.FineTuning(this);\n this.graders = new API.Graders(this);\n this.vectorStores = new API.VectorStores(this);\n this.webhooks = new API.Webhooks(this);\n this.beta = new API.Beta(this);\n this.batches = new API.Batches(this);\n this.uploads = new API.Uploads(this);\n this.responses = new API.Responses(this);\n this.realtime = new API.Realtime(this);\n this.conversations = new API.Conversations(this);\n this.evals = new API.Evals(this);\n this.containers = new API.Containers(this);\n this.videos = new API.Videos(this);\n if (apiKey === undefined) {\n throw new Errors.OpenAIError('Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.');\n }\n const options = {\n apiKey,\n organization,\n project,\n webhookSecret,\n ...opts,\n baseURL: baseURL || `https://api.openai.com/v1`,\n };\n if (!options.dangerouslyAllowBrowser && isRunningInBrowser()) {\n throw new Errors.OpenAIError(\"It looks like you're running in a browser-like environment.\\n\\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\\nIf you understand the risks and have appropriate mitigations in place,\\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\\n\\nnew OpenAI({ apiKey, dangerouslyAllowBrowser: true });\\n\\nhttps://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety\\n\");\n }\n this.baseURL = options.baseURL;\n this.timeout = options.timeout ?? _a.DEFAULT_TIMEOUT /* 10 minutes */;\n this.logger = options.logger ?? console;\n const defaultLogLevel = 'warn';\n // Set default logLevel early so that we can log a warning in parseLogLevel.\n this.logLevel = defaultLogLevel;\n this.logLevel =\n parseLogLevel(options.logLevel, 'ClientOptions.logLevel', this) ??\n parseLogLevel(readEnv('OPENAI_LOG'), \"process.env['OPENAI_LOG']\", this) ??\n defaultLogLevel;\n this.fetchOptions = options.fetchOptions;\n this.maxRetries = options.maxRetries ?? 2;\n this.fetch = options.fetch ?? Shims.getDefaultFetch();\n __classPrivateFieldSet(this, _OpenAI_encoder, Opts.FallbackEncoder, \"f\");\n this._options = options;\n this.apiKey = typeof apiKey === 'string' ? apiKey : 'Missing Key';\n this.organization = organization;\n this.project = project;\n this.webhookSecret = webhookSecret;\n }\n /**\n * Create a new client instance re-using the same options given to the current client with optional overriding.\n */\n withOptions(options) {\n const client = new this.constructor({\n ...this._options,\n baseURL: this.baseURL,\n maxRetries: this.maxRetries,\n timeout: this.timeout,\n logger: this.logger,\n logLevel: this.logLevel,\n fetch: this.fetch,\n fetchOptions: this.fetchOptions,\n apiKey: this.apiKey,\n organization: this.organization,\n project: this.project,\n webhookSecret: this.webhookSecret,\n ...options,\n });\n return client;\n }\n defaultQuery() {\n return this._options.defaultQuery;\n }\n validateHeaders({ values, nulls }) {\n return;\n }\n async authHeaders(opts) {\n return buildHeaders([{ Authorization: `Bearer ${this.apiKey}` }]);\n }\n stringifyQuery(query) {\n return qs.stringify(query, { arrayFormat: 'brackets' });\n }\n getUserAgent() {\n return `${this.constructor.name}/JS ${VERSION}`;\n }\n defaultIdempotencyKey() {\n return `stainless-node-retry-${uuid4()}`;\n }\n makeStatusError(status, error, message, headers) {\n return Errors.APIError.generate(status, error, message, headers);\n }\n async _callApiKey() {\n const apiKey = this._options.apiKey;\n if (typeof apiKey !== 'function')\n return false;\n let token;\n try {\n token = await apiKey();\n }\n catch (err) {\n if (err instanceof Errors.OpenAIError)\n throw err;\n throw new Errors.OpenAIError(`Failed to get token from 'apiKey' function: ${err.message}`, \n // @ts-ignore\n { cause: err });\n }\n if (typeof token !== 'string' || !token) {\n throw new Errors.OpenAIError(`Expected 'apiKey' function argument to return a string but it returned ${token}`);\n }\n this.apiKey = token;\n return true;\n }\n buildURL(path, query, defaultBaseURL) {\n const baseURL = (!__classPrivateFieldGet(this, _OpenAI_instances, \"m\", _OpenAI_baseURLOverridden).call(this) && defaultBaseURL) || this.baseURL;\n const url = isAbsoluteURL(path) ?\n new URL(path)\n : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));\n const defaultQuery = this.defaultQuery();\n if (!isEmptyObj(defaultQuery)) {\n query = { ...defaultQuery, ...query };\n }\n if (typeof query === 'object' && query && !Array.isArray(query)) {\n url.search = this.stringifyQuery(query);\n }\n return url.toString();\n }\n /**\n * Used as a callback for mutating the given `FinalRequestOptions` object.\n */\n async prepareOptions(options) {\n await this._callApiKey();\n }\n /**\n * Used as a callback for mutating the given `RequestInit` object.\n *\n * This is useful for cases where you want to add certain headers based off of\n * the request properties, e.g. `method` or `url`.\n */\n async prepareRequest(request, { url, options }) { }\n get(path, opts) {\n return this.methodRequest('get', path, opts);\n }\n post(path, opts) {\n return this.methodRequest('post', path, opts);\n }\n patch(path, opts) {\n return this.methodRequest('patch', path, opts);\n }\n put(path, opts) {\n return this.methodRequest('put', path, opts);\n }\n delete(path, opts) {\n return this.methodRequest('delete', path, opts);\n }\n methodRequest(method, path, opts) {\n return this.request(Promise.resolve(opts).then((opts) => {\n return { method, path, ...opts };\n }));\n }\n request(options, remainingRetries = null) {\n return new APIPromise(this, this.makeRequest(options, remainingRetries, undefined));\n }\n async makeRequest(optionsInput, retriesRemaining, retryOfRequestLogID) {\n const options = await optionsInput;\n const maxRetries = options.maxRetries ?? this.maxRetries;\n if (retriesRemaining == null) {\n retriesRemaining = maxRetries;\n }\n await this.prepareOptions(options);\n const { req, url, timeout } = await this.buildRequest(options, {\n retryCount: maxRetries - retriesRemaining,\n });\n await this.prepareRequest(req, { url, options });\n /** Not an API request ID, just for correlating local log entries. */\n const requestLogID = 'log_' + ((Math.random() * (1 << 24)) | 0).toString(16).padStart(6, '0');\n const retryLogStr = retryOfRequestLogID === undefined ? '' : `, retryOf: ${retryOfRequestLogID}`;\n const startTime = Date.now();\n loggerFor(this).debug(`[${requestLogID}] sending request`, formatRequestDetails({\n retryOfRequestLogID,\n method: options.method,\n url,\n options,\n headers: req.headers,\n }));\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n const controller = new AbortController();\n const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(castToError);\n const headersTime = Date.now();\n if (response instanceof globalThis.Error) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n if (options.signal?.aborted) {\n throw new Errors.APIUserAbortError();\n }\n // detect native connection timeout errors\n // deno throws \"TypeError: error sending request for url (https://example/): client error (Connect): tcp connect error: Operation timed out (os error 60): Operation timed out (os error 60)\"\n // undici throws \"TypeError: fetch failed\" with cause \"ConnectTimeoutError: Connect Timeout Error (attempted address: example:443, timeout: 1ms)\"\n // others do not provide enough information to distinguish timeouts from other connection errors\n const isTimeout = isAbortError(response) ||\n /timed? ?out/i.test(String(response) + ('cause' in response ? String(response.cause) : ''));\n if (retriesRemaining) {\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID);\n }\n loggerFor(this).info(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} - error; no more retries left`);\n loggerFor(this).debug(`[${requestLogID}] connection ${isTimeout ? 'timed out' : 'failed'} (error; no more retries left)`, formatRequestDetails({\n retryOfRequestLogID,\n url,\n durationMs: headersTime - startTime,\n message: response.message,\n }));\n if (isTimeout) {\n throw new Errors.APIConnectionTimeoutError();\n }\n throw new Errors.APIConnectionError({ cause: response });\n }\n const specialHeaders = [...response.headers.entries()]\n .filter(([name]) => name === 'x-request-id')\n .map(([name, value]) => ', ' + name + ': ' + JSON.stringify(value))\n .join('');\n const responseInfo = `[${requestLogID}${retryLogStr}${specialHeaders}] ${req.method} ${url} ${response.ok ? 'succeeded' : 'failed'} with status ${response.status} in ${headersTime - startTime}ms`;\n if (!response.ok) {\n const shouldRetry = await this.shouldRetry(response);\n if (retriesRemaining && shouldRetry) {\n const retryMessage = `retrying, ${retriesRemaining} attempts remaining`;\n // We don't need the body of this response.\n await Shims.CancelReadableStream(response.body);\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return this.retryRequest(options, retriesRemaining, retryOfRequestLogID ?? requestLogID, response.headers);\n }\n const retryMessage = shouldRetry ? `error; no more retries left` : `error; not retryable`;\n loggerFor(this).info(`${responseInfo} - ${retryMessage}`);\n const errText = await response.text().catch((err) => castToError(err).message);\n const errJSON = safeJSON(errText);\n const errMessage = errJSON ? undefined : errText;\n loggerFor(this).debug(`[${requestLogID}] response error (${retryMessage})`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n message: errMessage,\n durationMs: Date.now() - startTime,\n }));\n const err = this.makeStatusError(response.status, errJSON, errMessage, response.headers);\n throw err;\n }\n loggerFor(this).info(responseInfo);\n loggerFor(this).debug(`[${requestLogID}] response start`, formatRequestDetails({\n retryOfRequestLogID,\n url: response.url,\n status: response.status,\n headers: response.headers,\n durationMs: headersTime - startTime,\n }));\n return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };\n }\n getAPIList(path, Page, opts) {\n return this.requestAPIList(Page, { method: 'get', path, ...opts });\n }\n requestAPIList(Page, options) {\n const request = this.makeRequest(options, null, undefined);\n return new Pagination.PagePromise(this, request, Page);\n }\n async fetchWithTimeout(url, init, ms, controller) {\n const { signal, method, ...options } = init || {};\n if (signal)\n signal.addEventListener('abort', () => controller.abort());\n const timeout = setTimeout(() => controller.abort(), ms);\n const isReadableBody = (globalThis.ReadableStream && options.body instanceof globalThis.ReadableStream) ||\n (typeof options.body === 'object' && options.body !== null && Symbol.asyncIterator in options.body);\n const fetchOptions = {\n signal: controller.signal,\n ...(isReadableBody ? { duplex: 'half' } : {}),\n method: 'GET',\n ...options,\n };\n if (method) {\n // Custom methods like 'patch' need to be uppercased\n // See https://github.com/nodejs/undici/issues/2294\n fetchOptions.method = method.toUpperCase();\n }\n try {\n // use undefined this binding; fetch errors if bound to something else in browser/cloudflare\n return await this.fetch.call(undefined, url, fetchOptions);\n }\n finally {\n clearTimeout(timeout);\n }\n }\n async shouldRetry(response) {\n // Note this is not a standard header.\n const shouldRetryHeader = response.headers.get('x-should-retry');\n // If the server explicitly says whether or not to retry, obey.\n if (shouldRetryHeader === 'true')\n return true;\n if (shouldRetryHeader === 'false')\n return false;\n // Retry on request timeouts.\n if (response.status === 408)\n return true;\n // Retry on lock timeouts.\n if (response.status === 409)\n return true;\n // Retry on rate limits.\n if (response.status === 429)\n return true;\n // Retry internal errors.\n if (response.status >= 500)\n return true;\n return false;\n }\n async retryRequest(options, retriesRemaining, requestLogID, responseHeaders) {\n let timeoutMillis;\n // Note the `retry-after-ms` header may not be standard, but is a good idea and we'd like proactive support for it.\n const retryAfterMillisHeader = responseHeaders?.get('retry-after-ms');\n if (retryAfterMillisHeader) {\n const timeoutMs = parseFloat(retryAfterMillisHeader);\n if (!Number.isNaN(timeoutMs)) {\n timeoutMillis = timeoutMs;\n }\n }\n // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After\n const retryAfterHeader = responseHeaders?.get('retry-after');\n if (retryAfterHeader && !timeoutMillis) {\n const timeoutSeconds = parseFloat(retryAfterHeader);\n if (!Number.isNaN(timeoutSeconds)) {\n timeoutMillis = timeoutSeconds * 1000;\n }\n else {\n timeoutMillis = Date.parse(retryAfterHeader) - Date.now();\n }\n }\n // If the API asks us to wait a certain amount of time (and it's a reasonable amount),\n // just do what it says, but otherwise calculate a default\n if (!(timeoutMillis && 0 <= timeoutMillis && timeoutMillis < 60 * 1000)) {\n const maxRetries = options.maxRetries ?? this.maxRetries;\n timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);\n }\n await sleep(timeoutMillis);\n return this.makeRequest(options, retriesRemaining - 1, requestLogID);\n }\n calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {\n const initialRetryDelay = 0.5;\n const maxRetryDelay = 8.0;\n const numRetries = maxRetries - retriesRemaining;\n // Apply exponential backoff, but not more than the max.\n const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);\n // Apply some jitter, take up to at most 25 percent of the retry time.\n const jitter = 1 - Math.random() * 0.25;\n return sleepSeconds * jitter * 1000;\n }\n async buildRequest(inputOptions, { retryCount = 0 } = {}) {\n const options = { ...inputOptions };\n const { method, path, query, defaultBaseURL } = options;\n const url = this.buildURL(path, query, defaultBaseURL);\n if ('timeout' in options)\n validatePositiveInteger('timeout', options.timeout);\n options.timeout = options.timeout ?? this.timeout;\n const { bodyHeaders, body } = this.buildBody({ options });\n const reqHeaders = await this.buildHeaders({ options: inputOptions, method, bodyHeaders, retryCount });\n const req = {\n method,\n headers: reqHeaders,\n ...(options.signal && { signal: options.signal }),\n ...(globalThis.ReadableStream &&\n body instanceof globalThis.ReadableStream && { duplex: 'half' }),\n ...(body && { body }),\n ...(this.fetchOptions ?? {}),\n ...(options.fetchOptions ?? {}),\n };\n return { req, url, timeout: options.timeout };\n }\n async buildHeaders({ options, method, bodyHeaders, retryCount, }) {\n let idempotencyHeaders = {};\n if (this.idempotencyHeader && method !== 'get') {\n if (!options.idempotencyKey)\n options.idempotencyKey = this.defaultIdempotencyKey();\n idempotencyHeaders[this.idempotencyHeader] = options.idempotencyKey;\n }\n const headers = buildHeaders([\n idempotencyHeaders,\n {\n Accept: 'application/json',\n 'User-Agent': this.getUserAgent(),\n 'X-Stainless-Retry-Count': String(retryCount),\n ...(options.timeout ? { 'X-Stainless-Timeout': String(Math.trunc(options.timeout / 1000)) } : {}),\n ...getPlatformHeaders(),\n 'OpenAI-Organization': this.organization,\n 'OpenAI-Project': this.project,\n },\n await this.authHeaders(options),\n this._options.defaultHeaders,\n bodyHeaders,\n options.headers,\n ]);\n this.validateHeaders(headers);\n return headers.values;\n }\n buildBody({ options: { body, headers: rawHeaders } }) {\n if (!body) {\n return { bodyHeaders: undefined, body: undefined };\n }\n const headers = buildHeaders([rawHeaders]);\n if (\n // Pass raw type verbatim\n ArrayBuffer.isView(body) ||\n body instanceof ArrayBuffer ||\n body instanceof DataView ||\n (typeof body === 'string' &&\n // Preserve legacy string encoding behavior for now\n headers.values.has('content-type')) ||\n // `Blob` is superset of `File`\n (globalThis.Blob && body instanceof globalThis.Blob) ||\n // `FormData` -> `multipart/form-data`\n body instanceof FormData ||\n // `URLSearchParams` -> `application/x-www-form-urlencoded`\n body instanceof URLSearchParams ||\n // Send chunked stream (each chunk has own `length`)\n (globalThis.ReadableStream && body instanceof globalThis.ReadableStream)) {\n return { bodyHeaders: undefined, body: body };\n }\n else if (typeof body === 'object' &&\n (Symbol.asyncIterator in body ||\n (Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))) {\n return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body) };\n }\n else {\n return __classPrivateFieldGet(this, _OpenAI_encoder, \"f\").call(this, { body, headers });\n }\n }\n}\n_a = OpenAI, _OpenAI_encoder = new WeakMap(), _OpenAI_instances = new WeakSet(), _OpenAI_baseURLOverridden = function _OpenAI_baseURLOverridden() {\n return this.baseURL !== 'https://api.openai.com/v1';\n};\nOpenAI.OpenAI = _a;\nOpenAI.DEFAULT_TIMEOUT = 600000; // 10 minutes\nOpenAI.OpenAIError = Errors.OpenAIError;\nOpenAI.APIError = Errors.APIError;\nOpenAI.APIConnectionError = Errors.APIConnectionError;\nOpenAI.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;\nOpenAI.APIUserAbortError = Errors.APIUserAbortError;\nOpenAI.NotFoundError = Errors.NotFoundError;\nOpenAI.ConflictError = Errors.ConflictError;\nOpenAI.RateLimitError = Errors.RateLimitError;\nOpenAI.BadRequestError = Errors.BadRequestError;\nOpenAI.AuthenticationError = Errors.AuthenticationError;\nOpenAI.InternalServerError = Errors.InternalServerError;\nOpenAI.PermissionDeniedError = Errors.PermissionDeniedError;\nOpenAI.UnprocessableEntityError = Errors.UnprocessableEntityError;\nOpenAI.InvalidWebhookSignatureError = Errors.InvalidWebhookSignatureError;\nOpenAI.toFile = Uploads.toFile;\nOpenAI.Completions = Completions;\nOpenAI.Chat = Chat;\nOpenAI.Embeddings = Embeddings;\nOpenAI.Files = Files;\nOpenAI.Images = Images;\nOpenAI.Audio = Audio;\nOpenAI.Moderations = Moderations;\nOpenAI.Models = Models;\nOpenAI.FineTuning = FineTuning;\nOpenAI.Graders = Graders;\nOpenAI.VectorStores = VectorStores;\nOpenAI.Webhooks = Webhooks;\nOpenAI.Beta = Beta;\nOpenAI.Batches = Batches;\nOpenAI.Uploads = UploadsAPIUploads;\nOpenAI.Responses = Responses;\nOpenAI.Realtime = Realtime;\nOpenAI.Conversations = Conversations;\nOpenAI.Evals = Evals;\nOpenAI.Containers = Containers;\nOpenAI.Videos = Videos;\n//# sourceMappingURL=client.mjs.map","'use strict';\n\nconst BINARY_TYPES = ['nodebuffer', 'arraybuffer', 'fragments'];\nconst hasBlob = typeof Blob !== 'undefined';\n\nif (hasBlob) BINARY_TYPES.push('blob');\n\nmodule.exports = {\n BINARY_TYPES,\n EMPTY_BUFFER: Buffer.alloc(0),\n GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n hasBlob,\n kForOnEventAttribute: Symbol('kIsForOnEventAttribute'),\n kListener: Symbol('kListener'),\n kStatusCode: Symbol('status-code'),\n kWebSocket: Symbol('websocket'),\n NOOP: () => {}\n};\n","'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\nconst FastBuffer = Buffer[Symbol.species];\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n if (list.length === 0) return EMPTY_BUFFER;\n if (list.length === 1) return list[0];\n\n const target = Buffer.allocUnsafe(totalLength);\n let offset = 0;\n\n for (let i = 0; i < list.length; i++) {\n const buf = list[i];\n target.set(buf, offset);\n offset += buf.length;\n }\n\n if (offset < totalLength) {\n return new FastBuffer(target.buffer, target.byteOffset, offset);\n }\n\n return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n for (let i = 0; i < length; i++) {\n output[offset + i] = source[i] ^ mask[i & 3];\n }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n for (let i = 0; i < buffer.length; i++) {\n buffer[i] ^= mask[i & 3];\n }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n if (buf.length === buf.buffer.byteLength) {\n return buf.buffer;\n }\n\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.length);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n toBuffer.readOnly = true;\n\n if (Buffer.isBuffer(data)) return data;\n\n let buf;\n\n if (data instanceof ArrayBuffer) {\n buf = new FastBuffer(data);\n } else if (ArrayBuffer.isView(data)) {\n buf = new FastBuffer(data.buffer, data.byteOffset, data.byteLength);\n } else {\n buf = Buffer.from(data);\n toBuffer.readOnly = false;\n }\n\n return buf;\n}\n\nmodule.exports = {\n concat,\n mask: _mask,\n toArrayBuffer,\n toBuffer,\n unmask: _unmask\n};\n\n/* istanbul ignore else */\nif (!process.env.WS_NO_BUFFER_UTIL) {\n try {\n const bufferUtil = require('bufferutil');\n\n module.exports.mask = function (source, mask, output, offset, length) {\n if (length < 48) _mask(source, mask, output, offset, length);\n else bufferUtil.mask(source, mask, output, offset, length);\n };\n\n module.exports.unmask = function (buffer, mask) {\n if (buffer.length < 32) _unmask(buffer, mask);\n else bufferUtil.unmask(buffer, mask);\n };\n } catch (e) {\n // Continue regardless of the error.\n }\n}\n","'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n /**\n * Creates a new `Limiter`.\n *\n * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n * to run concurrently\n */\n constructor(concurrency) {\n this[kDone] = () => {\n this.pending--;\n this[kRun]();\n };\n this.concurrency = concurrency || Infinity;\n this.jobs = [];\n this.pending = 0;\n }\n\n /**\n * Adds a job to the queue.\n *\n * @param {Function} job The job to run\n * @public\n */\n add(job) {\n this.jobs.push(job);\n this[kRun]();\n }\n\n /**\n * Removes a job from the queue and runs it if possible.\n *\n * @private\n */\n [kRun]() {\n if (this.pending === this.concurrency) return;\n\n if (this.jobs.length) {\n const job = this.jobs.shift();\n\n this.pending++;\n job(this[kDone]);\n }\n }\n}\n\nmodule.exports = Limiter;\n","'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode } = require('./constants');\n\nconst FastBuffer = Buffer[Symbol.species];\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n /**\n * Creates a PerMessageDeflate instance.\n *\n * @param {Object} [options] Configuration options\n * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n * for, or request, a custom client window size\n * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n * acknowledge disabling of client context takeover\n * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n * calls to zlib\n * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n * use of a custom server window size\n * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n * disabling of server context takeover\n * @param {Number} [options.threshold=1024] Size (in bytes) below which\n * messages should not be compressed if context takeover is disabled\n * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n * deflate\n * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n * inflate\n * @param {Boolean} [isServer=false] Create the instance in either server or\n * client mode\n * @param {Number} [maxPayload=0] The maximum allowed message length\n */\n constructor(options, isServer, maxPayload) {\n this._maxPayload = maxPayload | 0;\n this._options = options || {};\n this._threshold =\n this._options.threshold !== undefined ? this._options.threshold : 1024;\n this._isServer = !!isServer;\n this._deflate = null;\n this._inflate = null;\n\n this.params = null;\n\n if (!zlibLimiter) {\n const concurrency =\n this._options.concurrencyLimit !== undefined\n ? this._options.concurrencyLimit\n : 10;\n zlibLimiter = new Limiter(concurrency);\n }\n }\n\n /**\n * @type {String}\n */\n static get extensionName() {\n return 'permessage-deflate';\n }\n\n /**\n * Create an extension negotiation offer.\n *\n * @return {Object} Extension parameters\n * @public\n */\n offer() {\n const params = {};\n\n if (this._options.serverNoContextTakeover) {\n params.server_no_context_takeover = true;\n }\n if (this._options.clientNoContextTakeover) {\n params.client_no_context_takeover = true;\n }\n if (this._options.serverMaxWindowBits) {\n params.server_max_window_bits = this._options.serverMaxWindowBits;\n }\n if (this._options.clientMaxWindowBits) {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n } else if (this._options.clientMaxWindowBits == null) {\n params.client_max_window_bits = true;\n }\n\n return params;\n }\n\n /**\n * Accept an extension negotiation offer/response.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Object} Accepted configuration\n * @public\n */\n accept(configurations) {\n configurations = this.normalizeParams(configurations);\n\n this.params = this._isServer\n ? this.acceptAsServer(configurations)\n : this.acceptAsClient(configurations);\n\n return this.params;\n }\n\n /**\n * Releases all resources used by the extension.\n *\n * @public\n */\n cleanup() {\n if (this._inflate) {\n this._inflate.close();\n this._inflate = null;\n }\n\n if (this._deflate) {\n const callback = this._deflate[kCallback];\n\n this._deflate.close();\n this._deflate = null;\n\n if (callback) {\n callback(\n new Error(\n 'The deflate stream was closed while data was being processed'\n )\n );\n }\n }\n }\n\n /**\n * Accept an extension negotiation offer.\n *\n * @param {Array} offers The extension negotiation offers\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsServer(offers) {\n const opts = this._options;\n const accepted = offers.find((params) => {\n if (\n (opts.serverNoContextTakeover === false &&\n params.server_no_context_takeover) ||\n (params.server_max_window_bits &&\n (opts.serverMaxWindowBits === false ||\n (typeof opts.serverMaxWindowBits === 'number' &&\n opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n (typeof opts.clientMaxWindowBits === 'number' &&\n !params.client_max_window_bits)\n ) {\n return false;\n }\n\n return true;\n });\n\n if (!accepted) {\n throw new Error('None of the extension offers can be accepted');\n }\n\n if (opts.serverNoContextTakeover) {\n accepted.server_no_context_takeover = true;\n }\n if (opts.clientNoContextTakeover) {\n accepted.client_no_context_takeover = true;\n }\n if (typeof opts.serverMaxWindowBits === 'number') {\n accepted.server_max_window_bits = opts.serverMaxWindowBits;\n }\n if (typeof opts.clientMaxWindowBits === 'number') {\n accepted.client_max_window_bits = opts.clientMaxWindowBits;\n } else if (\n accepted.client_max_window_bits === true ||\n opts.clientMaxWindowBits === false\n ) {\n delete accepted.client_max_window_bits;\n }\n\n return accepted;\n }\n\n /**\n * Accept the extension negotiation response.\n *\n * @param {Array} response The extension negotiation response\n * @return {Object} Accepted configuration\n * @private\n */\n acceptAsClient(response) {\n const params = response[0];\n\n if (\n this._options.clientNoContextTakeover === false &&\n params.client_no_context_takeover\n ) {\n throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n }\n\n if (!params.client_max_window_bits) {\n if (typeof this._options.clientMaxWindowBits === 'number') {\n params.client_max_window_bits = this._options.clientMaxWindowBits;\n }\n } else if (\n this._options.clientMaxWindowBits === false ||\n (typeof this._options.clientMaxWindowBits === 'number' &&\n params.client_max_window_bits > this._options.clientMaxWindowBits)\n ) {\n throw new Error(\n 'Unexpected or invalid parameter \"client_max_window_bits\"'\n );\n }\n\n return params;\n }\n\n /**\n * Normalize parameters.\n *\n * @param {Array} configurations The extension negotiation offers/reponse\n * @return {Array} The offers/response with normalized parameters\n * @private\n */\n normalizeParams(configurations) {\n configurations.forEach((params) => {\n Object.keys(params).forEach((key) => {\n let value = params[key];\n\n if (value.length > 1) {\n throw new Error(`Parameter \"${key}\" must have only a single value`);\n }\n\n value = value[0];\n\n if (key === 'client_max_window_bits') {\n if (value !== true) {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (!this._isServer) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else if (key === 'server_max_window_bits') {\n const num = +value;\n if (!Number.isInteger(num) || num < 8 || num > 15) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n value = num;\n } else if (\n key === 'client_no_context_takeover' ||\n key === 'server_no_context_takeover'\n ) {\n if (value !== true) {\n throw new TypeError(\n `Invalid value for parameter \"${key}\": ${value}`\n );\n }\n } else {\n throw new Error(`Unknown parameter \"${key}\"`);\n }\n\n params[key] = value;\n });\n });\n\n return configurations;\n }\n\n /**\n * Decompress data. Concurrency limited.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n decompress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._decompress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Compress data. Concurrency limited.\n *\n * @param {(Buffer|String)} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @public\n */\n compress(data, fin, callback) {\n zlibLimiter.add((done) => {\n this._compress(data, fin, (err, result) => {\n done();\n callback(err, result);\n });\n });\n }\n\n /**\n * Decompress data.\n *\n * @param {Buffer} data Compressed data\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _decompress(data, fin, callback) {\n const endpoint = this._isServer ? 'client' : 'server';\n\n if (!this._inflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._inflate = zlib.createInflateRaw({\n ...this._options.zlibInflateOptions,\n windowBits\n });\n this._inflate[kPerMessageDeflate] = this;\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n this._inflate.on('error', inflateOnError);\n this._inflate.on('data', inflateOnData);\n }\n\n this._inflate[kCallback] = callback;\n\n this._inflate.write(data);\n if (fin) this._inflate.write(TRAILER);\n\n this._inflate.flush(() => {\n const err = this._inflate[kError];\n\n if (err) {\n this._inflate.close();\n this._inflate = null;\n callback(err);\n return;\n }\n\n const data = bufferUtil.concat(\n this._inflate[kBuffers],\n this._inflate[kTotalLength]\n );\n\n if (this._inflate._readableState.endEmitted) {\n this._inflate.close();\n this._inflate = null;\n } else {\n this._inflate[kTotalLength] = 0;\n this._inflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._inflate.reset();\n }\n }\n\n callback(null, data);\n });\n }\n\n /**\n * Compress data.\n *\n * @param {(Buffer|String)} data Data to compress\n * @param {Boolean} fin Specifies whether or not this is the last fragment\n * @param {Function} callback Callback\n * @private\n */\n _compress(data, fin, callback) {\n const endpoint = this._isServer ? 'server' : 'client';\n\n if (!this._deflate) {\n const key = `${endpoint}_max_window_bits`;\n const windowBits =\n typeof this.params[key] !== 'number'\n ? zlib.Z_DEFAULT_WINDOWBITS\n : this.params[key];\n\n this._deflate = zlib.createDeflateRaw({\n ...this._options.zlibDeflateOptions,\n windowBits\n });\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n this._deflate.on('data', deflateOnData);\n }\n\n this._deflate[kCallback] = callback;\n\n this._deflate.write(data);\n this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n if (!this._deflate) {\n //\n // The deflate stream was closed while data was being processed.\n //\n return;\n }\n\n let data = bufferUtil.concat(\n this._deflate[kBuffers],\n this._deflate[kTotalLength]\n );\n\n if (fin) {\n data = new FastBuffer(data.buffer, data.byteOffset, data.length - 4);\n }\n\n //\n // Ensure that the callback will not be called again in\n // `PerMessageDeflate#cleanup()`.\n //\n this._deflate[kCallback] = null;\n\n this._deflate[kTotalLength] = 0;\n this._deflate[kBuffers] = [];\n\n if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n this._deflate.reset();\n }\n\n callback(null, data);\n });\n }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n this[kBuffers].push(chunk);\n this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n this[kTotalLength] += chunk.length;\n\n if (\n this[kPerMessageDeflate]._maxPayload < 1 ||\n this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n ) {\n this[kBuffers].push(chunk);\n return;\n }\n\n this[kError] = new RangeError('Max payload size exceeded');\n this[kError].code = 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH';\n this[kError][kStatusCode] = 1009;\n this.removeListener('data', inflateOnData);\n\n //\n // The choice to employ `zlib.reset()` over `zlib.close()` is dictated by the\n // fact that in Node.js versions prior to 13.10.0, the callback for\n // `zlib.flush()` is not called if `zlib.close()` is used. Utilizing\n // `zlib.reset()` ensures that either the callback is invoked or an error is\n // emitted.\n //\n this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n //\n // There is no need to call `Zlib#close()` as the handle is automatically\n // closed when an error is emitted.\n //\n this[kPerMessageDeflate]._inflate = null;\n\n if (this[kError]) {\n this[kCallback](this[kError]);\n return;\n }\n\n err[kStatusCode] = 1007;\n this[kCallback](err);\n}\n","'use strict';\n\nconst { isUtf8 } = require('buffer');\n\nconst { hasBlob } = require('./constants');\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n return (\n (code >= 1000 &&\n code <= 1014 &&\n code !== 1004 &&\n code !== 1005 &&\n code !== 1006) ||\n (code >= 3000 && code <= 4999)\n );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n const len = buf.length;\n let i = 0;\n\n while (i < len) {\n if ((buf[i] & 0x80) === 0) {\n // 0xxxxxxx\n i++;\n } else if ((buf[i] & 0xe0) === 0xc0) {\n // 110xxxxx 10xxxxxx\n if (\n i + 1 === len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i] & 0xfe) === 0xc0 // Overlong\n ) {\n return false;\n }\n\n i += 2;\n } else if ((buf[i] & 0xf0) === 0xe0) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n if (\n i + 2 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n ) {\n return false;\n }\n\n i += 3;\n } else if ((buf[i] & 0xf8) === 0xf0) {\n // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n if (\n i + 3 >= len ||\n (buf[i + 1] & 0xc0) !== 0x80 ||\n (buf[i + 2] & 0xc0) !== 0x80 ||\n (buf[i + 3] & 0xc0) !== 0x80 ||\n (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n buf[i] > 0xf4 // > U+10FFFF\n ) {\n return false;\n }\n\n i += 4;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Determines whether a value is a `Blob`.\n *\n * @param {*} value The value to be tested\n * @return {Boolean} `true` if `value` is a `Blob`, else `false`\n * @private\n */\nfunction isBlob(value) {\n return (\n hasBlob &&\n typeof value === 'object' &&\n typeof value.arrayBuffer === 'function' &&\n typeof value.type === 'string' &&\n typeof value.stream === 'function' &&\n (value[Symbol.toStringTag] === 'Blob' ||\n value[Symbol.toStringTag] === 'File')\n );\n}\n\nmodule.exports = {\n isBlob,\n isValidStatusCode,\n isValidUTF8: _isValidUTF8,\n tokenChars\n};\n\nif (isUtf8) {\n module.exports.isValidUTF8 = function (buf) {\n return buf.length < 24 ? _isValidUTF8(buf) : isUtf8(buf);\n };\n} /* istanbul ignore else */ else if (!process.env.WS_NO_UTF_8_VALIDATE) {\n try {\n const isValidUTF8 = require('utf-8-validate');\n\n module.exports.isValidUTF8 = function (buf) {\n return buf.length < 32 ? _isValidUTF8(buf) : isValidUTF8(buf);\n };\n } catch (e) {\n // Continue regardless of the error.\n }\n}\n","'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n kStatusCode,\n kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst FastBuffer = Buffer[Symbol.species];\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\nconst DEFER_EVENT = 6;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends Writable\n */\nclass Receiver extends Writable {\n /**\n * Creates a Receiver instance.\n *\n * @param {Object} [options] Options object\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {String} [options.binaryType=nodebuffer] The type for binary data\n * @param {Object} [options.extensions] An object containing the negotiated\n * extensions\n * @param {Boolean} [options.isServer=false] Specifies whether to operate in\n * client or server mode\n * @param {Number} [options.maxPayload=0] The maximum allowed message length\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n */\n constructor(options = {}) {\n super();\n\n this._allowSynchronousEvents =\n options.allowSynchronousEvents !== undefined\n ? options.allowSynchronousEvents\n : true;\n this._binaryType = options.binaryType || BINARY_TYPES[0];\n this._extensions = options.extensions || {};\n this._isServer = !!options.isServer;\n this._maxPayload = options.maxPayload | 0;\n this._skipUTF8Validation = !!options.skipUTF8Validation;\n this[kWebSocket] = undefined;\n\n this._bufferedBytes = 0;\n this._buffers = [];\n\n this._compressed = false;\n this._payloadLength = 0;\n this._mask = undefined;\n this._fragmented = 0;\n this._masked = false;\n this._fin = false;\n this._opcode = 0;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragments = [];\n\n this._errored = false;\n this._loop = false;\n this._state = GET_INFO;\n }\n\n /**\n * Implements `Writable.prototype._write()`.\n *\n * @param {Buffer} chunk The chunk of data to write\n * @param {String} encoding The character encoding of `chunk`\n * @param {Function} cb Callback\n * @private\n */\n _write(chunk, encoding, cb) {\n if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n this._bufferedBytes += chunk.length;\n this._buffers.push(chunk);\n this.startLoop(cb);\n }\n\n /**\n * Consumes `n` bytes from the buffered data.\n *\n * @param {Number} n The number of bytes to consume\n * @return {Buffer} The consumed bytes\n * @private\n */\n consume(n) {\n this._bufferedBytes -= n;\n\n if (n === this._buffers[0].length) return this._buffers.shift();\n\n if (n < this._buffers[0].length) {\n const buf = this._buffers[0];\n this._buffers[0] = new FastBuffer(\n buf.buffer,\n buf.byteOffset + n,\n buf.length - n\n );\n\n return new FastBuffer(buf.buffer, buf.byteOffset, n);\n }\n\n const dst = Buffer.allocUnsafe(n);\n\n do {\n const buf = this._buffers[0];\n const offset = dst.length - n;\n\n if (n >= buf.length) {\n dst.set(this._buffers.shift(), offset);\n } else {\n dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n this._buffers[0] = new FastBuffer(\n buf.buffer,\n buf.byteOffset + n,\n buf.length - n\n );\n }\n\n n -= buf.length;\n } while (n > 0);\n\n return dst;\n }\n\n /**\n * Starts the parsing loop.\n *\n * @param {Function} cb Callback\n * @private\n */\n startLoop(cb) {\n this._loop = true;\n\n do {\n switch (this._state) {\n case GET_INFO:\n this.getInfo(cb);\n break;\n case GET_PAYLOAD_LENGTH_16:\n this.getPayloadLength16(cb);\n break;\n case GET_PAYLOAD_LENGTH_64:\n this.getPayloadLength64(cb);\n break;\n case GET_MASK:\n this.getMask();\n break;\n case GET_DATA:\n this.getData(cb);\n break;\n case INFLATING:\n case DEFER_EVENT:\n this._loop = false;\n return;\n }\n } while (this._loop);\n\n if (!this._errored) cb();\n }\n\n /**\n * Reads the first two bytes of a frame.\n *\n * @param {Function} cb Callback\n * @private\n */\n getInfo(cb) {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(2);\n\n if ((buf[0] & 0x30) !== 0x00) {\n const error = this.createError(\n RangeError,\n 'RSV2 and RSV3 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_2_3'\n );\n\n cb(error);\n return;\n }\n\n const compressed = (buf[0] & 0x40) === 0x40;\n\n if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n this._fin = (buf[0] & 0x80) === 0x80;\n this._opcode = buf[0] & 0x0f;\n this._payloadLength = buf[1] & 0x7f;\n\n if (this._opcode === 0x00) {\n if (compressed) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n if (!this._fragmented) {\n const error = this.createError(\n RangeError,\n 'invalid opcode 0',\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n this._opcode = this._fragmented;\n } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n if (this._fragmented) {\n const error = this.createError(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n this._compressed = compressed;\n } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n if (!this._fin) {\n const error = this.createError(\n RangeError,\n 'FIN must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_FIN'\n );\n\n cb(error);\n return;\n }\n\n if (compressed) {\n const error = this.createError(\n RangeError,\n 'RSV1 must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_RSV_1'\n );\n\n cb(error);\n return;\n }\n\n if (\n this._payloadLength > 0x7d ||\n (this._opcode === 0x08 && this._payloadLength === 1)\n ) {\n const error = this.createError(\n RangeError,\n `invalid payload length ${this._payloadLength}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n );\n\n cb(error);\n return;\n }\n } else {\n const error = this.createError(\n RangeError,\n `invalid opcode ${this._opcode}`,\n true,\n 1002,\n 'WS_ERR_INVALID_OPCODE'\n );\n\n cb(error);\n return;\n }\n\n if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n this._masked = (buf[1] & 0x80) === 0x80;\n\n if (this._isServer) {\n if (!this._masked) {\n const error = this.createError(\n RangeError,\n 'MASK must be set',\n true,\n 1002,\n 'WS_ERR_EXPECTED_MASK'\n );\n\n cb(error);\n return;\n }\n } else if (this._masked) {\n const error = this.createError(\n RangeError,\n 'MASK must be clear',\n true,\n 1002,\n 'WS_ERR_UNEXPECTED_MASK'\n );\n\n cb(error);\n return;\n }\n\n if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n else this.haveLength(cb);\n }\n\n /**\n * Gets extended payload length (7+16).\n *\n * @param {Function} cb Callback\n * @private\n */\n getPayloadLength16(cb) {\n if (this._bufferedBytes < 2) {\n this._loop = false;\n return;\n }\n\n this._payloadLength = this.consume(2).readUInt16BE(0);\n this.haveLength(cb);\n }\n\n /**\n * Gets extended payload length (7+64).\n *\n * @param {Function} cb Callback\n * @private\n */\n getPayloadLength64(cb) {\n if (this._bufferedBytes < 8) {\n this._loop = false;\n return;\n }\n\n const buf = this.consume(8);\n const num = buf.readUInt32BE(0);\n\n //\n // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n // if payload length is greater than this number.\n //\n if (num > Math.pow(2, 53 - 32) - 1) {\n const error = this.createError(\n RangeError,\n 'Unsupported WebSocket frame: payload length > 2^53 - 1',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH'\n );\n\n cb(error);\n return;\n }\n\n this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n this.haveLength(cb);\n }\n\n /**\n * Payload length has been read.\n *\n * @param {Function} cb Callback\n * @private\n */\n haveLength(cb) {\n if (this._payloadLength && this._opcode < 0x08) {\n this._totalPayloadLength += this._payloadLength;\n if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n const error = this.createError(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n\n cb(error);\n return;\n }\n }\n\n if (this._masked) this._state = GET_MASK;\n else this._state = GET_DATA;\n }\n\n /**\n * Reads mask bytes.\n *\n * @private\n */\n getMask() {\n if (this._bufferedBytes < 4) {\n this._loop = false;\n return;\n }\n\n this._mask = this.consume(4);\n this._state = GET_DATA;\n }\n\n /**\n * Reads data bytes.\n *\n * @param {Function} cb Callback\n * @private\n */\n getData(cb) {\n let data = EMPTY_BUFFER;\n\n if (this._payloadLength) {\n if (this._bufferedBytes < this._payloadLength) {\n this._loop = false;\n return;\n }\n\n data = this.consume(this._payloadLength);\n\n if (\n this._masked &&\n (this._mask[0] | this._mask[1] | this._mask[2] | this._mask[3]) !== 0\n ) {\n unmask(data, this._mask);\n }\n }\n\n if (this._opcode > 0x07) {\n this.controlMessage(data, cb);\n return;\n }\n\n if (this._compressed) {\n this._state = INFLATING;\n this.decompress(data, cb);\n return;\n }\n\n if (data.length) {\n //\n // This message is not compressed so its length is the sum of the payload\n // length of all fragments.\n //\n this._messageLength = this._totalPayloadLength;\n this._fragments.push(data);\n }\n\n this.dataMessage(cb);\n }\n\n /**\n * Decompresses data.\n *\n * @param {Buffer} data Compressed data\n * @param {Function} cb Callback\n * @private\n */\n decompress(data, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n if (err) return cb(err);\n\n if (buf.length) {\n this._messageLength += buf.length;\n if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n const error = this.createError(\n RangeError,\n 'Max payload size exceeded',\n false,\n 1009,\n 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n );\n\n cb(error);\n return;\n }\n\n this._fragments.push(buf);\n }\n\n this.dataMessage(cb);\n if (this._state === GET_INFO) this.startLoop(cb);\n });\n }\n\n /**\n * Handles a data message.\n *\n * @param {Function} cb Callback\n * @private\n */\n dataMessage(cb) {\n if (!this._fin) {\n this._state = GET_INFO;\n return;\n }\n\n const messageLength = this._messageLength;\n const fragments = this._fragments;\n\n this._totalPayloadLength = 0;\n this._messageLength = 0;\n this._fragmented = 0;\n this._fragments = [];\n\n if (this._opcode === 2) {\n let data;\n\n if (this._binaryType === 'nodebuffer') {\n data = concat(fragments, messageLength);\n } else if (this._binaryType === 'arraybuffer') {\n data = toArrayBuffer(concat(fragments, messageLength));\n } else if (this._binaryType === 'blob') {\n data = new Blob(fragments);\n } else {\n data = fragments;\n }\n\n if (this._allowSynchronousEvents) {\n this.emit('message', data, true);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit('message', data, true);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n } else {\n const buf = concat(fragments, messageLength);\n\n if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n const error = this.createError(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n\n cb(error);\n return;\n }\n\n if (this._state === INFLATING || this._allowSynchronousEvents) {\n this.emit('message', buf, false);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit('message', buf, false);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n }\n }\n\n /**\n * Handles a control message.\n *\n * @param {Buffer} data Data to handle\n * @return {(Error|RangeError|undefined)} A possible error\n * @private\n */\n controlMessage(data, cb) {\n if (this._opcode === 0x08) {\n if (data.length === 0) {\n this._loop = false;\n this.emit('conclude', 1005, EMPTY_BUFFER);\n this.end();\n } else {\n const code = data.readUInt16BE(0);\n\n if (!isValidStatusCode(code)) {\n const error = this.createError(\n RangeError,\n `invalid status code ${code}`,\n true,\n 1002,\n 'WS_ERR_INVALID_CLOSE_CODE'\n );\n\n cb(error);\n return;\n }\n\n const buf = new FastBuffer(\n data.buffer,\n data.byteOffset + 2,\n data.length - 2\n );\n\n if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n const error = this.createError(\n Error,\n 'invalid UTF-8 sequence',\n true,\n 1007,\n 'WS_ERR_INVALID_UTF8'\n );\n\n cb(error);\n return;\n }\n\n this._loop = false;\n this.emit('conclude', code, buf);\n this.end();\n }\n\n this._state = GET_INFO;\n return;\n }\n\n if (this._allowSynchronousEvents) {\n this.emit(this._opcode === 0x09 ? 'ping' : 'pong', data);\n this._state = GET_INFO;\n } else {\n this._state = DEFER_EVENT;\n setImmediate(() => {\n this.emit(this._opcode === 0x09 ? 'ping' : 'pong', data);\n this._state = GET_INFO;\n this.startLoop(cb);\n });\n }\n }\n\n /**\n * Builds an error object.\n *\n * @param {function(new:Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n * `message`\n * @param {Number} statusCode The status code\n * @param {String} errorCode The exposed error code\n * @return {(Error|RangeError)} The error\n * @private\n */\n createError(ErrorCtor, message, prefix, statusCode, errorCode) {\n this._loop = false;\n this._errored = true;\n\n const err = new ErrorCtor(\n prefix ? `Invalid WebSocket frame: ${message}` : message\n );\n\n Error.captureStackTrace(err, this.createError);\n err.code = errorCode;\n err[kStatusCode] = statusCode;\n return err;\n }\n}\n\nmodule.exports = Receiver;\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex\" }] */\n\n'use strict';\n\nconst { Duplex } = require('stream');\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER, kWebSocket, NOOP } = require('./constants');\nconst { isBlob, isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst kByteLength = Symbol('kByteLength');\nconst maskBuffer = Buffer.alloc(4);\nconst RANDOM_POOL_SIZE = 8 * 1024;\nlet randomPool;\nlet randomPoolPointer = RANDOM_POOL_SIZE;\n\nconst DEFAULT = 0;\nconst DEFLATING = 1;\nconst GET_BLOB_DATA = 2;\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n /**\n * Creates a Sender instance.\n *\n * @param {Duplex} socket The connection socket\n * @param {Object} [extensions] An object containing the negotiated extensions\n * @param {Function} [generateMask] The function used to generate the masking\n * key\n */\n constructor(socket, extensions, generateMask) {\n this._extensions = extensions || {};\n\n if (generateMask) {\n this._generateMask = generateMask;\n this._maskBuffer = Buffer.alloc(4);\n }\n\n this._socket = socket;\n\n this._firstFragment = true;\n this._compress = false;\n\n this._bufferedBytes = 0;\n this._queue = [];\n this._state = DEFAULT;\n this.onerror = NOOP;\n this[kWebSocket] = undefined;\n }\n\n /**\n * Frames a piece of data according to the HyBi WebSocket protocol.\n *\n * @param {(Buffer|String)} data The data to frame\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @return {(Buffer|String)[]} The framed data\n * @public\n */\n static frame(data, options) {\n let mask;\n let merge = false;\n let offset = 2;\n let skipMasking = false;\n\n if (options.mask) {\n mask = options.maskBuffer || maskBuffer;\n\n if (options.generateMask) {\n options.generateMask(mask);\n } else {\n if (randomPoolPointer === RANDOM_POOL_SIZE) {\n /* istanbul ignore else */\n if (randomPool === undefined) {\n //\n // This is lazily initialized because server-sent frames must not\n // be masked so it may never be used.\n //\n randomPool = Buffer.alloc(RANDOM_POOL_SIZE);\n }\n\n randomFillSync(randomPool, 0, RANDOM_POOL_SIZE);\n randomPoolPointer = 0;\n }\n\n mask[0] = randomPool[randomPoolPointer++];\n mask[1] = randomPool[randomPoolPointer++];\n mask[2] = randomPool[randomPoolPointer++];\n mask[3] = randomPool[randomPoolPointer++];\n }\n\n skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0;\n offset = 6;\n }\n\n let dataLength;\n\n if (typeof data === 'string') {\n if (\n (!options.mask || skipMasking) &&\n options[kByteLength] !== undefined\n ) {\n dataLength = options[kByteLength];\n } else {\n data = Buffer.from(data);\n dataLength = data.length;\n }\n } else {\n dataLength = data.length;\n merge = options.mask && options.readOnly && !skipMasking;\n }\n\n let payloadLength = dataLength;\n\n if (dataLength >= 65536) {\n offset += 8;\n payloadLength = 127;\n } else if (dataLength > 125) {\n offset += 2;\n payloadLength = 126;\n }\n\n const target = Buffer.allocUnsafe(merge ? dataLength + offset : offset);\n\n target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n if (options.rsv1) target[0] |= 0x40;\n\n target[1] = payloadLength;\n\n if (payloadLength === 126) {\n target.writeUInt16BE(dataLength, 2);\n } else if (payloadLength === 127) {\n target[2] = target[3] = 0;\n target.writeUIntBE(dataLength, 4, 6);\n }\n\n if (!options.mask) return [target, data];\n\n target[1] |= 0x80;\n target[offset - 4] = mask[0];\n target[offset - 3] = mask[1];\n target[offset - 2] = mask[2];\n target[offset - 1] = mask[3];\n\n if (skipMasking) return [target, data];\n\n if (merge) {\n applyMask(data, mask, target, offset, dataLength);\n return [target];\n }\n\n applyMask(data, mask, data, 0, dataLength);\n return [target, data];\n }\n\n /**\n * Sends a close message to the other peer.\n *\n * @param {Number} [code] The status code component of the body\n * @param {(String|Buffer)} [data] The message component of the body\n * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n * @param {Function} [cb] Callback\n * @public\n */\n close(code, data, mask, cb) {\n let buf;\n\n if (code === undefined) {\n buf = EMPTY_BUFFER;\n } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n throw new TypeError('First argument must be a valid error code number');\n } else if (data === undefined || !data.length) {\n buf = Buffer.allocUnsafe(2);\n buf.writeUInt16BE(code, 0);\n } else {\n const length = Buffer.byteLength(data);\n\n if (length > 123) {\n throw new RangeError('The message must not be greater than 123 bytes');\n }\n\n buf = Buffer.allocUnsafe(2 + length);\n buf.writeUInt16BE(code, 0);\n\n if (typeof data === 'string') {\n buf.write(data, 2);\n } else {\n buf.set(data, 2);\n }\n }\n\n const options = {\n [kByteLength]: buf.length,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x08,\n readOnly: false,\n rsv1: false\n };\n\n if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, buf, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(buf, options), cb);\n }\n }\n\n /**\n * Sends a ping message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n ping(data, mask, cb) {\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (byteLength > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n const options = {\n [kByteLength]: byteLength,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x09,\n readOnly,\n rsv1: false\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, false, options, cb]);\n } else {\n this.getBlobData(data, false, options, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(data, options), cb);\n }\n }\n\n /**\n * Sends a pong message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback\n * @public\n */\n pong(data, mask, cb) {\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (byteLength > 125) {\n throw new RangeError('The data size must not be greater than 125 bytes');\n }\n\n const options = {\n [kByteLength]: byteLength,\n fin: true,\n generateMask: this._generateMask,\n mask,\n maskBuffer: this._maskBuffer,\n opcode: 0x0a,\n readOnly,\n rsv1: false\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, false, options, cb]);\n } else {\n this.getBlobData(data, false, options, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, false, options, cb]);\n } else {\n this.sendFrame(Sender.frame(data, options), cb);\n }\n }\n\n /**\n * Sends a data message to the other peer.\n *\n * @param {*} data The message to send\n * @param {Object} options Options object\n * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n * or text\n * @param {Boolean} [options.compress=false] Specifies whether or not to\n * compress `data`\n * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Function} [cb] Callback\n * @public\n */\n send(data, options, cb) {\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n let opcode = options.binary ? 2 : 1;\n let rsv1 = options.compress;\n\n let byteLength;\n let readOnly;\n\n if (typeof data === 'string') {\n byteLength = Buffer.byteLength(data);\n readOnly = false;\n } else if (isBlob(data)) {\n byteLength = data.size;\n readOnly = false;\n } else {\n data = toBuffer(data);\n byteLength = data.length;\n readOnly = toBuffer.readOnly;\n }\n\n if (this._firstFragment) {\n this._firstFragment = false;\n if (\n rsv1 &&\n perMessageDeflate &&\n perMessageDeflate.params[\n perMessageDeflate._isServer\n ? 'server_no_context_takeover'\n : 'client_no_context_takeover'\n ]\n ) {\n rsv1 = byteLength >= perMessageDeflate._threshold;\n }\n this._compress = rsv1;\n } else {\n rsv1 = false;\n opcode = 0;\n }\n\n if (options.fin) this._firstFragment = true;\n\n const opts = {\n [kByteLength]: byteLength,\n fin: options.fin,\n generateMask: this._generateMask,\n mask: options.mask,\n maskBuffer: this._maskBuffer,\n opcode,\n readOnly,\n rsv1\n };\n\n if (isBlob(data)) {\n if (this._state !== DEFAULT) {\n this.enqueue([this.getBlobData, data, this._compress, opts, cb]);\n } else {\n this.getBlobData(data, this._compress, opts, cb);\n }\n } else if (this._state !== DEFAULT) {\n this.enqueue([this.dispatch, data, this._compress, opts, cb]);\n } else {\n this.dispatch(data, this._compress, opts, cb);\n }\n }\n\n /**\n * Gets the contents of a blob as binary data.\n *\n * @param {Blob} blob The blob\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * the data\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n getBlobData(blob, compress, options, cb) {\n this._bufferedBytes += options[kByteLength];\n this._state = GET_BLOB_DATA;\n\n blob\n .arrayBuffer()\n .then((arrayBuffer) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while the blob was being read'\n );\n\n //\n // `callCallbacks` is called in the next tick to ensure that errors\n // that might be thrown in the callbacks behave like errors thrown\n // outside the promise chain.\n //\n process.nextTick(callCallbacks, this, err, cb);\n return;\n }\n\n this._bufferedBytes -= options[kByteLength];\n const data = toBuffer(arrayBuffer);\n\n if (!compress) {\n this._state = DEFAULT;\n this.sendFrame(Sender.frame(data, options), cb);\n this.dequeue();\n } else {\n this.dispatch(data, compress, options, cb);\n }\n })\n .catch((err) => {\n //\n // `onError` is called in the next tick for the same reason that\n // `callCallbacks` above is.\n //\n process.nextTick(onError, this, err, cb);\n });\n }\n\n /**\n * Dispatches a message.\n *\n * @param {(Buffer|String)} data The message to send\n * @param {Boolean} [compress=false] Specifies whether or not to compress\n * `data`\n * @param {Object} options Options object\n * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n * FIN bit\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n * `data`\n * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n * key\n * @param {Number} options.opcode The opcode\n * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n * modified\n * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n * RSV1 bit\n * @param {Function} [cb] Callback\n * @private\n */\n dispatch(data, compress, options, cb) {\n if (!compress) {\n this.sendFrame(Sender.frame(data, options), cb);\n return;\n }\n\n const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n this._bufferedBytes += options[kByteLength];\n this._state = DEFLATING;\n perMessageDeflate.compress(data, options.fin, (_, buf) => {\n if (this._socket.destroyed) {\n const err = new Error(\n 'The socket was closed while data was being compressed'\n );\n\n callCallbacks(this, err, cb);\n return;\n }\n\n this._bufferedBytes -= options[kByteLength];\n this._state = DEFAULT;\n options.readOnly = false;\n this.sendFrame(Sender.frame(buf, options), cb);\n this.dequeue();\n });\n }\n\n /**\n * Executes queued send operations.\n *\n * @private\n */\n dequeue() {\n while (this._state === DEFAULT && this._queue.length) {\n const params = this._queue.shift();\n\n this._bufferedBytes -= params[3][kByteLength];\n Reflect.apply(params[0], this, params.slice(1));\n }\n }\n\n /**\n * Enqueues a send operation.\n *\n * @param {Array} params Send operation parameters.\n * @private\n */\n enqueue(params) {\n this._bufferedBytes += params[3][kByteLength];\n this._queue.push(params);\n }\n\n /**\n * Sends a frame.\n *\n * @param {(Buffer | String)[]} list The frame to send\n * @param {Function} [cb] Callback\n * @private\n */\n sendFrame(list, cb) {\n if (list.length === 2) {\n this._socket.cork();\n this._socket.write(list[0]);\n this._socket.write(list[1], cb);\n this._socket.uncork();\n } else {\n this._socket.write(list[0], cb);\n }\n }\n}\n\nmodule.exports = Sender;\n\n/**\n * Calls queued callbacks with an error.\n *\n * @param {Sender} sender The `Sender` instance\n * @param {Error} err The error to call the callbacks with\n * @param {Function} [cb] The first callback\n * @private\n */\nfunction callCallbacks(sender, err, cb) {\n if (typeof cb === 'function') cb(err);\n\n for (let i = 0; i < sender._queue.length; i++) {\n const params = sender._queue[i];\n const callback = params[params.length - 1];\n\n if (typeof callback === 'function') callback(err);\n }\n}\n\n/**\n * Handles a `Sender` error.\n *\n * @param {Sender} sender The `Sender` instance\n * @param {Error} err The error\n * @param {Function} [cb] The first pending callback\n * @private\n */\nfunction onError(sender, err, cb) {\n callCallbacks(sender, err, cb);\n sender.onerror(err);\n}\n","'use strict';\n\nconst { kForOnEventAttribute, kListener } = require('./constants');\n\nconst kCode = Symbol('kCode');\nconst kData = Symbol('kData');\nconst kError = Symbol('kError');\nconst kMessage = Symbol('kMessage');\nconst kReason = Symbol('kReason');\nconst kTarget = Symbol('kTarget');\nconst kType = Symbol('kType');\nconst kWasClean = Symbol('kWasClean');\n\n/**\n * Class representing an event.\n */\nclass Event {\n /**\n * Create a new `Event`.\n *\n * @param {String} type The name of the event\n * @throws {TypeError} If the `type` argument is not specified\n */\n constructor(type) {\n this[kTarget] = null;\n this[kType] = type;\n }\n\n /**\n * @type {*}\n */\n get target() {\n return this[kTarget];\n }\n\n /**\n * @type {String}\n */\n get type() {\n return this[kType];\n }\n}\n\nObject.defineProperty(Event.prototype, 'target', { enumerable: true });\nObject.defineProperty(Event.prototype, 'type', { enumerable: true });\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n */\nclass CloseEvent extends Event {\n /**\n * Create a new `CloseEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {Number} [options.code=0] The status code explaining why the\n * connection was closed\n * @param {String} [options.reason=''] A human-readable string explaining why\n * the connection was closed\n * @param {Boolean} [options.wasClean=false] Indicates whether or not the\n * connection was cleanly closed\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kCode] = options.code === undefined ? 0 : options.code;\n this[kReason] = options.reason === undefined ? '' : options.reason;\n this[kWasClean] = options.wasClean === undefined ? false : options.wasClean;\n }\n\n /**\n * @type {Number}\n */\n get code() {\n return this[kCode];\n }\n\n /**\n * @type {String}\n */\n get reason() {\n return this[kReason];\n }\n\n /**\n * @type {Boolean}\n */\n get wasClean() {\n return this[kWasClean];\n }\n}\n\nObject.defineProperty(CloseEvent.prototype, 'code', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'reason', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'wasClean', { enumerable: true });\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n */\nclass ErrorEvent extends Event {\n /**\n * Create a new `ErrorEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {*} [options.error=null] The error that generated this event\n * @param {String} [options.message=''] The error message\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kError] = options.error === undefined ? null : options.error;\n this[kMessage] = options.message === undefined ? '' : options.message;\n }\n\n /**\n * @type {*}\n */\n get error() {\n return this[kError];\n }\n\n /**\n * @type {String}\n */\n get message() {\n return this[kMessage];\n }\n}\n\nObject.defineProperty(ErrorEvent.prototype, 'error', { enumerable: true });\nObject.defineProperty(ErrorEvent.prototype, 'message', { enumerable: true });\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n */\nclass MessageEvent extends Event {\n /**\n * Create a new `MessageEvent`.\n *\n * @param {String} type The name of the event\n * @param {Object} [options] A dictionary object that allows for setting\n * attributes via object members of the same name\n * @param {*} [options.data=null] The message content\n */\n constructor(type, options = {}) {\n super(type);\n\n this[kData] = options.data === undefined ? null : options.data;\n }\n\n /**\n * @type {*}\n */\n get data() {\n return this[kData];\n }\n}\n\nObject.defineProperty(MessageEvent.prototype, 'data', { enumerable: true });\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n /**\n * Register an event listener.\n *\n * @param {String} type A string representing the event type to listen for\n * @param {(Function|Object)} handler The listener to add\n * @param {Object} [options] An options object specifies characteristics about\n * the event listener\n * @param {Boolean} [options.once=false] A `Boolean` indicating that the\n * listener should be invoked at most once after being added. If `true`,\n * the listener would be automatically removed when invoked.\n * @public\n */\n addEventListener(type, handler, options = {}) {\n for (const listener of this.listeners(type)) {\n if (\n !options[kForOnEventAttribute] &&\n listener[kListener] === handler &&\n !listener[kForOnEventAttribute]\n ) {\n return;\n }\n }\n\n let wrapper;\n\n if (type === 'message') {\n wrapper = function onMessage(data, isBinary) {\n const event = new MessageEvent('message', {\n data: isBinary ? data : data.toString()\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'close') {\n wrapper = function onClose(code, message) {\n const event = new CloseEvent('close', {\n code,\n reason: message.toString(),\n wasClean: this._closeFrameReceived && this._closeFrameSent\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'error') {\n wrapper = function onError(error) {\n const event = new ErrorEvent('error', {\n error,\n message: error.message\n });\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else if (type === 'open') {\n wrapper = function onOpen() {\n const event = new Event('open');\n\n event[kTarget] = this;\n callListener(handler, this, event);\n };\n } else {\n return;\n }\n\n wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute];\n wrapper[kListener] = handler;\n\n if (options.once) {\n this.once(type, wrapper);\n } else {\n this.on(type, wrapper);\n }\n },\n\n /**\n * Remove an event listener.\n *\n * @param {String} type A string representing the event type to remove\n * @param {(Function|Object)} handler The listener to remove\n * @public\n */\n removeEventListener(type, handler) {\n for (const listener of this.listeners(type)) {\n if (listener[kListener] === handler && !listener[kForOnEventAttribute]) {\n this.removeListener(type, listener);\n break;\n }\n }\n }\n};\n\nmodule.exports = {\n CloseEvent,\n ErrorEvent,\n Event,\n EventTarget,\n MessageEvent\n};\n\n/**\n * Call an event listener\n *\n * @param {(Function|Object)} listener The listener to call\n * @param {*} thisArg The value to use as `this`` when calling the listener\n * @param {Event} event The event to pass to the listener\n * @private\n */\nfunction callListener(listener, thisArg, event) {\n if (typeof listener === 'object' && listener.handleEvent) {\n listener.handleEvent.call(listener, event);\n } else {\n listener.call(thisArg, event);\n }\n}\n","'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n * parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n if (dest[name] === undefined) dest[name] = [elem];\n else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n const offers = Object.create(null);\n let params = Object.create(null);\n let mustUnescape = false;\n let isEscaping = false;\n let inQuotes = false;\n let extensionName;\n let paramName;\n let start = -1;\n let code = -1;\n let end = -1;\n let i = 0;\n\n for (; i < header.length; i++) {\n code = header.charCodeAt(i);\n\n if (extensionName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (\n i !== 0 &&\n (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n ) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n const name = header.slice(start, end);\n if (code === 0x2c) {\n push(offers, name, params);\n params = Object.create(null);\n } else {\n extensionName = name;\n }\n\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (paramName === undefined) {\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x20 || code === 0x09) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n push(params, header.slice(start, end), true);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n start = end = -1;\n } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n paramName = header.slice(start, i);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else {\n //\n // The value of a quoted-string after unescaping must conform to the\n // token ABNF, so only token characters are valid.\n // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n //\n if (isEscaping) {\n if (tokenChars[code] !== 1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n if (start === -1) start = i;\n else if (!mustUnescape) mustUnescape = true;\n isEscaping = false;\n } else if (inQuotes) {\n if (tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (code === 0x22 /* '\"' */ && start !== -1) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5c /* '\\' */) {\n isEscaping = true;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n inQuotes = true;\n } else if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n if (end === -1) end = i;\n } else if (code === 0x3b || code === 0x2c) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n let value = header.slice(start, end);\n if (mustUnescape) {\n value = value.replace(/\\\\/g, '');\n mustUnescape = false;\n }\n push(params, paramName, value);\n if (code === 0x2c) {\n push(offers, extensionName, params);\n params = Object.create(null);\n extensionName = undefined;\n }\n\n paramName = undefined;\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n }\n\n if (start === -1 || inQuotes || code === 0x20 || code === 0x09) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n if (end === -1) end = i;\n const token = header.slice(start, end);\n if (extensionName === undefined) {\n push(offers, token, params);\n } else {\n if (paramName === undefined) {\n push(params, token, true);\n } else if (mustUnescape) {\n push(params, paramName, token.replace(/\\\\/g, ''));\n } else {\n push(params, paramName, token);\n }\n push(offers, extensionName, params);\n }\n\n return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n return Object.keys(extensions)\n .map((extension) => {\n let configurations = extensions[extension];\n if (!Array.isArray(configurations)) configurations = [configurations];\n return configurations\n .map((params) => {\n return [extension]\n .concat(\n Object.keys(params).map((k) => {\n let values = params[k];\n if (!Array.isArray(values)) values = [values];\n return values\n .map((v) => (v === true ? k : `${k}=${v}`))\n .join('; ');\n })\n )\n .join('; ');\n })\n .join(', ');\n })\n .join(', ');\n}\n\nmodule.exports = { format, parse };\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex|Readable$\", \"caughtErrors\": \"none\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { Duplex, Readable } = require('stream');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst { isBlob } = require('./validation');\n\nconst {\n BINARY_TYPES,\n EMPTY_BUFFER,\n GUID,\n kForOnEventAttribute,\n kListener,\n kStatusCode,\n kWebSocket,\n NOOP\n} = require('./constants');\nconst {\n EventTarget: { addEventListener, removeEventListener }\n} = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst closeTimeout = 30 * 1000;\nconst kAborted = Symbol('kAborted');\nconst protocolVersions = [8, 13];\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst subprotocolRegex = /^[!#$%&'*+\\-.0-9A-Z^_`|a-z~]+$/;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n /**\n * Create a new `WebSocket`.\n *\n * @param {(String|URL)} address The URL to which to connect\n * @param {(String|String[])} [protocols] The subprotocols\n * @param {Object} [options] Connection options\n */\n constructor(address, protocols, options) {\n super();\n\n this._binaryType = BINARY_TYPES[0];\n this._closeCode = 1006;\n this._closeFrameReceived = false;\n this._closeFrameSent = false;\n this._closeMessage = EMPTY_BUFFER;\n this._closeTimer = null;\n this._errorEmitted = false;\n this._extensions = {};\n this._paused = false;\n this._protocol = '';\n this._readyState = WebSocket.CONNECTING;\n this._receiver = null;\n this._sender = null;\n this._socket = null;\n\n if (address !== null) {\n this._bufferedAmount = 0;\n this._isServer = false;\n this._redirects = 0;\n\n if (protocols === undefined) {\n protocols = [];\n } else if (!Array.isArray(protocols)) {\n if (typeof protocols === 'object' && protocols !== null) {\n options = protocols;\n protocols = [];\n } else {\n protocols = [protocols];\n }\n }\n\n initAsClient(this, address, protocols, options);\n } else {\n this._autoPong = options.autoPong;\n this._isServer = true;\n }\n }\n\n /**\n * For historical reasons, the custom \"nodebuffer\" type is used by the default\n * instead of \"blob\".\n *\n * @type {String}\n */\n get binaryType() {\n return this._binaryType;\n }\n\n set binaryType(type) {\n if (!BINARY_TYPES.includes(type)) return;\n\n this._binaryType = type;\n\n //\n // Allow to change `binaryType` on the fly.\n //\n if (this._receiver) this._receiver._binaryType = type;\n }\n\n /**\n * @type {Number}\n */\n get bufferedAmount() {\n if (!this._socket) return this._bufferedAmount;\n\n return this._socket._writableState.length + this._sender._bufferedBytes;\n }\n\n /**\n * @type {String}\n */\n get extensions() {\n return Object.keys(this._extensions).join();\n }\n\n /**\n * @type {Boolean}\n */\n get isPaused() {\n return this._paused;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onclose() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onerror() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onopen() {\n return null;\n }\n\n /**\n * @type {Function}\n */\n /* istanbul ignore next */\n get onmessage() {\n return null;\n }\n\n /**\n * @type {String}\n */\n get protocol() {\n return this._protocol;\n }\n\n /**\n * @type {Number}\n */\n get readyState() {\n return this._readyState;\n }\n\n /**\n * @type {String}\n */\n get url() {\n return this._url;\n }\n\n /**\n * Set up the socket and the internal resources.\n *\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Object} options Options object\n * @param {Boolean} [options.allowSynchronousEvents=false] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Number} [options.maxPayload=0] The maximum allowed message size\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @private\n */\n setSocket(socket, head, options) {\n const receiver = new Receiver({\n allowSynchronousEvents: options.allowSynchronousEvents,\n binaryType: this.binaryType,\n extensions: this._extensions,\n isServer: this._isServer,\n maxPayload: options.maxPayload,\n skipUTF8Validation: options.skipUTF8Validation\n });\n\n const sender = new Sender(socket, this._extensions, options.generateMask);\n\n this._receiver = receiver;\n this._sender = sender;\n this._socket = socket;\n\n receiver[kWebSocket] = this;\n sender[kWebSocket] = this;\n socket[kWebSocket] = this;\n\n receiver.on('conclude', receiverOnConclude);\n receiver.on('drain', receiverOnDrain);\n receiver.on('error', receiverOnError);\n receiver.on('message', receiverOnMessage);\n receiver.on('ping', receiverOnPing);\n receiver.on('pong', receiverOnPong);\n\n sender.onerror = senderOnError;\n\n //\n // These methods may not be available if `socket` is just a `Duplex`.\n //\n if (socket.setTimeout) socket.setTimeout(0);\n if (socket.setNoDelay) socket.setNoDelay();\n\n if (head.length > 0) socket.unshift(head);\n\n socket.on('close', socketOnClose);\n socket.on('data', socketOnData);\n socket.on('end', socketOnEnd);\n socket.on('error', socketOnError);\n\n this._readyState = WebSocket.OPEN;\n this.emit('open');\n }\n\n /**\n * Emit the `'close'` event.\n *\n * @private\n */\n emitClose() {\n if (!this._socket) {\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n return;\n }\n\n if (this._extensions[PerMessageDeflate.extensionName]) {\n this._extensions[PerMessageDeflate.extensionName].cleanup();\n }\n\n this._receiver.removeAllListeners();\n this._readyState = WebSocket.CLOSED;\n this.emit('close', this._closeCode, this._closeMessage);\n }\n\n /**\n * Start a closing handshake.\n *\n * +----------+ +-----------+ +----------+\n * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n * | +----------+ +-----------+ +----------+ |\n * +----------+ +-----------+ |\n * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING\n * +----------+ +-----------+ |\n * | | | +---+ |\n * +------------------------+-->|fin| - - - -\n * | +---+ | +---+\n * - - - - -|fin|<---------------------+\n * +---+\n *\n * @param {Number} [code] Status code explaining why the connection is closing\n * @param {(String|Buffer)} [data] The reason why the connection is\n * closing\n * @public\n */\n close(code, data) {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n abortHandshake(this, this._req, msg);\n return;\n }\n\n if (this.readyState === WebSocket.CLOSING) {\n if (\n this._closeFrameSent &&\n (this._closeFrameReceived || this._receiver._writableState.errorEmitted)\n ) {\n this._socket.end();\n }\n\n return;\n }\n\n this._readyState = WebSocket.CLOSING;\n this._sender.close(code, data, !this._isServer, (err) => {\n //\n // This error is handled by the `'error'` listener on the socket. We only\n // want to know if the close frame has been sent here.\n //\n if (err) return;\n\n this._closeFrameSent = true;\n\n if (\n this._closeFrameReceived ||\n this._receiver._writableState.errorEmitted\n ) {\n this._socket.end();\n }\n });\n\n setCloseTimer(this);\n }\n\n /**\n * Pause the socket.\n *\n * @public\n */\n pause() {\n if (\n this.readyState === WebSocket.CONNECTING ||\n this.readyState === WebSocket.CLOSED\n ) {\n return;\n }\n\n this._paused = true;\n this._socket.pause();\n }\n\n /**\n * Send a ping.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the ping is sent\n * @public\n */\n ping(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Send a pong.\n *\n * @param {*} [data] The data to send\n * @param {Boolean} [mask] Indicates whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when the pong is sent\n * @public\n */\n pong(data, mask, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof data === 'function') {\n cb = data;\n data = mask = undefined;\n } else if (typeof mask === 'function') {\n cb = mask;\n mask = undefined;\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n if (mask === undefined) mask = !this._isServer;\n this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n }\n\n /**\n * Resume the socket.\n *\n * @public\n */\n resume() {\n if (\n this.readyState === WebSocket.CONNECTING ||\n this.readyState === WebSocket.CLOSED\n ) {\n return;\n }\n\n this._paused = false;\n if (!this._receiver._writableState.needDrain) this._socket.resume();\n }\n\n /**\n * Send a data message.\n *\n * @param {*} data The message to send\n * @param {Object} [options] Options object\n * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n * text\n * @param {Boolean} [options.compress] Specifies whether or not to compress\n * `data`\n * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n * last one\n * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n * @param {Function} [cb] Callback which is executed when data is written out\n * @public\n */\n send(data, options, cb) {\n if (this.readyState === WebSocket.CONNECTING) {\n throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n }\n\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n if (typeof data === 'number') data = data.toString();\n\n if (this.readyState !== WebSocket.OPEN) {\n sendAfterClose(this, data, cb);\n return;\n }\n\n const opts = {\n binary: typeof data !== 'string',\n mask: !this._isServer,\n compress: true,\n fin: true,\n ...options\n };\n\n if (!this._extensions[PerMessageDeflate.extensionName]) {\n opts.compress = false;\n }\n\n this._sender.send(data || EMPTY_BUFFER, opts, cb);\n }\n\n /**\n * Forcibly close the connection.\n *\n * @public\n */\n terminate() {\n if (this.readyState === WebSocket.CLOSED) return;\n if (this.readyState === WebSocket.CONNECTING) {\n const msg = 'WebSocket was closed before the connection was established';\n abortHandshake(this, this._req, msg);\n return;\n }\n\n if (this._socket) {\n this._readyState = WebSocket.CLOSING;\n this._socket.destroy();\n }\n }\n}\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CONNECTING', {\n enumerable: true,\n value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'OPEN', {\n enumerable: true,\n value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSING', {\n enumerable: true,\n value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSED', {\n enumerable: true,\n value: readyStates.indexOf('CLOSED')\n});\n\n[\n 'binaryType',\n 'bufferedAmount',\n 'extensions',\n 'isPaused',\n 'protocol',\n 'readyState',\n 'url'\n].forEach((property) => {\n Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n Object.defineProperty(WebSocket.prototype, `on${method}`, {\n enumerable: true,\n get() {\n for (const listener of this.listeners(method)) {\n if (listener[kForOnEventAttribute]) return listener[kListener];\n }\n\n return null;\n },\n set(handler) {\n for (const listener of this.listeners(method)) {\n if (listener[kForOnEventAttribute]) {\n this.removeListener(method, listener);\n break;\n }\n }\n\n if (typeof handler !== 'function') return;\n\n this.addEventListener(method, handler, {\n [kForOnEventAttribute]: true\n });\n }\n });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|URL)} address The URL to which to connect\n * @param {Array} protocols The subprotocols\n * @param {Object} [options] Connection options\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether any\n * of the `'message'`, `'ping'`, and `'pong'` events can be emitted multiple\n * times in the same tick\n * @param {Boolean} [options.autoPong=true] Specifies whether or not to\n * automatically send a pong in response to a ping\n * @param {Function} [options.finishRequest] A function which can be used to\n * customize the headers of each http request before it is sent\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n * redirects\n * @param {Function} [options.generateMask] The function used to generate the\n * masking key\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n * handshake request\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n * allowed\n * @param {String} [options.origin] Value of the `Origin` or\n * `Sec-WebSocket-Origin` header\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n * permessage-deflate\n * @param {Number} [options.protocolVersion=13] Value of the\n * `Sec-WebSocket-Version` header\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n const opts = {\n allowSynchronousEvents: true,\n autoPong: true,\n protocolVersion: protocolVersions[1],\n maxPayload: 100 * 1024 * 1024,\n skipUTF8Validation: false,\n perMessageDeflate: true,\n followRedirects: false,\n maxRedirects: 10,\n ...options,\n socketPath: undefined,\n hostname: undefined,\n protocol: undefined,\n timeout: undefined,\n method: 'GET',\n host: undefined,\n path: undefined,\n port: undefined\n };\n\n websocket._autoPong = opts.autoPong;\n\n if (!protocolVersions.includes(opts.protocolVersion)) {\n throw new RangeError(\n `Unsupported protocol version: ${opts.protocolVersion} ` +\n `(supported versions: ${protocolVersions.join(', ')})`\n );\n }\n\n let parsedUrl;\n\n if (address instanceof URL) {\n parsedUrl = address;\n } else {\n try {\n parsedUrl = new URL(address);\n } catch (e) {\n throw new SyntaxError(`Invalid URL: ${address}`);\n }\n }\n\n if (parsedUrl.protocol === 'http:') {\n parsedUrl.protocol = 'ws:';\n } else if (parsedUrl.protocol === 'https:') {\n parsedUrl.protocol = 'wss:';\n }\n\n websocket._url = parsedUrl.href;\n\n const isSecure = parsedUrl.protocol === 'wss:';\n const isIpcUrl = parsedUrl.protocol === 'ws+unix:';\n let invalidUrlMessage;\n\n if (parsedUrl.protocol !== 'ws:' && !isSecure && !isIpcUrl) {\n invalidUrlMessage =\n 'The URL\\'s protocol must be one of \"ws:\", \"wss:\", ' +\n '\"http:\", \"https:\", or \"ws+unix:\"';\n } else if (isIpcUrl && !parsedUrl.pathname) {\n invalidUrlMessage = \"The URL's pathname is empty\";\n } else if (parsedUrl.hash) {\n invalidUrlMessage = 'The URL contains a fragment identifier';\n }\n\n if (invalidUrlMessage) {\n const err = new SyntaxError(invalidUrlMessage);\n\n if (websocket._redirects === 0) {\n throw err;\n } else {\n emitErrorAndClose(websocket, err);\n return;\n }\n }\n\n const defaultPort = isSecure ? 443 : 80;\n const key = randomBytes(16).toString('base64');\n const request = isSecure ? https.request : http.request;\n const protocolSet = new Set();\n let perMessageDeflate;\n\n opts.createConnection =\n opts.createConnection || (isSecure ? tlsConnect : netConnect);\n opts.defaultPort = opts.defaultPort || defaultPort;\n opts.port = parsedUrl.port || defaultPort;\n opts.host = parsedUrl.hostname.startsWith('[')\n ? parsedUrl.hostname.slice(1, -1)\n : parsedUrl.hostname;\n opts.headers = {\n ...opts.headers,\n 'Sec-WebSocket-Version': opts.protocolVersion,\n 'Sec-WebSocket-Key': key,\n Connection: 'Upgrade',\n Upgrade: 'websocket'\n };\n opts.path = parsedUrl.pathname + parsedUrl.search;\n opts.timeout = opts.handshakeTimeout;\n\n if (opts.perMessageDeflate) {\n perMessageDeflate = new PerMessageDeflate(\n opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n false,\n opts.maxPayload\n );\n opts.headers['Sec-WebSocket-Extensions'] = format({\n [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n });\n }\n if (protocols.length) {\n for (const protocol of protocols) {\n if (\n typeof protocol !== 'string' ||\n !subprotocolRegex.test(protocol) ||\n protocolSet.has(protocol)\n ) {\n throw new SyntaxError(\n 'An invalid or duplicated subprotocol was specified'\n );\n }\n\n protocolSet.add(protocol);\n }\n\n opts.headers['Sec-WebSocket-Protocol'] = protocols.join(',');\n }\n if (opts.origin) {\n if (opts.protocolVersion < 13) {\n opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n } else {\n opts.headers.Origin = opts.origin;\n }\n }\n if (parsedUrl.username || parsedUrl.password) {\n opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n }\n\n if (isIpcUrl) {\n const parts = opts.path.split(':');\n\n opts.socketPath = parts[0];\n opts.path = parts[1];\n }\n\n let req;\n\n if (opts.followRedirects) {\n if (websocket._redirects === 0) {\n websocket._originalIpc = isIpcUrl;\n websocket._originalSecure = isSecure;\n websocket._originalHostOrSocketPath = isIpcUrl\n ? opts.socketPath\n : parsedUrl.host;\n\n const headers = options && options.headers;\n\n //\n // Shallow copy the user provided options so that headers can be changed\n // without mutating the original object.\n //\n options = { ...options, headers: {} };\n\n if (headers) {\n for (const [key, value] of Object.entries(headers)) {\n options.headers[key.toLowerCase()] = value;\n }\n }\n } else if (websocket.listenerCount('redirect') === 0) {\n const isSameHost = isIpcUrl\n ? websocket._originalIpc\n ? opts.socketPath === websocket._originalHostOrSocketPath\n : false\n : websocket._originalIpc\n ? false\n : parsedUrl.host === websocket._originalHostOrSocketPath;\n\n if (!isSameHost || (websocket._originalSecure && !isSecure)) {\n //\n // Match curl 7.77.0 behavior and drop the following headers. These\n // headers are also dropped when following a redirect to a subdomain.\n //\n delete opts.headers.authorization;\n delete opts.headers.cookie;\n\n if (!isSameHost) delete opts.headers.host;\n\n opts.auth = undefined;\n }\n }\n\n //\n // Match curl 7.77.0 behavior and make the first `Authorization` header win.\n // If the `Authorization` header is set, then there is nothing to do as it\n // will take precedence.\n //\n if (opts.auth && !options.headers.authorization) {\n options.headers.authorization =\n 'Basic ' + Buffer.from(opts.auth).toString('base64');\n }\n\n req = websocket._req = request(opts);\n\n if (websocket._redirects) {\n //\n // Unlike what is done for the `'upgrade'` event, no early exit is\n // triggered here if the user calls `websocket.close()` or\n // `websocket.terminate()` from a listener of the `'redirect'` event. This\n // is because the user can also call `request.destroy()` with an error\n // before calling `websocket.close()` or `websocket.terminate()` and this\n // would result in an error being emitted on the `request` object with no\n // `'error'` event listeners attached.\n //\n websocket.emit('redirect', websocket.url, req);\n }\n } else {\n req = websocket._req = request(opts);\n }\n\n if (opts.timeout) {\n req.on('timeout', () => {\n abortHandshake(websocket, req, 'Opening handshake has timed out');\n });\n }\n\n req.on('error', (err) => {\n if (req === null || req[kAborted]) return;\n\n req = websocket._req = null;\n emitErrorAndClose(websocket, err);\n });\n\n req.on('response', (res) => {\n const location = res.headers.location;\n const statusCode = res.statusCode;\n\n if (\n location &&\n opts.followRedirects &&\n statusCode >= 300 &&\n statusCode < 400\n ) {\n if (++websocket._redirects > opts.maxRedirects) {\n abortHandshake(websocket, req, 'Maximum redirects exceeded');\n return;\n }\n\n req.abort();\n\n let addr;\n\n try {\n addr = new URL(location, address);\n } catch (e) {\n const err = new SyntaxError(`Invalid URL: ${location}`);\n emitErrorAndClose(websocket, err);\n return;\n }\n\n initAsClient(websocket, addr, protocols, options);\n } else if (!websocket.emit('unexpected-response', req, res)) {\n abortHandshake(\n websocket,\n req,\n `Unexpected server response: ${res.statusCode}`\n );\n }\n });\n\n req.on('upgrade', (res, socket, head) => {\n websocket.emit('upgrade', res);\n\n //\n // The user may have closed the connection from a listener of the\n // `'upgrade'` event.\n //\n if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n req = websocket._req = null;\n\n const upgrade = res.headers.upgrade;\n\n if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') {\n abortHandshake(websocket, socket, 'Invalid Upgrade header');\n return;\n }\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n if (res.headers['sec-websocket-accept'] !== digest) {\n abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n return;\n }\n\n const serverProt = res.headers['sec-websocket-protocol'];\n let protError;\n\n if (serverProt !== undefined) {\n if (!protocolSet.size) {\n protError = 'Server sent a subprotocol but none was requested';\n } else if (!protocolSet.has(serverProt)) {\n protError = 'Server sent an invalid subprotocol';\n }\n } else if (protocolSet.size) {\n protError = 'Server sent no subprotocol';\n }\n\n if (protError) {\n abortHandshake(websocket, socket, protError);\n return;\n }\n\n if (serverProt) websocket._protocol = serverProt;\n\n const secWebSocketExtensions = res.headers['sec-websocket-extensions'];\n\n if (secWebSocketExtensions !== undefined) {\n if (!perMessageDeflate) {\n const message =\n 'Server sent a Sec-WebSocket-Extensions header but no extension ' +\n 'was requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n let extensions;\n\n try {\n extensions = parse(secWebSocketExtensions);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n const extensionNames = Object.keys(extensions);\n\n if (\n extensionNames.length !== 1 ||\n extensionNames[0] !== PerMessageDeflate.extensionName\n ) {\n const message = 'Server indicated an extension that was not requested';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n try {\n perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Extensions header';\n abortHandshake(websocket, socket, message);\n return;\n }\n\n websocket._extensions[PerMessageDeflate.extensionName] =\n perMessageDeflate;\n }\n\n websocket.setSocket(socket, head, {\n allowSynchronousEvents: opts.allowSynchronousEvents,\n generateMask: opts.generateMask,\n maxPayload: opts.maxPayload,\n skipUTF8Validation: opts.skipUTF8Validation\n });\n });\n\n if (opts.finishRequest) {\n opts.finishRequest(req, websocket);\n } else {\n req.end();\n }\n}\n\n/**\n * Emit the `'error'` and `'close'` events.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {Error} The error to emit\n * @private\n */\nfunction emitErrorAndClose(websocket, err) {\n websocket._readyState = WebSocket.CLOSING;\n //\n // The following assignment is practically useless and is done only for\n // consistency.\n //\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n websocket.emitClose();\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n options.path = options.socketPath;\n return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n options.path = undefined;\n\n if (!options.servername && options.servername !== '') {\n options.servername = net.isIP(options.host) ? '' : options.host;\n }\n\n return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket|tls.Socket)} stream The request to\n * abort or the socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n websocket._readyState = WebSocket.CLOSING;\n\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshake);\n\n if (stream.setHeader) {\n stream[kAborted] = true;\n stream.abort();\n\n if (stream.socket && !stream.socket.destroyed) {\n //\n // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n // called after the request completed. See\n // https://github.com/websockets/ws/issues/1869.\n //\n stream.socket.destroy();\n }\n\n process.nextTick(emitErrorAndClose, websocket, err);\n } else {\n stream.destroy(err);\n stream.once('error', websocket.emit.bind(websocket, 'error'));\n stream.once('close', websocket.emitClose.bind(websocket));\n }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n if (data) {\n const length = isBlob(data) ? data.size : toBuffer(data).length;\n\n //\n // The `_bufferedAmount` property is used only when the peer is a client and\n // the opening handshake fails. Under these circumstances, in fact, the\n // `setSocket()` method is not called, so the `_socket` and `_sender`\n // properties are set to `null`.\n //\n if (websocket._socket) websocket._sender._bufferedBytes += length;\n else websocket._bufferedAmount += length;\n }\n\n if (cb) {\n const err = new Error(\n `WebSocket is not open: readyState ${websocket.readyState} ` +\n `(${readyStates[websocket.readyState]})`\n );\n process.nextTick(cb, err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {Buffer} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n const websocket = this[kWebSocket];\n\n websocket._closeFrameReceived = true;\n websocket._closeMessage = reason;\n websocket._closeCode = code;\n\n if (websocket._socket[kWebSocket] === undefined) return;\n\n websocket._socket.removeListener('data', socketOnData);\n process.nextTick(resume, websocket._socket);\n\n if (code === 1005) websocket.close();\n else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n const websocket = this[kWebSocket];\n\n if (!websocket.isPaused) websocket._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n const websocket = this[kWebSocket];\n\n if (websocket._socket[kWebSocket] !== undefined) {\n websocket._socket.removeListener('data', socketOnData);\n\n //\n // On Node.js < 14.0.0 the `'error'` event is emitted synchronously. See\n // https://github.com/websockets/ws/issues/1940.\n //\n process.nextTick(resume, websocket._socket);\n\n websocket.close(err[kStatusCode]);\n }\n\n if (!websocket._errorEmitted) {\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n }\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {Buffer|ArrayBuffer|Buffer[])} data The message\n * @param {Boolean} isBinary Specifies whether the message is binary or not\n * @private\n */\nfunction receiverOnMessage(data, isBinary) {\n this[kWebSocket].emit('message', data, isBinary);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n const websocket = this[kWebSocket];\n\n if (websocket._autoPong) websocket.pong(data, !this._isServer, NOOP);\n websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n this[kWebSocket].emit('pong', data);\n}\n\n/**\n * Resume a readable stream\n *\n * @param {Readable} stream The readable stream\n * @private\n */\nfunction resume(stream) {\n stream.resume();\n}\n\n/**\n * The `Sender` error event handler.\n *\n * @param {Error} The error\n * @private\n */\nfunction senderOnError(err) {\n const websocket = this[kWebSocket];\n\n if (websocket.readyState === WebSocket.CLOSED) return;\n if (websocket.readyState === WebSocket.OPEN) {\n websocket._readyState = WebSocket.CLOSING;\n setCloseTimer(websocket);\n }\n\n //\n // `socket.end()` is used instead of `socket.destroy()` to allow the other\n // peer to finish sending queued data. There is no need to set a timer here\n // because `CLOSING` means that it is already set or not needed.\n //\n this._socket.end();\n\n if (!websocket._errorEmitted) {\n websocket._errorEmitted = true;\n websocket.emit('error', err);\n }\n}\n\n/**\n * Set a timer to destroy the underlying raw socket of a WebSocket.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @private\n */\nfunction setCloseTimer(websocket) {\n websocket._closeTimer = setTimeout(\n websocket._socket.destroy.bind(websocket._socket),\n closeTimeout\n );\n}\n\n/**\n * The listener of the socket `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n const websocket = this[kWebSocket];\n\n this.removeListener('close', socketOnClose);\n this.removeListener('data', socketOnData);\n this.removeListener('end', socketOnEnd);\n\n websocket._readyState = WebSocket.CLOSING;\n\n let chunk;\n\n //\n // The close frame might not have been received or the `'end'` event emitted,\n // for example, if the socket was destroyed due to an error. Ensure that the\n // `receiver` stream is closed after writing any remaining buffered data to\n // it. If the readable side of the socket is in flowing mode then there is no\n // buffered data as everything has been already written and `readable.read()`\n // will return `null`. If instead, the socket is paused, any possible buffered\n // data will be read as a single chunk.\n //\n if (\n !this._readableState.endEmitted &&\n !websocket._closeFrameReceived &&\n !websocket._receiver._writableState.errorEmitted &&\n (chunk = websocket._socket.read()) !== null\n ) {\n websocket._receiver.write(chunk);\n }\n\n websocket._receiver.end();\n\n this[kWebSocket] = undefined;\n\n clearTimeout(websocket._closeTimer);\n\n if (\n websocket._receiver._writableState.finished ||\n websocket._receiver._writableState.errorEmitted\n ) {\n websocket.emitClose();\n } else {\n websocket._receiver.on('error', receiverOnFinish);\n websocket._receiver.on('finish', receiverOnFinish);\n }\n}\n\n/**\n * The listener of the socket `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n if (!this[kWebSocket]._receiver.write(chunk)) {\n this.pause();\n }\n}\n\n/**\n * The listener of the socket `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n const websocket = this[kWebSocket];\n\n websocket._readyState = WebSocket.CLOSING;\n websocket._receiver.end();\n this.end();\n}\n\n/**\n * The listener of the socket `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n const websocket = this[kWebSocket];\n\n this.removeListener('error', socketOnError);\n this.on('error', NOOP);\n\n if (websocket) {\n websocket._readyState = WebSocket.CLOSING;\n this.destroy();\n }\n}\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^WebSocket$\" }] */\n'use strict';\n\nconst WebSocket = require('./websocket');\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {Duplex} stream The stream.\n * @private\n */\nfunction emitClose(stream) {\n stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n if (!this.destroyed && this._writableState.finished) {\n this.destroy();\n }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n this.removeListener('error', duplexOnError);\n this.destroy();\n if (this.listenerCount('error') === 0) {\n // Do not suppress the throwing behavior.\n this.emit('error', err);\n }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n let terminateOnDestroy = true;\n\n const duplex = new Duplex({\n ...options,\n autoDestroy: false,\n emitClose: false,\n objectMode: false,\n writableObjectMode: false\n });\n\n ws.on('message', function message(msg, isBinary) {\n const data =\n !isBinary && duplex._readableState.objectMode ? msg.toString() : msg;\n\n if (!duplex.push(data)) ws.pause();\n });\n\n ws.once('error', function error(err) {\n if (duplex.destroyed) return;\n\n // Prevent `ws.terminate()` from being called by `duplex._destroy()`.\n //\n // - If the `'error'` event is emitted before the `'open'` event, then\n // `ws.terminate()` is a noop as no socket is assigned.\n // - Otherwise, the error is re-emitted by the listener of the `'error'`\n // event of the `Receiver` object. The listener already closes the\n // connection by calling `ws.close()`. This allows a close frame to be\n // sent to the other peer. If `ws.terminate()` is called right after this,\n // then the close frame might not be sent.\n terminateOnDestroy = false;\n duplex.destroy(err);\n });\n\n ws.once('close', function close() {\n if (duplex.destroyed) return;\n\n duplex.push(null);\n });\n\n duplex._destroy = function (err, callback) {\n if (ws.readyState === ws.CLOSED) {\n callback(err);\n process.nextTick(emitClose, duplex);\n return;\n }\n\n let called = false;\n\n ws.once('error', function error(err) {\n called = true;\n callback(err);\n });\n\n ws.once('close', function close() {\n if (!called) callback(err);\n process.nextTick(emitClose, duplex);\n });\n\n if (terminateOnDestroy) ws.terminate();\n };\n\n duplex._final = function (callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._final(callback);\n });\n return;\n }\n\n // If the value of the `_socket` property is `null` it means that `ws` is a\n // client websocket and the handshake failed. In fact, when this happens, a\n // socket is never assigned to the websocket. Wait for the `'error'` event\n // that will be emitted by the websocket.\n if (ws._socket === null) return;\n\n if (ws._socket._writableState.finished) {\n callback();\n if (duplex._readableState.endEmitted) duplex.destroy();\n } else {\n ws._socket.once('finish', function finish() {\n // `duplex` is not destroyed here because the `'end'` event will be\n // emitted on `duplex` after this `'finish'` event. The EOF signaling\n // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n callback();\n });\n ws.close();\n }\n };\n\n duplex._read = function () {\n if (ws.isPaused) ws.resume();\n };\n\n duplex._write = function (chunk, encoding, callback) {\n if (ws.readyState === ws.CONNECTING) {\n ws.once('open', function open() {\n duplex._write(chunk, encoding, callback);\n });\n return;\n }\n\n ws.send(chunk, callback);\n };\n\n duplex.on('end', duplexOnEnd);\n duplex.on('error', duplexOnError);\n return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n","'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Parses the `Sec-WebSocket-Protocol` header into a set of subprotocol names.\n *\n * @param {String} header The field value of the header\n * @return {Set} The subprotocol names\n * @public\n */\nfunction parse(header) {\n const protocols = new Set();\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (i; i < header.length; i++) {\n const code = header.charCodeAt(i);\n\n if (end === -1 && tokenChars[code] === 1) {\n if (start === -1) start = i;\n } else if (\n i !== 0 &&\n (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n ) {\n if (end === -1 && start !== -1) end = i;\n } else if (code === 0x2c /* ',' */) {\n if (start === -1) {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n\n if (end === -1) end = i;\n\n const protocol = header.slice(start, end);\n\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n\n protocols.add(protocol);\n start = end = -1;\n } else {\n throw new SyntaxError(`Unexpected character at index ${i}`);\n }\n }\n\n if (start === -1 || end !== -1) {\n throw new SyntaxError('Unexpected end of input');\n }\n\n const protocol = header.slice(start, i);\n\n if (protocols.has(protocol)) {\n throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n }\n\n protocols.add(protocol);\n return protocols;\n}\n\nmodule.exports = { parse };\n","/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex$\", \"caughtErrors\": \"none\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst http = require('http');\nconst { Duplex } = require('stream');\nconst { createHash } = require('crypto');\n\nconst extension = require('./extension');\nconst PerMessageDeflate = require('./permessage-deflate');\nconst subprotocol = require('./subprotocol');\nconst WebSocket = require('./websocket');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\nconst RUNNING = 0;\nconst CLOSING = 1;\nconst CLOSED = 2;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n /**\n * Create a `WebSocketServer` instance.\n *\n * @param {Object} options Configuration options\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether\n * any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n * multiple times in the same tick\n * @param {Boolean} [options.autoPong=true] Specifies whether or not to\n * automatically send a pong in response to a ping\n * @param {Number} [options.backlog=511] The maximum length of the queue of\n * pending connections\n * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n * track clients\n * @param {Function} [options.handleProtocols] A hook to handle protocols\n * @param {String} [options.host] The hostname where to bind the server\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n * size\n * @param {Boolean} [options.noServer=false] Enable no server mode\n * @param {String} [options.path] Accept only connections matching this path\n * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n * permessage-deflate\n * @param {Number} [options.port] The port where to bind the server\n * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S\n * server to use\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n * not to skip UTF-8 validation for text and close messages\n * @param {Function} [options.verifyClient] A hook to reject connections\n * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket`\n * class to use. It must be the `WebSocket` class or class that extends it\n * @param {Function} [callback] A listener for the `listening` event\n */\n constructor(options, callback) {\n super();\n\n options = {\n allowSynchronousEvents: true,\n autoPong: true,\n maxPayload: 100 * 1024 * 1024,\n skipUTF8Validation: false,\n perMessageDeflate: false,\n handleProtocols: null,\n clientTracking: true,\n verifyClient: null,\n noServer: false,\n backlog: null, // use default (511 as implemented in net.js)\n server: null,\n host: null,\n path: null,\n port: null,\n WebSocket,\n ...options\n };\n\n if (\n (options.port == null && !options.server && !options.noServer) ||\n (options.port != null && (options.server || options.noServer)) ||\n (options.server && options.noServer)\n ) {\n throw new TypeError(\n 'One and only one of the \"port\", \"server\", or \"noServer\" options ' +\n 'must be specified'\n );\n }\n\n if (options.port != null) {\n this._server = http.createServer((req, res) => {\n const body = http.STATUS_CODES[426];\n\n res.writeHead(426, {\n 'Content-Length': body.length,\n 'Content-Type': 'text/plain'\n });\n res.end(body);\n });\n this._server.listen(\n options.port,\n options.host,\n options.backlog,\n callback\n );\n } else if (options.server) {\n this._server = options.server;\n }\n\n if (this._server) {\n const emitConnection = this.emit.bind(this, 'connection');\n\n this._removeListeners = addListeners(this._server, {\n listening: this.emit.bind(this, 'listening'),\n error: this.emit.bind(this, 'error'),\n upgrade: (req, socket, head) => {\n this.handleUpgrade(req, socket, head, emitConnection);\n }\n });\n }\n\n if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n if (options.clientTracking) {\n this.clients = new Set();\n this._shouldEmitClose = false;\n }\n\n this.options = options;\n this._state = RUNNING;\n }\n\n /**\n * Returns the bound address, the address family name, and port of the server\n * as reported by the operating system if listening on an IP socket.\n * If the server is listening on a pipe or UNIX domain socket, the name is\n * returned as a string.\n *\n * @return {(Object|String|null)} The address of the server\n * @public\n */\n address() {\n if (this.options.noServer) {\n throw new Error('The server is operating in \"noServer\" mode');\n }\n\n if (!this._server) return null;\n return this._server.address();\n }\n\n /**\n * Stop the server from accepting new connections and emit the `'close'` event\n * when all existing connections are closed.\n *\n * @param {Function} [cb] A one-time listener for the `'close'` event\n * @public\n */\n close(cb) {\n if (this._state === CLOSED) {\n if (cb) {\n this.once('close', () => {\n cb(new Error('The server is not running'));\n });\n }\n\n process.nextTick(emitClose, this);\n return;\n }\n\n if (cb) this.once('close', cb);\n\n if (this._state === CLOSING) return;\n this._state = CLOSING;\n\n if (this.options.noServer || this.options.server) {\n if (this._server) {\n this._removeListeners();\n this._removeListeners = this._server = null;\n }\n\n if (this.clients) {\n if (!this.clients.size) {\n process.nextTick(emitClose, this);\n } else {\n this._shouldEmitClose = true;\n }\n } else {\n process.nextTick(emitClose, this);\n }\n } else {\n const server = this._server;\n\n this._removeListeners();\n this._removeListeners = this._server = null;\n\n //\n // The HTTP/S server was created internally. Close it, and rely on its\n // `'close'` event.\n //\n server.close(() => {\n emitClose(this);\n });\n }\n }\n\n /**\n * See if a given request should be handled by this server instance.\n *\n * @param {http.IncomingMessage} req Request object to inspect\n * @return {Boolean} `true` if the request is valid, else `false`\n * @public\n */\n shouldHandle(req) {\n if (this.options.path) {\n const index = req.url.indexOf('?');\n const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n if (pathname !== this.options.path) return false;\n }\n\n return true;\n }\n\n /**\n * Handle a HTTP Upgrade request.\n *\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @public\n */\n handleUpgrade(req, socket, head, cb) {\n socket.on('error', socketOnError);\n\n const key = req.headers['sec-websocket-key'];\n const upgrade = req.headers.upgrade;\n const version = +req.headers['sec-websocket-version'];\n\n if (req.method !== 'GET') {\n const message = 'Invalid HTTP method';\n abortHandshakeOrEmitwsClientError(this, req, socket, 405, message);\n return;\n }\n\n if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') {\n const message = 'Invalid Upgrade header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n\n if (key === undefined || !keyRegex.test(key)) {\n const message = 'Missing or invalid Sec-WebSocket-Key header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n\n if (version !== 13 && version !== 8) {\n const message = 'Missing or invalid Sec-WebSocket-Version header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, {\n 'Sec-WebSocket-Version': '13, 8'\n });\n return;\n }\n\n if (!this.shouldHandle(req)) {\n abortHandshake(socket, 400);\n return;\n }\n\n const secWebSocketProtocol = req.headers['sec-websocket-protocol'];\n let protocols = new Set();\n\n if (secWebSocketProtocol !== undefined) {\n try {\n protocols = subprotocol.parse(secWebSocketProtocol);\n } catch (err) {\n const message = 'Invalid Sec-WebSocket-Protocol header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n }\n\n const secWebSocketExtensions = req.headers['sec-websocket-extensions'];\n const extensions = {};\n\n if (\n this.options.perMessageDeflate &&\n secWebSocketExtensions !== undefined\n ) {\n const perMessageDeflate = new PerMessageDeflate(\n this.options.perMessageDeflate,\n true,\n this.options.maxPayload\n );\n\n try {\n const offers = extension.parse(secWebSocketExtensions);\n\n if (offers[PerMessageDeflate.extensionName]) {\n perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n }\n } catch (err) {\n const message =\n 'Invalid or unacceptable Sec-WebSocket-Extensions header';\n abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n return;\n }\n }\n\n //\n // Optionally call external client verification handler.\n //\n if (this.options.verifyClient) {\n const info = {\n origin:\n req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n secure: !!(req.socket.authorized || req.socket.encrypted),\n req\n };\n\n if (this.options.verifyClient.length === 2) {\n this.options.verifyClient(info, (verified, code, message, headers) => {\n if (!verified) {\n return abortHandshake(socket, code || 401, message, headers);\n }\n\n this.completeUpgrade(\n extensions,\n key,\n protocols,\n req,\n socket,\n head,\n cb\n );\n });\n return;\n }\n\n if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n }\n\n this.completeUpgrade(extensions, key, protocols, req, socket, head, cb);\n }\n\n /**\n * Upgrade the connection to WebSocket.\n *\n * @param {Object} extensions The accepted extensions\n * @param {String} key The value of the `Sec-WebSocket-Key` header\n * @param {Set} protocols The subprotocols\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The network socket between the server and client\n * @param {Buffer} head The first packet of the upgraded stream\n * @param {Function} cb Callback\n * @throws {Error} If called more than once with the same socket\n * @private\n */\n completeUpgrade(extensions, key, protocols, req, socket, head, cb) {\n //\n // Destroy the socket if the client has already sent a FIN packet.\n //\n if (!socket.readable || !socket.writable) return socket.destroy();\n\n if (socket[kWebSocket]) {\n throw new Error(\n 'server.handleUpgrade() was called more than once with the same ' +\n 'socket, possibly due to a misconfiguration'\n );\n }\n\n if (this._state > RUNNING) return abortHandshake(socket, 503);\n\n const digest = createHash('sha1')\n .update(key + GUID)\n .digest('base64');\n\n const headers = [\n 'HTTP/1.1 101 Switching Protocols',\n 'Upgrade: websocket',\n 'Connection: Upgrade',\n `Sec-WebSocket-Accept: ${digest}`\n ];\n\n const ws = new this.options.WebSocket(null, undefined, this.options);\n\n if (protocols.size) {\n //\n // Optionally call external protocol selection handler.\n //\n const protocol = this.options.handleProtocols\n ? this.options.handleProtocols(protocols, req)\n : protocols.values().next().value;\n\n if (protocol) {\n headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n ws._protocol = protocol;\n }\n }\n\n if (extensions[PerMessageDeflate.extensionName]) {\n const params = extensions[PerMessageDeflate.extensionName].params;\n const value = extension.format({\n [PerMessageDeflate.extensionName]: [params]\n });\n headers.push(`Sec-WebSocket-Extensions: ${value}`);\n ws._extensions = extensions;\n }\n\n //\n // Allow external modification/inspection of handshake headers.\n //\n this.emit('headers', headers, req);\n\n socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n socket.removeListener('error', socketOnError);\n\n ws.setSocket(socket, head, {\n allowSynchronousEvents: this.options.allowSynchronousEvents,\n maxPayload: this.options.maxPayload,\n skipUTF8Validation: this.options.skipUTF8Validation\n });\n\n if (this.clients) {\n this.clients.add(ws);\n ws.on('close', () => {\n this.clients.delete(ws);\n\n if (this._shouldEmitClose && !this.clients.size) {\n process.nextTick(emitClose, this);\n }\n });\n }\n\n cb(ws, req);\n }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of <event, listener>\n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.<String, Function>} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n * called\n * @private\n */\nfunction addListeners(server, map) {\n for (const event of Object.keys(map)) server.on(event, map[event]);\n\n return function removeListeners() {\n for (const event of Object.keys(map)) {\n server.removeListener(event, map[event]);\n }\n };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n server._state = CLOSED;\n server.emit('close');\n}\n\n/**\n * Handle socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {Duplex} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n //\n // The socket is writable unless the user destroyed or ended it before calling\n // `server.handleUpgrade()` or in the `verifyClient` function, which is a user\n // error. Handling this does not make much sense as the worst that can happen\n // is that some of the data written by the user might be discarded due to the\n // call to `socket.end()` below, which triggers an `'error'` event that in\n // turn causes the socket to be destroyed.\n //\n message = message || http.STATUS_CODES[code];\n headers = {\n Connection: 'close',\n 'Content-Type': 'text/html',\n 'Content-Length': Buffer.byteLength(message),\n ...headers\n };\n\n socket.once('finish', socket.destroy);\n\n socket.end(\n `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\\r\\n` +\n Object.keys(headers)\n .map((h) => `${h}: ${headers[h]}`)\n .join('\\r\\n') +\n '\\r\\n\\r\\n' +\n message\n );\n}\n\n/**\n * Emit a `'wsClientError'` event on a `WebSocketServer` if there is at least\n * one listener for it, otherwise call `abortHandshake()`.\n *\n * @param {WebSocketServer} server The WebSocket server\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} message The HTTP response body\n * @param {Object} [headers] The HTTP response headers\n * @private\n */\nfunction abortHandshakeOrEmitwsClientError(\n server,\n req,\n socket,\n code,\n message,\n headers\n) {\n if (server.listenerCount('wsClientError')) {\n const err = new Error(message);\n Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError);\n\n server.emit('wsClientError', err, socket, req);\n } else {\n abortHandshake(socket, code, message, headers);\n }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\n// Array of tips to display randomly\nconst TIPS = [\n '🔐 encrypt with Dotenvx: https://dotenvx.com',\n '🔐 prevent committing .env to code: https://dotenvx.com/precommit',\n '🔐 prevent building .env in docker: https://dotenvx.com/prebuild',\n '📡 add observability to secrets: https://dotenvx.com/ops',\n '👥 sync secrets across teammates & machines: https://dotenvx.com/ops',\n '🗂️ backup and recover secrets: https://dotenvx.com/ops',\n '✅ audit secrets and track compliance: https://dotenvx.com/ops',\n '🔄 add secrets lifecycle management: https://dotenvx.com/ops',\n '🔑 add access controls to secrets: https://dotenvx.com/ops',\n '🛠️ run anywhere with `dotenvx run -- yourcommand`',\n '⚙️ specify custom .env file path with { path: \\'/custom/path/.env\\' }',\n '⚙️ enable debug logging with { debug: true }',\n '⚙️ override existing env vars with { override: true }',\n '⚙️ suppress all logs with { quiet: true }',\n '⚙️ write to custom object with { processEnv: myObject }',\n '⚙️ load multiple .env files with { path: [\\'.env.local\\', \\'.env\\'] }'\n]\n\n// Get a random tip from the tips array\nfunction _getRandomTip () {\n return TIPS[Math.floor(Math.random() * TIPS.length)]\n}\n\nfunction parseBoolean (value) {\n if (typeof value === 'string') {\n return !['false', '0', 'no', 'off', ''].includes(value.toLowerCase())\n }\n return Boolean(value)\n}\n\nfunction supportsAnsi () {\n return process.stdout.isTTY // && process.env.TERM !== 'dumb'\n}\n\nfunction dim (text) {\n return supportsAnsi() ? `\\x1b[2m${text}\\x1b[0m` : text\n}\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _parseVault (options) {\n options = options || {}\n\n const vaultPath = _vaultPath(options)\n options.path = vaultPath // parse .env.vault\n const result = DotenvModule.configDotenv(options)\n if (!result.parsed) {\n const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n err.code = 'MISSING_DATA'\n throw err\n }\n\n // handle scenario for comma separated keys - for use with key rotation\n // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n const keys = _dotenvKey(options).split(',')\n const length = keys.length\n\n let decrypted\n for (let i = 0; i < length; i++) {\n try {\n // Get full key\n const key = keys[i].trim()\n\n // Get instructions for decrypt\n const attrs = _instructions(result, key)\n\n // Decrypt\n decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n break\n } catch (error) {\n // last key\n if (i + 1 >= length) {\n throw error\n }\n // try next key\n }\n }\n\n // Parse decrypted .env string\n return DotenvModule.parse(decrypted)\n}\n\nfunction _warn (message) {\n console.error(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _log (message) {\n console.log(`[dotenv@${version}] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n // prioritize developer directly setting options.DOTENV_KEY\n if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n return options.DOTENV_KEY\n }\n\n // secondary infra already contains a DOTENV_KEY environment variable\n if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n return process.env.DOTENV_KEY\n }\n\n // fallback to empty string\n return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n // Parse DOTENV_KEY. Format is a URI\n let uri\n try {\n uri = new URL(dotenvKey)\n } catch (error) {\n if (error.code === 'ERR_INVALID_URL') {\n const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n throw error\n }\n\n // Get decrypt key\n const key = uri.password\n if (!key) {\n const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get environment\n const environment = uri.searchParams.get('environment')\n if (!environment) {\n const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get ciphertext payload\n const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n if (!ciphertext) {\n const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n throw err\n }\n\n return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n let possibleVaultPath = null\n\n if (options && options.path && options.path.length > 0) {\n if (Array.isArray(options.path)) {\n for (const filepath of options.path) {\n if (fs.existsSync(filepath)) {\n possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n }\n }\n } else {\n possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n }\n } else {\n possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n }\n\n if (fs.existsSync(possibleVaultPath)) {\n return possibleVaultPath\n }\n\n return null\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n const debug = parseBoolean(process.env.DOTENV_CONFIG_DEBUG || (options && options.debug))\n const quiet = parseBoolean(process.env.DOTENV_CONFIG_QUIET || (options && options.quiet))\n\n if (debug || !quiet) {\n _log('Loading env from encrypted .env.vault')\n }\n\n const parsed = DotenvModule._parseVault(options)\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsed, options)\n\n return { parsed }\n}\n\nfunction configDotenv (options) {\n const dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n let debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || (options && options.debug))\n let quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || (options && options.quiet))\n\n if (options && options.encoding) {\n encoding = options.encoding\n } else {\n if (debug) {\n _debug('No encoding is specified. UTF-8 is used by default')\n }\n }\n\n let optionPaths = [dotenvPath] // default, look for .env\n if (options && options.path) {\n if (!Array.isArray(options.path)) {\n optionPaths = [_resolveHome(options.path)]\n } else {\n optionPaths = [] // reset default\n for (const filepath of options.path) {\n optionPaths.push(_resolveHome(filepath))\n }\n }\n }\n\n // Build the parsed data in a temporary object (because we need to return it). Once we have the final\n // parsed data, we will combine it with process.env (or options.processEnv if provided).\n let lastError\n const parsedAll = {}\n for (const path of optionPaths) {\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n DotenvModule.populate(parsedAll, parsed, options)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${path} ${e.message}`)\n }\n lastError = e\n }\n }\n\n const populated = DotenvModule.populate(processEnv, parsedAll, options)\n\n // handle user settings DOTENV_CONFIG_ options inside .env file(s)\n debug = parseBoolean(processEnv.DOTENV_CONFIG_DEBUG || debug)\n quiet = parseBoolean(processEnv.DOTENV_CONFIG_QUIET || quiet)\n\n if (debug || !quiet) {\n const keysCount = Object.keys(populated).length\n const shortPaths = []\n for (const filePath of optionPaths) {\n try {\n const relative = path.relative(process.cwd(), filePath)\n shortPaths.push(relative)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${filePath} ${e.message}`)\n }\n lastError = e\n }\n }\n\n _log(`injecting env (${keysCount}) from ${shortPaths.join(',')} ${dim(`-- tip: ${_getRandomTip()}`)}`)\n }\n\n if (lastError) {\n return { parsed: parsedAll, error: lastError }\n } else {\n return { parsed: parsedAll }\n }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n // fallback to original dotenv if DOTENV_KEY is not set\n if (_dotenvKey(options).length === 0) {\n return DotenvModule.configDotenv(options)\n }\n\n const vaultPath = _vaultPath(options)\n\n // dotenvKey exists but .env.vault file does not exist\n if (!vaultPath) {\n _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n return DotenvModule.configDotenv(options)\n }\n\n return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n const key = Buffer.from(keyStr.slice(-64), 'hex')\n let ciphertext = Buffer.from(encrypted, 'base64')\n\n const nonce = ciphertext.subarray(0, 12)\n const authTag = ciphertext.subarray(-16)\n ciphertext = ciphertext.subarray(12, -16)\n\n try {\n const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n aesgcm.setAuthTag(authTag)\n return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n } catch (error) {\n const isRange = error instanceof RangeError\n const invalidKeyLength = error.message === 'Invalid key length'\n const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n if (isRange || invalidKeyLength) {\n const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n } else if (decryptionFailed) {\n const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n err.code = 'DECRYPTION_FAILED'\n throw err\n } else {\n throw error\n }\n }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n const populated = {}\n\n if (typeof parsed !== 'object') {\n const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n err.code = 'OBJECT_REQUIRED'\n throw err\n }\n\n // Set process.env\n for (const key of Object.keys(parsed)) {\n if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n if (override === true) {\n processEnv[key] = parsed[key]\n populated[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _debug(`\"${key}\" is already defined and WAS overwritten`)\n } else {\n _debug(`\"${key}\" is already defined and was NOT overwritten`)\n }\n }\n } else {\n processEnv[key] = parsed[key]\n populated[key] = parsed[key]\n }\n }\n\n return populated\n}\n\nconst DotenvModule = {\n configDotenv,\n _configVault,\n _parseVault,\n config,\n decrypt,\n parse,\n populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","// ../config.js accepts options via environment variables\nconst options = {}\n\nif (process.env.DOTENV_CONFIG_ENCODING != null) {\n options.encoding = process.env.DOTENV_CONFIG_ENCODING\n}\n\nif (process.env.DOTENV_CONFIG_PATH != null) {\n options.path = process.env.DOTENV_CONFIG_PATH\n}\n\nif (process.env.DOTENV_CONFIG_QUIET != null) {\n options.quiet = process.env.DOTENV_CONFIG_QUIET\n}\n\nif (process.env.DOTENV_CONFIG_DEBUG != null) {\n options.debug = process.env.DOTENV_CONFIG_DEBUG\n}\n\nif (process.env.DOTENV_CONFIG_OVERRIDE != null) {\n options.override = process.env.DOTENV_CONFIG_OVERRIDE\n}\n\nif (process.env.DOTENV_CONFIG_DOTENV_KEY != null) {\n options.DOTENV_KEY = process.env.DOTENV_CONFIG_DOTENV_KEY\n}\n\nmodule.exports = options\n","const re = /^dotenv_config_(encoding|path|quiet|debug|override|DOTENV_KEY)=(.+)$/\n\nmodule.exports = function optionMatcher (args) {\n const options = args.reduce(function (acc, cur) {\n const matches = cur.match(re)\n if (matches) {\n acc[matches[1]] = matches[2]\n }\n return acc\n }, {})\n\n if (!('quiet' in options)) {\n options.quiet = 'true'\n }\n\n return options\n}\n","(function () {\n require('./lib/main').config(\n Object.assign(\n {},\n require('./lib/env-options'),\n require('./lib/cli-options')(process.argv)\n )\n )\n})()\n",null],"names":["log","isAutoParsableTool","hasAutoParseableInput","parseToolCall","MessagesAPI.Messages","Completions","Messages","CompletionsAPI.Completions","TranscriptionsAPI.Transcriptions","TranslationsAPI.Translations","SpeechAPI.Speech","SessionsAPI.Sessions","TranscriptionSessionsAPI.TranscriptionSessions","Realtime","Sessions","ThreadsAPI.Threads","Threads","_a","StepsAPI.Steps","Runs","RunsAPI.Runs","RealtimeAPI.Realtime","ChatKitAPI.ChatKit","AssistantsAPI.Assistants","ContentAPI.Content","Files","FilesAPI.Files","ItemsAPI.Items","OutputItemsAPI.OutputItems","GradersAPI.Graders","Graders","PermissionsAPI.Permissions","Checkpoints","CheckpointsAPI.Checkpoints","MethodsAPI.Methods","JobsAPI.Jobs","AlphaAPI.Alpha","GraderModelsAPI.GraderModels","ClientSecretsAPI.ClientSecrets","CallsAPI.Calls","InputItemsAPI.InputItems","InputTokensAPI.InputTokens","PartsAPI.Parts","FileBatchesAPI.FileBatches","API.Completions","API.Chat","API.Embeddings","API.Files","API.Images","API.Audio","API.Moderations","API.Models","API.FineTuning","API.Graders","API.VectorStores","API.Webhooks","API.Beta","API.Batches","API.Uploads","API.Responses","API.Realtime","API.Conversations","API.Evals","API.Containers","API.Videos","Errors.OpenAIError","Shims.getDefaultFetch","Opts.FallbackEncoder","qs.stringify","Errors.APIError","Errors.APIUserAbortError","Errors.APIConnectionTimeoutError","Errors.APIConnectionError","Shims.CancelReadableStream","Pagination.PagePromise","Shims.ReadableStreamFrom","Errors.NotFoundError","Errors.ConflictError","Errors.RateLimitError","Errors.BadRequestError","Errors.AuthenticationError","Errors.InternalServerError","Errors.PermissionDeniedError","Errors.UnprocessableEntityError","Errors.InvalidWebhookSignatureError","Uploads.toFile","UploadsAPIUploads","require$$0","bufferUtilModule","bufferUtil","require$$1","require$$2","require$$3","validationModule","require$$4","require$$5","require$$6","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$7","mainModule","baseLog"],"mappings":"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","x_google_ignoreList":[3,4,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121]}