@sylphx/flow 0.2.3 → 0.2.5

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.
Files changed (73) hide show
  1. package/dist/chunk-057m762a.js +4 -0
  2. package/dist/{chunk-7nht27vs.js.map → chunk-057m762a.js.map} +1 -1
  3. package/dist/chunk-2j2gmjg5.js +107 -0
  4. package/dist/{chunk-wnaa55wn.js.map → chunk-2j2gmjg5.js.map} +6 -5
  5. package/dist/{chunk-asr22mbn.js → chunk-2nfq57ym.js} +1 -1
  6. package/dist/{chunk-cs1s5c3g.js → chunk-372bgp30.js} +3 -3
  7. package/dist/{chunk-cs1s5c3g.js.map → chunk-372bgp30.js.map} +1 -1
  8. package/dist/{chunk-m9nt0bj3.js → chunk-51kpynby.js} +3 -3
  9. package/dist/{chunk-m9nt0bj3.js.map → chunk-51kpynby.js.map} +1 -1
  10. package/dist/{chunk-1rptg3yg.js → chunk-585jp0rg.js} +1 -1
  11. package/dist/{chunk-hj6r7703.js → chunk-66qzap9m.js} +2 -2
  12. package/dist/{chunk-hj6r7703.js.map → chunk-66qzap9m.js.map} +1 -1
  13. package/dist/{chunk-z2rtyk3d.js → chunk-6eb5a8kv.js} +4 -4
  14. package/dist/{chunk-z2rtyk3d.js.map → chunk-6eb5a8kv.js.map} +1 -1
  15. package/dist/chunk-7h737bp8.js +4 -0
  16. package/dist/{chunk-fs3f7acb.js.map → chunk-7h737bp8.js.map} +2 -2
  17. package/dist/chunk-8ep9gk6d.js +4 -0
  18. package/dist/{chunk-5szm4n3x.js.map → chunk-8ep9gk6d.js.map} +2 -2
  19. package/dist/{chunk-bnxtqetr.js → chunk-9qzv4trv.js} +3 -3
  20. package/dist/{chunk-bnxtqetr.js.map → chunk-9qzv4trv.js.map} +2 -2
  21. package/dist/chunk-b0047ggx.js +3 -0
  22. package/dist/{chunk-w2vbmr93.js.map → chunk-b0047ggx.js.map} +2 -2
  23. package/dist/{chunk-gyq335sw.js → chunk-ceyg2zjg.js} +3 -3
  24. package/dist/{chunk-gyq335sw.js.map → chunk-ceyg2zjg.js.map} +1 -1
  25. package/dist/chunk-cjy100rr.js +6 -0
  26. package/dist/{chunk-d4hj6d4t.js.map → chunk-cjy100rr.js.map} +2 -2
  27. package/dist/{chunk-gh83x9ya.js → chunk-d6k94684.js} +1 -1
  28. package/dist/chunk-e74zv5ct.js +19 -0
  29. package/dist/chunk-e74zv5ct.js.map +10 -0
  30. package/dist/{chunk-hxj4eapp.js → chunk-etqfkn4f.js} +3 -3
  31. package/dist/{chunk-hxj4eapp.js.map → chunk-etqfkn4f.js.map} +1 -1
  32. package/dist/{chunk-8z1sf25t.js → chunk-f676awyz.js} +3 -3
  33. package/dist/{chunk-8z1sf25t.js.map → chunk-f676awyz.js.map} +1 -1
  34. package/dist/{chunk-sxy6vp20.js → chunk-f9yb2zk3.js} +2 -2
  35. package/dist/{chunk-sxy6vp20.js.map → chunk-f9yb2zk3.js.map} +1 -1
  36. package/dist/{chunk-hft1735c.js → chunk-fyvtp08n.js} +2 -2
  37. package/dist/{chunk-hft1735c.js.map → chunk-fyvtp08n.js.map} +1 -1
  38. package/dist/chunk-gmmm7xpw.js +23 -0
  39. package/dist/{chunk-jgsq3xax.js.map → chunk-gmmm7xpw.js.map} +4 -4
  40. package/dist/{chunk-xata5rw6.js → chunk-mtrcdhzn.js} +3 -3
  41. package/dist/{chunk-xata5rw6.js.map → chunk-mtrcdhzn.js.map} +1 -1
  42. package/dist/{chunk-8krxe10w.js → chunk-ny1s8fnh.js} +2 -2
  43. package/dist/{chunk-8krxe10w.js.map → chunk-ny1s8fnh.js.map} +1 -1
  44. package/dist/{chunk-4fr8q0jy.js → chunk-rsagxdqj.js} +71 -71
  45. package/dist/{chunk-4fr8q0jy.js.map → chunk-rsagxdqj.js.map} +3 -3
  46. package/dist/{chunk-vjf57v4h.js → chunk-rvx8bgqk.js} +3 -3
  47. package/dist/{chunk-vjf57v4h.js.map → chunk-rvx8bgqk.js.map} +1 -1
  48. package/dist/{chunk-9c2nr2fz.js → chunk-sgafqzer.js} +3 -3
  49. package/dist/{chunk-9c2nr2fz.js.map → chunk-sgafqzer.js.map} +2 -2
  50. package/dist/{chunk-s6g21d1g.js → chunk-vc4xy6dm.js} +3 -3
  51. package/dist/{chunk-s6g21d1g.js.map → chunk-vc4xy6dm.js.map} +1 -1
  52. package/dist/chunk-weshapwk.js +27 -0
  53. package/dist/{chunk-wrx1n6q6.js.map → chunk-weshapwk.js.map} +11 -4
  54. package/dist/{chunk-ndah8mn9.js → chunk-z61qdct1.js} +2 -2
  55. package/dist/{chunk-ndah8mn9.js.map → chunk-z61qdct1.js.map} +1 -1
  56. package/dist/index.js +332 -331
  57. package/dist/index.js.map +15 -12
  58. package/package.json +1 -1
  59. package/dist/chunk-5szm4n3x.js +0 -4
  60. package/dist/chunk-7nht27vs.js +0 -4
  61. package/dist/chunk-d4hj6d4t.js +0 -6
  62. package/dist/chunk-f06ma45b.js +0 -15
  63. package/dist/chunk-f06ma45b.js.map +0 -16
  64. package/dist/chunk-fs3f7acb.js +0 -4
  65. package/dist/chunk-jgsq3xax.js +0 -23
  66. package/dist/chunk-w2vbmr93.js +0 -3
  67. package/dist/chunk-wd9qbbe5.js +0 -5
  68. package/dist/chunk-wd9qbbe5.js.map +0 -10
  69. package/dist/chunk-wnaa55wn.js +0 -108
  70. package/dist/chunk-wrx1n6q6.js +0 -16
  71. /package/dist/{chunk-asr22mbn.js.map → chunk-2nfq57ym.js.map} +0 -0
  72. /package/dist/{chunk-1rptg3yg.js.map → chunk-585jp0rg.js.map} +0 -0
  73. /package/dist/{chunk-gh83x9ya.js.map → chunk-d6k94684.js.map} +0 -0
@@ -55,7 +55,7 @@
55
55
  "// src/gateway-provider.ts\nimport { NoSuchModelError } from \"@ai-sdk/provider\";\nimport {\n loadOptionalSetting,\n withoutTrailingSlash\n} from \"@ai-sdk/provider-utils\";\n\n// src/errors/as-gateway-error.ts\nimport { APICallError } from \"@ai-sdk/provider\";\n\n// src/errors/create-gateway-error.ts\nimport { z as z2 } from \"zod/v4\";\n\n// src/errors/gateway-error.ts\nvar marker = \"vercel.ai.gateway.error\";\nvar symbol = Symbol.for(marker);\nvar _a, _b;\nvar GatewayError = class _GatewayError extends (_b = Error, _a = symbol, _b) {\n constructor({\n message,\n statusCode = 500,\n cause\n }) {\n super(message);\n this[_a] = true;\n this.statusCode = statusCode;\n this.cause = cause;\n }\n /**\n * Checks if the given error is a Gateway Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is a Gateway Error, false otherwise.\n */\n static isInstance(error) {\n return _GatewayError.hasMarker(error);\n }\n static hasMarker(error) {\n return typeof error === \"object\" && error !== null && symbol in error && error[symbol] === true;\n }\n};\n\n// src/errors/gateway-authentication-error.ts\nvar name = \"GatewayAuthenticationError\";\nvar marker2 = `vercel.ai.gateway.error.${name}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2, _b2;\nvar GatewayAuthenticationError = class _GatewayAuthenticationError extends (_b2 = GatewayError, _a2 = symbol2, _b2) {\n constructor({\n message = \"Authentication failed\",\n statusCode = 401,\n cause\n } = {}) {\n super({ message, statusCode, cause });\n this[_a2] = true;\n // used in isInstance\n this.name = name;\n this.type = \"authentication_error\";\n }\n static isInstance(error) {\n return GatewayError.hasMarker(error) && symbol2 in error;\n }\n /**\n * Creates a contextual error message when authentication fails\n */\n static createContextualError({\n apiKeyProvided,\n oidcTokenProvided,\n message = \"Authentication failed\",\n statusCode = 401,\n cause\n }) {\n let contextualMessage;\n if (apiKeyProvided) {\n contextualMessage = `AI Gateway authentication failed: Invalid API key.\n\nCreate a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys\n\nProvide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.`;\n } else if (oidcTokenProvided) {\n contextualMessage = `AI Gateway authentication failed: Invalid OIDC token.\n\nRun 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.\n\nAlternatively, use an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys`;\n } else {\n contextualMessage = `AI Gateway authentication failed: No authentication provided.\n\nOption 1 - API key:\nCreate an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys\nProvide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.\n\nOption 2 - OIDC token:\nRun 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`;\n }\n return new _GatewayAuthenticationError({\n message: contextualMessage,\n statusCode,\n cause\n });\n }\n};\n\n// src/errors/gateway-invalid-request-error.ts\nvar name2 = \"GatewayInvalidRequestError\";\nvar marker3 = `vercel.ai.gateway.error.${name2}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3, _b3;\nvar GatewayInvalidRequestError = class extends (_b3 = GatewayError, _a3 = symbol3, _b3) {\n constructor({\n message = \"Invalid request\",\n statusCode = 400,\n cause\n } = {}) {\n super({ message, statusCode, cause });\n this[_a3] = true;\n // used in isInstance\n this.name = name2;\n this.type = \"invalid_request_error\";\n }\n static isInstance(error) {\n return GatewayError.hasMarker(error) && symbol3 in error;\n }\n};\n\n// src/errors/gateway-rate-limit-error.ts\nvar name3 = \"GatewayRateLimitError\";\nvar marker4 = `vercel.ai.gateway.error.${name3}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4, _b4;\nvar GatewayRateLimitError = class extends (_b4 = GatewayError, _a4 = symbol4, _b4) {\n constructor({\n message = \"Rate limit exceeded\",\n statusCode = 429,\n cause\n } = {}) {\n super({ message, statusCode, cause });\n this[_a4] = true;\n // used in isInstance\n this.name = name3;\n this.type = \"rate_limit_exceeded\";\n }\n static isInstance(error) {\n return GatewayError.hasMarker(error) && symbol4 in error;\n }\n};\n\n// src/errors/gateway-model-not-found-error.ts\nimport { z } from \"zod/v4\";\nimport { lazyValidator, zodSchema } from \"@ai-sdk/provider-utils\";\nvar name4 = \"GatewayModelNotFoundError\";\nvar marker5 = `vercel.ai.gateway.error.${name4}`;\nvar symbol5 = Symbol.for(marker5);\nvar modelNotFoundParamSchema = lazyValidator(\n () => zodSchema(\n z.object({\n modelId: z.string()\n })\n )\n);\nvar _a5, _b5;\nvar GatewayModelNotFoundError = class extends (_b5 = GatewayError, _a5 = symbol5, _b5) {\n constructor({\n message = \"Model not found\",\n statusCode = 404,\n modelId,\n cause\n } = {}) {\n super({ message, statusCode, cause });\n this[_a5] = true;\n // used in isInstance\n this.name = name4;\n this.type = \"model_not_found\";\n this.modelId = modelId;\n }\n static isInstance(error) {\n return GatewayError.hasMarker(error) && symbol5 in error;\n }\n};\n\n// src/errors/gateway-internal-server-error.ts\nvar name5 = \"GatewayInternalServerError\";\nvar marker6 = `vercel.ai.gateway.error.${name5}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6, _b6;\nvar GatewayInternalServerError = class extends (_b6 = GatewayError, _a6 = symbol6, _b6) {\n constructor({\n message = \"Internal server error\",\n statusCode = 500,\n cause\n } = {}) {\n super({ message, statusCode, cause });\n this[_a6] = true;\n // used in isInstance\n this.name = name5;\n this.type = \"internal_server_error\";\n }\n static isInstance(error) {\n return GatewayError.hasMarker(error) && symbol6 in error;\n }\n};\n\n// src/errors/gateway-response-error.ts\nvar name6 = \"GatewayResponseError\";\nvar marker7 = `vercel.ai.gateway.error.${name6}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7, _b7;\nvar GatewayResponseError = class extends (_b7 = GatewayError, _a7 = symbol7, _b7) {\n constructor({\n message = \"Invalid response from Gateway\",\n statusCode = 502,\n response,\n validationError,\n cause\n } = {}) {\n super({ message, statusCode, cause });\n this[_a7] = true;\n // used in isInstance\n this.name = name6;\n this.type = \"response_error\";\n this.response = response;\n this.validationError = validationError;\n }\n static isInstance(error) {\n return GatewayError.hasMarker(error) && symbol7 in error;\n }\n};\n\n// src/errors/create-gateway-error.ts\nimport {\n lazyValidator as lazyValidator2,\n safeValidateTypes,\n zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nasync function createGatewayErrorFromResponse({\n response,\n statusCode,\n defaultMessage = \"Gateway request failed\",\n cause,\n authMethod\n}) {\n const parseResult = await safeValidateTypes({\n value: response,\n schema: gatewayErrorResponseSchema\n });\n if (!parseResult.success) {\n return new GatewayResponseError({\n message: `Invalid error response format: ${defaultMessage}`,\n statusCode,\n response,\n validationError: parseResult.error,\n cause\n });\n }\n const validatedResponse = parseResult.value;\n const errorType = validatedResponse.error.type;\n const message = validatedResponse.error.message;\n switch (errorType) {\n case \"authentication_error\":\n return GatewayAuthenticationError.createContextualError({\n apiKeyProvided: authMethod === \"api-key\",\n oidcTokenProvided: authMethod === \"oidc\",\n statusCode,\n cause\n });\n case \"invalid_request_error\":\n return new GatewayInvalidRequestError({ message, statusCode, cause });\n case \"rate_limit_exceeded\":\n return new GatewayRateLimitError({ message, statusCode, cause });\n case \"model_not_found\": {\n const modelResult = await safeValidateTypes({\n value: validatedResponse.error.param,\n schema: modelNotFoundParamSchema\n });\n return new GatewayModelNotFoundError({\n message,\n statusCode,\n modelId: modelResult.success ? modelResult.value.modelId : void 0,\n cause\n });\n }\n case \"internal_server_error\":\n return new GatewayInternalServerError({ message, statusCode, cause });\n default:\n return new GatewayInternalServerError({ message, statusCode, cause });\n }\n}\nvar gatewayErrorResponseSchema = lazyValidator2(\n () => zodSchema2(\n z2.object({\n error: z2.object({\n message: z2.string(),\n type: z2.string().nullish(),\n param: z2.unknown().nullish(),\n code: z2.union([z2.string(), z2.number()]).nullish()\n })\n })\n )\n);\n\n// src/errors/as-gateway-error.ts\nfunction asGatewayError(error, authMethod) {\n var _a8;\n if (GatewayError.isInstance(error)) {\n return error;\n }\n if (APICallError.isInstance(error)) {\n return createGatewayErrorFromResponse({\n response: extractApiCallResponse(error),\n statusCode: (_a8 = error.statusCode) != null ? _a8 : 500,\n defaultMessage: \"Gateway request failed\",\n cause: error,\n authMethod\n });\n }\n return createGatewayErrorFromResponse({\n response: {},\n statusCode: 500,\n defaultMessage: error instanceof Error ? `Gateway request failed: ${error.message}` : \"Unknown Gateway error\",\n cause: error,\n authMethod\n });\n}\n\n// src/errors/extract-api-call-response.ts\nfunction extractApiCallResponse(error) {\n if (error.data !== void 0) {\n return error.data;\n }\n if (error.responseBody != null) {\n try {\n return JSON.parse(error.responseBody);\n } catch (e) {\n return error.responseBody;\n }\n }\n return {};\n}\n\n// src/errors/parse-auth-method.ts\nimport { z as z3 } from \"zod/v4\";\nimport {\n lazyValidator as lazyValidator3,\n safeValidateTypes as safeValidateTypes2,\n zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nvar GATEWAY_AUTH_METHOD_HEADER = \"ai-gateway-auth-method\";\nasync function parseAuthMethod(headers) {\n const result = await safeValidateTypes2({\n value: headers[GATEWAY_AUTH_METHOD_HEADER],\n schema: gatewayAuthMethodSchema\n });\n return result.success ? result.value : void 0;\n}\nvar gatewayAuthMethodSchema = lazyValidator3(\n () => zodSchema3(z3.union([z3.literal(\"api-key\"), z3.literal(\"oidc\")]))\n);\n\n// src/gateway-fetch-metadata.ts\nimport {\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n getFromApi,\n lazyValidator as lazyValidator4,\n resolve,\n zodSchema as zodSchema4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar GatewayFetchMetadata = class {\n constructor(config) {\n this.config = config;\n }\n async getAvailableModels() {\n try {\n const { value } = await getFromApi({\n url: `${this.config.baseURL}/config`,\n headers: await resolve(this.config.headers()),\n successfulResponseHandler: createJsonResponseHandler(\n gatewayAvailableModelsResponseSchema\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z4.any(),\n errorToMessage: (data) => data\n }),\n fetch: this.config.fetch\n });\n return value;\n } catch (error) {\n throw await asGatewayError(error);\n }\n }\n async getCredits() {\n try {\n const baseUrl = new URL(this.config.baseURL);\n const { value } = await getFromApi({\n url: `${baseUrl.origin}/v1/credits`,\n headers: await resolve(this.config.headers()),\n successfulResponseHandler: createJsonResponseHandler(\n gatewayCreditsResponseSchema\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: z4.any(),\n errorToMessage: (data) => data\n }),\n fetch: this.config.fetch\n });\n return value;\n } catch (error) {\n throw await asGatewayError(error);\n }\n }\n};\nvar gatewayAvailableModelsResponseSchema = lazyValidator4(\n () => zodSchema4(\n z4.object({\n models: z4.array(\n z4.object({\n id: z4.string(),\n name: z4.string(),\n description: z4.string().nullish(),\n pricing: z4.object({\n input: z4.string(),\n output: z4.string(),\n input_cache_read: z4.string().nullish(),\n input_cache_write: z4.string().nullish()\n }).transform(\n ({ input, output, input_cache_read, input_cache_write }) => ({\n input,\n output,\n ...input_cache_read ? { cachedInputTokens: input_cache_read } : {},\n ...input_cache_write ? { cacheCreationInputTokens: input_cache_write } : {}\n })\n ).nullish(),\n specification: z4.object({\n specificationVersion: z4.literal(\"v2\"),\n provider: z4.string(),\n modelId: z4.string()\n }),\n modelType: z4.enum([\"language\", \"embedding\", \"image\"]).nullish()\n })\n )\n })\n )\n);\nvar gatewayCreditsResponseSchema = lazyValidator4(\n () => zodSchema4(\n z4.object({\n balance: z4.string(),\n total_used: z4.string()\n }).transform(({ balance, total_used }) => ({\n balance,\n totalUsed: total_used\n }))\n )\n);\n\n// src/gateway-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler2,\n createJsonResponseHandler as createJsonResponseHandler2,\n postJsonToApi,\n resolve as resolve2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\nvar GatewayLanguageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v2\";\n this.supportedUrls = { \"*/*\": [/.*/] };\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs(options) {\n const { abortSignal: _abortSignal, ...optionsWithoutSignal } = options;\n return {\n args: this.maybeEncodeFileParts(optionsWithoutSignal),\n warnings: []\n };\n }\n async doGenerate(options) {\n const { args, warnings } = await this.getArgs(options);\n const { abortSignal } = options;\n const resolvedHeaders = await resolve2(this.config.headers());\n try {\n const {\n responseHeaders,\n value: responseBody,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n options.headers,\n this.getModelConfigHeaders(this.modelId, false),\n await resolve2(this.config.o11yHeaders)\n ),\n body: args,\n successfulResponseHandler: createJsonResponseHandler2(z5.any()),\n failedResponseHandler: createJsonErrorResponseHandler2({\n errorSchema: z5.any(),\n errorToMessage: (data) => data\n }),\n ...abortSignal && { abortSignal },\n fetch: this.config.fetch\n });\n return {\n ...responseBody,\n request: { body: args },\n response: { headers: responseHeaders, body: rawResponse },\n warnings\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const { abortSignal } = options;\n const resolvedHeaders = await resolve2(this.config.headers());\n try {\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.getUrl(),\n headers: combineHeaders(\n resolvedHeaders,\n options.headers,\n this.getModelConfigHeaders(this.modelId, true),\n await resolve2(this.config.o11yHeaders)\n ),\n body: args,\n successfulResponseHandler: createEventSourceResponseHandler(z5.any()),\n failedResponseHandler: createJsonErrorResponseHandler2({\n errorSchema: z5.any(),\n errorToMessage: (data) => data\n }),\n ...abortSignal && { abortSignal },\n fetch: this.config.fetch\n });\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n if (warnings.length > 0) {\n controller.enqueue({ type: \"stream-start\", warnings });\n }\n },\n transform(chunk, controller) {\n if (chunk.success) {\n const streamPart = chunk.value;\n if (streamPart.type === \"raw\" && !options.includeRawChunks) {\n return;\n }\n if (streamPart.type === \"response-metadata\" && streamPart.timestamp && typeof streamPart.timestamp === \"string\") {\n streamPart.timestamp = new Date(streamPart.timestamp);\n }\n controller.enqueue(streamPart);\n } else {\n controller.error(\n chunk.error\n );\n }\n }\n })\n ),\n request: { body: args },\n response: { headers: responseHeaders }\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n isFilePart(part) {\n return part && typeof part === \"object\" && \"type\" in part && part.type === \"file\";\n }\n /**\n * Encodes file parts in the prompt to base64. Mutates the passed options\n * instance directly to avoid copying the file data.\n * @param options - The options to encode.\n * @returns The options with the file parts encoded.\n */\n maybeEncodeFileParts(options) {\n for (const message of options.prompt) {\n for (const part of message.content) {\n if (this.isFilePart(part)) {\n const filePart = part;\n if (filePart.data instanceof Uint8Array) {\n const buffer = Uint8Array.from(filePart.data);\n const base64Data = Buffer.from(buffer).toString(\"base64\");\n filePart.data = new URL(\n `data:${filePart.mediaType || \"application/octet-stream\"};base64,${base64Data}`\n );\n }\n }\n }\n }\n return options;\n }\n getUrl() {\n return `${this.config.baseURL}/language-model`;\n }\n getModelConfigHeaders(modelId, streaming) {\n return {\n \"ai-language-model-specification-version\": \"2\",\n \"ai-language-model-id\": modelId,\n \"ai-language-model-streaming\": String(streaming)\n };\n }\n};\n\n// src/gateway-embedding-model.ts\nimport {\n combineHeaders as combineHeaders2,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler3,\n createJsonResponseHandler as createJsonResponseHandler3,\n lazyValidator as lazyValidator5,\n postJsonToApi as postJsonToApi2,\n resolve as resolve3,\n zodSchema as zodSchema5\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar GatewayEmbeddingModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v2\";\n this.maxEmbeddingsPerCall = 2048;\n this.supportsParallelCalls = true;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions\n }) {\n var _a8;\n const resolvedHeaders = await resolve3(this.config.headers());\n try {\n const {\n responseHeaders,\n value: responseBody,\n rawValue\n } = await postJsonToApi2({\n url: this.getUrl(),\n headers: combineHeaders2(\n resolvedHeaders,\n headers != null ? headers : {},\n this.getModelConfigHeaders(),\n await resolve3(this.config.o11yHeaders)\n ),\n body: {\n input: values.length === 1 ? values[0] : values,\n ...providerOptions ? { providerOptions } : {}\n },\n successfulResponseHandler: createJsonResponseHandler3(\n gatewayEmbeddingResponseSchema\n ),\n failedResponseHandler: createJsonErrorResponseHandler3({\n errorSchema: z6.any(),\n errorToMessage: (data) => data\n }),\n ...abortSignal && { abortSignal },\n fetch: this.config.fetch\n });\n return {\n embeddings: responseBody.embeddings,\n usage: (_a8 = responseBody.usage) != null ? _a8 : void 0,\n providerMetadata: responseBody.providerMetadata,\n response: { headers: responseHeaders, body: rawValue }\n };\n } catch (error) {\n throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n }\n }\n getUrl() {\n return `${this.config.baseURL}/embedding-model`;\n }\n getModelConfigHeaders() {\n return {\n \"ai-embedding-model-specification-version\": \"2\",\n \"ai-model-id\": this.modelId\n };\n }\n};\nvar gatewayEmbeddingResponseSchema = lazyValidator5(\n () => zodSchema5(\n z6.object({\n embeddings: z6.array(z6.array(z6.number())),\n usage: z6.object({ tokens: z6.number() }).nullish(),\n providerMetadata: z6.record(z6.string(), z6.record(z6.string(), z6.unknown())).optional()\n })\n )\n);\n\n// src/vercel-environment.ts\nimport { getContext } from \"@vercel/oidc\";\nimport { getVercelOidcToken } from \"@vercel/oidc\";\nasync function getVercelRequestId() {\n var _a8;\n return (_a8 = getContext().headers) == null ? void 0 : _a8[\"x-vercel-id\"];\n}\n\n// src/gateway-provider.ts\nimport { withUserAgentSuffix } from \"@ai-sdk/provider-utils\";\n\n// src/version.ts\nvar VERSION = true ? \"2.0.5\" : \"0.0.0-test\";\n\n// src/gateway-provider.ts\nvar AI_GATEWAY_PROTOCOL_VERSION = \"0.0.1\";\nfunction createGatewayProvider(options = {}) {\n var _a8, _b8;\n let pendingMetadata = null;\n let metadataCache = null;\n const cacheRefreshMillis = (_a8 = options.metadataCacheRefreshMillis) != null ? _a8 : 1e3 * 60 * 5;\n let lastFetchTime = 0;\n const baseURL = (_b8 = withoutTrailingSlash(options.baseURL)) != null ? _b8 : \"https://ai-gateway.vercel.sh/v1/ai\";\n const getHeaders = async () => {\n const auth = await getGatewayAuthToken(options);\n if (auth) {\n return withUserAgentSuffix(\n {\n Authorization: `Bearer ${auth.token}`,\n \"ai-gateway-protocol-version\": AI_GATEWAY_PROTOCOL_VERSION,\n [GATEWAY_AUTH_METHOD_HEADER]: auth.authMethod,\n ...options.headers\n },\n `ai-sdk/gateway/${VERSION}`\n );\n }\n throw GatewayAuthenticationError.createContextualError({\n apiKeyProvided: false,\n oidcTokenProvided: false,\n statusCode: 401\n });\n };\n const createO11yHeaders = () => {\n const deploymentId = loadOptionalSetting({\n settingValue: void 0,\n environmentVariableName: \"VERCEL_DEPLOYMENT_ID\"\n });\n const environment = loadOptionalSetting({\n settingValue: void 0,\n environmentVariableName: \"VERCEL_ENV\"\n });\n const region = loadOptionalSetting({\n settingValue: void 0,\n environmentVariableName: \"VERCEL_REGION\"\n });\n return async () => {\n const requestId = await getVercelRequestId();\n return {\n ...deploymentId && { \"ai-o11y-deployment-id\": deploymentId },\n ...environment && { \"ai-o11y-environment\": environment },\n ...region && { \"ai-o11y-region\": region },\n ...requestId && { \"ai-o11y-request-id\": requestId }\n };\n };\n };\n const createLanguageModel = (modelId) => {\n return new GatewayLanguageModel(modelId, {\n provider: \"gateway\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n o11yHeaders: createO11yHeaders()\n });\n };\n const getAvailableModels = async () => {\n var _a9, _b9, _c;\n const now = (_c = (_b9 = (_a9 = options._internal) == null ? void 0 : _a9.currentDate) == null ? void 0 : _b9.call(_a9).getTime()) != null ? _c : Date.now();\n if (!pendingMetadata || now - lastFetchTime > cacheRefreshMillis) {\n lastFetchTime = now;\n pendingMetadata = new GatewayFetchMetadata({\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n }).getAvailableModels().then((metadata) => {\n metadataCache = metadata;\n return metadata;\n }).catch(async (error) => {\n throw await asGatewayError(\n error,\n await parseAuthMethod(await getHeaders())\n );\n });\n }\n return metadataCache ? Promise.resolve(metadataCache) : pendingMetadata;\n };\n const getCredits = async () => {\n return new GatewayFetchMetadata({\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n }).getCredits().catch(async (error) => {\n throw await asGatewayError(\n error,\n await parseAuthMethod(await getHeaders())\n );\n });\n };\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Gateway Provider model function cannot be called with the new keyword.\"\n );\n }\n return createLanguageModel(modelId);\n };\n provider.getAvailableModels = getAvailableModels;\n provider.getCredits = getCredits;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n provider.languageModel = createLanguageModel;\n provider.textEmbeddingModel = (modelId) => {\n return new GatewayEmbeddingModel(modelId, {\n provider: \"gateway\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n o11yHeaders: createO11yHeaders()\n });\n };\n return provider;\n}\nvar gateway = createGatewayProvider();\nasync function getGatewayAuthToken(options) {\n const apiKey = loadOptionalSetting({\n settingValue: options.apiKey,\n environmentVariableName: \"AI_GATEWAY_API_KEY\"\n });\n if (apiKey) {\n return {\n token: apiKey,\n authMethod: \"api-key\"\n };\n }\n try {\n const oidcToken = await getVercelOidcToken();\n return {\n token: oidcToken,\n authMethod: \"oidc\"\n };\n } catch (e) {\n return null;\n }\n}\nexport {\n GatewayAuthenticationError,\n GatewayError,\n GatewayInternalServerError,\n GatewayInvalidRequestError,\n GatewayModelNotFoundError,\n GatewayRateLimitError,\n GatewayResponseError,\n createGatewayProvider as createGateway,\n createGatewayProvider,\n gateway\n};\n//# sourceMappingURL=index.mjs.map",
56
56
  "var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name16 in all)\n __defProp(target, name16, { get: all[name16], enumerable: true });\n};\n\n// src/index.ts\nimport { gateway as gateway2, createGateway } from \"@ai-sdk/gateway\";\nimport {\n asSchema as asSchema5,\n createIdGenerator as createIdGenerator5,\n dynamicTool,\n generateId as generateId2,\n jsonSchema,\n parseJsonEventStream as parseJsonEventStream3,\n tool,\n zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\n\n// src/generate-text/generate-text.ts\nimport {\n createIdGenerator,\n executeTool,\n getErrorMessage as getErrorMessage5,\n withUserAgentSuffix as withUserAgentSuffix2\n} from \"@ai-sdk/provider-utils\";\n\n// src/error/no-output-specified-error.ts\nimport { AISDKError } from \"@ai-sdk/provider\";\nvar name = \"AI_NoOutputSpecifiedError\";\nvar marker = `vercel.ai.error.${name}`;\nvar symbol = Symbol.for(marker);\nvar _a;\nvar NoOutputSpecifiedError = class extends AISDKError {\n // used in isInstance\n constructor({ message = \"No output specified.\" } = {}) {\n super({ name, message });\n this[_a] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker);\n }\n};\n_a = symbol;\n\n// src/logger/log-warnings.ts\nfunction formatWarning(warning) {\n const prefix = \"AI SDK Warning:\";\n switch (warning.type) {\n case \"unsupported-setting\": {\n let message = `${prefix} The \"${warning.setting}\" setting is not supported by this model`;\n if (warning.details) {\n message += ` - ${warning.details}`;\n }\n return message;\n }\n case \"unsupported-tool\": {\n const toolName = \"name\" in warning.tool ? warning.tool.name : \"unknown tool\";\n let message = `${prefix} The tool \"${toolName}\" is not supported by this model`;\n if (warning.details) {\n message += ` - ${warning.details}`;\n }\n return message;\n }\n case \"other\": {\n return `${prefix} ${warning.message}`;\n }\n default: {\n return `${prefix} ${JSON.stringify(warning, null, 2)}`;\n }\n }\n}\nvar FIRST_WARNING_INFO_MESSAGE = \"AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.\";\nvar hasLoggedBefore = false;\nvar logWarnings = (warnings) => {\n if (warnings.length === 0) {\n return;\n }\n const logger = globalThis.AI_SDK_LOG_WARNINGS;\n if (logger === false) {\n return;\n }\n if (typeof logger === \"function\") {\n logger(warnings);\n return;\n }\n if (!hasLoggedBefore) {\n hasLoggedBefore = true;\n console.info(FIRST_WARNING_INFO_MESSAGE);\n }\n for (const warning of warnings) {\n console.warn(formatWarning(warning));\n }\n};\n\n// src/model/resolve-model.ts\nimport { gateway } from \"@ai-sdk/gateway\";\n\n// src/error/index.ts\nimport {\n AISDKError as AISDKError17,\n APICallError,\n EmptyResponseBodyError,\n InvalidPromptError,\n InvalidResponseDataError,\n JSONParseError,\n LoadAPIKeyError,\n LoadSettingError,\n NoContentGeneratedError,\n NoSuchModelError,\n TooManyEmbeddingValuesForCallError,\n TypeValidationError,\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\n\n// src/error/invalid-argument-error.ts\nimport { AISDKError as AISDKError2 } from \"@ai-sdk/provider\";\nvar name2 = \"AI_InvalidArgumentError\";\nvar marker2 = `vercel.ai.error.${name2}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2;\nvar InvalidArgumentError = class extends AISDKError2 {\n constructor({\n parameter,\n value,\n message\n }) {\n super({\n name: name2,\n message: `Invalid argument for parameter ${parameter}: ${message}`\n });\n this[_a2] = true;\n this.parameter = parameter;\n this.value = value;\n }\n static isInstance(error) {\n return AISDKError2.hasMarker(error, marker2);\n }\n};\n_a2 = symbol2;\n\n// src/error/invalid-stream-part-error.ts\nimport { AISDKError as AISDKError3 } from \"@ai-sdk/provider\";\nvar name3 = \"AI_InvalidStreamPartError\";\nvar marker3 = `vercel.ai.error.${name3}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3;\nvar InvalidStreamPartError = class extends AISDKError3 {\n constructor({\n chunk,\n message\n }) {\n super({ name: name3, message });\n this[_a3] = true;\n this.chunk = chunk;\n }\n static isInstance(error) {\n return AISDKError3.hasMarker(error, marker3);\n }\n};\n_a3 = symbol3;\n\n// src/error/invalid-tool-input-error.ts\nimport { AISDKError as AISDKError4, getErrorMessage } from \"@ai-sdk/provider\";\nvar name4 = \"AI_InvalidToolInputError\";\nvar marker4 = `vercel.ai.error.${name4}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4;\nvar InvalidToolInputError = class extends AISDKError4 {\n constructor({\n toolInput,\n toolName,\n cause,\n message = `Invalid input for tool ${toolName}: ${getErrorMessage(cause)}`\n }) {\n super({ name: name4, message, cause });\n this[_a4] = true;\n this.toolInput = toolInput;\n this.toolName = toolName;\n }\n static isInstance(error) {\n return AISDKError4.hasMarker(error, marker4);\n }\n};\n_a4 = symbol4;\n\n// src/error/no-image-generated-error.ts\nimport { AISDKError as AISDKError5 } from \"@ai-sdk/provider\";\nvar name5 = \"AI_NoImageGeneratedError\";\nvar marker5 = `vercel.ai.error.${name5}`;\nvar symbol5 = Symbol.for(marker5);\nvar _a5;\nvar NoImageGeneratedError = class extends AISDKError5 {\n constructor({\n message = \"No image generated.\",\n cause,\n responses\n }) {\n super({ name: name5, message, cause });\n this[_a5] = true;\n this.responses = responses;\n }\n static isInstance(error) {\n return AISDKError5.hasMarker(error, marker5);\n }\n};\n_a5 = symbol5;\n\n// src/error/no-object-generated-error.ts\nimport { AISDKError as AISDKError6 } from \"@ai-sdk/provider\";\nvar name6 = \"AI_NoObjectGeneratedError\";\nvar marker6 = `vercel.ai.error.${name6}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6;\nvar NoObjectGeneratedError = class extends AISDKError6 {\n constructor({\n message = \"No object generated.\",\n cause,\n text: text2,\n response,\n usage,\n finishReason\n }) {\n super({ name: name6, message, cause });\n this[_a6] = true;\n this.text = text2;\n this.response = response;\n this.usage = usage;\n this.finishReason = finishReason;\n }\n static isInstance(error) {\n return AISDKError6.hasMarker(error, marker6);\n }\n};\n_a6 = symbol6;\n\n// src/error/no-output-generated-error.ts\nimport { AISDKError as AISDKError7 } from \"@ai-sdk/provider\";\nvar name7 = \"AI_NoOutputGeneratedError\";\nvar marker7 = `vercel.ai.error.${name7}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7;\nvar NoOutputGeneratedError = class extends AISDKError7 {\n // used in isInstance\n constructor({\n message = \"No output generated.\",\n cause\n } = {}) {\n super({ name: name7, message, cause });\n this[_a7] = true;\n }\n static isInstance(error) {\n return AISDKError7.hasMarker(error, marker7);\n }\n};\n_a7 = symbol7;\n\n// src/error/no-speech-generated-error.ts\nimport { AISDKError as AISDKError8 } from \"@ai-sdk/provider\";\nvar NoSpeechGeneratedError = class extends AISDKError8 {\n constructor(options) {\n super({\n name: \"AI_NoSpeechGeneratedError\",\n message: \"No speech audio generated.\"\n });\n this.responses = options.responses;\n }\n};\n\n// src/error/no-such-tool-error.ts\nimport { AISDKError as AISDKError9 } from \"@ai-sdk/provider\";\nvar name8 = \"AI_NoSuchToolError\";\nvar marker8 = `vercel.ai.error.${name8}`;\nvar symbol8 = Symbol.for(marker8);\nvar _a8;\nvar NoSuchToolError = class extends AISDKError9 {\n constructor({\n toolName,\n availableTools = void 0,\n message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? \"No tools are available.\" : `Available tools: ${availableTools.join(\", \")}.`}`\n }) {\n super({ name: name8, message });\n this[_a8] = true;\n this.toolName = toolName;\n this.availableTools = availableTools;\n }\n static isInstance(error) {\n return AISDKError9.hasMarker(error, marker8);\n }\n};\n_a8 = symbol8;\n\n// src/error/tool-call-repair-error.ts\nimport { AISDKError as AISDKError10, getErrorMessage as getErrorMessage2 } from \"@ai-sdk/provider\";\nvar name9 = \"AI_ToolCallRepairError\";\nvar marker9 = `vercel.ai.error.${name9}`;\nvar symbol9 = Symbol.for(marker9);\nvar _a9;\nvar ToolCallRepairError = class extends AISDKError10 {\n constructor({\n cause,\n originalError,\n message = `Error repairing tool call: ${getErrorMessage2(cause)}`\n }) {\n super({ name: name9, message, cause });\n this[_a9] = true;\n this.originalError = originalError;\n }\n static isInstance(error) {\n return AISDKError10.hasMarker(error, marker9);\n }\n};\n_a9 = symbol9;\n\n// src/error/unsupported-model-version-error.ts\nimport { AISDKError as AISDKError11 } from \"@ai-sdk/provider\";\nvar UnsupportedModelVersionError = class extends AISDKError11 {\n constructor(options) {\n super({\n name: \"AI_UnsupportedModelVersionError\",\n message: `Unsupported model version ${options.version} for provider \"${options.provider}\" and model \"${options.modelId}\". AI SDK 5 only supports models that implement specification version \"v2\".`\n });\n this.version = options.version;\n this.provider = options.provider;\n this.modelId = options.modelId;\n }\n};\n\n// src/prompt/invalid-data-content-error.ts\nimport { AISDKError as AISDKError12 } from \"@ai-sdk/provider\";\nvar name10 = \"AI_InvalidDataContentError\";\nvar marker10 = `vercel.ai.error.${name10}`;\nvar symbol10 = Symbol.for(marker10);\nvar _a10;\nvar InvalidDataContentError = class extends AISDKError12 {\n constructor({\n content,\n cause,\n message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`\n }) {\n super({ name: name10, message, cause });\n this[_a10] = true;\n this.content = content;\n }\n static isInstance(error) {\n return AISDKError12.hasMarker(error, marker10);\n }\n};\n_a10 = symbol10;\n\n// src/prompt/invalid-message-role-error.ts\nimport { AISDKError as AISDKError13 } from \"@ai-sdk/provider\";\nvar name11 = \"AI_InvalidMessageRoleError\";\nvar marker11 = `vercel.ai.error.${name11}`;\nvar symbol11 = Symbol.for(marker11);\nvar _a11;\nvar InvalidMessageRoleError = class extends AISDKError13 {\n constructor({\n role,\n message = `Invalid message role: '${role}'. Must be one of: \"system\", \"user\", \"assistant\", \"tool\".`\n }) {\n super({ name: name11, message });\n this[_a11] = true;\n this.role = role;\n }\n static isInstance(error) {\n return AISDKError13.hasMarker(error, marker11);\n }\n};\n_a11 = symbol11;\n\n// src/prompt/message-conversion-error.ts\nimport { AISDKError as AISDKError14 } from \"@ai-sdk/provider\";\nvar name12 = \"AI_MessageConversionError\";\nvar marker12 = `vercel.ai.error.${name12}`;\nvar symbol12 = Symbol.for(marker12);\nvar _a12;\nvar MessageConversionError = class extends AISDKError14 {\n constructor({\n originalMessage,\n message\n }) {\n super({ name: name12, message });\n this[_a12] = true;\n this.originalMessage = originalMessage;\n }\n static isInstance(error) {\n return AISDKError14.hasMarker(error, marker12);\n }\n};\n_a12 = symbol12;\n\n// src/util/download/download-error.ts\nimport { AISDKError as AISDKError15 } from \"@ai-sdk/provider\";\nvar name13 = \"AI_DownloadError\";\nvar marker13 = `vercel.ai.error.${name13}`;\nvar symbol13 = Symbol.for(marker13);\nvar _a13;\nvar DownloadError = class extends AISDKError15 {\n constructor({\n url,\n statusCode,\n statusText,\n cause,\n message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`\n }) {\n super({ name: name13, message, cause });\n this[_a13] = true;\n this.url = url;\n this.statusCode = statusCode;\n this.statusText = statusText;\n }\n static isInstance(error) {\n return AISDKError15.hasMarker(error, marker13);\n }\n};\n_a13 = symbol13;\n\n// src/util/retry-error.ts\nimport { AISDKError as AISDKError16 } from \"@ai-sdk/provider\";\nvar name14 = \"AI_RetryError\";\nvar marker14 = `vercel.ai.error.${name14}`;\nvar symbol14 = Symbol.for(marker14);\nvar _a14;\nvar RetryError = class extends AISDKError16 {\n constructor({\n message,\n reason,\n errors\n }) {\n super({ name: name14, message });\n this[_a14] = true;\n this.reason = reason;\n this.errors = errors;\n this.lastError = errors[errors.length - 1];\n }\n static isInstance(error) {\n return AISDKError16.hasMarker(error, marker14);\n }\n};\n_a14 = symbol14;\n\n// src/model/resolve-model.ts\nfunction resolveLanguageModel(model) {\n if (typeof model !== \"string\") {\n if (model.specificationVersion !== \"v2\") {\n throw new UnsupportedModelVersionError({\n version: model.specificationVersion,\n provider: model.provider,\n modelId: model.modelId\n });\n }\n return model;\n }\n return getGlobalProvider().languageModel(model);\n}\nfunction resolveEmbeddingModel(model) {\n if (typeof model !== \"string\") {\n if (model.specificationVersion !== \"v2\") {\n throw new UnsupportedModelVersionError({\n version: model.specificationVersion,\n provider: model.provider,\n modelId: model.modelId\n });\n }\n return model;\n }\n return getGlobalProvider().textEmbeddingModel(\n model\n );\n}\nfunction getGlobalProvider() {\n var _a16;\n return (_a16 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a16 : gateway;\n}\n\n// src/prompt/convert-to-language-model-prompt.ts\nimport {\n isUrlSupported\n} from \"@ai-sdk/provider-utils\";\n\n// src/util/detect-media-type.ts\nimport { convertBase64ToUint8Array } from \"@ai-sdk/provider-utils\";\nvar imageMediaTypeSignatures = [\n {\n mediaType: \"image/gif\",\n bytesPrefix: [71, 73, 70]\n // GIF\n },\n {\n mediaType: \"image/png\",\n bytesPrefix: [137, 80, 78, 71]\n // PNG\n },\n {\n mediaType: \"image/jpeg\",\n bytesPrefix: [255, 216]\n // JPEG\n },\n {\n mediaType: \"image/webp\",\n bytesPrefix: [\n 82,\n 73,\n 70,\n 70,\n // \"RIFF\"\n null,\n null,\n null,\n null,\n // file size (variable)\n 87,\n 69,\n 66,\n 80\n // \"WEBP\"\n ]\n },\n {\n mediaType: \"image/bmp\",\n bytesPrefix: [66, 77]\n },\n {\n mediaType: \"image/tiff\",\n bytesPrefix: [73, 73, 42, 0]\n },\n {\n mediaType: \"image/tiff\",\n bytesPrefix: [77, 77, 0, 42]\n },\n {\n mediaType: \"image/avif\",\n bytesPrefix: [\n 0,\n 0,\n 0,\n 32,\n 102,\n 116,\n 121,\n 112,\n 97,\n 118,\n 105,\n 102\n ]\n },\n {\n mediaType: \"image/heic\",\n bytesPrefix: [\n 0,\n 0,\n 0,\n 32,\n 102,\n 116,\n 121,\n 112,\n 104,\n 101,\n 105,\n 99\n ]\n }\n];\nvar audioMediaTypeSignatures = [\n {\n mediaType: \"audio/mpeg\",\n bytesPrefix: [255, 251]\n },\n {\n mediaType: \"audio/mpeg\",\n bytesPrefix: [255, 250]\n },\n {\n mediaType: \"audio/mpeg\",\n bytesPrefix: [255, 243]\n },\n {\n mediaType: \"audio/mpeg\",\n bytesPrefix: [255, 242]\n },\n {\n mediaType: \"audio/mpeg\",\n bytesPrefix: [255, 227]\n },\n {\n mediaType: \"audio/mpeg\",\n bytesPrefix: [255, 226]\n },\n {\n mediaType: \"audio/wav\",\n bytesPrefix: [\n 82,\n // R\n 73,\n // I\n 70,\n // F\n 70,\n // F\n null,\n null,\n null,\n null,\n 87,\n // W\n 65,\n // A\n 86,\n // V\n 69\n // E\n ]\n },\n {\n mediaType: \"audio/ogg\",\n bytesPrefix: [79, 103, 103, 83]\n },\n {\n mediaType: \"audio/flac\",\n bytesPrefix: [102, 76, 97, 67]\n },\n {\n mediaType: \"audio/aac\",\n bytesPrefix: [64, 21, 0, 0]\n },\n {\n mediaType: \"audio/mp4\",\n bytesPrefix: [102, 116, 121, 112]\n },\n {\n mediaType: \"audio/webm\",\n bytesPrefix: [26, 69, 223, 163]\n }\n];\nvar stripID3 = (data) => {\n const bytes = typeof data === \"string\" ? convertBase64ToUint8Array(data) : data;\n const id3Size = (bytes[6] & 127) << 21 | (bytes[7] & 127) << 14 | (bytes[8] & 127) << 7 | bytes[9] & 127;\n return bytes.slice(id3Size + 10);\n};\nfunction stripID3TagsIfPresent(data) {\n const hasId3 = typeof data === \"string\" && data.startsWith(\"SUQz\") || typeof data !== \"string\" && data.length > 10 && data[0] === 73 && // 'I'\n data[1] === 68 && // 'D'\n data[2] === 51;\n return hasId3 ? stripID3(data) : data;\n}\nfunction detectMediaType({\n data,\n signatures\n}) {\n const processedData = stripID3TagsIfPresent(data);\n const bytes = typeof processedData === \"string\" ? convertBase64ToUint8Array(\n processedData.substring(0, Math.min(processedData.length, 24))\n ) : processedData;\n for (const signature of signatures) {\n if (bytes.length >= signature.bytesPrefix.length && signature.bytesPrefix.every(\n (byte, index) => byte === null || bytes[index] === byte\n )) {\n return signature.mediaType;\n }\n }\n return void 0;\n}\n\n// src/util/download/download.ts\nimport {\n withUserAgentSuffix,\n getRuntimeEnvironmentUserAgent\n} from \"@ai-sdk/provider-utils\";\n\n// src/version.ts\nvar VERSION = true ? \"5.0.86\" : \"0.0.0-test\";\n\n// src/util/download/download.ts\nvar download = async ({ url }) => {\n var _a16;\n const urlText = url.toString();\n try {\n const response = await fetch(urlText, {\n headers: withUserAgentSuffix(\n {},\n `ai-sdk/${VERSION}`,\n getRuntimeEnvironmentUserAgent()\n )\n });\n if (!response.ok) {\n throw new DownloadError({\n url: urlText,\n statusCode: response.status,\n statusText: response.statusText\n });\n }\n return {\n data: new Uint8Array(await response.arrayBuffer()),\n mediaType: (_a16 = response.headers.get(\"content-type\")) != null ? _a16 : void 0\n };\n } catch (error) {\n if (DownloadError.isInstance(error)) {\n throw error;\n }\n throw new DownloadError({ url: urlText, cause: error });\n }\n};\n\n// src/util/download/download-function.ts\nvar createDefaultDownloadFunction = (download2 = download) => (requestedDownloads) => Promise.all(\n requestedDownloads.map(\n async (requestedDownload) => requestedDownload.isUrlSupportedByModel ? null : download2(requestedDownload)\n )\n);\n\n// src/prompt/data-content.ts\nimport { AISDKError as AISDKError18 } from \"@ai-sdk/provider\";\nimport {\n convertBase64ToUint8Array as convertBase64ToUint8Array2,\n convertUint8ArrayToBase64\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\n\n// src/prompt/split-data-url.ts\nfunction splitDataUrl(dataUrl) {\n try {\n const [header, base64Content] = dataUrl.split(\",\");\n return {\n mediaType: header.split(\";\")[0].split(\":\")[1],\n base64Content\n };\n } catch (error) {\n return {\n mediaType: void 0,\n base64Content: void 0\n };\n }\n}\n\n// src/prompt/data-content.ts\nvar dataContentSchema = z.union([\n z.string(),\n z.instanceof(Uint8Array),\n z.instanceof(ArrayBuffer),\n z.custom(\n // Buffer might not be available in some environments such as CloudFlare:\n (value) => {\n var _a16, _b;\n return (_b = (_a16 = globalThis.Buffer) == null ? void 0 : _a16.isBuffer(value)) != null ? _b : false;\n },\n { message: \"Must be a Buffer\" }\n )\n]);\nfunction convertToLanguageModelV2DataContent(content) {\n if (content instanceof Uint8Array) {\n return { data: content, mediaType: void 0 };\n }\n if (content instanceof ArrayBuffer) {\n return { data: new Uint8Array(content), mediaType: void 0 };\n }\n if (typeof content === \"string\") {\n try {\n content = new URL(content);\n } catch (error) {\n }\n }\n if (content instanceof URL && content.protocol === \"data:\") {\n const { mediaType: dataUrlMediaType, base64Content } = splitDataUrl(\n content.toString()\n );\n if (dataUrlMediaType == null || base64Content == null) {\n throw new AISDKError18({\n name: \"InvalidDataContentError\",\n message: `Invalid data URL format in content ${content.toString()}`\n });\n }\n return { data: base64Content, mediaType: dataUrlMediaType };\n }\n return { data: content, mediaType: void 0 };\n}\nfunction convertDataContentToBase64String(content) {\n if (typeof content === \"string\") {\n return content;\n }\n if (content instanceof ArrayBuffer) {\n return convertUint8ArrayToBase64(new Uint8Array(content));\n }\n return convertUint8ArrayToBase64(content);\n}\nfunction convertDataContentToUint8Array(content) {\n if (content instanceof Uint8Array) {\n return content;\n }\n if (typeof content === \"string\") {\n try {\n return convertBase64ToUint8Array2(content);\n } catch (error) {\n throw new InvalidDataContentError({\n message: \"Invalid data content. Content string is not a base64-encoded media.\",\n content,\n cause: error\n });\n }\n }\n if (content instanceof ArrayBuffer) {\n return new Uint8Array(content);\n }\n throw new InvalidDataContentError({ content });\n}\n\n// src/prompt/convert-to-language-model-prompt.ts\nasync function convertToLanguageModelPrompt({\n prompt,\n supportedUrls,\n download: download2 = createDefaultDownloadFunction()\n}) {\n const downloadedAssets = await downloadAssets(\n prompt.messages,\n download2,\n supportedUrls\n );\n return [\n ...prompt.system != null ? [{ role: \"system\", content: prompt.system }] : [],\n ...prompt.messages.map(\n (message) => convertToLanguageModelMessage({ message, downloadedAssets })\n )\n ];\n}\nfunction convertToLanguageModelMessage({\n message,\n downloadedAssets\n}) {\n const role = message.role;\n switch (role) {\n case \"system\": {\n return {\n role: \"system\",\n content: message.content,\n providerOptions: message.providerOptions\n };\n }\n case \"user\": {\n if (typeof message.content === \"string\") {\n return {\n role: \"user\",\n content: [{ type: \"text\", text: message.content }],\n providerOptions: message.providerOptions\n };\n }\n return {\n role: \"user\",\n content: message.content.map((part) => convertPartToLanguageModelPart(part, downloadedAssets)).filter((part) => part.type !== \"text\" || part.text !== \"\"),\n providerOptions: message.providerOptions\n };\n }\n case \"assistant\": {\n if (typeof message.content === \"string\") {\n return {\n role: \"assistant\",\n content: [{ type: \"text\", text: message.content }],\n providerOptions: message.providerOptions\n };\n }\n return {\n role: \"assistant\",\n content: message.content.filter(\n // remove empty text parts (no text, and no provider options):\n (part) => part.type !== \"text\" || part.text !== \"\" || part.providerOptions != null\n ).map((part) => {\n const providerOptions = part.providerOptions;\n switch (part.type) {\n case \"file\": {\n const { data, mediaType } = convertToLanguageModelV2DataContent(\n part.data\n );\n return {\n type: \"file\",\n data,\n filename: part.filename,\n mediaType: mediaType != null ? mediaType : part.mediaType,\n providerOptions\n };\n }\n case \"reasoning\": {\n return {\n type: \"reasoning\",\n text: part.text,\n providerOptions\n };\n }\n case \"text\": {\n return {\n type: \"text\",\n text: part.text,\n providerOptions\n };\n }\n case \"tool-call\": {\n return {\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n providerExecuted: part.providerExecuted,\n providerOptions\n };\n }\n case \"tool-result\": {\n return {\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n output: part.output,\n providerOptions\n };\n }\n }\n }),\n providerOptions: message.providerOptions\n };\n }\n case \"tool\": {\n return {\n role: \"tool\",\n content: message.content.map((part) => ({\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n output: part.output,\n providerOptions: part.providerOptions\n })),\n providerOptions: message.providerOptions\n };\n }\n default: {\n const _exhaustiveCheck = role;\n throw new InvalidMessageRoleError({ role: _exhaustiveCheck });\n }\n }\n}\nasync function downloadAssets(messages, download2, supportedUrls) {\n const plannedDownloads = messages.filter((message) => message.role === \"user\").map((message) => message.content).filter(\n (content) => Array.isArray(content)\n ).flat().filter(\n (part) => part.type === \"image\" || part.type === \"file\"\n ).map((part) => {\n var _a16;\n const mediaType = (_a16 = part.mediaType) != null ? _a16 : part.type === \"image\" ? \"image/*\" : void 0;\n let data = part.type === \"image\" ? part.image : part.data;\n if (typeof data === \"string\") {\n try {\n data = new URL(data);\n } catch (ignored) {\n }\n }\n return { mediaType, data };\n }).filter(\n (part) => part.data instanceof URL\n ).map((part) => ({\n url: part.data,\n isUrlSupportedByModel: part.mediaType != null && isUrlSupported({\n url: part.data.toString(),\n mediaType: part.mediaType,\n supportedUrls\n })\n }));\n const downloadedFiles = await download2(plannedDownloads);\n return Object.fromEntries(\n downloadedFiles.map(\n (file, index) => file == null ? null : [\n plannedDownloads[index].url.toString(),\n { data: file.data, mediaType: file.mediaType }\n ]\n ).filter((file) => file != null)\n );\n}\nfunction convertPartToLanguageModelPart(part, downloadedAssets) {\n var _a16;\n if (part.type === \"text\") {\n return {\n type: \"text\",\n text: part.text,\n providerOptions: part.providerOptions\n };\n }\n let originalData;\n const type = part.type;\n switch (type) {\n case \"image\":\n originalData = part.image;\n break;\n case \"file\":\n originalData = part.data;\n break;\n default:\n throw new Error(`Unsupported part type: ${type}`);\n }\n const { data: convertedData, mediaType: convertedMediaType } = convertToLanguageModelV2DataContent(originalData);\n let mediaType = convertedMediaType != null ? convertedMediaType : part.mediaType;\n let data = convertedData;\n if (data instanceof URL) {\n const downloadedFile = downloadedAssets[data.toString()];\n if (downloadedFile) {\n data = downloadedFile.data;\n mediaType != null ? mediaType : mediaType = downloadedFile.mediaType;\n }\n }\n switch (type) {\n case \"image\": {\n if (data instanceof Uint8Array || typeof data === \"string\") {\n mediaType = (_a16 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a16 : mediaType;\n }\n return {\n type: \"file\",\n mediaType: mediaType != null ? mediaType : \"image/*\",\n // any image\n filename: void 0,\n data,\n providerOptions: part.providerOptions\n };\n }\n case \"file\": {\n if (mediaType == null) {\n throw new Error(`Media type is missing for file part`);\n }\n return {\n type: \"file\",\n mediaType,\n filename: part.filename,\n data,\n providerOptions: part.providerOptions\n };\n }\n }\n}\n\n// src/prompt/prepare-call-settings.ts\nfunction prepareCallSettings({\n maxOutputTokens,\n temperature,\n topP,\n topK,\n presencePenalty,\n frequencyPenalty,\n seed,\n stopSequences\n}) {\n if (maxOutputTokens != null) {\n if (!Number.isInteger(maxOutputTokens)) {\n throw new InvalidArgumentError({\n parameter: \"maxOutputTokens\",\n value: maxOutputTokens,\n message: \"maxOutputTokens must be an integer\"\n });\n }\n if (maxOutputTokens < 1) {\n throw new InvalidArgumentError({\n parameter: \"maxOutputTokens\",\n value: maxOutputTokens,\n message: \"maxOutputTokens must be >= 1\"\n });\n }\n }\n if (temperature != null) {\n if (typeof temperature !== \"number\") {\n throw new InvalidArgumentError({\n parameter: \"temperature\",\n value: temperature,\n message: \"temperature must be a number\"\n });\n }\n }\n if (topP != null) {\n if (typeof topP !== \"number\") {\n throw new InvalidArgumentError({\n parameter: \"topP\",\n value: topP,\n message: \"topP must be a number\"\n });\n }\n }\n if (topK != null) {\n if (typeof topK !== \"number\") {\n throw new InvalidArgumentError({\n parameter: \"topK\",\n value: topK,\n message: \"topK must be a number\"\n });\n }\n }\n if (presencePenalty != null) {\n if (typeof presencePenalty !== \"number\") {\n throw new InvalidArgumentError({\n parameter: \"presencePenalty\",\n value: presencePenalty,\n message: \"presencePenalty must be a number\"\n });\n }\n }\n if (frequencyPenalty != null) {\n if (typeof frequencyPenalty !== \"number\") {\n throw new InvalidArgumentError({\n parameter: \"frequencyPenalty\",\n value: frequencyPenalty,\n message: \"frequencyPenalty must be a number\"\n });\n }\n }\n if (seed != null) {\n if (!Number.isInteger(seed)) {\n throw new InvalidArgumentError({\n parameter: \"seed\",\n value: seed,\n message: \"seed must be an integer\"\n });\n }\n }\n return {\n maxOutputTokens,\n temperature,\n topP,\n topK,\n presencePenalty,\n frequencyPenalty,\n stopSequences,\n seed\n };\n}\n\n// src/prompt/prepare-tools-and-tool-choice.ts\nimport { asSchema } from \"@ai-sdk/provider-utils\";\n\n// src/util/is-non-empty-object.ts\nfunction isNonEmptyObject(object2) {\n return object2 != null && Object.keys(object2).length > 0;\n}\n\n// src/prompt/prepare-tools-and-tool-choice.ts\nfunction prepareToolsAndToolChoice({\n tools,\n toolChoice,\n activeTools\n}) {\n if (!isNonEmptyObject(tools)) {\n return {\n tools: void 0,\n toolChoice: void 0\n };\n }\n const filteredTools = activeTools != null ? Object.entries(tools).filter(\n ([name16]) => activeTools.includes(name16)\n ) : Object.entries(tools);\n return {\n tools: filteredTools.map(([name16, tool2]) => {\n const toolType = tool2.type;\n switch (toolType) {\n case void 0:\n case \"dynamic\":\n case \"function\":\n return {\n type: \"function\",\n name: name16,\n description: tool2.description,\n inputSchema: asSchema(tool2.inputSchema).jsonSchema,\n providerOptions: tool2.providerOptions\n };\n case \"provider-defined\":\n return {\n type: \"provider-defined\",\n name: name16,\n id: tool2.id,\n args: tool2.args\n };\n default: {\n const exhaustiveCheck = toolType;\n throw new Error(`Unsupported tool type: ${exhaustiveCheck}`);\n }\n }\n }),\n toolChoice: toolChoice == null ? { type: \"auto\" } : typeof toolChoice === \"string\" ? { type: toolChoice } : { type: \"tool\", toolName: toolChoice.toolName }\n };\n}\n\n// src/prompt/standardize-prompt.ts\nimport { InvalidPromptError as InvalidPromptError2 } from \"@ai-sdk/provider\";\nimport { safeValidateTypes } from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\n\n// src/prompt/message.ts\nimport { z as z5 } from \"zod/v4\";\n\n// src/types/provider-metadata.ts\nimport { z as z3 } from \"zod/v4\";\n\n// src/types/json-value.ts\nimport { z as z2 } from \"zod/v4\";\nvar jsonValueSchema = z2.lazy(\n () => z2.union([\n z2.null(),\n z2.string(),\n z2.number(),\n z2.boolean(),\n z2.record(z2.string(), jsonValueSchema),\n z2.array(jsonValueSchema)\n ])\n);\n\n// src/types/provider-metadata.ts\nvar providerMetadataSchema = z3.record(\n z3.string(),\n z3.record(z3.string(), jsonValueSchema)\n);\n\n// src/prompt/content-part.ts\nimport { z as z4 } from \"zod/v4\";\nvar textPartSchema = z4.object({\n type: z4.literal(\"text\"),\n text: z4.string(),\n providerOptions: providerMetadataSchema.optional()\n});\nvar imagePartSchema = z4.object({\n type: z4.literal(\"image\"),\n image: z4.union([dataContentSchema, z4.instanceof(URL)]),\n mediaType: z4.string().optional(),\n providerOptions: providerMetadataSchema.optional()\n});\nvar filePartSchema = z4.object({\n type: z4.literal(\"file\"),\n data: z4.union([dataContentSchema, z4.instanceof(URL)]),\n filename: z4.string().optional(),\n mediaType: z4.string(),\n providerOptions: providerMetadataSchema.optional()\n});\nvar reasoningPartSchema = z4.object({\n type: z4.literal(\"reasoning\"),\n text: z4.string(),\n providerOptions: providerMetadataSchema.optional()\n});\nvar toolCallPartSchema = z4.object({\n type: z4.literal(\"tool-call\"),\n toolCallId: z4.string(),\n toolName: z4.string(),\n input: z4.unknown(),\n providerOptions: providerMetadataSchema.optional(),\n providerExecuted: z4.boolean().optional()\n});\nvar outputSchema = z4.discriminatedUnion(\"type\", [\n z4.object({\n type: z4.literal(\"text\"),\n value: z4.string()\n }),\n z4.object({\n type: z4.literal(\"json\"),\n value: jsonValueSchema\n }),\n z4.object({\n type: z4.literal(\"error-text\"),\n value: z4.string()\n }),\n z4.object({\n type: z4.literal(\"error-json\"),\n value: jsonValueSchema\n }),\n z4.object({\n type: z4.literal(\"content\"),\n value: z4.array(\n z4.union([\n z4.object({\n type: z4.literal(\"text\"),\n text: z4.string()\n }),\n z4.object({\n type: z4.literal(\"media\"),\n data: z4.string(),\n mediaType: z4.string()\n })\n ])\n )\n })\n]);\nvar toolResultPartSchema = z4.object({\n type: z4.literal(\"tool-result\"),\n toolCallId: z4.string(),\n toolName: z4.string(),\n output: outputSchema,\n providerOptions: providerMetadataSchema.optional()\n});\n\n// src/prompt/message.ts\nvar systemModelMessageSchema = z5.object(\n {\n role: z5.literal(\"system\"),\n content: z5.string(),\n providerOptions: providerMetadataSchema.optional()\n }\n);\nvar coreSystemMessageSchema = systemModelMessageSchema;\nvar userModelMessageSchema = z5.object({\n role: z5.literal(\"user\"),\n content: z5.union([\n z5.string(),\n z5.array(z5.union([textPartSchema, imagePartSchema, filePartSchema]))\n ]),\n providerOptions: providerMetadataSchema.optional()\n});\nvar coreUserMessageSchema = userModelMessageSchema;\nvar assistantModelMessageSchema = z5.object({\n role: z5.literal(\"assistant\"),\n content: z5.union([\n z5.string(),\n z5.array(\n z5.union([\n textPartSchema,\n filePartSchema,\n reasoningPartSchema,\n toolCallPartSchema,\n toolResultPartSchema\n ])\n )\n ]),\n providerOptions: providerMetadataSchema.optional()\n});\nvar coreAssistantMessageSchema = assistantModelMessageSchema;\nvar toolModelMessageSchema = z5.object({\n role: z5.literal(\"tool\"),\n content: z5.array(toolResultPartSchema),\n providerOptions: providerMetadataSchema.optional()\n});\nvar coreToolMessageSchema = toolModelMessageSchema;\nvar modelMessageSchema = z5.union([\n systemModelMessageSchema,\n userModelMessageSchema,\n assistantModelMessageSchema,\n toolModelMessageSchema\n]);\nvar coreMessageSchema = modelMessageSchema;\n\n// src/prompt/standardize-prompt.ts\nasync function standardizePrompt(prompt) {\n if (prompt.prompt == null && prompt.messages == null) {\n throw new InvalidPromptError2({\n prompt,\n message: \"prompt or messages must be defined\"\n });\n }\n if (prompt.prompt != null && prompt.messages != null) {\n throw new InvalidPromptError2({\n prompt,\n message: \"prompt and messages cannot be defined at the same time\"\n });\n }\n if (prompt.system != null && typeof prompt.system !== \"string\") {\n throw new InvalidPromptError2({\n prompt,\n message: \"system must be a string\"\n });\n }\n let messages;\n if (prompt.prompt != null && typeof prompt.prompt === \"string\") {\n messages = [{ role: \"user\", content: prompt.prompt }];\n } else if (prompt.prompt != null && Array.isArray(prompt.prompt)) {\n messages = prompt.prompt;\n } else if (prompt.messages != null) {\n messages = prompt.messages;\n } else {\n throw new InvalidPromptError2({\n prompt,\n message: \"prompt or messages must be defined\"\n });\n }\n if (messages.length === 0) {\n throw new InvalidPromptError2({\n prompt,\n message: \"messages must not be empty\"\n });\n }\n const validationResult = await safeValidateTypes({\n value: messages,\n schema: z6.array(modelMessageSchema)\n });\n if (!validationResult.success) {\n throw new InvalidPromptError2({\n prompt,\n message: \"The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.\",\n cause: validationResult.error\n });\n }\n return {\n messages,\n system: prompt.system\n };\n}\n\n// src/prompt/wrap-gateway-error.ts\nimport {\n GatewayAuthenticationError,\n GatewayModelNotFoundError\n} from \"@ai-sdk/gateway\";\nimport { AISDKError as AISDKError19 } from \"@ai-sdk/provider\";\nfunction wrapGatewayError(error) {\n if (GatewayAuthenticationError.isInstance(error) || GatewayModelNotFoundError.isInstance(error)) {\n return new AISDKError19({\n name: \"GatewayError\",\n message: \"Vercel AI Gateway access failed. If you want to use AI SDK providers directly, use the providers, e.g. @ai-sdk/openai, or register a different global default provider.\",\n cause: error\n });\n }\n return error;\n}\n\n// src/telemetry/assemble-operation-name.ts\nfunction assembleOperationName({\n operationId,\n telemetry\n}) {\n return {\n // standardized operation and resource name:\n \"operation.name\": `${operationId}${(telemetry == null ? void 0 : telemetry.functionId) != null ? ` ${telemetry.functionId}` : \"\"}`,\n \"resource.name\": telemetry == null ? void 0 : telemetry.functionId,\n // detailed, AI SDK specific data:\n \"ai.operationId\": operationId,\n \"ai.telemetry.functionId\": telemetry == null ? void 0 : telemetry.functionId\n };\n}\n\n// src/telemetry/get-base-telemetry-attributes.ts\nfunction getBaseTelemetryAttributes({\n model,\n settings,\n telemetry,\n headers\n}) {\n var _a16;\n return {\n \"ai.model.provider\": model.provider,\n \"ai.model.id\": model.modelId,\n // settings:\n ...Object.entries(settings).reduce((attributes, [key, value]) => {\n attributes[`ai.settings.${key}`] = value;\n return attributes;\n }, {}),\n // add metadata as attributes:\n ...Object.entries((_a16 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a16 : {}).reduce(\n (attributes, [key, value]) => {\n attributes[`ai.telemetry.metadata.${key}`] = value;\n return attributes;\n },\n {}\n ),\n // request headers\n ...Object.entries(headers != null ? headers : {}).reduce((attributes, [key, value]) => {\n if (value !== void 0) {\n attributes[`ai.request.headers.${key}`] = value;\n }\n return attributes;\n }, {})\n };\n}\n\n// src/telemetry/get-tracer.ts\nimport { trace } from \"@opentelemetry/api\";\n\n// src/telemetry/noop-tracer.ts\nvar noopTracer = {\n startSpan() {\n return noopSpan;\n },\n startActiveSpan(name16, arg1, arg2, arg3) {\n if (typeof arg1 === \"function\") {\n return arg1(noopSpan);\n }\n if (typeof arg2 === \"function\") {\n return arg2(noopSpan);\n }\n if (typeof arg3 === \"function\") {\n return arg3(noopSpan);\n }\n }\n};\nvar noopSpan = {\n spanContext() {\n return noopSpanContext;\n },\n setAttribute() {\n return this;\n },\n setAttributes() {\n return this;\n },\n addEvent() {\n return this;\n },\n addLink() {\n return this;\n },\n addLinks() {\n return this;\n },\n setStatus() {\n return this;\n },\n updateName() {\n return this;\n },\n end() {\n return this;\n },\n isRecording() {\n return false;\n },\n recordException() {\n return this;\n }\n};\nvar noopSpanContext = {\n traceId: \"\",\n spanId: \"\",\n traceFlags: 0\n};\n\n// src/telemetry/get-tracer.ts\nfunction getTracer({\n isEnabled = false,\n tracer\n} = {}) {\n if (!isEnabled) {\n return noopTracer;\n }\n if (tracer) {\n return tracer;\n }\n return trace.getTracer(\"ai\");\n}\n\n// src/telemetry/record-span.ts\nimport { SpanStatusCode } from \"@opentelemetry/api\";\nfunction recordSpan({\n name: name16,\n tracer,\n attributes,\n fn,\n endWhenDone = true\n}) {\n return tracer.startActiveSpan(name16, { attributes }, async (span) => {\n try {\n const result = await fn(span);\n if (endWhenDone) {\n span.end();\n }\n return result;\n } catch (error) {\n try {\n recordErrorOnSpan(span, error);\n } finally {\n span.end();\n }\n throw error;\n }\n });\n}\nfunction recordErrorOnSpan(span, error) {\n if (error instanceof Error) {\n span.recordException({\n name: error.name,\n message: error.message,\n stack: error.stack\n });\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message\n });\n } else {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n}\n\n// src/telemetry/select-telemetry-attributes.ts\nfunction selectTelemetryAttributes({\n telemetry,\n attributes\n}) {\n if ((telemetry == null ? void 0 : telemetry.isEnabled) !== true) {\n return {};\n }\n return Object.entries(attributes).reduce((attributes2, [key, value]) => {\n if (value == null) {\n return attributes2;\n }\n if (typeof value === \"object\" && \"input\" in value && typeof value.input === \"function\") {\n if ((telemetry == null ? void 0 : telemetry.recordInputs) === false) {\n return attributes2;\n }\n const result = value.input();\n return result == null ? attributes2 : { ...attributes2, [key]: result };\n }\n if (typeof value === \"object\" && \"output\" in value && typeof value.output === \"function\") {\n if ((telemetry == null ? void 0 : telemetry.recordOutputs) === false) {\n return attributes2;\n }\n const result = value.output();\n return result == null ? attributes2 : { ...attributes2, [key]: result };\n }\n return { ...attributes2, [key]: value };\n }, {});\n}\n\n// src/telemetry/stringify-for-telemetry.ts\nfunction stringifyForTelemetry(prompt) {\n return JSON.stringify(\n prompt.map((message) => ({\n ...message,\n content: typeof message.content === \"string\" ? message.content : message.content.map(\n (part) => part.type === \"file\" ? {\n ...part,\n data: part.data instanceof Uint8Array ? convertDataContentToBase64String(part.data) : part.data\n } : part\n )\n }))\n );\n}\n\n// src/types/usage.ts\nfunction addLanguageModelUsage(usage1, usage2) {\n return {\n inputTokens: addTokenCounts(usage1.inputTokens, usage2.inputTokens),\n outputTokens: addTokenCounts(usage1.outputTokens, usage2.outputTokens),\n totalTokens: addTokenCounts(usage1.totalTokens, usage2.totalTokens),\n reasoningTokens: addTokenCounts(\n usage1.reasoningTokens,\n usage2.reasoningTokens\n ),\n cachedInputTokens: addTokenCounts(\n usage1.cachedInputTokens,\n usage2.cachedInputTokens\n )\n };\n}\nfunction addTokenCounts(tokenCount1, tokenCount2) {\n return tokenCount1 == null && tokenCount2 == null ? void 0 : (tokenCount1 != null ? tokenCount1 : 0) + (tokenCount2 != null ? tokenCount2 : 0);\n}\n\n// src/util/as-array.ts\nfunction asArray(value) {\n return value === void 0 ? [] : Array.isArray(value) ? value : [value];\n}\n\n// src/util/retry-with-exponential-backoff.ts\nimport { APICallError as APICallError2 } from \"@ai-sdk/provider\";\nimport { delay, getErrorMessage as getErrorMessage3, isAbortError } from \"@ai-sdk/provider-utils\";\nfunction getRetryDelayInMs({\n error,\n exponentialBackoffDelay\n}) {\n const headers = error.responseHeaders;\n if (!headers)\n return exponentialBackoffDelay;\n let ms;\n const retryAfterMs = headers[\"retry-after-ms\"];\n if (retryAfterMs) {\n const timeoutMs = parseFloat(retryAfterMs);\n if (!Number.isNaN(timeoutMs)) {\n ms = timeoutMs;\n }\n }\n const retryAfter = headers[\"retry-after\"];\n if (retryAfter && ms === void 0) {\n const timeoutSeconds = parseFloat(retryAfter);\n if (!Number.isNaN(timeoutSeconds)) {\n ms = timeoutSeconds * 1e3;\n } else {\n ms = Date.parse(retryAfter) - Date.now();\n }\n }\n if (ms != null && !Number.isNaN(ms) && 0 <= ms && (ms < 60 * 1e3 || ms < exponentialBackoffDelay)) {\n return ms;\n }\n return exponentialBackoffDelay;\n}\nvar retryWithExponentialBackoffRespectingRetryHeaders = ({\n maxRetries = 2,\n initialDelayInMs = 2e3,\n backoffFactor = 2,\n abortSignal\n} = {}) => async (f) => _retryWithExponentialBackoff(f, {\n maxRetries,\n delayInMs: initialDelayInMs,\n backoffFactor,\n abortSignal\n});\nasync function _retryWithExponentialBackoff(f, {\n maxRetries,\n delayInMs,\n backoffFactor,\n abortSignal\n}, errors = []) {\n try {\n return await f();\n } catch (error) {\n if (isAbortError(error)) {\n throw error;\n }\n if (maxRetries === 0) {\n throw error;\n }\n const errorMessage = getErrorMessage3(error);\n const newErrors = [...errors, error];\n const tryNumber = newErrors.length;\n if (tryNumber > maxRetries) {\n throw new RetryError({\n message: `Failed after ${tryNumber} attempts. Last error: ${errorMessage}`,\n reason: \"maxRetriesExceeded\",\n errors: newErrors\n });\n }\n if (error instanceof Error && APICallError2.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {\n await delay(\n getRetryDelayInMs({\n error,\n exponentialBackoffDelay: delayInMs\n }),\n { abortSignal }\n );\n return _retryWithExponentialBackoff(\n f,\n {\n maxRetries,\n delayInMs: backoffFactor * delayInMs,\n backoffFactor,\n abortSignal\n },\n newErrors\n );\n }\n if (tryNumber === 1) {\n throw error;\n }\n throw new RetryError({\n message: `Failed after ${tryNumber} attempts with non-retryable error: '${errorMessage}'`,\n reason: \"errorNotRetryable\",\n errors: newErrors\n });\n }\n}\n\n// src/util/prepare-retries.ts\nfunction prepareRetries({\n maxRetries,\n abortSignal\n}) {\n if (maxRetries != null) {\n if (!Number.isInteger(maxRetries)) {\n throw new InvalidArgumentError({\n parameter: \"maxRetries\",\n value: maxRetries,\n message: \"maxRetries must be an integer\"\n });\n }\n if (maxRetries < 0) {\n throw new InvalidArgumentError({\n parameter: \"maxRetries\",\n value: maxRetries,\n message: \"maxRetries must be >= 0\"\n });\n }\n }\n const maxRetriesResult = maxRetries != null ? maxRetries : 2;\n return {\n maxRetries: maxRetriesResult,\n retry: retryWithExponentialBackoffRespectingRetryHeaders({\n maxRetries: maxRetriesResult,\n abortSignal\n })\n };\n}\n\n// src/generate-text/extract-text-content.ts\nfunction extractTextContent(content) {\n const parts = content.filter(\n (content2) => content2.type === \"text\"\n );\n if (parts.length === 0) {\n return void 0;\n }\n return parts.map((content2) => content2.text).join(\"\");\n}\n\n// src/generate-text/generated-file.ts\nimport {\n convertBase64ToUint8Array as convertBase64ToUint8Array3,\n convertUint8ArrayToBase64 as convertUint8ArrayToBase642\n} from \"@ai-sdk/provider-utils\";\nvar DefaultGeneratedFile = class {\n constructor({\n data,\n mediaType\n }) {\n const isUint8Array = data instanceof Uint8Array;\n this.base64Data = isUint8Array ? void 0 : data;\n this.uint8ArrayData = isUint8Array ? data : void 0;\n this.mediaType = mediaType;\n }\n // lazy conversion with caching to avoid unnecessary conversion overhead:\n get base64() {\n if (this.base64Data == null) {\n this.base64Data = convertUint8ArrayToBase642(this.uint8ArrayData);\n }\n return this.base64Data;\n }\n // lazy conversion with caching to avoid unnecessary conversion overhead:\n get uint8Array() {\n if (this.uint8ArrayData == null) {\n this.uint8ArrayData = convertBase64ToUint8Array3(this.base64Data);\n }\n return this.uint8ArrayData;\n }\n};\nvar DefaultGeneratedFileWithType = class extends DefaultGeneratedFile {\n constructor(options) {\n super(options);\n this.type = \"file\";\n }\n};\n\n// src/generate-text/parse-tool-call.ts\nimport {\n asSchema as asSchema2,\n safeParseJSON,\n safeValidateTypes as safeValidateTypes2\n} from \"@ai-sdk/provider-utils\";\nasync function parseToolCall({\n toolCall,\n tools,\n repairToolCall,\n system,\n messages\n}) {\n try {\n if (tools == null) {\n throw new NoSuchToolError({ toolName: toolCall.toolName });\n }\n try {\n return await doParseToolCall({ toolCall, tools });\n } catch (error) {\n if (repairToolCall == null || !(NoSuchToolError.isInstance(error) || InvalidToolInputError.isInstance(error))) {\n throw error;\n }\n let repairedToolCall = null;\n try {\n repairedToolCall = await repairToolCall({\n toolCall,\n tools,\n inputSchema: ({ toolName }) => {\n const { inputSchema } = tools[toolName];\n return asSchema2(inputSchema).jsonSchema;\n },\n system,\n messages,\n error\n });\n } catch (repairError) {\n throw new ToolCallRepairError({\n cause: repairError,\n originalError: error\n });\n }\n if (repairedToolCall == null) {\n throw error;\n }\n return await doParseToolCall({ toolCall: repairedToolCall, tools });\n }\n } catch (error) {\n const parsedInput = await safeParseJSON({ text: toolCall.input });\n const input = parsedInput.success ? parsedInput.value : toolCall.input;\n return {\n type: \"tool-call\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input,\n dynamic: true,\n invalid: true,\n error\n };\n }\n}\nasync function doParseToolCall({\n toolCall,\n tools\n}) {\n const toolName = toolCall.toolName;\n const tool2 = tools[toolName];\n if (tool2 == null) {\n throw new NoSuchToolError({\n toolName: toolCall.toolName,\n availableTools: Object.keys(tools)\n });\n }\n const schema = asSchema2(tool2.inputSchema);\n const parseResult = toolCall.input.trim() === \"\" ? await safeValidateTypes2({ value: {}, schema }) : await safeParseJSON({ text: toolCall.input, schema });\n if (parseResult.success === false) {\n throw new InvalidToolInputError({\n toolName,\n toolInput: toolCall.input,\n cause: parseResult.error\n });\n }\n return tool2.type === \"dynamic\" ? {\n type: \"tool-call\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input: parseResult.value,\n providerExecuted: toolCall.providerExecuted,\n providerMetadata: toolCall.providerMetadata,\n dynamic: true\n } : {\n type: \"tool-call\",\n toolCallId: toolCall.toolCallId,\n toolName,\n input: parseResult.value,\n providerExecuted: toolCall.providerExecuted,\n providerMetadata: toolCall.providerMetadata\n };\n}\n\n// src/generate-text/step-result.ts\nvar DefaultStepResult = class {\n constructor({\n content,\n finishReason,\n usage,\n warnings,\n request,\n response,\n providerMetadata\n }) {\n this.content = content;\n this.finishReason = finishReason;\n this.usage = usage;\n this.warnings = warnings;\n this.request = request;\n this.response = response;\n this.providerMetadata = providerMetadata;\n }\n get text() {\n return this.content.filter((part) => part.type === \"text\").map((part) => part.text).join(\"\");\n }\n get reasoning() {\n return this.content.filter((part) => part.type === \"reasoning\");\n }\n get reasoningText() {\n return this.reasoning.length === 0 ? void 0 : this.reasoning.map((part) => part.text).join(\"\");\n }\n get files() {\n return this.content.filter((part) => part.type === \"file\").map((part) => part.file);\n }\n get sources() {\n return this.content.filter((part) => part.type === \"source\");\n }\n get toolCalls() {\n return this.content.filter((part) => part.type === \"tool-call\");\n }\n get staticToolCalls() {\n return this.toolCalls.filter(\n (toolCall) => toolCall.dynamic !== true\n );\n }\n get dynamicToolCalls() {\n return this.toolCalls.filter(\n (toolCall) => toolCall.dynamic === true\n );\n }\n get toolResults() {\n return this.content.filter((part) => part.type === \"tool-result\");\n }\n get staticToolResults() {\n return this.toolResults.filter(\n (toolResult) => toolResult.dynamic !== true\n );\n }\n get dynamicToolResults() {\n return this.toolResults.filter(\n (toolResult) => toolResult.dynamic === true\n );\n }\n};\n\n// src/generate-text/stop-condition.ts\nfunction stepCountIs(stepCount) {\n return ({ steps }) => steps.length === stepCount;\n}\nfunction hasToolCall(toolName) {\n return ({ steps }) => {\n var _a16, _b, _c;\n return (_c = (_b = (_a16 = steps[steps.length - 1]) == null ? void 0 : _a16.toolCalls) == null ? void 0 : _b.some(\n (toolCall) => toolCall.toolName === toolName\n )) != null ? _c : false;\n };\n}\nasync function isStopConditionMet({\n stopConditions,\n steps\n}) {\n return (await Promise.all(stopConditions.map((condition) => condition({ steps })))).some((result) => result);\n}\n\n// src/prompt/create-tool-model-output.ts\nimport {\n getErrorMessage as getErrorMessage4\n} from \"@ai-sdk/provider\";\nfunction createToolModelOutput({\n output,\n tool: tool2,\n errorMode\n}) {\n if (errorMode === \"text\") {\n return { type: \"error-text\", value: getErrorMessage4(output) };\n } else if (errorMode === \"json\") {\n return { type: \"error-json\", value: toJSONValue(output) };\n }\n if (tool2 == null ? void 0 : tool2.toModelOutput) {\n return tool2.toModelOutput(output);\n }\n return typeof output === \"string\" ? { type: \"text\", value: output } : { type: \"json\", value: toJSONValue(output) };\n}\nfunction toJSONValue(value) {\n return value === void 0 ? null : value;\n}\n\n// src/generate-text/to-response-messages.ts\nfunction toResponseMessages({\n content: inputContent,\n tools\n}) {\n const responseMessages = [];\n const content = inputContent.filter((part) => part.type !== \"source\").filter(\n (part) => (part.type !== \"tool-result\" || part.providerExecuted) && (part.type !== \"tool-error\" || part.providerExecuted)\n ).filter((part) => part.type !== \"text\" || part.text.length > 0).map((part) => {\n switch (part.type) {\n case \"text\":\n return {\n type: \"text\",\n text: part.text,\n providerOptions: part.providerMetadata\n };\n case \"reasoning\":\n return {\n type: \"reasoning\",\n text: part.text,\n providerOptions: part.providerMetadata\n };\n case \"file\":\n return {\n type: \"file\",\n data: part.file.base64,\n mediaType: part.file.mediaType,\n providerOptions: part.providerMetadata\n };\n case \"tool-call\":\n return {\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n providerExecuted: part.providerExecuted,\n providerOptions: part.providerMetadata\n };\n case \"tool-result\":\n return {\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n output: createToolModelOutput({\n tool: tools == null ? void 0 : tools[part.toolName],\n output: part.output,\n errorMode: \"none\"\n }),\n providerExecuted: true,\n providerOptions: part.providerMetadata\n };\n case \"tool-error\":\n return {\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n output: createToolModelOutput({\n tool: tools == null ? void 0 : tools[part.toolName],\n output: part.error,\n errorMode: \"json\"\n }),\n providerOptions: part.providerMetadata\n };\n }\n });\n if (content.length > 0) {\n responseMessages.push({\n role: \"assistant\",\n content\n });\n }\n const toolResultContent = inputContent.filter((part) => part.type === \"tool-result\" || part.type === \"tool-error\").filter((part) => !part.providerExecuted).map((toolResult) => ({\n type: \"tool-result\",\n toolCallId: toolResult.toolCallId,\n toolName: toolResult.toolName,\n output: createToolModelOutput({\n tool: tools == null ? void 0 : tools[toolResult.toolName],\n output: toolResult.type === \"tool-result\" ? toolResult.output : toolResult.error,\n errorMode: toolResult.type === \"tool-error\" ? \"text\" : \"none\"\n })\n }));\n if (toolResultContent.length > 0) {\n responseMessages.push({\n role: \"tool\",\n content: toolResultContent\n });\n }\n return responseMessages;\n}\n\n// src/generate-text/generate-text.ts\nvar originalGenerateId = createIdGenerator({\n prefix: \"aitxt\",\n size: 24\n});\nasync function generateText({\n model: modelArg,\n tools,\n toolChoice,\n system,\n prompt,\n messages,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n stopWhen = stepCountIs(1),\n experimental_output: output,\n experimental_telemetry: telemetry,\n providerOptions,\n experimental_activeTools,\n activeTools = experimental_activeTools,\n experimental_prepareStep,\n prepareStep = experimental_prepareStep,\n experimental_repairToolCall: repairToolCall,\n experimental_download: download2,\n experimental_context,\n _internal: {\n generateId: generateId3 = originalGenerateId,\n currentDate = () => /* @__PURE__ */ new Date()\n } = {},\n onStepFinish,\n ...settings\n}) {\n const model = resolveLanguageModel(modelArg);\n const stopConditions = asArray(stopWhen);\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal\n });\n const callSettings = prepareCallSettings(settings);\n const headersWithUserAgent = withUserAgentSuffix2(\n headers != null ? headers : {},\n `ai/${VERSION}`\n );\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers: headersWithUserAgent,\n settings: { ...callSettings, maxRetries }\n });\n const initialPrompt = await standardizePrompt({\n system,\n prompt,\n messages\n });\n const tracer = getTracer(telemetry);\n try {\n return await recordSpan({\n name: \"ai.generateText\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.generateText\",\n telemetry\n }),\n ...baseTelemetryAttributes,\n // model:\n \"ai.model.provider\": model.provider,\n \"ai.model.id\": model.modelId,\n // specific settings that only make sense on the outer level:\n \"ai.prompt\": {\n input: () => JSON.stringify({ system, prompt, messages })\n }\n }\n }),\n tracer,\n fn: async (span) => {\n var _a16, _b, _c, _d, _e, _f, _g;\n const callSettings2 = prepareCallSettings(settings);\n let currentModelResponse;\n let clientToolCalls = [];\n let clientToolOutputs = [];\n const responseMessages = [];\n const steps = [];\n do {\n const stepInputMessages = [\n ...initialPrompt.messages,\n ...responseMessages\n ];\n const prepareStepResult = await (prepareStep == null ? void 0 : prepareStep({\n model,\n steps,\n stepNumber: steps.length,\n messages: stepInputMessages\n }));\n const stepModel = resolveLanguageModel(\n (_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model\n );\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: {\n system: (_b = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b : initialPrompt.system,\n messages: (_c = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _c : stepInputMessages\n },\n supportedUrls: await stepModel.supportedUrls,\n download: download2\n });\n const { toolChoice: stepToolChoice, tools: stepTools } = prepareToolsAndToolChoice({\n tools,\n toolChoice: (_d = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _d : toolChoice,\n activeTools: (_e = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _e : activeTools\n });\n currentModelResponse = await retry(\n () => {\n var _a17;\n return recordSpan({\n name: \"ai.generateText.doGenerate\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.generateText.doGenerate\",\n telemetry\n }),\n ...baseTelemetryAttributes,\n // model:\n \"ai.model.provider\": stepModel.provider,\n \"ai.model.id\": stepModel.modelId,\n // prompt:\n \"ai.prompt.messages\": {\n input: () => stringifyForTelemetry(promptMessages)\n },\n \"ai.prompt.tools\": {\n // convert the language model level tools:\n input: () => stepTools == null ? void 0 : stepTools.map((tool2) => JSON.stringify(tool2))\n },\n \"ai.prompt.toolChoice\": {\n input: () => stepToolChoice != null ? JSON.stringify(stepToolChoice) : void 0\n },\n // standardized gen-ai llm span attributes:\n \"gen_ai.system\": stepModel.provider,\n \"gen_ai.request.model\": stepModel.modelId,\n \"gen_ai.request.frequency_penalty\": settings.frequencyPenalty,\n \"gen_ai.request.max_tokens\": settings.maxOutputTokens,\n \"gen_ai.request.presence_penalty\": settings.presencePenalty,\n \"gen_ai.request.stop_sequences\": settings.stopSequences,\n \"gen_ai.request.temperature\": (_a17 = settings.temperature) != null ? _a17 : void 0,\n \"gen_ai.request.top_k\": settings.topK,\n \"gen_ai.request.top_p\": settings.topP\n }\n }),\n tracer,\n fn: async (span2) => {\n var _a18, _b2, _c2, _d2, _e2, _f2, _g2, _h;\n const result = await stepModel.doGenerate({\n ...callSettings2,\n tools: stepTools,\n toolChoice: stepToolChoice,\n responseFormat: output == null ? void 0 : output.responseFormat,\n prompt: promptMessages,\n providerOptions,\n abortSignal,\n headers: headersWithUserAgent\n });\n const responseData = {\n id: (_b2 = (_a18 = result.response) == null ? void 0 : _a18.id) != null ? _b2 : generateId3(),\n timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),\n modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,\n headers: (_g2 = result.response) == null ? void 0 : _g2.headers,\n body: (_h = result.response) == null ? void 0 : _h.body\n };\n span2.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.response.finishReason\": result.finishReason,\n \"ai.response.text\": {\n output: () => extractTextContent(result.content)\n },\n \"ai.response.toolCalls\": {\n output: () => {\n const toolCalls = asToolCalls(result.content);\n return toolCalls == null ? void 0 : JSON.stringify(toolCalls);\n }\n },\n \"ai.response.id\": responseData.id,\n \"ai.response.model\": responseData.modelId,\n \"ai.response.timestamp\": responseData.timestamp.toISOString(),\n \"ai.response.providerMetadata\": JSON.stringify(\n result.providerMetadata\n ),\n // TODO rename telemetry attributes to inputTokens and outputTokens\n \"ai.usage.promptTokens\": result.usage.inputTokens,\n \"ai.usage.completionTokens\": result.usage.outputTokens,\n // standardized gen-ai llm span attributes:\n \"gen_ai.response.finish_reasons\": [result.finishReason],\n \"gen_ai.response.id\": responseData.id,\n \"gen_ai.response.model\": responseData.modelId,\n \"gen_ai.usage.input_tokens\": result.usage.inputTokens,\n \"gen_ai.usage.output_tokens\": result.usage.outputTokens\n }\n })\n );\n return { ...result, response: responseData };\n }\n });\n }\n );\n const stepToolCalls = await Promise.all(\n currentModelResponse.content.filter(\n (part) => part.type === \"tool-call\"\n ).map(\n (toolCall) => parseToolCall({\n toolCall,\n tools,\n repairToolCall,\n system,\n messages: stepInputMessages\n })\n )\n );\n for (const toolCall of stepToolCalls) {\n if (toolCall.invalid) {\n continue;\n }\n const tool2 = tools[toolCall.toolName];\n if ((tool2 == null ? void 0 : tool2.onInputAvailable) != null) {\n await tool2.onInputAvailable({\n input: toolCall.input,\n toolCallId: toolCall.toolCallId,\n messages: stepInputMessages,\n abortSignal,\n experimental_context\n });\n }\n }\n const invalidToolCalls = stepToolCalls.filter(\n (toolCall) => toolCall.invalid && toolCall.dynamic\n );\n clientToolOutputs = [];\n for (const toolCall of invalidToolCalls) {\n clientToolOutputs.push({\n type: \"tool-error\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input: toolCall.input,\n error: getErrorMessage5(toolCall.error),\n dynamic: true\n });\n }\n clientToolCalls = stepToolCalls.filter(\n (toolCall) => !toolCall.providerExecuted\n );\n if (tools != null) {\n clientToolOutputs.push(\n ...await executeTools({\n toolCalls: clientToolCalls.filter(\n (toolCall) => !toolCall.invalid\n ),\n tools,\n tracer,\n telemetry,\n messages: stepInputMessages,\n abortSignal,\n experimental_context\n })\n );\n }\n const stepContent = asContent({\n content: currentModelResponse.content,\n toolCalls: stepToolCalls,\n toolOutputs: clientToolOutputs\n });\n responseMessages.push(\n ...toResponseMessages({\n content: stepContent,\n tools\n })\n );\n const currentStepResult = new DefaultStepResult({\n content: stepContent,\n finishReason: currentModelResponse.finishReason,\n usage: currentModelResponse.usage,\n warnings: currentModelResponse.warnings,\n providerMetadata: currentModelResponse.providerMetadata,\n request: (_f = currentModelResponse.request) != null ? _f : {},\n response: {\n ...currentModelResponse.response,\n // deep clone msgs to avoid mutating past messages in multi-step:\n messages: structuredClone(responseMessages)\n }\n });\n logWarnings((_g = currentModelResponse.warnings) != null ? _g : []);\n steps.push(currentStepResult);\n await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));\n } while (\n // there are tool calls:\n clientToolCalls.length > 0 && // all current tool calls have outputs (incl. execution errors):\n clientToolOutputs.length === clientToolCalls.length && // continue until a stop condition is met:\n !await isStopConditionMet({ stopConditions, steps })\n );\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.response.finishReason\": currentModelResponse.finishReason,\n \"ai.response.text\": {\n output: () => extractTextContent(currentModelResponse.content)\n },\n \"ai.response.toolCalls\": {\n output: () => {\n const toolCalls = asToolCalls(currentModelResponse.content);\n return toolCalls == null ? void 0 : JSON.stringify(toolCalls);\n }\n },\n \"ai.response.providerMetadata\": JSON.stringify(\n currentModelResponse.providerMetadata\n ),\n // TODO rename telemetry attributes to inputTokens and outputTokens\n \"ai.usage.promptTokens\": currentModelResponse.usage.inputTokens,\n \"ai.usage.completionTokens\": currentModelResponse.usage.outputTokens\n }\n })\n );\n const lastStep = steps[steps.length - 1];\n let resolvedOutput;\n if (lastStep.finishReason === \"stop\") {\n resolvedOutput = await (output == null ? void 0 : output.parseOutput(\n { text: lastStep.text },\n {\n response: lastStep.response,\n usage: lastStep.usage,\n finishReason: lastStep.finishReason\n }\n ));\n }\n return new DefaultGenerateTextResult({\n steps,\n resolvedOutput\n });\n }\n });\n } catch (error) {\n throw wrapGatewayError(error);\n }\n}\nasync function executeTools({\n toolCalls,\n tools,\n tracer,\n telemetry,\n messages,\n abortSignal,\n experimental_context\n}) {\n const toolOutputs = await Promise.all(\n toolCalls.map(async ({ toolCallId, toolName, input }) => {\n const tool2 = tools[toolName];\n if ((tool2 == null ? void 0 : tool2.execute) == null) {\n return void 0;\n }\n return recordSpan({\n name: \"ai.toolCall\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.toolCall\",\n telemetry\n }),\n \"ai.toolCall.name\": toolName,\n \"ai.toolCall.id\": toolCallId,\n \"ai.toolCall.args\": {\n output: () => JSON.stringify(input)\n }\n }\n }),\n tracer,\n fn: async (span) => {\n try {\n const stream = executeTool({\n execute: tool2.execute.bind(tool2),\n input,\n options: {\n toolCallId,\n messages,\n abortSignal,\n experimental_context\n }\n });\n let output;\n for await (const part of stream) {\n if (part.type === \"final\") {\n output = part.output;\n }\n }\n try {\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.toolCall.result\": {\n output: () => JSON.stringify(output)\n }\n }\n })\n );\n } catch (ignored) {\n }\n return {\n type: \"tool-result\",\n toolCallId,\n toolName,\n input,\n output,\n dynamic: tool2.type === \"dynamic\"\n };\n } catch (error) {\n recordErrorOnSpan(span, error);\n return {\n type: \"tool-error\",\n toolCallId,\n toolName,\n input,\n error,\n dynamic: tool2.type === \"dynamic\"\n };\n }\n }\n });\n })\n );\n return toolOutputs.filter(\n (output) => output != null\n );\n}\nvar DefaultGenerateTextResult = class {\n constructor(options) {\n this.steps = options.steps;\n this.resolvedOutput = options.resolvedOutput;\n }\n get finalStep() {\n return this.steps[this.steps.length - 1];\n }\n get content() {\n return this.finalStep.content;\n }\n get text() {\n return this.finalStep.text;\n }\n get files() {\n return this.finalStep.files;\n }\n get reasoningText() {\n return this.finalStep.reasoningText;\n }\n get reasoning() {\n return this.finalStep.reasoning;\n }\n get toolCalls() {\n return this.finalStep.toolCalls;\n }\n get staticToolCalls() {\n return this.finalStep.staticToolCalls;\n }\n get dynamicToolCalls() {\n return this.finalStep.dynamicToolCalls;\n }\n get toolResults() {\n return this.finalStep.toolResults;\n }\n get staticToolResults() {\n return this.finalStep.staticToolResults;\n }\n get dynamicToolResults() {\n return this.finalStep.dynamicToolResults;\n }\n get sources() {\n return this.finalStep.sources;\n }\n get finishReason() {\n return this.finalStep.finishReason;\n }\n get warnings() {\n return this.finalStep.warnings;\n }\n get providerMetadata() {\n return this.finalStep.providerMetadata;\n }\n get response() {\n return this.finalStep.response;\n }\n get request() {\n return this.finalStep.request;\n }\n get usage() {\n return this.finalStep.usage;\n }\n get totalUsage() {\n return this.steps.reduce(\n (totalUsage, step) => {\n return addLanguageModelUsage(totalUsage, step.usage);\n },\n {\n inputTokens: void 0,\n outputTokens: void 0,\n totalTokens: void 0,\n reasoningTokens: void 0,\n cachedInputTokens: void 0\n }\n );\n }\n get experimental_output() {\n if (this.resolvedOutput == null) {\n throw new NoOutputSpecifiedError();\n }\n return this.resolvedOutput;\n }\n};\nfunction asToolCalls(content) {\n const parts = content.filter(\n (part) => part.type === \"tool-call\"\n );\n if (parts.length === 0) {\n return void 0;\n }\n return parts.map((toolCall) => ({\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input: toolCall.input\n }));\n}\nfunction asContent({\n content,\n toolCalls,\n toolOutputs\n}) {\n return [\n ...content.map((part) => {\n switch (part.type) {\n case \"text\":\n case \"reasoning\":\n case \"source\":\n return part;\n case \"file\": {\n return {\n type: \"file\",\n file: new DefaultGeneratedFile(part)\n };\n }\n case \"tool-call\": {\n return toolCalls.find(\n (toolCall) => toolCall.toolCallId === part.toolCallId\n );\n }\n case \"tool-result\": {\n const toolCall = toolCalls.find(\n (toolCall2) => toolCall2.toolCallId === part.toolCallId\n );\n if (toolCall == null) {\n throw new Error(`Tool call ${part.toolCallId} not found.`);\n }\n if (part.isError) {\n return {\n type: \"tool-error\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: toolCall.input,\n error: part.result,\n providerExecuted: true,\n dynamic: toolCall.dynamic\n };\n }\n return {\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: toolCall.input,\n output: part.result,\n providerExecuted: true,\n dynamic: toolCall.dynamic\n };\n }\n }\n }),\n ...toolOutputs\n ];\n}\n\n// src/generate-text/stream-text.ts\nimport {\n getErrorMessage as getErrorMessage7\n} from \"@ai-sdk/provider\";\nimport {\n createIdGenerator as createIdGenerator2,\n isAbortError as isAbortError2\n} from \"@ai-sdk/provider-utils\";\n\n// src/util/prepare-headers.ts\nfunction prepareHeaders(headers, defaultHeaders) {\n const responseHeaders = new Headers(headers != null ? headers : {});\n for (const [key, value] of Object.entries(defaultHeaders)) {\n if (!responseHeaders.has(key)) {\n responseHeaders.set(key, value);\n }\n }\n return responseHeaders;\n}\n\n// src/text-stream/create-text-stream-response.ts\nfunction createTextStreamResponse({\n status,\n statusText,\n headers,\n textStream\n}) {\n return new Response(textStream.pipeThrough(new TextEncoderStream()), {\n status: status != null ? status : 200,\n statusText,\n headers: prepareHeaders(headers, {\n \"content-type\": \"text/plain; charset=utf-8\"\n })\n });\n}\n\n// src/util/write-to-server-response.ts\nfunction writeToServerResponse({\n response,\n status,\n statusText,\n headers,\n stream\n}) {\n response.writeHead(status != null ? status : 200, statusText, headers);\n const reader = stream.getReader();\n const read = async () => {\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n const canContinue = response.write(value);\n if (!canContinue) {\n await new Promise((resolve2) => {\n response.once(\"drain\", resolve2);\n });\n }\n }\n } catch (error) {\n throw error;\n } finally {\n response.end();\n }\n };\n read();\n}\n\n// src/text-stream/pipe-text-stream-to-response.ts\nfunction pipeTextStreamToResponse({\n response,\n status,\n statusText,\n headers,\n textStream\n}) {\n writeToServerResponse({\n response,\n status,\n statusText,\n headers: Object.fromEntries(\n prepareHeaders(headers, {\n \"content-type\": \"text/plain; charset=utf-8\"\n }).entries()\n ),\n stream: textStream.pipeThrough(new TextEncoderStream())\n });\n}\n\n// src/ui-message-stream/json-to-sse-transform-stream.ts\nvar JsonToSseTransformStream = class extends TransformStream {\n constructor() {\n super({\n transform(part, controller) {\n controller.enqueue(`data: ${JSON.stringify(part)}\n\n`);\n },\n flush(controller) {\n controller.enqueue(\"data: [DONE]\\n\\n\");\n }\n });\n }\n};\n\n// src/ui-message-stream/ui-message-stream-headers.ts\nvar UI_MESSAGE_STREAM_HEADERS = {\n \"content-type\": \"text/event-stream\",\n \"cache-control\": \"no-cache\",\n connection: \"keep-alive\",\n \"x-vercel-ai-ui-message-stream\": \"v1\",\n \"x-accel-buffering\": \"no\"\n // disable nginx buffering\n};\n\n// src/ui-message-stream/create-ui-message-stream-response.ts\nfunction createUIMessageStreamResponse({\n status,\n statusText,\n headers,\n stream,\n consumeSseStream\n}) {\n let sseStream = stream.pipeThrough(new JsonToSseTransformStream());\n if (consumeSseStream) {\n const [stream1, stream2] = sseStream.tee();\n sseStream = stream1;\n consumeSseStream({ stream: stream2 });\n }\n return new Response(sseStream.pipeThrough(new TextEncoderStream()), {\n status,\n statusText,\n headers: prepareHeaders(headers, UI_MESSAGE_STREAM_HEADERS)\n });\n}\n\n// src/ui-message-stream/get-response-ui-message-id.ts\nfunction getResponseUIMessageId({\n originalMessages,\n responseMessageId\n}) {\n if (originalMessages == null) {\n return void 0;\n }\n const lastMessage = originalMessages[originalMessages.length - 1];\n return (lastMessage == null ? void 0 : lastMessage.role) === \"assistant\" ? lastMessage.id : typeof responseMessageId === \"function\" ? responseMessageId() : responseMessageId;\n}\n\n// src/ui/process-ui-message-stream.ts\nimport {\n validateTypes\n} from \"@ai-sdk/provider-utils\";\n\n// src/ui-message-stream/ui-message-chunks.ts\nimport { z as z7 } from \"zod/v4\";\nimport { lazyValidator, zodSchema } from \"@ai-sdk/provider-utils\";\nvar uiMessageChunkSchema = lazyValidator(\n () => zodSchema(\n z7.union([\n z7.strictObject({\n type: z7.literal(\"text-start\"),\n id: z7.string(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z7.strictObject({\n type: z7.literal(\"text-delta\"),\n id: z7.string(),\n delta: z7.string(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z7.strictObject({\n type: z7.literal(\"text-end\"),\n id: z7.string(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z7.strictObject({\n type: z7.literal(\"error\"),\n errorText: z7.string()\n }),\n z7.strictObject({\n type: z7.literal(\"tool-input-start\"),\n toolCallId: z7.string(),\n toolName: z7.string(),\n providerExecuted: z7.boolean().optional(),\n dynamic: z7.boolean().optional()\n }),\n z7.strictObject({\n type: z7.literal(\"tool-input-delta\"),\n toolCallId: z7.string(),\n inputTextDelta: z7.string()\n }),\n z7.strictObject({\n type: z7.literal(\"tool-input-available\"),\n toolCallId: z7.string(),\n toolName: z7.string(),\n input: z7.unknown(),\n providerExecuted: z7.boolean().optional(),\n providerMetadata: providerMetadataSchema.optional(),\n dynamic: z7.boolean().optional()\n }),\n z7.strictObject({\n type: z7.literal(\"tool-input-error\"),\n toolCallId: z7.string(),\n toolName: z7.string(),\n input: z7.unknown(),\n providerExecuted: z7.boolean().optional(),\n providerMetadata: providerMetadataSchema.optional(),\n dynamic: z7.boolean().optional(),\n errorText: z7.string()\n }),\n z7.strictObject({\n type: z7.literal(\"tool-output-available\"),\n toolCallId: z7.string(),\n output: z7.unknown(),\n providerExecuted: z7.boolean().optional(),\n dynamic: z7.boolean().optional(),\n preliminary: z7.boolean().optional()\n }),\n z7.strictObject({\n type: z7.literal(\"tool-output-error\"),\n toolCallId: z7.string(),\n errorText: z7.string(),\n providerExecuted: z7.boolean().optional(),\n dynamic: z7.boolean().optional()\n }),\n z7.strictObject({\n type: z7.literal(\"reasoning-start\"),\n id: z7.string(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z7.strictObject({\n type: z7.literal(\"reasoning-delta\"),\n id: z7.string(),\n delta: z7.string(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z7.strictObject({\n type: z7.literal(\"reasoning-end\"),\n id: z7.string(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z7.strictObject({\n type: z7.literal(\"source-url\"),\n sourceId: z7.string(),\n url: z7.string(),\n title: z7.string().optional(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z7.strictObject({\n type: z7.literal(\"source-document\"),\n sourceId: z7.string(),\n mediaType: z7.string(),\n title: z7.string(),\n filename: z7.string().optional(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z7.strictObject({\n type: z7.literal(\"file\"),\n url: z7.string(),\n mediaType: z7.string(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z7.strictObject({\n type: z7.custom(\n (value) => typeof value === \"string\" && value.startsWith(\"data-\"),\n { message: 'Type must start with \"data-\"' }\n ),\n id: z7.string().optional(),\n data: z7.unknown(),\n transient: z7.boolean().optional()\n }),\n z7.strictObject({\n type: z7.literal(\"start-step\")\n }),\n z7.strictObject({\n type: z7.literal(\"finish-step\")\n }),\n z7.strictObject({\n type: z7.literal(\"start\"),\n messageId: z7.string().optional(),\n messageMetadata: z7.unknown().optional()\n }),\n z7.strictObject({\n type: z7.literal(\"finish\"),\n messageMetadata: z7.unknown().optional()\n }),\n z7.strictObject({\n type: z7.literal(\"abort\")\n }),\n z7.strictObject({\n type: z7.literal(\"message-metadata\"),\n messageMetadata: z7.unknown()\n })\n ])\n )\n);\nfunction isDataUIMessageChunk(chunk) {\n return chunk.type.startsWith(\"data-\");\n}\n\n// src/util/merge-objects.ts\nfunction mergeObjects(base, overrides) {\n if (base === void 0 && overrides === void 0) {\n return void 0;\n }\n if (base === void 0) {\n return overrides;\n }\n if (overrides === void 0) {\n return base;\n }\n const result = { ...base };\n for (const key in overrides) {\n if (Object.prototype.hasOwnProperty.call(overrides, key)) {\n const overridesValue = overrides[key];\n if (overridesValue === void 0)\n continue;\n const baseValue = key in base ? base[key] : void 0;\n const isSourceObject = overridesValue !== null && typeof overridesValue === \"object\" && !Array.isArray(overridesValue) && !(overridesValue instanceof Date) && !(overridesValue instanceof RegExp);\n const isTargetObject = baseValue !== null && baseValue !== void 0 && typeof baseValue === \"object\" && !Array.isArray(baseValue) && !(baseValue instanceof Date) && !(baseValue instanceof RegExp);\n if (isSourceObject && isTargetObject) {\n result[key] = mergeObjects(\n baseValue,\n overridesValue\n );\n } else {\n result[key] = overridesValue;\n }\n }\n }\n return result;\n}\n\n// src/util/parse-partial-json.ts\nimport { safeParseJSON as safeParseJSON2 } from \"@ai-sdk/provider-utils\";\n\n// src/util/fix-json.ts\nfunction fixJson(input) {\n const stack = [\"ROOT\"];\n let lastValidIndex = -1;\n let literalStart = null;\n function processValueStart(char, i, swapState) {\n {\n switch (char) {\n case '\"': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_STRING\");\n break;\n }\n case \"f\":\n case \"t\":\n case \"n\": {\n lastValidIndex = i;\n literalStart = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_LITERAL\");\n break;\n }\n case \"-\": {\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n break;\n }\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n break;\n }\n case \"{\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_OBJECT_START\");\n break;\n }\n case \"[\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_ARRAY_START\");\n break;\n }\n }\n }\n }\n function processAfterObjectValue(char, i) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_COMMA\");\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n function processAfterArrayValue(char, i) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n break;\n }\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n for (let i = 0; i < input.length; i++) {\n const char = input[i];\n const currentState = stack[stack.length - 1];\n switch (currentState) {\n case \"ROOT\":\n processValueStart(char, i, \"FINISH\");\n break;\n case \"INSIDE_OBJECT_START\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n break;\n }\n case \"INSIDE_OBJECT_AFTER_COMMA\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n break;\n }\n }\n break;\n }\n case \"INSIDE_OBJECT_KEY\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_KEY\");\n break;\n }\n }\n break;\n }\n case \"INSIDE_OBJECT_AFTER_KEY\": {\n switch (char) {\n case \":\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_BEFORE_VALUE\");\n break;\n }\n }\n break;\n }\n case \"INSIDE_OBJECT_BEFORE_VALUE\": {\n processValueStart(char, i, \"INSIDE_OBJECT_AFTER_VALUE\");\n break;\n }\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n processAfterObjectValue(char, i);\n break;\n }\n case \"INSIDE_STRING\": {\n switch (char) {\n case '\"': {\n stack.pop();\n lastValidIndex = i;\n break;\n }\n case \"\\\\\": {\n stack.push(\"INSIDE_STRING_ESCAPE\");\n break;\n }\n default: {\n lastValidIndex = i;\n }\n }\n break;\n }\n case \"INSIDE_ARRAY_START\": {\n switch (char) {\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n default: {\n lastValidIndex = i;\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n }\n break;\n }\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n break;\n }\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n default: {\n lastValidIndex = i;\n break;\n }\n }\n break;\n }\n case \"INSIDE_ARRAY_AFTER_COMMA\": {\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n case \"INSIDE_STRING_ESCAPE\": {\n stack.pop();\n lastValidIndex = i;\n break;\n }\n case \"INSIDE_NUMBER\": {\n switch (char) {\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n break;\n }\n case \"e\":\n case \"E\":\n case \"-\":\n case \".\": {\n break;\n }\n case \",\": {\n stack.pop();\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n break;\n }\n case \"}\": {\n stack.pop();\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n break;\n }\n case \"]\": {\n stack.pop();\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n break;\n }\n default: {\n stack.pop();\n break;\n }\n }\n break;\n }\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart, i + 1);\n if (!\"false\".startsWith(partialLiteral) && !\"true\".startsWith(partialLiteral) && !\"null\".startsWith(partialLiteral)) {\n stack.pop();\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n } else if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n } else {\n lastValidIndex = i;\n }\n break;\n }\n }\n }\n let result = input.slice(0, lastValidIndex + 1);\n for (let i = stack.length - 1; i >= 0; i--) {\n const state = stack[i];\n switch (state) {\n case \"INSIDE_STRING\": {\n result += '\"';\n break;\n }\n case \"INSIDE_OBJECT_KEY\":\n case \"INSIDE_OBJECT_AFTER_KEY\":\n case \"INSIDE_OBJECT_AFTER_COMMA\":\n case \"INSIDE_OBJECT_START\":\n case \"INSIDE_OBJECT_BEFORE_VALUE\":\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n result += \"}\";\n break;\n }\n case \"INSIDE_ARRAY_START\":\n case \"INSIDE_ARRAY_AFTER_COMMA\":\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n result += \"]\";\n break;\n }\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart, input.length);\n if (\"true\".startsWith(partialLiteral)) {\n result += \"true\".slice(partialLiteral.length);\n } else if (\"false\".startsWith(partialLiteral)) {\n result += \"false\".slice(partialLiteral.length);\n } else if (\"null\".startsWith(partialLiteral)) {\n result += \"null\".slice(partialLiteral.length);\n }\n }\n }\n }\n return result;\n}\n\n// src/util/parse-partial-json.ts\nasync function parsePartialJson(jsonText) {\n if (jsonText === void 0) {\n return { value: void 0, state: \"undefined-input\" };\n }\n let result = await safeParseJSON2({ text: jsonText });\n if (result.success) {\n return { value: result.value, state: \"successful-parse\" };\n }\n result = await safeParseJSON2({ text: fixJson(jsonText) });\n if (result.success) {\n return { value: result.value, state: \"repaired-parse\" };\n }\n return { value: void 0, state: \"failed-parse\" };\n}\n\n// src/ui/ui-messages.ts\nfunction isDataUIPart(part) {\n return part.type.startsWith(\"data-\");\n}\nfunction isTextUIPart(part) {\n return part.type === \"text\";\n}\nfunction isFileUIPart(part) {\n return part.type === \"file\";\n}\nfunction isReasoningUIPart(part) {\n return part.type === \"reasoning\";\n}\nfunction isToolUIPart(part) {\n return part.type.startsWith(\"tool-\");\n}\nfunction isDynamicToolUIPart(part) {\n return part.type === \"dynamic-tool\";\n}\nfunction isToolOrDynamicToolUIPart(part) {\n return isToolUIPart(part) || isDynamicToolUIPart(part);\n}\nfunction getToolName(part) {\n return part.type.split(\"-\").slice(1).join(\"-\");\n}\nfunction getToolOrDynamicToolName(part) {\n return isDynamicToolUIPart(part) ? part.toolName : getToolName(part);\n}\n\n// src/ui/process-ui-message-stream.ts\nfunction createStreamingUIMessageState({\n lastMessage,\n messageId\n}) {\n return {\n message: (lastMessage == null ? void 0 : lastMessage.role) === \"assistant\" ? lastMessage : {\n id: messageId,\n metadata: void 0,\n role: \"assistant\",\n parts: []\n },\n activeTextParts: {},\n activeReasoningParts: {},\n partialToolCalls: {}\n };\n}\nfunction processUIMessageStream({\n stream,\n messageMetadataSchema,\n dataPartSchemas,\n runUpdateMessageJob,\n onError,\n onToolCall,\n onData\n}) {\n return stream.pipeThrough(\n new TransformStream({\n async transform(chunk, controller) {\n await runUpdateMessageJob(async ({ state, write }) => {\n var _a16, _b, _c, _d;\n function getToolInvocation(toolCallId) {\n const toolInvocations = state.message.parts.filter(isToolUIPart);\n const toolInvocation = toolInvocations.find(\n (invocation) => invocation.toolCallId === toolCallId\n );\n if (toolInvocation == null) {\n throw new Error(\n \"tool-output-error must be preceded by a tool-input-available\"\n );\n }\n return toolInvocation;\n }\n function getDynamicToolInvocation(toolCallId) {\n const toolInvocations = state.message.parts.filter(\n (part) => part.type === \"dynamic-tool\"\n );\n const toolInvocation = toolInvocations.find(\n (invocation) => invocation.toolCallId === toolCallId\n );\n if (toolInvocation == null) {\n throw new Error(\n \"tool-output-error must be preceded by a tool-input-available\"\n );\n }\n return toolInvocation;\n }\n function updateToolPart(options) {\n var _a17;\n const part = state.message.parts.find(\n (part2) => isToolUIPart(part2) && part2.toolCallId === options.toolCallId\n );\n const anyOptions = options;\n const anyPart = part;\n if (part != null) {\n part.state = options.state;\n anyPart.input = anyOptions.input;\n anyPart.output = anyOptions.output;\n anyPart.errorText = anyOptions.errorText;\n anyPart.rawInput = anyOptions.rawInput;\n anyPart.preliminary = anyOptions.preliminary;\n anyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part.providerExecuted;\n if (anyOptions.providerMetadata != null && part.state === \"input-available\") {\n part.callProviderMetadata = anyOptions.providerMetadata;\n }\n } else {\n state.message.parts.push({\n type: `tool-${options.toolName}`,\n toolCallId: options.toolCallId,\n state: options.state,\n input: anyOptions.input,\n output: anyOptions.output,\n rawInput: anyOptions.rawInput,\n errorText: anyOptions.errorText,\n providerExecuted: anyOptions.providerExecuted,\n preliminary: anyOptions.preliminary,\n ...anyOptions.providerMetadata != null ? { callProviderMetadata: anyOptions.providerMetadata } : {}\n });\n }\n }\n function updateDynamicToolPart(options) {\n var _a17, _b2;\n const part = state.message.parts.find(\n (part2) => part2.type === \"dynamic-tool\" && part2.toolCallId === options.toolCallId\n );\n const anyOptions = options;\n const anyPart = part;\n if (part != null) {\n part.state = options.state;\n anyPart.toolName = options.toolName;\n anyPart.input = anyOptions.input;\n anyPart.output = anyOptions.output;\n anyPart.errorText = anyOptions.errorText;\n anyPart.rawInput = (_a17 = anyOptions.rawInput) != null ? _a17 : anyPart.rawInput;\n anyPart.preliminary = anyOptions.preliminary;\n anyPart.providerExecuted = (_b2 = anyOptions.providerExecuted) != null ? _b2 : part.providerExecuted;\n if (anyOptions.providerMetadata != null && part.state === \"input-available\") {\n part.callProviderMetadata = anyOptions.providerMetadata;\n }\n } else {\n state.message.parts.push({\n type: \"dynamic-tool\",\n toolName: options.toolName,\n toolCallId: options.toolCallId,\n state: options.state,\n input: anyOptions.input,\n output: anyOptions.output,\n errorText: anyOptions.errorText,\n preliminary: anyOptions.preliminary,\n providerExecuted: anyOptions.providerExecuted,\n ...anyOptions.providerMetadata != null ? { callProviderMetadata: anyOptions.providerMetadata } : {}\n });\n }\n }\n async function updateMessageMetadata(metadata) {\n if (metadata != null) {\n const mergedMetadata = state.message.metadata != null ? mergeObjects(state.message.metadata, metadata) : metadata;\n if (messageMetadataSchema != null) {\n await validateTypes({\n value: mergedMetadata,\n schema: messageMetadataSchema\n });\n }\n state.message.metadata = mergedMetadata;\n }\n }\n switch (chunk.type) {\n case \"text-start\": {\n const textPart = {\n type: \"text\",\n text: \"\",\n providerMetadata: chunk.providerMetadata,\n state: \"streaming\"\n };\n state.activeTextParts[chunk.id] = textPart;\n state.message.parts.push(textPart);\n write();\n break;\n }\n case \"text-delta\": {\n const textPart = state.activeTextParts[chunk.id];\n textPart.text += chunk.delta;\n textPart.providerMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textPart.providerMetadata;\n write();\n break;\n }\n case \"text-end\": {\n const textPart = state.activeTextParts[chunk.id];\n textPart.state = \"done\";\n textPart.providerMetadata = (_b = chunk.providerMetadata) != null ? _b : textPart.providerMetadata;\n delete state.activeTextParts[chunk.id];\n write();\n break;\n }\n case \"reasoning-start\": {\n const reasoningPart = {\n type: \"reasoning\",\n text: \"\",\n providerMetadata: chunk.providerMetadata,\n state: \"streaming\"\n };\n state.activeReasoningParts[chunk.id] = reasoningPart;\n state.message.parts.push(reasoningPart);\n write();\n break;\n }\n case \"reasoning-delta\": {\n const reasoningPart = state.activeReasoningParts[chunk.id];\n reasoningPart.text += chunk.delta;\n reasoningPart.providerMetadata = (_c = chunk.providerMetadata) != null ? _c : reasoningPart.providerMetadata;\n write();\n break;\n }\n case \"reasoning-end\": {\n const reasoningPart = state.activeReasoningParts[chunk.id];\n reasoningPart.providerMetadata = (_d = chunk.providerMetadata) != null ? _d : reasoningPart.providerMetadata;\n reasoningPart.state = \"done\";\n delete state.activeReasoningParts[chunk.id];\n write();\n break;\n }\n case \"file\": {\n state.message.parts.push({\n type: \"file\",\n mediaType: chunk.mediaType,\n url: chunk.url\n });\n write();\n break;\n }\n case \"source-url\": {\n state.message.parts.push({\n type: \"source-url\",\n sourceId: chunk.sourceId,\n url: chunk.url,\n title: chunk.title,\n providerMetadata: chunk.providerMetadata\n });\n write();\n break;\n }\n case \"source-document\": {\n state.message.parts.push({\n type: \"source-document\",\n sourceId: chunk.sourceId,\n mediaType: chunk.mediaType,\n title: chunk.title,\n filename: chunk.filename,\n providerMetadata: chunk.providerMetadata\n });\n write();\n break;\n }\n case \"tool-input-start\": {\n const toolInvocations = state.message.parts.filter(isToolUIPart);\n state.partialToolCalls[chunk.toolCallId] = {\n text: \"\",\n toolName: chunk.toolName,\n index: toolInvocations.length,\n dynamic: chunk.dynamic\n };\n if (chunk.dynamic) {\n updateDynamicToolPart({\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n state: \"input-streaming\",\n input: void 0,\n providerExecuted: chunk.providerExecuted\n });\n } else {\n updateToolPart({\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n state: \"input-streaming\",\n input: void 0,\n providerExecuted: chunk.providerExecuted\n });\n }\n write();\n break;\n }\n case \"tool-input-delta\": {\n const partialToolCall = state.partialToolCalls[chunk.toolCallId];\n partialToolCall.text += chunk.inputTextDelta;\n const { value: partialArgs } = await parsePartialJson(\n partialToolCall.text\n );\n if (partialToolCall.dynamic) {\n updateDynamicToolPart({\n toolCallId: chunk.toolCallId,\n toolName: partialToolCall.toolName,\n state: \"input-streaming\",\n input: partialArgs\n });\n } else {\n updateToolPart({\n toolCallId: chunk.toolCallId,\n toolName: partialToolCall.toolName,\n state: \"input-streaming\",\n input: partialArgs\n });\n }\n write();\n break;\n }\n case \"tool-input-available\": {\n if (chunk.dynamic) {\n updateDynamicToolPart({\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n state: \"input-available\",\n input: chunk.input,\n providerExecuted: chunk.providerExecuted,\n providerMetadata: chunk.providerMetadata\n });\n } else {\n updateToolPart({\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n state: \"input-available\",\n input: chunk.input,\n providerExecuted: chunk.providerExecuted,\n providerMetadata: chunk.providerMetadata\n });\n }\n write();\n if (onToolCall && !chunk.providerExecuted) {\n await onToolCall({\n toolCall: chunk\n });\n }\n break;\n }\n case \"tool-input-error\": {\n if (chunk.dynamic) {\n updateDynamicToolPart({\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n state: \"output-error\",\n input: chunk.input,\n errorText: chunk.errorText,\n providerExecuted: chunk.providerExecuted,\n providerMetadata: chunk.providerMetadata\n });\n } else {\n updateToolPart({\n toolCallId: chunk.toolCallId,\n toolName: chunk.toolName,\n state: \"output-error\",\n input: void 0,\n rawInput: chunk.input,\n errorText: chunk.errorText,\n providerExecuted: chunk.providerExecuted,\n providerMetadata: chunk.providerMetadata\n });\n }\n write();\n break;\n }\n case \"tool-output-available\": {\n if (chunk.dynamic) {\n const toolInvocation = getDynamicToolInvocation(\n chunk.toolCallId\n );\n updateDynamicToolPart({\n toolCallId: chunk.toolCallId,\n toolName: toolInvocation.toolName,\n state: \"output-available\",\n input: toolInvocation.input,\n output: chunk.output,\n preliminary: chunk.preliminary\n });\n } else {\n const toolInvocation = getToolInvocation(chunk.toolCallId);\n updateToolPart({\n toolCallId: chunk.toolCallId,\n toolName: getToolName(toolInvocation),\n state: \"output-available\",\n input: toolInvocation.input,\n output: chunk.output,\n providerExecuted: chunk.providerExecuted,\n preliminary: chunk.preliminary\n });\n }\n write();\n break;\n }\n case \"tool-output-error\": {\n if (chunk.dynamic) {\n const toolInvocation = getDynamicToolInvocation(\n chunk.toolCallId\n );\n updateDynamicToolPart({\n toolCallId: chunk.toolCallId,\n toolName: toolInvocation.toolName,\n state: \"output-error\",\n input: toolInvocation.input,\n errorText: chunk.errorText,\n providerExecuted: chunk.providerExecuted\n });\n } else {\n const toolInvocation = getToolInvocation(chunk.toolCallId);\n updateToolPart({\n toolCallId: chunk.toolCallId,\n toolName: getToolName(toolInvocation),\n state: \"output-error\",\n input: toolInvocation.input,\n rawInput: toolInvocation.rawInput,\n errorText: chunk.errorText,\n providerExecuted: chunk.providerExecuted\n });\n }\n write();\n break;\n }\n case \"start-step\": {\n state.message.parts.push({ type: \"step-start\" });\n break;\n }\n case \"finish-step\": {\n state.activeTextParts = {};\n state.activeReasoningParts = {};\n break;\n }\n case \"start\": {\n if (chunk.messageId != null) {\n state.message.id = chunk.messageId;\n }\n await updateMessageMetadata(chunk.messageMetadata);\n if (chunk.messageId != null || chunk.messageMetadata != null) {\n write();\n }\n break;\n }\n case \"finish\": {\n await updateMessageMetadata(chunk.messageMetadata);\n if (chunk.messageMetadata != null) {\n write();\n }\n break;\n }\n case \"message-metadata\": {\n await updateMessageMetadata(chunk.messageMetadata);\n if (chunk.messageMetadata != null) {\n write();\n }\n break;\n }\n case \"error\": {\n onError == null ? void 0 : onError(new Error(chunk.errorText));\n break;\n }\n default: {\n if (isDataUIMessageChunk(chunk)) {\n if ((dataPartSchemas == null ? void 0 : dataPartSchemas[chunk.type]) != null) {\n await validateTypes({\n value: chunk.data,\n schema: dataPartSchemas[chunk.type]\n });\n }\n const dataChunk = chunk;\n if (dataChunk.transient) {\n onData == null ? void 0 : onData(dataChunk);\n break;\n }\n const existingUIPart = dataChunk.id != null ? state.message.parts.find(\n (chunkArg) => dataChunk.type === chunkArg.type && dataChunk.id === chunkArg.id\n ) : void 0;\n if (existingUIPart != null) {\n existingUIPart.data = dataChunk.data;\n } else {\n state.message.parts.push(dataChunk);\n }\n onData == null ? void 0 : onData(dataChunk);\n write();\n }\n }\n }\n controller.enqueue(chunk);\n });\n }\n })\n );\n}\n\n// src/ui-message-stream/handle-ui-message-stream-finish.ts\nfunction handleUIMessageStreamFinish({\n messageId,\n originalMessages = [],\n onFinish,\n onError,\n stream\n}) {\n let lastMessage = originalMessages == null ? void 0 : originalMessages[originalMessages.length - 1];\n if ((lastMessage == null ? void 0 : lastMessage.role) !== \"assistant\") {\n lastMessage = void 0;\n } else {\n messageId = lastMessage.id;\n }\n let isAborted = false;\n const idInjectedStream = stream.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n if (chunk.type === \"start\") {\n const startChunk = chunk;\n if (startChunk.messageId == null && messageId != null) {\n startChunk.messageId = messageId;\n }\n }\n if (chunk.type === \"abort\") {\n isAborted = true;\n }\n controller.enqueue(chunk);\n }\n })\n );\n if (onFinish == null) {\n return idInjectedStream;\n }\n const state = createStreamingUIMessageState({\n lastMessage: lastMessage ? structuredClone(lastMessage) : void 0,\n messageId: messageId != null ? messageId : \"\"\n // will be overridden by the stream\n });\n const runUpdateMessageJob = async (job) => {\n await job({ state, write: () => {\n } });\n };\n let finishCalled = false;\n const callOnFinish = async () => {\n if (finishCalled || !onFinish) {\n return;\n }\n finishCalled = true;\n const isContinuation = state.message.id === (lastMessage == null ? void 0 : lastMessage.id);\n await onFinish({\n isAborted,\n isContinuation,\n responseMessage: state.message,\n messages: [\n ...isContinuation ? originalMessages.slice(0, -1) : originalMessages,\n state.message\n ]\n });\n };\n return processUIMessageStream({\n stream: idInjectedStream,\n runUpdateMessageJob,\n onError\n }).pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n controller.enqueue(chunk);\n },\n // @ts-expect-error cancel is still new and missing from types https://developer.mozilla.org/en-US/docs/Web/API/TransformStream#browser_compatibility\n async cancel() {\n await callOnFinish();\n },\n async flush() {\n await callOnFinish();\n }\n })\n );\n}\n\n// src/ui-message-stream/pipe-ui-message-stream-to-response.ts\nfunction pipeUIMessageStreamToResponse({\n response,\n status,\n statusText,\n headers,\n stream,\n consumeSseStream\n}) {\n let sseStream = stream.pipeThrough(new JsonToSseTransformStream());\n if (consumeSseStream) {\n const [stream1, stream2] = sseStream.tee();\n sseStream = stream1;\n consumeSseStream({ stream: stream2 });\n }\n writeToServerResponse({\n response,\n status,\n statusText,\n headers: Object.fromEntries(\n prepareHeaders(headers, UI_MESSAGE_STREAM_HEADERS).entries()\n ),\n stream: sseStream.pipeThrough(new TextEncoderStream())\n });\n}\n\n// src/util/async-iterable-stream.ts\nfunction createAsyncIterableStream(source) {\n const stream = source.pipeThrough(new TransformStream());\n stream[Symbol.asyncIterator] = function() {\n const reader = this.getReader();\n let finished = false;\n async function cleanup(cancelStream) {\n var _a16;\n finished = true;\n try {\n if (cancelStream) {\n await ((_a16 = reader.cancel) == null ? void 0 : _a16.call(reader));\n }\n } finally {\n try {\n reader.releaseLock();\n } catch (e) {\n }\n }\n }\n return {\n /**\n * Reads the next chunk from the stream.\n * @returns A promise resolving to the next IteratorResult.\n */\n async next() {\n if (finished) {\n return { done: true, value: void 0 };\n }\n const { done, value } = await reader.read();\n if (done) {\n await cleanup(true);\n return { done: true, value: void 0 };\n }\n return { done: false, value };\n },\n /**\n * Called on early exit (e.g., break from for-await).\n * Ensures the stream is cancelled and resources are released.\n * @returns A promise resolving to a completed IteratorResult.\n */\n async return() {\n await cleanup(true);\n return { done: true, value: void 0 };\n },\n /**\n * Called on early exit with error.\n * Ensures the stream is cancelled and resources are released, then rethrows the error.\n * @param err The error to throw.\n * @returns A promise that rejects with the provided error.\n */\n async throw(err) {\n await cleanup(true);\n throw err;\n }\n };\n };\n return stream;\n}\n\n// src/util/consume-stream.ts\nasync function consumeStream({\n stream,\n onError\n}) {\n const reader = stream.getReader();\n try {\n while (true) {\n const { done } = await reader.read();\n if (done)\n break;\n }\n } catch (error) {\n onError == null ? void 0 : onError(error);\n } finally {\n reader.releaseLock();\n }\n}\n\n// src/util/create-resolvable-promise.ts\nfunction createResolvablePromise() {\n let resolve2;\n let reject;\n const promise = new Promise((res, rej) => {\n resolve2 = res;\n reject = rej;\n });\n return {\n promise,\n resolve: resolve2,\n reject\n };\n}\n\n// src/util/create-stitchable-stream.ts\nfunction createStitchableStream() {\n let innerStreamReaders = [];\n let controller = null;\n let isClosed = false;\n let waitForNewStream = createResolvablePromise();\n const terminate = () => {\n isClosed = true;\n waitForNewStream.resolve();\n innerStreamReaders.forEach((reader) => reader.cancel());\n innerStreamReaders = [];\n controller == null ? void 0 : controller.close();\n };\n const processPull = async () => {\n if (isClosed && innerStreamReaders.length === 0) {\n controller == null ? void 0 : controller.close();\n return;\n }\n if (innerStreamReaders.length === 0) {\n waitForNewStream = createResolvablePromise();\n await waitForNewStream.promise;\n return processPull();\n }\n try {\n const { value, done } = await innerStreamReaders[0].read();\n if (done) {\n innerStreamReaders.shift();\n if (innerStreamReaders.length > 0) {\n await processPull();\n } else if (isClosed) {\n controller == null ? void 0 : controller.close();\n }\n } else {\n controller == null ? void 0 : controller.enqueue(value);\n }\n } catch (error) {\n controller == null ? void 0 : controller.error(error);\n innerStreamReaders.shift();\n terminate();\n }\n };\n return {\n stream: new ReadableStream({\n start(controllerParam) {\n controller = controllerParam;\n },\n pull: processPull,\n async cancel() {\n for (const reader of innerStreamReaders) {\n await reader.cancel();\n }\n innerStreamReaders = [];\n isClosed = true;\n }\n }),\n addStream: (innerStream) => {\n if (isClosed) {\n throw new Error(\"Cannot add inner stream: outer stream is closed\");\n }\n innerStreamReaders.push(innerStream.getReader());\n waitForNewStream.resolve();\n },\n /**\n * Gracefully close the outer stream. This will let the inner streams\n * finish processing and then close the outer stream.\n */\n close: () => {\n isClosed = true;\n waitForNewStream.resolve();\n if (innerStreamReaders.length === 0) {\n controller == null ? void 0 : controller.close();\n }\n },\n /**\n * Immediately close the outer stream. This will cancel all inner streams\n * and close the outer stream.\n */\n terminate\n };\n}\n\n// src/util/delayed-promise.ts\nvar DelayedPromise = class {\n constructor() {\n this.status = { type: \"pending\" };\n this._resolve = void 0;\n this._reject = void 0;\n }\n get promise() {\n if (this._promise) {\n return this._promise;\n }\n this._promise = new Promise((resolve2, reject) => {\n if (this.status.type === \"resolved\") {\n resolve2(this.status.value);\n } else if (this.status.type === \"rejected\") {\n reject(this.status.error);\n }\n this._resolve = resolve2;\n this._reject = reject;\n });\n return this._promise;\n }\n resolve(value) {\n var _a16;\n this.status = { type: \"resolved\", value };\n if (this._promise) {\n (_a16 = this._resolve) == null ? void 0 : _a16.call(this, value);\n }\n }\n reject(error) {\n var _a16;\n this.status = { type: \"rejected\", error };\n if (this._promise) {\n (_a16 = this._reject) == null ? void 0 : _a16.call(this, error);\n }\n }\n};\n\n// src/util/now.ts\nfunction now() {\n var _a16, _b;\n return (_b = (_a16 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a16.now()) != null ? _b : Date.now();\n}\n\n// src/generate-text/run-tools-transformation.ts\nimport {\n executeTool as executeTool2,\n generateId,\n getErrorMessage as getErrorMessage6\n} from \"@ai-sdk/provider-utils\";\nfunction runToolsTransformation({\n tools,\n generatorStream,\n tracer,\n telemetry,\n system,\n messages,\n abortSignal,\n repairToolCall,\n experimental_context\n}) {\n let toolResultsStreamController = null;\n const toolResultsStream = new ReadableStream({\n start(controller) {\n toolResultsStreamController = controller;\n }\n });\n const outstandingToolResults = /* @__PURE__ */ new Set();\n const toolInputs = /* @__PURE__ */ new Map();\n let canClose = false;\n let finishChunk = void 0;\n function attemptClose() {\n if (canClose && outstandingToolResults.size === 0) {\n if (finishChunk != null) {\n toolResultsStreamController.enqueue(finishChunk);\n }\n toolResultsStreamController.close();\n }\n }\n const forwardStream = new TransformStream({\n async transform(chunk, controller) {\n const chunkType = chunk.type;\n switch (chunkType) {\n case \"stream-start\":\n case \"text-start\":\n case \"text-delta\":\n case \"text-end\":\n case \"reasoning-start\":\n case \"reasoning-delta\":\n case \"reasoning-end\":\n case \"tool-input-start\":\n case \"tool-input-delta\":\n case \"tool-input-end\":\n case \"source\":\n case \"response-metadata\":\n case \"error\":\n case \"raw\": {\n controller.enqueue(chunk);\n break;\n }\n case \"file\": {\n controller.enqueue({\n type: \"file\",\n file: new DefaultGeneratedFileWithType({\n data: chunk.data,\n mediaType: chunk.mediaType\n })\n });\n break;\n }\n case \"finish\": {\n finishChunk = {\n type: \"finish\",\n finishReason: chunk.finishReason,\n usage: chunk.usage,\n providerMetadata: chunk.providerMetadata\n };\n break;\n }\n case \"tool-call\": {\n try {\n const toolCall = await parseToolCall({\n toolCall: chunk,\n tools,\n repairToolCall,\n system,\n messages\n });\n controller.enqueue(toolCall);\n if (toolCall.invalid) {\n toolResultsStreamController.enqueue({\n type: \"tool-error\",\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n input: toolCall.input,\n error: getErrorMessage6(toolCall.error),\n dynamic: true\n });\n break;\n }\n const tool2 = tools[toolCall.toolName];\n toolInputs.set(toolCall.toolCallId, toolCall.input);\n if (tool2.onInputAvailable != null) {\n await tool2.onInputAvailable({\n input: toolCall.input,\n toolCallId: toolCall.toolCallId,\n messages,\n abortSignal,\n experimental_context\n });\n }\n if (tool2.execute != null && toolCall.providerExecuted !== true) {\n const toolExecutionId = generateId();\n outstandingToolResults.add(toolExecutionId);\n recordSpan({\n name: \"ai.toolCall\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.toolCall\",\n telemetry\n }),\n \"ai.toolCall.name\": toolCall.toolName,\n \"ai.toolCall.id\": toolCall.toolCallId,\n \"ai.toolCall.args\": {\n output: () => JSON.stringify(toolCall.input)\n }\n }\n }),\n tracer,\n fn: async (span) => {\n let output;\n try {\n const stream = executeTool2({\n execute: tool2.execute.bind(tool2),\n input: toolCall.input,\n options: {\n toolCallId: toolCall.toolCallId,\n messages,\n abortSignal,\n experimental_context\n }\n });\n for await (const part of stream) {\n toolResultsStreamController.enqueue({\n ...toolCall,\n type: \"tool-result\",\n output: part.output,\n ...part.type === \"preliminary\" && {\n preliminary: true\n }\n });\n if (part.type === \"final\") {\n output = part.output;\n }\n }\n } catch (error) {\n recordErrorOnSpan(span, error);\n toolResultsStreamController.enqueue({\n ...toolCall,\n type: \"tool-error\",\n error\n });\n outstandingToolResults.delete(toolExecutionId);\n attemptClose();\n return;\n }\n outstandingToolResults.delete(toolExecutionId);\n attemptClose();\n try {\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.toolCall.result\": {\n output: () => JSON.stringify(output)\n }\n }\n })\n );\n } catch (ignored) {\n }\n }\n });\n }\n } catch (error) {\n toolResultsStreamController.enqueue({ type: \"error\", error });\n }\n break;\n }\n case \"tool-result\": {\n const toolName = chunk.toolName;\n if (chunk.isError) {\n toolResultsStreamController.enqueue({\n type: \"tool-error\",\n toolCallId: chunk.toolCallId,\n toolName,\n input: toolInputs.get(chunk.toolCallId),\n providerExecuted: chunk.providerExecuted,\n error: chunk.result\n });\n } else {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: chunk.toolCallId,\n toolName,\n input: toolInputs.get(chunk.toolCallId),\n output: chunk.result,\n providerExecuted: chunk.providerExecuted\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = chunkType;\n throw new Error(`Unhandled chunk type: ${_exhaustiveCheck}`);\n }\n }\n },\n flush() {\n canClose = true;\n attemptClose();\n }\n });\n return new ReadableStream({\n async start(controller) {\n return Promise.all([\n generatorStream.pipeThrough(forwardStream).pipeTo(\n new WritableStream({\n write(chunk) {\n controller.enqueue(chunk);\n },\n close() {\n }\n })\n ),\n toolResultsStream.pipeTo(\n new WritableStream({\n write(chunk) {\n controller.enqueue(chunk);\n },\n close() {\n controller.close();\n }\n })\n )\n ]);\n }\n });\n}\n\n// src/generate-text/stream-text.ts\nvar originalGenerateId2 = createIdGenerator2({\n prefix: \"aitxt\",\n size: 24\n});\nfunction streamText({\n model,\n tools,\n toolChoice,\n system,\n prompt,\n messages,\n maxRetries,\n abortSignal,\n headers,\n stopWhen = stepCountIs(1),\n experimental_output: output,\n experimental_telemetry: telemetry,\n prepareStep,\n providerOptions,\n experimental_activeTools,\n activeTools = experimental_activeTools,\n experimental_repairToolCall: repairToolCall,\n experimental_transform: transform,\n experimental_download: download2,\n includeRawChunks = false,\n onChunk,\n onError = ({ error }) => {\n console.error(error);\n },\n onFinish,\n onAbort,\n onStepFinish,\n experimental_context,\n _internal: {\n now: now2 = now,\n generateId: generateId3 = originalGenerateId2,\n currentDate = () => /* @__PURE__ */ new Date()\n } = {},\n ...settings\n}) {\n return new DefaultStreamTextResult({\n model: resolveLanguageModel(model),\n telemetry,\n headers,\n settings,\n maxRetries,\n abortSignal,\n system,\n prompt,\n messages,\n tools,\n toolChoice,\n transforms: asArray(transform),\n activeTools,\n repairToolCall,\n stopConditions: asArray(stopWhen),\n output,\n providerOptions,\n prepareStep,\n includeRawChunks,\n onChunk,\n onError,\n onFinish,\n onAbort,\n onStepFinish,\n now: now2,\n currentDate,\n generateId: generateId3,\n experimental_context,\n download: download2\n });\n}\nfunction createOutputTransformStream(output) {\n if (!output) {\n return new TransformStream({\n transform(chunk, controller) {\n controller.enqueue({ part: chunk, partialOutput: void 0 });\n }\n });\n }\n let firstTextChunkId = void 0;\n let text2 = \"\";\n let textChunk = \"\";\n let lastPublishedJson = \"\";\n function publishTextChunk({\n controller,\n partialOutput = void 0\n }) {\n controller.enqueue({\n part: {\n type: \"text-delta\",\n id: firstTextChunkId,\n text: textChunk\n },\n partialOutput\n });\n textChunk = \"\";\n }\n return new TransformStream({\n async transform(chunk, controller) {\n if (chunk.type === \"finish-step\" && textChunk.length > 0) {\n publishTextChunk({ controller });\n }\n if (chunk.type !== \"text-delta\" && chunk.type !== \"text-start\" && chunk.type !== \"text-end\") {\n controller.enqueue({ part: chunk, partialOutput: void 0 });\n return;\n }\n if (firstTextChunkId == null) {\n firstTextChunkId = chunk.id;\n } else if (chunk.id !== firstTextChunkId) {\n controller.enqueue({ part: chunk, partialOutput: void 0 });\n return;\n }\n if (chunk.type === \"text-start\") {\n controller.enqueue({ part: chunk, partialOutput: void 0 });\n return;\n }\n if (chunk.type === \"text-end\") {\n if (textChunk.length > 0) {\n publishTextChunk({ controller });\n }\n controller.enqueue({ part: chunk, partialOutput: void 0 });\n return;\n }\n text2 += chunk.text;\n textChunk += chunk.text;\n const result = await output.parsePartial({ text: text2 });\n if (result != null) {\n const currentJson = JSON.stringify(result.partial);\n if (currentJson !== lastPublishedJson) {\n publishTextChunk({ controller, partialOutput: result.partial });\n lastPublishedJson = currentJson;\n }\n }\n }\n });\n}\nvar DefaultStreamTextResult = class {\n constructor({\n model,\n telemetry,\n headers,\n settings,\n maxRetries: maxRetriesArg,\n abortSignal,\n system,\n prompt,\n messages,\n tools,\n toolChoice,\n transforms,\n activeTools,\n repairToolCall,\n stopConditions,\n output,\n providerOptions,\n prepareStep,\n includeRawChunks,\n now: now2,\n currentDate,\n generateId: generateId3,\n onChunk,\n onError,\n onFinish,\n onAbort,\n onStepFinish,\n experimental_context,\n download: download2\n }) {\n this._totalUsage = new DelayedPromise();\n this._finishReason = new DelayedPromise();\n this._steps = new DelayedPromise();\n this.output = output;\n this.includeRawChunks = includeRawChunks;\n this.tools = tools;\n let stepFinish;\n let recordedContent = [];\n const recordedResponseMessages = [];\n let recordedFinishReason = void 0;\n let recordedTotalUsage = void 0;\n let recordedRequest = {};\n let recordedWarnings = [];\n const recordedSteps = [];\n let rootSpan;\n let activeTextContent = {};\n let activeReasoningContent = {};\n const eventProcessor = new TransformStream({\n async transform(chunk, controller) {\n var _a16, _b, _c, _d;\n controller.enqueue(chunk);\n const { part } = chunk;\n if (part.type === \"text-delta\" || part.type === \"reasoning-delta\" || part.type === \"source\" || part.type === \"tool-call\" || part.type === \"tool-result\" || part.type === \"tool-input-start\" || part.type === \"tool-input-delta\" || part.type === \"raw\") {\n await (onChunk == null ? void 0 : onChunk({ chunk: part }));\n }\n if (part.type === \"error\") {\n await onError({ error: wrapGatewayError(part.error) });\n }\n if (part.type === \"text-start\") {\n activeTextContent[part.id] = {\n type: \"text\",\n text: \"\",\n providerMetadata: part.providerMetadata\n };\n recordedContent.push(activeTextContent[part.id]);\n }\n if (part.type === \"text-delta\") {\n const activeText = activeTextContent[part.id];\n if (activeText == null) {\n controller.enqueue({\n part: {\n type: \"error\",\n error: `text part ${part.id} not found`\n },\n partialOutput: void 0\n });\n return;\n }\n activeText.text += part.text;\n activeText.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : activeText.providerMetadata;\n }\n if (part.type === \"text-end\") {\n const activeText = activeTextContent[part.id];\n if (activeText == null) {\n controller.enqueue({\n part: {\n type: \"error\",\n error: `text part ${part.id} not found`\n },\n partialOutput: void 0\n });\n return;\n }\n activeText.providerMetadata = (_b = part.providerMetadata) != null ? _b : activeText.providerMetadata;\n delete activeTextContent[part.id];\n }\n if (part.type === \"reasoning-start\") {\n activeReasoningContent[part.id] = {\n type: \"reasoning\",\n text: \"\",\n providerMetadata: part.providerMetadata\n };\n recordedContent.push(activeReasoningContent[part.id]);\n }\n if (part.type === \"reasoning-delta\") {\n const activeReasoning = activeReasoningContent[part.id];\n if (activeReasoning == null) {\n controller.enqueue({\n part: {\n type: \"error\",\n error: `reasoning part ${part.id} not found`\n },\n partialOutput: void 0\n });\n return;\n }\n activeReasoning.text += part.text;\n activeReasoning.providerMetadata = (_c = part.providerMetadata) != null ? _c : activeReasoning.providerMetadata;\n }\n if (part.type === \"reasoning-end\") {\n const activeReasoning = activeReasoningContent[part.id];\n if (activeReasoning == null) {\n controller.enqueue({\n part: {\n type: \"error\",\n error: `reasoning part ${part.id} not found`\n },\n partialOutput: void 0\n });\n return;\n }\n activeReasoning.providerMetadata = (_d = part.providerMetadata) != null ? _d : activeReasoning.providerMetadata;\n delete activeReasoningContent[part.id];\n }\n if (part.type === \"file\") {\n recordedContent.push({ type: \"file\", file: part.file });\n }\n if (part.type === \"source\") {\n recordedContent.push(part);\n }\n if (part.type === \"tool-call\") {\n recordedContent.push(part);\n }\n if (part.type === \"tool-result\" && !part.preliminary) {\n recordedContent.push(part);\n }\n if (part.type === \"tool-error\") {\n recordedContent.push(part);\n }\n if (part.type === \"start-step\") {\n recordedRequest = part.request;\n recordedWarnings = part.warnings;\n }\n if (part.type === \"finish-step\") {\n const stepMessages = toResponseMessages({\n content: recordedContent,\n tools\n });\n const currentStepResult = new DefaultStepResult({\n content: recordedContent,\n finishReason: part.finishReason,\n usage: part.usage,\n warnings: recordedWarnings,\n request: recordedRequest,\n response: {\n ...part.response,\n messages: [...recordedResponseMessages, ...stepMessages]\n },\n providerMetadata: part.providerMetadata\n });\n await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));\n logWarnings(recordedWarnings);\n recordedSteps.push(currentStepResult);\n recordedContent = [];\n activeReasoningContent = {};\n activeTextContent = {};\n recordedResponseMessages.push(...stepMessages);\n stepFinish.resolve();\n }\n if (part.type === \"finish\") {\n recordedTotalUsage = part.totalUsage;\n recordedFinishReason = part.finishReason;\n }\n },\n async flush(controller) {\n try {\n if (recordedSteps.length === 0) {\n const error = new NoOutputGeneratedError({\n message: \"No output generated. Check the stream for errors.\"\n });\n self._finishReason.reject(error);\n self._totalUsage.reject(error);\n self._steps.reject(error);\n return;\n }\n const finishReason = recordedFinishReason != null ? recordedFinishReason : \"unknown\";\n const totalUsage = recordedTotalUsage != null ? recordedTotalUsage : {\n inputTokens: void 0,\n outputTokens: void 0,\n totalTokens: void 0\n };\n self._finishReason.resolve(finishReason);\n self._totalUsage.resolve(totalUsage);\n self._steps.resolve(recordedSteps);\n const finalStep = recordedSteps[recordedSteps.length - 1];\n await (onFinish == null ? void 0 : onFinish({\n finishReason,\n totalUsage,\n usage: finalStep.usage,\n content: finalStep.content,\n text: finalStep.text,\n reasoningText: finalStep.reasoningText,\n reasoning: finalStep.reasoning,\n files: finalStep.files,\n sources: finalStep.sources,\n toolCalls: finalStep.toolCalls,\n staticToolCalls: finalStep.staticToolCalls,\n dynamicToolCalls: finalStep.dynamicToolCalls,\n toolResults: finalStep.toolResults,\n staticToolResults: finalStep.staticToolResults,\n dynamicToolResults: finalStep.dynamicToolResults,\n request: finalStep.request,\n response: finalStep.response,\n warnings: finalStep.warnings,\n providerMetadata: finalStep.providerMetadata,\n steps: recordedSteps\n }));\n rootSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.response.finishReason\": finishReason,\n \"ai.response.text\": { output: () => finalStep.text },\n \"ai.response.toolCalls\": {\n output: () => {\n var _a16;\n return ((_a16 = finalStep.toolCalls) == null ? void 0 : _a16.length) ? JSON.stringify(finalStep.toolCalls) : void 0;\n }\n },\n \"ai.response.providerMetadata\": JSON.stringify(\n finalStep.providerMetadata\n ),\n \"ai.usage.inputTokens\": totalUsage.inputTokens,\n \"ai.usage.outputTokens\": totalUsage.outputTokens,\n \"ai.usage.totalTokens\": totalUsage.totalTokens,\n \"ai.usage.reasoningTokens\": totalUsage.reasoningTokens,\n \"ai.usage.cachedInputTokens\": totalUsage.cachedInputTokens\n }\n })\n );\n } catch (error) {\n controller.error(error);\n } finally {\n rootSpan.end();\n }\n }\n });\n const stitchableStream = createStitchableStream();\n this.addStream = stitchableStream.addStream;\n this.closeStream = stitchableStream.close;\n const reader = stitchableStream.stream.getReader();\n let stream = new ReadableStream({\n async start(controller) {\n controller.enqueue({ type: \"start\" });\n },\n async pull(controller) {\n function abort() {\n onAbort == null ? void 0 : onAbort({ steps: recordedSteps });\n controller.enqueue({ type: \"abort\" });\n controller.close();\n }\n try {\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n return;\n }\n if (abortSignal == null ? void 0 : abortSignal.aborted) {\n abort();\n return;\n }\n controller.enqueue(value);\n } catch (error) {\n if (isAbortError2(error) && (abortSignal == null ? void 0 : abortSignal.aborted)) {\n abort();\n } else {\n controller.error(error);\n }\n }\n },\n cancel(reason) {\n return stitchableStream.stream.cancel(reason);\n }\n });\n for (const transform of transforms) {\n stream = stream.pipeThrough(\n transform({\n tools,\n stopStream() {\n stitchableStream.terminate();\n }\n })\n );\n }\n this.baseStream = stream.pipeThrough(createOutputTransformStream(output)).pipeThrough(eventProcessor);\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal\n });\n const tracer = getTracer(telemetry);\n const callSettings = prepareCallSettings(settings);\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers,\n settings: { ...callSettings, maxRetries }\n });\n const self = this;\n recordSpan({\n name: \"ai.streamText\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({ operationId: \"ai.streamText\", telemetry }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n \"ai.prompt\": {\n input: () => JSON.stringify({ system, prompt, messages })\n }\n }\n }),\n tracer,\n endWhenDone: false,\n fn: async (rootSpanArg) => {\n rootSpan = rootSpanArg;\n async function streamStep({\n currentStep,\n responseMessages,\n usage\n }) {\n var _a16, _b, _c, _d, _e;\n const includeRawChunks2 = self.includeRawChunks;\n stepFinish = new DelayedPromise();\n const initialPrompt = await standardizePrompt({\n system,\n prompt,\n messages\n });\n const stepInputMessages = [\n ...initialPrompt.messages,\n ...responseMessages\n ];\n const prepareStepResult = await (prepareStep == null ? void 0 : prepareStep({\n model,\n steps: recordedSteps,\n stepNumber: recordedSteps.length,\n messages: stepInputMessages\n }));\n const stepModel = resolveLanguageModel(\n (_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model\n );\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: {\n system: (_b = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b : initialPrompt.system,\n messages: (_c = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _c : stepInputMessages\n },\n supportedUrls: await stepModel.supportedUrls,\n download: download2\n });\n const { toolChoice: stepToolChoice, tools: stepTools } = prepareToolsAndToolChoice({\n tools,\n toolChoice: (_d = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _d : toolChoice,\n activeTools: (_e = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _e : activeTools\n });\n const {\n result: { stream: stream2, response, request },\n doStreamSpan,\n startTimestampMs\n } = await retry(\n () => recordSpan({\n name: \"ai.streamText.doStream\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.streamText.doStream\",\n telemetry\n }),\n ...baseTelemetryAttributes,\n // model:\n \"ai.model.provider\": stepModel.provider,\n \"ai.model.id\": stepModel.modelId,\n // prompt:\n \"ai.prompt.messages\": {\n input: () => stringifyForTelemetry(promptMessages)\n },\n \"ai.prompt.tools\": {\n // convert the language model level tools:\n input: () => stepTools == null ? void 0 : stepTools.map((tool2) => JSON.stringify(tool2))\n },\n \"ai.prompt.toolChoice\": {\n input: () => stepToolChoice != null ? JSON.stringify(stepToolChoice) : void 0\n },\n // standardized gen-ai llm span attributes:\n \"gen_ai.system\": stepModel.provider,\n \"gen_ai.request.model\": stepModel.modelId,\n \"gen_ai.request.frequency_penalty\": callSettings.frequencyPenalty,\n \"gen_ai.request.max_tokens\": callSettings.maxOutputTokens,\n \"gen_ai.request.presence_penalty\": callSettings.presencePenalty,\n \"gen_ai.request.stop_sequences\": callSettings.stopSequences,\n \"gen_ai.request.temperature\": callSettings.temperature,\n \"gen_ai.request.top_k\": callSettings.topK,\n \"gen_ai.request.top_p\": callSettings.topP\n }\n }),\n tracer,\n endWhenDone: false,\n fn: async (doStreamSpan2) => {\n return {\n startTimestampMs: now2(),\n // get before the call\n doStreamSpan: doStreamSpan2,\n result: await stepModel.doStream({\n ...callSettings,\n tools: stepTools,\n toolChoice: stepToolChoice,\n responseFormat: output == null ? void 0 : output.responseFormat,\n prompt: promptMessages,\n providerOptions,\n abortSignal,\n headers,\n includeRawChunks: includeRawChunks2\n })\n };\n }\n })\n );\n const streamWithToolResults = runToolsTransformation({\n tools,\n generatorStream: stream2,\n tracer,\n telemetry,\n system,\n messages: stepInputMessages,\n repairToolCall,\n abortSignal,\n experimental_context\n });\n const stepRequest = request != null ? request : {};\n const stepToolCalls = [];\n const stepToolOutputs = [];\n let warnings;\n const activeToolCallToolNames = {};\n let stepFinishReason = \"unknown\";\n let stepUsage = {\n inputTokens: void 0,\n outputTokens: void 0,\n totalTokens: void 0\n };\n let stepProviderMetadata;\n let stepFirstChunk = true;\n let stepResponse = {\n id: generateId3(),\n timestamp: currentDate(),\n modelId: model.modelId\n };\n let activeText = \"\";\n self.addStream(\n streamWithToolResults.pipeThrough(\n new TransformStream({\n async transform(chunk, controller) {\n var _a17, _b2, _c2, _d2;\n if (chunk.type === \"stream-start\") {\n warnings = chunk.warnings;\n return;\n }\n if (stepFirstChunk) {\n const msToFirstChunk = now2() - startTimestampMs;\n stepFirstChunk = false;\n doStreamSpan.addEvent(\"ai.stream.firstChunk\", {\n \"ai.response.msToFirstChunk\": msToFirstChunk\n });\n doStreamSpan.setAttributes({\n \"ai.response.msToFirstChunk\": msToFirstChunk\n });\n controller.enqueue({\n type: \"start-step\",\n request: stepRequest,\n warnings: warnings != null ? warnings : []\n });\n }\n const chunkType = chunk.type;\n switch (chunkType) {\n case \"text-start\":\n case \"text-end\": {\n controller.enqueue(chunk);\n break;\n }\n case \"text-delta\": {\n if (chunk.delta.length > 0) {\n controller.enqueue({\n type: \"text-delta\",\n id: chunk.id,\n text: chunk.delta,\n providerMetadata: chunk.providerMetadata\n });\n activeText += chunk.delta;\n }\n break;\n }\n case \"reasoning-start\":\n case \"reasoning-end\": {\n controller.enqueue(chunk);\n break;\n }\n case \"reasoning-delta\": {\n controller.enqueue({\n type: \"reasoning-delta\",\n id: chunk.id,\n text: chunk.delta,\n providerMetadata: chunk.providerMetadata\n });\n break;\n }\n case \"tool-call\": {\n controller.enqueue(chunk);\n stepToolCalls.push(chunk);\n break;\n }\n case \"tool-result\": {\n controller.enqueue(chunk);\n if (!chunk.preliminary) {\n stepToolOutputs.push(chunk);\n }\n break;\n }\n case \"tool-error\": {\n controller.enqueue(chunk);\n stepToolOutputs.push(chunk);\n break;\n }\n case \"response-metadata\": {\n stepResponse = {\n id: (_a17 = chunk.id) != null ? _a17 : stepResponse.id,\n timestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,\n modelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId\n };\n break;\n }\n case \"finish\": {\n stepUsage = chunk.usage;\n stepFinishReason = chunk.finishReason;\n stepProviderMetadata = chunk.providerMetadata;\n const msToFinish = now2() - startTimestampMs;\n doStreamSpan.addEvent(\"ai.stream.finish\");\n doStreamSpan.setAttributes({\n \"ai.response.msToFinish\": msToFinish,\n \"ai.response.avgOutputTokensPerSecond\": 1e3 * ((_d2 = stepUsage.outputTokens) != null ? _d2 : 0) / msToFinish\n });\n break;\n }\n case \"file\": {\n controller.enqueue(chunk);\n break;\n }\n case \"source\": {\n controller.enqueue(chunk);\n break;\n }\n case \"tool-input-start\": {\n activeToolCallToolNames[chunk.id] = chunk.toolName;\n const tool2 = tools == null ? void 0 : tools[chunk.toolName];\n if ((tool2 == null ? void 0 : tool2.onInputStart) != null) {\n await tool2.onInputStart({\n toolCallId: chunk.id,\n messages: stepInputMessages,\n abortSignal,\n experimental_context\n });\n }\n controller.enqueue({\n ...chunk,\n dynamic: (tool2 == null ? void 0 : tool2.type) === \"dynamic\"\n });\n break;\n }\n case \"tool-input-end\": {\n delete activeToolCallToolNames[chunk.id];\n controller.enqueue(chunk);\n break;\n }\n case \"tool-input-delta\": {\n const toolName = activeToolCallToolNames[chunk.id];\n const tool2 = tools == null ? void 0 : tools[toolName];\n if ((tool2 == null ? void 0 : tool2.onInputDelta) != null) {\n await tool2.onInputDelta({\n inputTextDelta: chunk.delta,\n toolCallId: chunk.id,\n messages: stepInputMessages,\n abortSignal,\n experimental_context\n });\n }\n controller.enqueue(chunk);\n break;\n }\n case \"error\": {\n controller.enqueue(chunk);\n stepFinishReason = \"error\";\n break;\n }\n case \"raw\": {\n if (includeRawChunks2) {\n controller.enqueue(chunk);\n }\n break;\n }\n default: {\n const exhaustiveCheck = chunkType;\n throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);\n }\n }\n },\n // invoke onFinish callback and resolve toolResults promise when the stream is about to close:\n async flush(controller) {\n const stepToolCallsJson = stepToolCalls.length > 0 ? JSON.stringify(stepToolCalls) : void 0;\n try {\n doStreamSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.response.finishReason\": stepFinishReason,\n \"ai.response.text\": {\n output: () => activeText\n },\n \"ai.response.toolCalls\": {\n output: () => stepToolCallsJson\n },\n \"ai.response.id\": stepResponse.id,\n \"ai.response.model\": stepResponse.modelId,\n \"ai.response.timestamp\": stepResponse.timestamp.toISOString(),\n \"ai.response.providerMetadata\": JSON.stringify(stepProviderMetadata),\n \"ai.usage.inputTokens\": stepUsage.inputTokens,\n \"ai.usage.outputTokens\": stepUsage.outputTokens,\n \"ai.usage.totalTokens\": stepUsage.totalTokens,\n \"ai.usage.reasoningTokens\": stepUsage.reasoningTokens,\n \"ai.usage.cachedInputTokens\": stepUsage.cachedInputTokens,\n // standardized gen-ai llm span attributes:\n \"gen_ai.response.finish_reasons\": [stepFinishReason],\n \"gen_ai.response.id\": stepResponse.id,\n \"gen_ai.response.model\": stepResponse.modelId,\n \"gen_ai.usage.input_tokens\": stepUsage.inputTokens,\n \"gen_ai.usage.output_tokens\": stepUsage.outputTokens\n }\n })\n );\n } catch (error) {\n } finally {\n doStreamSpan.end();\n }\n controller.enqueue({\n type: \"finish-step\",\n finishReason: stepFinishReason,\n usage: stepUsage,\n providerMetadata: stepProviderMetadata,\n response: {\n ...stepResponse,\n headers: response == null ? void 0 : response.headers\n }\n });\n const combinedUsage = addLanguageModelUsage(usage, stepUsage);\n await stepFinish.promise;\n const clientToolCalls = stepToolCalls.filter(\n (toolCall) => toolCall.providerExecuted !== true\n );\n const clientToolOutputs = stepToolOutputs.filter(\n (toolOutput) => toolOutput.providerExecuted !== true\n );\n if (clientToolCalls.length > 0 && // all current tool calls have outputs (incl. execution errors):\n clientToolOutputs.length === clientToolCalls.length && // continue until a stop condition is met:\n !await isStopConditionMet({\n stopConditions,\n steps: recordedSteps\n })) {\n responseMessages.push(\n ...toResponseMessages({\n content: (\n // use transformed content to create the messages for the next step:\n recordedSteps[recordedSteps.length - 1].content\n ),\n tools\n })\n );\n try {\n await streamStep({\n currentStep: currentStep + 1,\n responseMessages,\n usage: combinedUsage\n });\n } catch (error) {\n controller.enqueue({\n type: \"error\",\n error\n });\n self.closeStream();\n }\n } else {\n controller.enqueue({\n type: \"finish\",\n finishReason: stepFinishReason,\n totalUsage: combinedUsage\n });\n self.closeStream();\n }\n }\n })\n )\n );\n }\n await streamStep({\n currentStep: 0,\n responseMessages: [],\n usage: {\n inputTokens: void 0,\n outputTokens: void 0,\n totalTokens: void 0\n }\n });\n }\n }).catch((error) => {\n self.addStream(\n new ReadableStream({\n start(controller) {\n controller.enqueue({ type: \"error\", error });\n controller.close();\n }\n })\n );\n self.closeStream();\n });\n }\n get steps() {\n this.consumeStream();\n return this._steps.promise;\n }\n get finalStep() {\n return this.steps.then((steps) => steps[steps.length - 1]);\n }\n get content() {\n return this.finalStep.then((step) => step.content);\n }\n get warnings() {\n return this.finalStep.then((step) => step.warnings);\n }\n get providerMetadata() {\n return this.finalStep.then((step) => step.providerMetadata);\n }\n get text() {\n return this.finalStep.then((step) => step.text);\n }\n get reasoningText() {\n return this.finalStep.then((step) => step.reasoningText);\n }\n get reasoning() {\n return this.finalStep.then((step) => step.reasoning);\n }\n get sources() {\n return this.finalStep.then((step) => step.sources);\n }\n get files() {\n return this.finalStep.then((step) => step.files);\n }\n get toolCalls() {\n return this.finalStep.then((step) => step.toolCalls);\n }\n get staticToolCalls() {\n return this.finalStep.then((step) => step.staticToolCalls);\n }\n get dynamicToolCalls() {\n return this.finalStep.then((step) => step.dynamicToolCalls);\n }\n get toolResults() {\n return this.finalStep.then((step) => step.toolResults);\n }\n get staticToolResults() {\n return this.finalStep.then((step) => step.staticToolResults);\n }\n get dynamicToolResults() {\n return this.finalStep.then((step) => step.dynamicToolResults);\n }\n get usage() {\n return this.finalStep.then((step) => step.usage);\n }\n get request() {\n return this.finalStep.then((step) => step.request);\n }\n get response() {\n return this.finalStep.then((step) => step.response);\n }\n get totalUsage() {\n this.consumeStream();\n return this._totalUsage.promise;\n }\n get finishReason() {\n this.consumeStream();\n return this._finishReason.promise;\n }\n /**\n Split out a new stream from the original stream.\n The original stream is replaced to allow for further splitting,\n since we do not know how many times the stream will be split.\n \n Note: this leads to buffering the stream content on the server.\n However, the LLM results are expected to be small enough to not cause issues.\n */\n teeStream() {\n const [stream1, stream2] = this.baseStream.tee();\n this.baseStream = stream2;\n return stream1;\n }\n get textStream() {\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream({\n transform({ part }, controller) {\n if (part.type === \"text-delta\") {\n controller.enqueue(part.text);\n }\n }\n })\n )\n );\n }\n get fullStream() {\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream({\n transform({ part }, controller) {\n controller.enqueue(part);\n }\n })\n )\n );\n }\n async consumeStream(options) {\n var _a16;\n try {\n await consumeStream({\n stream: this.fullStream,\n onError: options == null ? void 0 : options.onError\n });\n } catch (error) {\n (_a16 = options == null ? void 0 : options.onError) == null ? void 0 : _a16.call(options, error);\n }\n }\n get experimental_partialOutputStream() {\n if (this.output == null) {\n throw new NoOutputSpecifiedError();\n }\n return createAsyncIterableStream(\n this.teeStream().pipeThrough(\n new TransformStream({\n transform({ partialOutput }, controller) {\n if (partialOutput != null) {\n controller.enqueue(partialOutput);\n }\n }\n })\n )\n );\n }\n toUIMessageStream({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning = true,\n sendSources = false,\n sendStart = true,\n sendFinish = true,\n onError = getErrorMessage7\n } = {}) {\n const responseMessageId = generateMessageId != null ? getResponseUIMessageId({\n originalMessages,\n responseMessageId: generateMessageId\n }) : void 0;\n const toolNamesByCallId = {};\n const isDynamic = (toolCallId) => {\n var _a16, _b;\n const toolName = toolNamesByCallId[toolCallId];\n const dynamic = ((_b = (_a16 = this.tools) == null ? void 0 : _a16[toolName]) == null ? void 0 : _b.type) === \"dynamic\";\n return dynamic ? true : void 0;\n };\n const baseStream = this.fullStream.pipeThrough(\n new TransformStream({\n transform: async (part, controller) => {\n const messageMetadataValue = messageMetadata == null ? void 0 : messageMetadata({ part });\n const partType = part.type;\n switch (partType) {\n case \"text-start\": {\n controller.enqueue({\n type: \"text-start\",\n id: part.id,\n ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n });\n break;\n }\n case \"text-delta\": {\n controller.enqueue({\n type: \"text-delta\",\n id: part.id,\n delta: part.text,\n ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n });\n break;\n }\n case \"text-end\": {\n controller.enqueue({\n type: \"text-end\",\n id: part.id,\n ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n });\n break;\n }\n case \"reasoning-start\": {\n controller.enqueue({\n type: \"reasoning-start\",\n id: part.id,\n ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n });\n break;\n }\n case \"reasoning-delta\": {\n if (sendReasoning) {\n controller.enqueue({\n type: \"reasoning-delta\",\n id: part.id,\n delta: part.text,\n ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n });\n }\n break;\n }\n case \"reasoning-end\": {\n controller.enqueue({\n type: \"reasoning-end\",\n id: part.id,\n ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n });\n break;\n }\n case \"file\": {\n controller.enqueue({\n type: \"file\",\n mediaType: part.file.mediaType,\n url: `data:${part.file.mediaType};base64,${part.file.base64}`\n });\n break;\n }\n case \"source\": {\n if (sendSources && part.sourceType === \"url\") {\n controller.enqueue({\n type: \"source-url\",\n sourceId: part.id,\n url: part.url,\n title: part.title,\n ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n });\n }\n if (sendSources && part.sourceType === \"document\") {\n controller.enqueue({\n type: \"source-document\",\n sourceId: part.id,\n mediaType: part.mediaType,\n title: part.title,\n filename: part.filename,\n ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n });\n }\n break;\n }\n case \"tool-input-start\": {\n toolNamesByCallId[part.id] = part.toolName;\n const dynamic = isDynamic(part.id);\n controller.enqueue({\n type: \"tool-input-start\",\n toolCallId: part.id,\n toolName: part.toolName,\n ...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},\n ...dynamic != null ? { dynamic } : {}\n });\n break;\n }\n case \"tool-input-delta\": {\n controller.enqueue({\n type: \"tool-input-delta\",\n toolCallId: part.id,\n inputTextDelta: part.delta\n });\n break;\n }\n case \"tool-call\": {\n toolNamesByCallId[part.toolCallId] = part.toolName;\n const dynamic = isDynamic(part.toolCallId);\n if (part.invalid) {\n controller.enqueue({\n type: \"tool-input-error\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},\n ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},\n ...dynamic != null ? { dynamic } : {},\n errorText: onError(part.error)\n });\n } else {\n controller.enqueue({\n type: \"tool-input-available\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},\n ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},\n ...dynamic != null ? { dynamic } : {}\n });\n }\n break;\n }\n case \"tool-result\": {\n const dynamic = isDynamic(part.toolCallId);\n controller.enqueue({\n type: \"tool-output-available\",\n toolCallId: part.toolCallId,\n output: part.output,\n ...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},\n ...part.preliminary != null ? { preliminary: part.preliminary } : {},\n ...dynamic != null ? { dynamic } : {}\n });\n break;\n }\n case \"tool-error\": {\n const dynamic = isDynamic(part.toolCallId);\n controller.enqueue({\n type: \"tool-output-error\",\n toolCallId: part.toolCallId,\n errorText: onError(part.error),\n ...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},\n ...dynamic != null ? { dynamic } : {}\n });\n break;\n }\n case \"error\": {\n controller.enqueue({\n type: \"error\",\n errorText: onError(part.error)\n });\n break;\n }\n case \"start-step\": {\n controller.enqueue({ type: \"start-step\" });\n break;\n }\n case \"finish-step\": {\n controller.enqueue({ type: \"finish-step\" });\n break;\n }\n case \"start\": {\n if (sendStart) {\n controller.enqueue({\n type: \"start\",\n ...messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {},\n ...responseMessageId != null ? { messageId: responseMessageId } : {}\n });\n }\n break;\n }\n case \"finish\": {\n if (sendFinish) {\n controller.enqueue({\n type: \"finish\",\n ...messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}\n });\n }\n break;\n }\n case \"abort\": {\n controller.enqueue(part);\n break;\n }\n case \"tool-input-end\": {\n break;\n }\n case \"raw\": {\n break;\n }\n default: {\n const exhaustiveCheck = partType;\n throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);\n }\n }\n if (messageMetadataValue != null && partType !== \"start\" && partType !== \"finish\") {\n controller.enqueue({\n type: \"message-metadata\",\n messageMetadata: messageMetadataValue\n });\n }\n }\n })\n );\n return createAsyncIterableStream(\n handleUIMessageStreamFinish({\n stream: baseStream,\n messageId: responseMessageId != null ? responseMessageId : generateMessageId == null ? void 0 : generateMessageId(),\n originalMessages,\n onFinish,\n onError\n })\n );\n }\n pipeUIMessageStreamToResponse(response, {\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError,\n ...init\n } = {}) {\n pipeUIMessageStreamToResponse({\n response,\n stream: this.toUIMessageStream({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError\n }),\n ...init\n });\n }\n pipeTextStreamToResponse(response, init) {\n pipeTextStreamToResponse({\n response,\n textStream: this.textStream,\n ...init\n });\n }\n toUIMessageStreamResponse({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError,\n ...init\n } = {}) {\n return createUIMessageStreamResponse({\n stream: this.toUIMessageStream({\n originalMessages,\n generateMessageId,\n onFinish,\n messageMetadata,\n sendReasoning,\n sendSources,\n sendFinish,\n sendStart,\n onError\n }),\n ...init\n });\n }\n toTextStreamResponse(init) {\n return createTextStreamResponse({\n textStream: this.textStream,\n ...init\n });\n }\n};\n\n// src/ui/convert-to-model-messages.ts\nfunction convertToModelMessages(messages, options) {\n const modelMessages = [];\n if (options == null ? void 0 : options.ignoreIncompleteToolCalls) {\n messages = messages.map((message) => ({\n ...message,\n parts: message.parts.filter(\n (part) => !isToolOrDynamicToolUIPart(part) || part.state !== \"input-streaming\" && part.state !== \"input-available\"\n )\n }));\n }\n for (const message of messages) {\n switch (message.role) {\n case \"system\": {\n const textParts = message.parts.filter(\n (part) => part.type === \"text\"\n );\n const providerMetadata = textParts.reduce((acc, part) => {\n if (part.providerMetadata != null) {\n return { ...acc, ...part.providerMetadata };\n }\n return acc;\n }, {});\n modelMessages.push({\n role: \"system\",\n content: textParts.map((part) => part.text).join(\"\"),\n ...Object.keys(providerMetadata).length > 0 ? { providerOptions: providerMetadata } : {}\n });\n break;\n }\n case \"user\": {\n modelMessages.push({\n role: \"user\",\n content: message.parts.map((part) => {\n var _a16;\n if (isTextUIPart(part)) {\n return {\n type: \"text\",\n text: part.text,\n ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}\n };\n }\n if (isFileUIPart(part)) {\n return {\n type: \"file\",\n mediaType: part.mediaType,\n filename: part.filename,\n data: part.url,\n ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}\n };\n }\n if (isDataUIPart(part)) {\n return (_a16 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a16.call(\n options,\n part\n );\n }\n }).filter((part) => part != null)\n });\n break;\n }\n case \"assistant\": {\n if (message.parts != null) {\n let processBlock2 = function() {\n var _a16, _b, _c;\n if (block.length === 0) {\n return;\n }\n const content = [];\n for (const part of block) {\n if (isTextUIPart(part)) {\n content.push({\n type: \"text\",\n text: part.text,\n ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}\n });\n } else if (isFileUIPart(part)) {\n content.push({\n type: \"file\",\n mediaType: part.mediaType,\n filename: part.filename,\n data: part.url\n });\n } else if (isReasoningUIPart(part)) {\n content.push({\n type: \"reasoning\",\n text: part.text,\n providerOptions: part.providerMetadata\n });\n } else if (isDynamicToolUIPart(part)) {\n const toolName = part.toolName;\n if (part.state !== \"input-streaming\") {\n content.push({\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName,\n input: part.input,\n ...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}\n });\n }\n } else if (isToolUIPart(part)) {\n const toolName = getToolName(part);\n if (part.state !== \"input-streaming\") {\n content.push({\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName,\n input: part.state === \"output-error\" ? (_a16 = part.input) != null ? _a16 : part.rawInput : part.input,\n providerExecuted: part.providerExecuted,\n ...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}\n });\n if (part.providerExecuted === true && (part.state === \"output-available\" || part.state === \"output-error\")) {\n content.push({\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName,\n output: createToolModelOutput({\n output: part.state === \"output-error\" ? part.errorText : part.output,\n tool: (_b = options == null ? void 0 : options.tools) == null ? void 0 : _b[toolName],\n errorMode: part.state === \"output-error\" ? \"json\" : \"none\"\n })\n });\n }\n }\n } else if (isDataUIPart(part)) {\n const dataPart = (_c = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _c.call(\n options,\n part\n );\n if (dataPart != null) {\n content.push(dataPart);\n }\n } else {\n const _exhaustiveCheck = part;\n throw new Error(`Unsupported part: ${_exhaustiveCheck}`);\n }\n }\n modelMessages.push({\n role: \"assistant\",\n content\n });\n const toolParts = block.filter(\n (part) => isToolUIPart(part) && part.providerExecuted !== true || part.type === \"dynamic-tool\"\n );\n if (toolParts.length > 0) {\n modelMessages.push({\n role: \"tool\",\n content: toolParts.map((toolPart) => {\n var _a17;\n switch (toolPart.state) {\n case \"output-error\":\n case \"output-available\": {\n const toolName = getToolOrDynamicToolName(toolPart);\n return {\n type: \"tool-result\",\n toolCallId: toolPart.toolCallId,\n toolName,\n output: createToolModelOutput({\n output: toolPart.state === \"output-error\" ? toolPart.errorText : toolPart.output,\n tool: (_a17 = options == null ? void 0 : options.tools) == null ? void 0 : _a17[toolName],\n errorMode: toolPart.state === \"output-error\" ? \"text\" : \"none\"\n })\n };\n }\n default: {\n return null;\n }\n }\n }).filter(\n (output) => output != null\n )\n });\n }\n block = [];\n };\n var processBlock = processBlock2;\n let block = [];\n for (const part of message.parts) {\n if (isTextUIPart(part) || isReasoningUIPart(part) || isFileUIPart(part) || isToolOrDynamicToolUIPart(part) || isDataUIPart(part)) {\n block.push(part);\n } else if (part.type === \"step-start\") {\n processBlock2();\n }\n }\n processBlock2();\n break;\n }\n break;\n }\n default: {\n const _exhaustiveCheck = message.role;\n throw new MessageConversionError({\n originalMessage: message,\n message: `Unsupported role: ${_exhaustiveCheck}`\n });\n }\n }\n }\n return modelMessages;\n}\nvar convertToCoreMessages = convertToModelMessages;\n\n// src/agent/agent.ts\nvar Agent = class {\n constructor(settings) {\n this.settings = settings;\n }\n get tools() {\n return this.settings.tools;\n }\n async generate(options) {\n return generateText({ ...this.settings, ...options });\n }\n stream(options) {\n return streamText({ ...this.settings, ...options });\n }\n /**\n * Creates a response object that streams UI messages to the client.\n */\n respond(options) {\n return this.stream({\n prompt: convertToModelMessages(options.messages)\n }).toUIMessageStreamResponse();\n }\n};\n\n// src/embed/embed.ts\nimport { withUserAgentSuffix as withUserAgentSuffix3 } from \"@ai-sdk/provider-utils\";\nasync function embed({\n model: modelArg,\n value,\n providerOptions,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n experimental_telemetry: telemetry\n}) {\n const model = resolveEmbeddingModel(modelArg);\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal\n });\n const headersWithUserAgent = withUserAgentSuffix3(\n headers != null ? headers : {},\n `ai/${VERSION}`\n );\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers: headersWithUserAgent,\n settings: { maxRetries }\n });\n const tracer = getTracer(telemetry);\n return recordSpan({\n name: \"ai.embed\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({ operationId: \"ai.embed\", telemetry }),\n ...baseTelemetryAttributes,\n \"ai.value\": { input: () => JSON.stringify(value) }\n }\n }),\n tracer,\n fn: async (span) => {\n const { embedding, usage, response, providerMetadata } = await retry(\n () => (\n // nested spans to align with the embedMany telemetry data:\n recordSpan({\n name: \"ai.embed.doEmbed\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.embed.doEmbed\",\n telemetry\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n \"ai.values\": { input: () => [JSON.stringify(value)] }\n }\n }),\n tracer,\n fn: async (doEmbedSpan) => {\n var _a16;\n const modelResponse = await model.doEmbed({\n values: [value],\n abortSignal,\n headers: headersWithUserAgent,\n providerOptions\n });\n const embedding2 = modelResponse.embeddings[0];\n const usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };\n doEmbedSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.embeddings\": {\n output: () => modelResponse.embeddings.map(\n (embedding3) => JSON.stringify(embedding3)\n )\n },\n \"ai.usage.tokens\": usage2.tokens\n }\n })\n );\n return {\n embedding: embedding2,\n usage: usage2,\n providerMetadata: modelResponse.providerMetadata,\n response: modelResponse.response\n };\n }\n })\n )\n );\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.embedding\": { output: () => JSON.stringify(embedding) },\n \"ai.usage.tokens\": usage.tokens\n }\n })\n );\n return new DefaultEmbedResult({\n value,\n embedding,\n usage,\n providerMetadata,\n response\n });\n }\n });\n}\nvar DefaultEmbedResult = class {\n constructor(options) {\n this.value = options.value;\n this.embedding = options.embedding;\n this.usage = options.usage;\n this.providerMetadata = options.providerMetadata;\n this.response = options.response;\n }\n};\n\n// src/embed/embed-many.ts\nimport { withUserAgentSuffix as withUserAgentSuffix4 } from \"@ai-sdk/provider-utils\";\n\n// src/util/split-array.ts\nfunction splitArray(array, chunkSize) {\n if (chunkSize <= 0) {\n throw new Error(\"chunkSize must be greater than 0\");\n }\n const result = [];\n for (let i = 0; i < array.length; i += chunkSize) {\n result.push(array.slice(i, i + chunkSize));\n }\n return result;\n}\n\n// src/embed/embed-many.ts\nasync function embedMany({\n model: modelArg,\n values,\n maxParallelCalls = Infinity,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n providerOptions,\n experimental_telemetry: telemetry\n}) {\n const model = resolveEmbeddingModel(modelArg);\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal\n });\n const headersWithUserAgent = withUserAgentSuffix4(\n headers != null ? headers : {},\n `ai/${VERSION}`\n );\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers: headersWithUserAgent,\n settings: { maxRetries }\n });\n const tracer = getTracer(telemetry);\n return recordSpan({\n name: \"ai.embedMany\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({ operationId: \"ai.embedMany\", telemetry }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n \"ai.values\": {\n input: () => values.map((value) => JSON.stringify(value))\n }\n }\n }),\n tracer,\n fn: async (span) => {\n var _a16;\n const [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all([\n model.maxEmbeddingsPerCall,\n model.supportsParallelCalls\n ]);\n if (maxEmbeddingsPerCall == null || maxEmbeddingsPerCall === Infinity) {\n const { embeddings: embeddings2, usage, response, providerMetadata: providerMetadata2 } = await retry(\n () => {\n return recordSpan({\n name: \"ai.embedMany.doEmbed\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.embedMany.doEmbed\",\n telemetry\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n \"ai.values\": {\n input: () => values.map((value) => JSON.stringify(value))\n }\n }\n }),\n tracer,\n fn: async (doEmbedSpan) => {\n var _a17;\n const modelResponse = await model.doEmbed({\n values,\n abortSignal,\n headers: headersWithUserAgent,\n providerOptions\n });\n const embeddings3 = modelResponse.embeddings;\n const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };\n doEmbedSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.embeddings\": {\n output: () => embeddings3.map(\n (embedding) => JSON.stringify(embedding)\n )\n },\n \"ai.usage.tokens\": usage2.tokens\n }\n })\n );\n return {\n embeddings: embeddings3,\n usage: usage2,\n providerMetadata: modelResponse.providerMetadata,\n response: modelResponse.response\n };\n }\n });\n }\n );\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.embeddings\": {\n output: () => embeddings2.map((embedding) => JSON.stringify(embedding))\n },\n \"ai.usage.tokens\": usage.tokens\n }\n })\n );\n return new DefaultEmbedManyResult({\n values,\n embeddings: embeddings2,\n usage,\n providerMetadata: providerMetadata2,\n responses: [response]\n });\n }\n const valueChunks = splitArray(values, maxEmbeddingsPerCall);\n const embeddings = [];\n const responses = [];\n let tokens = 0;\n let providerMetadata;\n const parallelChunks = splitArray(\n valueChunks,\n supportsParallelCalls ? maxParallelCalls : 1\n );\n for (const parallelChunk of parallelChunks) {\n const results = await Promise.all(\n parallelChunk.map((chunk) => {\n return retry(() => {\n return recordSpan({\n name: \"ai.embedMany.doEmbed\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.embedMany.doEmbed\",\n telemetry\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n \"ai.values\": {\n input: () => chunk.map((value) => JSON.stringify(value))\n }\n }\n }),\n tracer,\n fn: async (doEmbedSpan) => {\n var _a17;\n const modelResponse = await model.doEmbed({\n values: chunk,\n abortSignal,\n headers: headersWithUserAgent,\n providerOptions\n });\n const embeddings2 = modelResponse.embeddings;\n const usage = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };\n doEmbedSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.embeddings\": {\n output: () => embeddings2.map(\n (embedding) => JSON.stringify(embedding)\n )\n },\n \"ai.usage.tokens\": usage.tokens\n }\n })\n );\n return {\n embeddings: embeddings2,\n usage,\n providerMetadata: modelResponse.providerMetadata,\n response: modelResponse.response\n };\n }\n });\n });\n })\n );\n for (const result of results) {\n embeddings.push(...result.embeddings);\n responses.push(result.response);\n tokens += result.usage.tokens;\n if (result.providerMetadata) {\n if (!providerMetadata) {\n providerMetadata = { ...result.providerMetadata };\n } else {\n for (const [providerName, metadata] of Object.entries(\n result.providerMetadata\n )) {\n providerMetadata[providerName] = {\n ...(_a16 = providerMetadata[providerName]) != null ? _a16 : {},\n ...metadata\n };\n }\n }\n }\n }\n }\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.embeddings\": {\n output: () => embeddings.map((embedding) => JSON.stringify(embedding))\n },\n \"ai.usage.tokens\": tokens\n }\n })\n );\n return new DefaultEmbedManyResult({\n values,\n embeddings,\n usage: { tokens },\n providerMetadata,\n responses\n });\n }\n });\n}\nvar DefaultEmbedManyResult = class {\n constructor(options) {\n this.values = options.values;\n this.embeddings = options.embeddings;\n this.usage = options.usage;\n this.providerMetadata = options.providerMetadata;\n this.responses = options.responses;\n }\n};\n\n// src/generate-image/generate-image.ts\nimport { withUserAgentSuffix as withUserAgentSuffix5 } from \"@ai-sdk/provider-utils\";\nasync function generateImage({\n model,\n prompt,\n n = 1,\n maxImagesPerCall,\n size,\n aspectRatio,\n seed,\n providerOptions,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers\n}) {\n var _a16, _b;\n if (model.specificationVersion !== \"v2\") {\n throw new UnsupportedModelVersionError({\n version: model.specificationVersion,\n provider: model.provider,\n modelId: model.modelId\n });\n }\n const headersWithUserAgent = withUserAgentSuffix5(\n headers != null ? headers : {},\n `ai/${VERSION}`\n );\n const { retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal\n });\n const maxImagesPerCallWithDefault = (_a16 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a16 : 1;\n const callCount = Math.ceil(n / maxImagesPerCallWithDefault);\n const callImageCounts = Array.from({ length: callCount }, (_, i) => {\n if (i < callCount - 1) {\n return maxImagesPerCallWithDefault;\n }\n const remainder = n % maxImagesPerCallWithDefault;\n return remainder === 0 ? maxImagesPerCallWithDefault : remainder;\n });\n const results = await Promise.all(\n callImageCounts.map(\n async (callImageCount) => retry(\n () => model.doGenerate({\n prompt,\n n: callImageCount,\n abortSignal,\n headers: headersWithUserAgent,\n size,\n aspectRatio,\n seed,\n providerOptions: providerOptions != null ? providerOptions : {}\n })\n )\n )\n );\n const images = [];\n const warnings = [];\n const responses = [];\n const providerMetadata = {};\n for (const result of results) {\n images.push(\n ...result.images.map(\n (image) => {\n var _a17;\n return new DefaultGeneratedFile({\n data: image,\n mediaType: (_a17 = detectMediaType({\n data: image,\n signatures: imageMediaTypeSignatures\n })) != null ? _a17 : \"image/png\"\n });\n }\n )\n );\n warnings.push(...result.warnings);\n if (result.providerMetadata) {\n for (const [providerName, metadata] of Object.entries(result.providerMetadata)) {\n (_b = providerMetadata[providerName]) != null ? _b : providerMetadata[providerName] = { images: [] };\n providerMetadata[providerName].images.push(\n ...result.providerMetadata[providerName].images\n );\n }\n }\n responses.push(result.response);\n }\n logWarnings(warnings);\n if (!images.length) {\n throw new NoImageGeneratedError({ responses });\n }\n return new DefaultGenerateImageResult({\n images,\n warnings,\n responses,\n providerMetadata\n });\n}\nvar DefaultGenerateImageResult = class {\n constructor(options) {\n this.images = options.images;\n this.warnings = options.warnings;\n this.responses = options.responses;\n this.providerMetadata = options.providerMetadata;\n }\n get image() {\n return this.images[0];\n }\n};\nasync function invokeModelMaxImagesPerCall(model) {\n const isFunction = model.maxImagesPerCall instanceof Function;\n if (!isFunction) {\n return model.maxImagesPerCall;\n }\n return model.maxImagesPerCall({\n modelId: model.modelId\n });\n}\n\n// src/generate-object/generate-object.ts\nimport {\n createIdGenerator as createIdGenerator3,\n withUserAgentSuffix as withUserAgentSuffix6\n} from \"@ai-sdk/provider-utils\";\n\n// src/generate-text/extract-reasoning-content.ts\nfunction extractReasoningContent(content) {\n const parts = content.filter(\n (content2) => content2.type === \"reasoning\"\n );\n return parts.length === 0 ? void 0 : parts.map((content2) => content2.text).join(\"\\n\");\n}\n\n// src/generate-object/output-strategy.ts\nimport {\n isJSONArray,\n isJSONObject,\n TypeValidationError as TypeValidationError2,\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nimport {\n asSchema as asSchema3,\n safeValidateTypes as safeValidateTypes3\n} from \"@ai-sdk/provider-utils\";\nvar noSchemaOutputStrategy = {\n type: \"no-schema\",\n jsonSchema: void 0,\n async validatePartialResult({ value, textDelta }) {\n return { success: true, value: { partial: value, textDelta } };\n },\n async validateFinalResult(value, context) {\n return value === void 0 ? {\n success: false,\n error: new NoObjectGeneratedError({\n message: \"No object generated: response did not match schema.\",\n text: context.text,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason\n })\n } : { success: true, value };\n },\n createElementStream() {\n throw new UnsupportedFunctionalityError2({\n functionality: \"element streams in no-schema mode\"\n });\n }\n};\nvar objectOutputStrategy = (schema) => ({\n type: \"object\",\n jsonSchema: schema.jsonSchema,\n async validatePartialResult({ value, textDelta }) {\n return {\n success: true,\n value: {\n // Note: currently no validation of partial results:\n partial: value,\n textDelta\n }\n };\n },\n async validateFinalResult(value) {\n return safeValidateTypes3({ value, schema });\n },\n createElementStream() {\n throw new UnsupportedFunctionalityError2({\n functionality: \"element streams in object mode\"\n });\n }\n});\nvar arrayOutputStrategy = (schema) => {\n const { $schema, ...itemSchema } = schema.jsonSchema;\n return {\n type: \"array\",\n // wrap in object that contains array of elements, since most LLMs will not\n // be able to generate an array directly:\n // possible future optimization: use arrays directly when model supports grammar-guided generation\n jsonSchema: {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n type: \"object\",\n properties: {\n elements: { type: \"array\", items: itemSchema }\n },\n required: [\"elements\"],\n additionalProperties: false\n },\n async validatePartialResult({\n value,\n latestObject,\n isFirstDelta,\n isFinalDelta\n }) {\n var _a16;\n if (!isJSONObject(value) || !isJSONArray(value.elements)) {\n return {\n success: false,\n error: new TypeValidationError2({\n value,\n cause: \"value must be an object that contains an array of elements\"\n })\n };\n }\n const inputArray = value.elements;\n const resultArray = [];\n for (let i = 0; i < inputArray.length; i++) {\n const element = inputArray[i];\n const result = await safeValidateTypes3({ value: element, schema });\n if (i === inputArray.length - 1 && !isFinalDelta) {\n continue;\n }\n if (!result.success) {\n return result;\n }\n resultArray.push(result.value);\n }\n const publishedElementCount = (_a16 = latestObject == null ? void 0 : latestObject.length) != null ? _a16 : 0;\n let textDelta = \"\";\n if (isFirstDelta) {\n textDelta += \"[\";\n }\n if (publishedElementCount > 0) {\n textDelta += \",\";\n }\n textDelta += resultArray.slice(publishedElementCount).map((element) => JSON.stringify(element)).join(\",\");\n if (isFinalDelta) {\n textDelta += \"]\";\n }\n return {\n success: true,\n value: {\n partial: resultArray,\n textDelta\n }\n };\n },\n async validateFinalResult(value) {\n if (!isJSONObject(value) || !isJSONArray(value.elements)) {\n return {\n success: false,\n error: new TypeValidationError2({\n value,\n cause: \"value must be an object that contains an array of elements\"\n })\n };\n }\n const inputArray = value.elements;\n for (const element of inputArray) {\n const result = await safeValidateTypes3({ value: element, schema });\n if (!result.success) {\n return result;\n }\n }\n return { success: true, value: inputArray };\n },\n createElementStream(originalStream) {\n let publishedElements = 0;\n return createAsyncIterableStream(\n originalStream.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n switch (chunk.type) {\n case \"object\": {\n const array = chunk.object;\n for (; publishedElements < array.length; publishedElements++) {\n controller.enqueue(array[publishedElements]);\n }\n break;\n }\n case \"text-delta\":\n case \"finish\":\n case \"error\":\n break;\n default: {\n const _exhaustiveCheck = chunk;\n throw new Error(\n `Unsupported chunk type: ${_exhaustiveCheck}`\n );\n }\n }\n }\n })\n )\n );\n }\n };\n};\nvar enumOutputStrategy = (enumValues) => {\n return {\n type: \"enum\",\n // wrap in object that contains result, since most LLMs will not\n // be able to generate an enum value directly:\n // possible future optimization: use enums directly when model supports top-level enums\n jsonSchema: {\n $schema: \"http://json-schema.org/draft-07/schema#\",\n type: \"object\",\n properties: {\n result: { type: \"string\", enum: enumValues }\n },\n required: [\"result\"],\n additionalProperties: false\n },\n async validateFinalResult(value) {\n if (!isJSONObject(value) || typeof value.result !== \"string\") {\n return {\n success: false,\n error: new TypeValidationError2({\n value,\n cause: 'value must be an object that contains a string in the \"result\" property.'\n })\n };\n }\n const result = value.result;\n return enumValues.includes(result) ? { success: true, value: result } : {\n success: false,\n error: new TypeValidationError2({\n value,\n cause: \"value must be a string in the enum\"\n })\n };\n },\n async validatePartialResult({ value, textDelta }) {\n if (!isJSONObject(value) || typeof value.result !== \"string\") {\n return {\n success: false,\n error: new TypeValidationError2({\n value,\n cause: 'value must be an object that contains a string in the \"result\" property.'\n })\n };\n }\n const result = value.result;\n const possibleEnumValues = enumValues.filter(\n (enumValue) => enumValue.startsWith(result)\n );\n if (value.result.length === 0 || possibleEnumValues.length === 0) {\n return {\n success: false,\n error: new TypeValidationError2({\n value,\n cause: \"value must be a string in the enum\"\n })\n };\n }\n return {\n success: true,\n value: {\n partial: possibleEnumValues.length > 1 ? result : possibleEnumValues[0],\n textDelta\n }\n };\n },\n createElementStream() {\n throw new UnsupportedFunctionalityError2({\n functionality: \"element streams in enum mode\"\n });\n }\n };\n};\nfunction getOutputStrategy({\n output,\n schema,\n enumValues\n}) {\n switch (output) {\n case \"object\":\n return objectOutputStrategy(asSchema3(schema));\n case \"array\":\n return arrayOutputStrategy(asSchema3(schema));\n case \"enum\":\n return enumOutputStrategy(enumValues);\n case \"no-schema\":\n return noSchemaOutputStrategy;\n default: {\n const _exhaustiveCheck = output;\n throw new Error(`Unsupported output: ${_exhaustiveCheck}`);\n }\n }\n}\n\n// src/generate-object/parse-and-validate-object-result.ts\nimport { JSONParseError as JSONParseError2, TypeValidationError as TypeValidationError3 } from \"@ai-sdk/provider\";\nimport { safeParseJSON as safeParseJSON3 } from \"@ai-sdk/provider-utils\";\nasync function parseAndValidateObjectResult(result, outputStrategy, context) {\n const parseResult = await safeParseJSON3({ text: result });\n if (!parseResult.success) {\n throw new NoObjectGeneratedError({\n message: \"No object generated: could not parse the response.\",\n cause: parseResult.error,\n text: result,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason\n });\n }\n const validationResult = await outputStrategy.validateFinalResult(\n parseResult.value,\n {\n text: result,\n response: context.response,\n usage: context.usage\n }\n );\n if (!validationResult.success) {\n throw new NoObjectGeneratedError({\n message: \"No object generated: response did not match schema.\",\n cause: validationResult.error,\n text: result,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason\n });\n }\n return validationResult.value;\n}\nasync function parseAndValidateObjectResultWithRepair(result, outputStrategy, repairText, context) {\n try {\n return await parseAndValidateObjectResult(result, outputStrategy, context);\n } catch (error) {\n if (repairText != null && NoObjectGeneratedError.isInstance(error) && (JSONParseError2.isInstance(error.cause) || TypeValidationError3.isInstance(error.cause))) {\n const repairedText = await repairText({\n text: result,\n error: error.cause\n });\n if (repairedText === null) {\n throw error;\n }\n return await parseAndValidateObjectResult(\n repairedText,\n outputStrategy,\n context\n );\n }\n throw error;\n }\n}\n\n// src/generate-object/validate-object-generation-input.ts\nfunction validateObjectGenerationInput({\n output,\n schema,\n schemaName,\n schemaDescription,\n enumValues\n}) {\n if (output != null && output !== \"object\" && output !== \"array\" && output !== \"enum\" && output !== \"no-schema\") {\n throw new InvalidArgumentError({\n parameter: \"output\",\n value: output,\n message: \"Invalid output type.\"\n });\n }\n if (output === \"no-schema\") {\n if (schema != null) {\n throw new InvalidArgumentError({\n parameter: \"schema\",\n value: schema,\n message: \"Schema is not supported for no-schema output.\"\n });\n }\n if (schemaDescription != null) {\n throw new InvalidArgumentError({\n parameter: \"schemaDescription\",\n value: schemaDescription,\n message: \"Schema description is not supported for no-schema output.\"\n });\n }\n if (schemaName != null) {\n throw new InvalidArgumentError({\n parameter: \"schemaName\",\n value: schemaName,\n message: \"Schema name is not supported for no-schema output.\"\n });\n }\n if (enumValues != null) {\n throw new InvalidArgumentError({\n parameter: \"enumValues\",\n value: enumValues,\n message: \"Enum values are not supported for no-schema output.\"\n });\n }\n }\n if (output === \"object\") {\n if (schema == null) {\n throw new InvalidArgumentError({\n parameter: \"schema\",\n value: schema,\n message: \"Schema is required for object output.\"\n });\n }\n if (enumValues != null) {\n throw new InvalidArgumentError({\n parameter: \"enumValues\",\n value: enumValues,\n message: \"Enum values are not supported for object output.\"\n });\n }\n }\n if (output === \"array\") {\n if (schema == null) {\n throw new InvalidArgumentError({\n parameter: \"schema\",\n value: schema,\n message: \"Element schema is required for array output.\"\n });\n }\n if (enumValues != null) {\n throw new InvalidArgumentError({\n parameter: \"enumValues\",\n value: enumValues,\n message: \"Enum values are not supported for array output.\"\n });\n }\n }\n if (output === \"enum\") {\n if (schema != null) {\n throw new InvalidArgumentError({\n parameter: \"schema\",\n value: schema,\n message: \"Schema is not supported for enum output.\"\n });\n }\n if (schemaDescription != null) {\n throw new InvalidArgumentError({\n parameter: \"schemaDescription\",\n value: schemaDescription,\n message: \"Schema description is not supported for enum output.\"\n });\n }\n if (schemaName != null) {\n throw new InvalidArgumentError({\n parameter: \"schemaName\",\n value: schemaName,\n message: \"Schema name is not supported for enum output.\"\n });\n }\n if (enumValues == null) {\n throw new InvalidArgumentError({\n parameter: \"enumValues\",\n value: enumValues,\n message: \"Enum values are required for enum output.\"\n });\n }\n for (const value of enumValues) {\n if (typeof value !== \"string\") {\n throw new InvalidArgumentError({\n parameter: \"enumValues\",\n value,\n message: \"Enum values must be strings.\"\n });\n }\n }\n }\n}\n\n// src/generate-object/generate-object.ts\nvar originalGenerateId3 = createIdGenerator3({ prefix: \"aiobj\", size: 24 });\nasync function generateObject(options) {\n const {\n model: modelArg,\n output = \"object\",\n system,\n prompt,\n messages,\n maxRetries: maxRetriesArg,\n abortSignal,\n headers,\n experimental_repairText: repairText,\n experimental_telemetry: telemetry,\n experimental_download: download2,\n providerOptions,\n _internal: {\n generateId: generateId3 = originalGenerateId3,\n currentDate = () => /* @__PURE__ */ new Date()\n } = {},\n ...settings\n } = options;\n const model = resolveLanguageModel(modelArg);\n const enumValues = \"enum\" in options ? options.enum : void 0;\n const {\n schema: inputSchema,\n schemaDescription,\n schemaName\n } = \"schema\" in options ? options : {};\n validateObjectGenerationInput({\n output,\n schema: inputSchema,\n schemaName,\n schemaDescription,\n enumValues\n });\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal\n });\n const outputStrategy = getOutputStrategy({\n output,\n schema: inputSchema,\n enumValues\n });\n const callSettings = prepareCallSettings(settings);\n const headersWithUserAgent = withUserAgentSuffix6(\n headers != null ? headers : {},\n `ai/${VERSION}`\n );\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers: headersWithUserAgent,\n settings: { ...callSettings, maxRetries }\n });\n const tracer = getTracer(telemetry);\n try {\n return await recordSpan({\n name: \"ai.generateObject\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.generateObject\",\n telemetry\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n \"ai.prompt\": {\n input: () => JSON.stringify({ system, prompt, messages })\n },\n \"ai.schema\": outputStrategy.jsonSchema != null ? { input: () => JSON.stringify(outputStrategy.jsonSchema) } : void 0,\n \"ai.schema.name\": schemaName,\n \"ai.schema.description\": schemaDescription,\n \"ai.settings.output\": outputStrategy.type\n }\n }),\n tracer,\n fn: async (span) => {\n var _a16;\n let result;\n let finishReason;\n let usage;\n let warnings;\n let response;\n let request;\n let resultProviderMetadata;\n let reasoning;\n const standardizedPrompt = await standardizePrompt({\n system,\n prompt,\n messages\n });\n const promptMessages = await convertToLanguageModelPrompt({\n prompt: standardizedPrompt,\n supportedUrls: await model.supportedUrls,\n download: download2\n });\n const generateResult = await retry(\n () => recordSpan({\n name: \"ai.generateObject.doGenerate\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.generateObject.doGenerate\",\n telemetry\n }),\n ...baseTelemetryAttributes,\n \"ai.prompt.messages\": {\n input: () => stringifyForTelemetry(promptMessages)\n },\n // standardized gen-ai llm span attributes:\n \"gen_ai.system\": model.provider,\n \"gen_ai.request.model\": model.modelId,\n \"gen_ai.request.frequency_penalty\": callSettings.frequencyPenalty,\n \"gen_ai.request.max_tokens\": callSettings.maxOutputTokens,\n \"gen_ai.request.presence_penalty\": callSettings.presencePenalty,\n \"gen_ai.request.temperature\": callSettings.temperature,\n \"gen_ai.request.top_k\": callSettings.topK,\n \"gen_ai.request.top_p\": callSettings.topP\n }\n }),\n tracer,\n fn: async (span2) => {\n var _a17, _b, _c, _d, _e, _f, _g, _h;\n const result2 = await model.doGenerate({\n responseFormat: {\n type: \"json\",\n schema: outputStrategy.jsonSchema,\n name: schemaName,\n description: schemaDescription\n },\n ...prepareCallSettings(settings),\n prompt: promptMessages,\n providerOptions,\n abortSignal,\n headers: headersWithUserAgent\n });\n const responseData = {\n id: (_b = (_a17 = result2.response) == null ? void 0 : _a17.id) != null ? _b : generateId3(),\n timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),\n modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,\n headers: (_g = result2.response) == null ? void 0 : _g.headers,\n body: (_h = result2.response) == null ? void 0 : _h.body\n };\n const text2 = extractTextContent(result2.content);\n const reasoning2 = extractReasoningContent(result2.content);\n if (text2 === void 0) {\n throw new NoObjectGeneratedError({\n message: \"No object generated: the model did not return a response.\",\n response: responseData,\n usage: result2.usage,\n finishReason: result2.finishReason\n });\n }\n span2.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.response.finishReason\": result2.finishReason,\n \"ai.response.object\": { output: () => text2 },\n \"ai.response.id\": responseData.id,\n \"ai.response.model\": responseData.modelId,\n \"ai.response.timestamp\": responseData.timestamp.toISOString(),\n \"ai.response.providerMetadata\": JSON.stringify(\n result2.providerMetadata\n ),\n // TODO rename telemetry attributes to inputTokens and outputTokens\n \"ai.usage.promptTokens\": result2.usage.inputTokens,\n \"ai.usage.completionTokens\": result2.usage.outputTokens,\n // standardized gen-ai llm span attributes:\n \"gen_ai.response.finish_reasons\": [result2.finishReason],\n \"gen_ai.response.id\": responseData.id,\n \"gen_ai.response.model\": responseData.modelId,\n \"gen_ai.usage.input_tokens\": result2.usage.inputTokens,\n \"gen_ai.usage.output_tokens\": result2.usage.outputTokens\n }\n })\n );\n return {\n ...result2,\n objectText: text2,\n reasoning: reasoning2,\n responseData\n };\n }\n })\n );\n result = generateResult.objectText;\n finishReason = generateResult.finishReason;\n usage = generateResult.usage;\n warnings = generateResult.warnings;\n resultProviderMetadata = generateResult.providerMetadata;\n request = (_a16 = generateResult.request) != null ? _a16 : {};\n response = generateResult.responseData;\n reasoning = generateResult.reasoning;\n logWarnings(warnings);\n const object2 = await parseAndValidateObjectResultWithRepair(\n result,\n outputStrategy,\n repairText,\n {\n response,\n usage,\n finishReason\n }\n );\n span.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.response.finishReason\": finishReason,\n \"ai.response.object\": {\n output: () => JSON.stringify(object2)\n },\n \"ai.response.providerMetadata\": JSON.stringify(\n resultProviderMetadata\n ),\n // TODO rename telemetry attributes to inputTokens and outputTokens\n \"ai.usage.promptTokens\": usage.inputTokens,\n \"ai.usage.completionTokens\": usage.outputTokens\n }\n })\n );\n return new DefaultGenerateObjectResult({\n object: object2,\n reasoning,\n finishReason,\n usage,\n warnings,\n request,\n response,\n providerMetadata: resultProviderMetadata\n });\n }\n });\n } catch (error) {\n throw wrapGatewayError(error);\n }\n}\nvar DefaultGenerateObjectResult = class {\n constructor(options) {\n this.object = options.object;\n this.finishReason = options.finishReason;\n this.usage = options.usage;\n this.warnings = options.warnings;\n this.providerMetadata = options.providerMetadata;\n this.response = options.response;\n this.request = options.request;\n this.reasoning = options.reasoning;\n }\n toJsonResponse(init) {\n var _a16;\n return new Response(JSON.stringify(this.object), {\n status: (_a16 = init == null ? void 0 : init.status) != null ? _a16 : 200,\n headers: prepareHeaders(init == null ? void 0 : init.headers, {\n \"content-type\": \"application/json; charset=utf-8\"\n })\n });\n }\n};\n\n// src/generate-object/stream-object.ts\nimport {\n createIdGenerator as createIdGenerator4\n} from \"@ai-sdk/provider-utils\";\n\n// src/util/cosine-similarity.ts\nfunction cosineSimilarity(vector1, vector2) {\n if (vector1.length !== vector2.length) {\n throw new InvalidArgumentError({\n parameter: \"vector1,vector2\",\n value: { vector1Length: vector1.length, vector2Length: vector2.length },\n message: `Vectors must have the same length`\n });\n }\n const n = vector1.length;\n if (n === 0) {\n return 0;\n }\n let magnitudeSquared1 = 0;\n let magnitudeSquared2 = 0;\n let dotProduct = 0;\n for (let i = 0; i < n; i++) {\n const value1 = vector1[i];\n const value2 = vector2[i];\n magnitudeSquared1 += value1 * value1;\n magnitudeSquared2 += value2 * value2;\n dotProduct += value1 * value2;\n }\n return magnitudeSquared1 === 0 || magnitudeSquared2 === 0 ? 0 : dotProduct / (Math.sqrt(magnitudeSquared1) * Math.sqrt(magnitudeSquared2));\n}\n\n// src/util/data-url.ts\nfunction getTextFromDataUrl(dataUrl) {\n const [header, base64Content] = dataUrl.split(\",\");\n const mediaType = header.split(\";\")[0].split(\":\")[1];\n if (mediaType == null || base64Content == null) {\n throw new Error(\"Invalid data URL format\");\n }\n try {\n return window.atob(base64Content);\n } catch (error) {\n throw new Error(`Error decoding data URL`);\n }\n}\n\n// src/util/is-deep-equal-data.ts\nfunction isDeepEqualData(obj1, obj2) {\n if (obj1 === obj2)\n return true;\n if (obj1 == null || obj2 == null)\n return false;\n if (typeof obj1 !== \"object\" && typeof obj2 !== \"object\")\n return obj1 === obj2;\n if (obj1.constructor !== obj2.constructor)\n return false;\n if (obj1 instanceof Date && obj2 instanceof Date) {\n return obj1.getTime() === obj2.getTime();\n }\n if (Array.isArray(obj1)) {\n if (obj1.length !== obj2.length)\n return false;\n for (let i = 0; i < obj1.length; i++) {\n if (!isDeepEqualData(obj1[i], obj2[i]))\n return false;\n }\n return true;\n }\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n if (keys1.length !== keys2.length)\n return false;\n for (const key of keys1) {\n if (!keys2.includes(key))\n return false;\n if (!isDeepEqualData(obj1[key], obj2[key]))\n return false;\n }\n return true;\n}\n\n// src/util/serial-job-executor.ts\nvar SerialJobExecutor = class {\n constructor() {\n this.queue = [];\n this.isProcessing = false;\n }\n async processQueue() {\n if (this.isProcessing) {\n return;\n }\n this.isProcessing = true;\n while (this.queue.length > 0) {\n await this.queue[0]();\n this.queue.shift();\n }\n this.isProcessing = false;\n }\n async run(job) {\n return new Promise((resolve2, reject) => {\n this.queue.push(async () => {\n try {\n await job();\n resolve2();\n } catch (error) {\n reject(error);\n }\n });\n void this.processQueue();\n });\n }\n};\n\n// src/util/simulate-readable-stream.ts\nimport { delay as delayFunction } from \"@ai-sdk/provider-utils\";\nfunction simulateReadableStream({\n chunks,\n initialDelayInMs = 0,\n chunkDelayInMs = 0,\n _internal\n}) {\n var _a16;\n const delay2 = (_a16 = _internal == null ? void 0 : _internal.delay) != null ? _a16 : delayFunction;\n let index = 0;\n return new ReadableStream({\n async pull(controller) {\n if (index < chunks.length) {\n await delay2(index === 0 ? initialDelayInMs : chunkDelayInMs);\n controller.enqueue(chunks[index++]);\n } else {\n controller.close();\n }\n }\n });\n}\n\n// src/generate-object/stream-object.ts\nvar originalGenerateId4 = createIdGenerator4({ prefix: \"aiobj\", size: 24 });\nfunction streamObject(options) {\n const {\n model,\n output = \"object\",\n system,\n prompt,\n messages,\n maxRetries,\n abortSignal,\n headers,\n experimental_repairText: repairText,\n experimental_telemetry: telemetry,\n experimental_download: download2,\n providerOptions,\n onError = ({ error }) => {\n console.error(error);\n },\n onFinish,\n _internal: {\n generateId: generateId3 = originalGenerateId4,\n currentDate = () => /* @__PURE__ */ new Date(),\n now: now2 = now\n } = {},\n ...settings\n } = options;\n const enumValues = \"enum\" in options && options.enum ? options.enum : void 0;\n const {\n schema: inputSchema,\n schemaDescription,\n schemaName\n } = \"schema\" in options ? options : {};\n validateObjectGenerationInput({\n output,\n schema: inputSchema,\n schemaName,\n schemaDescription,\n enumValues\n });\n const outputStrategy = getOutputStrategy({\n output,\n schema: inputSchema,\n enumValues\n });\n return new DefaultStreamObjectResult({\n model,\n telemetry,\n headers,\n settings,\n maxRetries,\n abortSignal,\n outputStrategy,\n system,\n prompt,\n messages,\n schemaName,\n schemaDescription,\n providerOptions,\n repairText,\n onError,\n onFinish,\n download: download2,\n generateId: generateId3,\n currentDate,\n now: now2\n });\n}\nvar DefaultStreamObjectResult = class {\n constructor({\n model: modelArg,\n headers,\n telemetry,\n settings,\n maxRetries: maxRetriesArg,\n abortSignal,\n outputStrategy,\n system,\n prompt,\n messages,\n schemaName,\n schemaDescription,\n providerOptions,\n repairText,\n onError,\n onFinish,\n download: download2,\n generateId: generateId3,\n currentDate,\n now: now2\n }) {\n this._object = new DelayedPromise();\n this._usage = new DelayedPromise();\n this._providerMetadata = new DelayedPromise();\n this._warnings = new DelayedPromise();\n this._request = new DelayedPromise();\n this._response = new DelayedPromise();\n this._finishReason = new DelayedPromise();\n const model = resolveLanguageModel(modelArg);\n const { maxRetries, retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal\n });\n const callSettings = prepareCallSettings(settings);\n const baseTelemetryAttributes = getBaseTelemetryAttributes({\n model,\n telemetry,\n headers,\n settings: { ...callSettings, maxRetries }\n });\n const tracer = getTracer(telemetry);\n const self = this;\n const stitchableStream = createStitchableStream();\n const eventProcessor = new TransformStream({\n transform(chunk, controller) {\n controller.enqueue(chunk);\n if (chunk.type === \"error\") {\n onError({ error: wrapGatewayError(chunk.error) });\n }\n }\n });\n this.baseStream = stitchableStream.stream.pipeThrough(eventProcessor);\n recordSpan({\n name: \"ai.streamObject\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.streamObject\",\n telemetry\n }),\n ...baseTelemetryAttributes,\n // specific settings that only make sense on the outer level:\n \"ai.prompt\": {\n input: () => JSON.stringify({ system, prompt, messages })\n },\n \"ai.schema\": outputStrategy.jsonSchema != null ? { input: () => JSON.stringify(outputStrategy.jsonSchema) } : void 0,\n \"ai.schema.name\": schemaName,\n \"ai.schema.description\": schemaDescription,\n \"ai.settings.output\": outputStrategy.type\n }\n }),\n tracer,\n endWhenDone: false,\n fn: async (rootSpan) => {\n const standardizedPrompt = await standardizePrompt({\n system,\n prompt,\n messages\n });\n const callOptions = {\n responseFormat: {\n type: \"json\",\n schema: outputStrategy.jsonSchema,\n name: schemaName,\n description: schemaDescription\n },\n ...prepareCallSettings(settings),\n prompt: await convertToLanguageModelPrompt({\n prompt: standardizedPrompt,\n supportedUrls: await model.supportedUrls,\n download: download2\n }),\n providerOptions,\n abortSignal,\n headers,\n includeRawChunks: false\n };\n const transformer = {\n transform: (chunk, controller) => {\n switch (chunk.type) {\n case \"text-delta\":\n controller.enqueue(chunk.delta);\n break;\n case \"response-metadata\":\n case \"finish\":\n case \"error\":\n case \"stream-start\":\n controller.enqueue(chunk);\n break;\n }\n }\n };\n const {\n result: { stream, response, request },\n doStreamSpan,\n startTimestampMs\n } = await retry(\n () => recordSpan({\n name: \"ai.streamObject.doStream\",\n attributes: selectTelemetryAttributes({\n telemetry,\n attributes: {\n ...assembleOperationName({\n operationId: \"ai.streamObject.doStream\",\n telemetry\n }),\n ...baseTelemetryAttributes,\n \"ai.prompt.messages\": {\n input: () => stringifyForTelemetry(callOptions.prompt)\n },\n // standardized gen-ai llm span attributes:\n \"gen_ai.system\": model.provider,\n \"gen_ai.request.model\": model.modelId,\n \"gen_ai.request.frequency_penalty\": callSettings.frequencyPenalty,\n \"gen_ai.request.max_tokens\": callSettings.maxOutputTokens,\n \"gen_ai.request.presence_penalty\": callSettings.presencePenalty,\n \"gen_ai.request.temperature\": callSettings.temperature,\n \"gen_ai.request.top_k\": callSettings.topK,\n \"gen_ai.request.top_p\": callSettings.topP\n }\n }),\n tracer,\n endWhenDone: false,\n fn: async (doStreamSpan2) => ({\n startTimestampMs: now2(),\n doStreamSpan: doStreamSpan2,\n result: await model.doStream(callOptions)\n })\n })\n );\n self._request.resolve(request != null ? request : {});\n let warnings;\n let usage = {\n inputTokens: void 0,\n outputTokens: void 0,\n totalTokens: void 0\n };\n let finishReason;\n let providerMetadata;\n let object2;\n let error;\n let accumulatedText = \"\";\n let textDelta = \"\";\n let fullResponse = {\n id: generateId3(),\n timestamp: currentDate(),\n modelId: model.modelId\n };\n let latestObjectJson = void 0;\n let latestObject = void 0;\n let isFirstChunk = true;\n let isFirstDelta = true;\n const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(\n new TransformStream({\n async transform(chunk, controller) {\n var _a16, _b, _c;\n if (typeof chunk === \"object\" && chunk.type === \"stream-start\") {\n warnings = chunk.warnings;\n return;\n }\n if (isFirstChunk) {\n const msToFirstChunk = now2() - startTimestampMs;\n isFirstChunk = false;\n doStreamSpan.addEvent(\"ai.stream.firstChunk\", {\n \"ai.stream.msToFirstChunk\": msToFirstChunk\n });\n doStreamSpan.setAttributes({\n \"ai.stream.msToFirstChunk\": msToFirstChunk\n });\n }\n if (typeof chunk === \"string\") {\n accumulatedText += chunk;\n textDelta += chunk;\n const { value: currentObjectJson, state: parseState } = await parsePartialJson(accumulatedText);\n if (currentObjectJson !== void 0 && !isDeepEqualData(latestObjectJson, currentObjectJson)) {\n const validationResult = await outputStrategy.validatePartialResult({\n value: currentObjectJson,\n textDelta,\n latestObject,\n isFirstDelta,\n isFinalDelta: parseState === \"successful-parse\"\n });\n if (validationResult.success && !isDeepEqualData(\n latestObject,\n validationResult.value.partial\n )) {\n latestObjectJson = currentObjectJson;\n latestObject = validationResult.value.partial;\n controller.enqueue({\n type: \"object\",\n object: latestObject\n });\n controller.enqueue({\n type: \"text-delta\",\n textDelta: validationResult.value.textDelta\n });\n textDelta = \"\";\n isFirstDelta = false;\n }\n }\n return;\n }\n switch (chunk.type) {\n case \"response-metadata\": {\n fullResponse = {\n id: (_a16 = chunk.id) != null ? _a16 : fullResponse.id,\n timestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,\n modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId\n };\n break;\n }\n case \"finish\": {\n if (textDelta !== \"\") {\n controller.enqueue({ type: \"text-delta\", textDelta });\n }\n finishReason = chunk.finishReason;\n usage = chunk.usage;\n providerMetadata = chunk.providerMetadata;\n controller.enqueue({\n ...chunk,\n usage,\n response: fullResponse\n });\n logWarnings(warnings != null ? warnings : []);\n self._usage.resolve(usage);\n self._providerMetadata.resolve(providerMetadata);\n self._warnings.resolve(warnings);\n self._response.resolve({\n ...fullResponse,\n headers: response == null ? void 0 : response.headers\n });\n self._finishReason.resolve(finishReason != null ? finishReason : \"unknown\");\n try {\n object2 = await parseAndValidateObjectResultWithRepair(\n accumulatedText,\n outputStrategy,\n repairText,\n {\n response: fullResponse,\n usage,\n finishReason\n }\n );\n self._object.resolve(object2);\n } catch (e) {\n error = e;\n self._object.reject(e);\n }\n break;\n }\n default: {\n controller.enqueue(chunk);\n break;\n }\n }\n },\n // invoke onFinish callback and resolve toolResults promise when the stream is about to close:\n async flush(controller) {\n try {\n const finalUsage = usage != null ? usage : {\n promptTokens: NaN,\n completionTokens: NaN,\n totalTokens: NaN\n };\n doStreamSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.response.finishReason\": finishReason,\n \"ai.response.object\": {\n output: () => JSON.stringify(object2)\n },\n \"ai.response.id\": fullResponse.id,\n \"ai.response.model\": fullResponse.modelId,\n \"ai.response.timestamp\": fullResponse.timestamp.toISOString(),\n \"ai.response.providerMetadata\": JSON.stringify(providerMetadata),\n \"ai.usage.inputTokens\": finalUsage.inputTokens,\n \"ai.usage.outputTokens\": finalUsage.outputTokens,\n \"ai.usage.totalTokens\": finalUsage.totalTokens,\n \"ai.usage.reasoningTokens\": finalUsage.reasoningTokens,\n \"ai.usage.cachedInputTokens\": finalUsage.cachedInputTokens,\n // standardized gen-ai llm span attributes:\n \"gen_ai.response.finish_reasons\": [finishReason],\n \"gen_ai.response.id\": fullResponse.id,\n \"gen_ai.response.model\": fullResponse.modelId,\n \"gen_ai.usage.input_tokens\": finalUsage.inputTokens,\n \"gen_ai.usage.output_tokens\": finalUsage.outputTokens\n }\n })\n );\n doStreamSpan.end();\n rootSpan.setAttributes(\n selectTelemetryAttributes({\n telemetry,\n attributes: {\n \"ai.usage.inputTokens\": finalUsage.inputTokens,\n \"ai.usage.outputTokens\": finalUsage.outputTokens,\n \"ai.usage.totalTokens\": finalUsage.totalTokens,\n \"ai.usage.reasoningTokens\": finalUsage.reasoningTokens,\n \"ai.usage.cachedInputTokens\": finalUsage.cachedInputTokens,\n \"ai.response.object\": {\n output: () => JSON.stringify(object2)\n },\n \"ai.response.providerMetadata\": JSON.stringify(providerMetadata)\n }\n })\n );\n await (onFinish == null ? void 0 : onFinish({\n usage: finalUsage,\n object: object2,\n error,\n response: {\n ...fullResponse,\n headers: response == null ? void 0 : response.headers\n },\n warnings,\n providerMetadata\n }));\n } catch (error2) {\n controller.enqueue({ type: \"error\", error: error2 });\n } finally {\n rootSpan.end();\n }\n }\n })\n );\n stitchableStream.addStream(transformedStream);\n }\n }).catch((error) => {\n stitchableStream.addStream(\n new ReadableStream({\n start(controller) {\n controller.enqueue({ type: \"error\", error });\n controller.close();\n }\n })\n );\n }).finally(() => {\n stitchableStream.close();\n });\n this.outputStrategy = outputStrategy;\n }\n get object() {\n return this._object.promise;\n }\n get usage() {\n return this._usage.promise;\n }\n get providerMetadata() {\n return this._providerMetadata.promise;\n }\n get warnings() {\n return this._warnings.promise;\n }\n get request() {\n return this._request.promise;\n }\n get response() {\n return this._response.promise;\n }\n get finishReason() {\n return this._finishReason.promise;\n }\n get partialObjectStream() {\n return createAsyncIterableStream(\n this.baseStream.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n switch (chunk.type) {\n case \"object\":\n controller.enqueue(chunk.object);\n break;\n case \"text-delta\":\n case \"finish\":\n case \"error\":\n break;\n default: {\n const _exhaustiveCheck = chunk;\n throw new Error(`Unsupported chunk type: ${_exhaustiveCheck}`);\n }\n }\n }\n })\n )\n );\n }\n get elementStream() {\n return this.outputStrategy.createElementStream(this.baseStream);\n }\n get textStream() {\n return createAsyncIterableStream(\n this.baseStream.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n switch (chunk.type) {\n case \"text-delta\":\n controller.enqueue(chunk.textDelta);\n break;\n case \"object\":\n case \"finish\":\n case \"error\":\n break;\n default: {\n const _exhaustiveCheck = chunk;\n throw new Error(`Unsupported chunk type: ${_exhaustiveCheck}`);\n }\n }\n }\n })\n )\n );\n }\n get fullStream() {\n return createAsyncIterableStream(this.baseStream);\n }\n pipeTextStreamToResponse(response, init) {\n pipeTextStreamToResponse({\n response,\n textStream: this.textStream,\n ...init\n });\n }\n toTextStreamResponse(init) {\n return createTextStreamResponse({\n textStream: this.textStream,\n ...init\n });\n }\n};\n\n// src/generate-speech/generate-speech.ts\nimport { withUserAgentSuffix as withUserAgentSuffix7 } from \"@ai-sdk/provider-utils\";\n\n// src/generate-speech/generated-audio-file.ts\nvar DefaultGeneratedAudioFile = class extends DefaultGeneratedFile {\n constructor({\n data,\n mediaType\n }) {\n super({ data, mediaType });\n let format = \"mp3\";\n if (mediaType) {\n const mediaTypeParts = mediaType.split(\"/\");\n if (mediaTypeParts.length === 2) {\n if (mediaType !== \"audio/mpeg\") {\n format = mediaTypeParts[1];\n }\n }\n }\n if (!format) {\n throw new Error(\n \"Audio format must be provided or determinable from media type\"\n );\n }\n this.format = format;\n }\n};\n\n// src/generate-speech/generate-speech.ts\nasync function generateSpeech({\n model,\n text: text2,\n voice,\n outputFormat,\n instructions,\n speed,\n language,\n providerOptions = {},\n maxRetries: maxRetriesArg,\n abortSignal,\n headers\n}) {\n var _a16;\n if (model.specificationVersion !== \"v2\") {\n throw new UnsupportedModelVersionError({\n version: model.specificationVersion,\n provider: model.provider,\n modelId: model.modelId\n });\n }\n const headersWithUserAgent = withUserAgentSuffix7(\n headers != null ? headers : {},\n `ai/${VERSION}`\n );\n const { retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal\n });\n const result = await retry(\n () => model.doGenerate({\n text: text2,\n voice,\n outputFormat,\n instructions,\n speed,\n language,\n abortSignal,\n headers: headersWithUserAgent,\n providerOptions\n })\n );\n if (!result.audio || result.audio.length === 0) {\n throw new NoSpeechGeneratedError({ responses: [result.response] });\n }\n logWarnings(result.warnings);\n return new DefaultSpeechResult({\n audio: new DefaultGeneratedAudioFile({\n data: result.audio,\n mediaType: (_a16 = detectMediaType({\n data: result.audio,\n signatures: audioMediaTypeSignatures\n })) != null ? _a16 : \"audio/mp3\"\n }),\n warnings: result.warnings,\n responses: [result.response],\n providerMetadata: result.providerMetadata\n });\n}\nvar DefaultSpeechResult = class {\n constructor(options) {\n var _a16;\n this.audio = options.audio;\n this.warnings = options.warnings;\n this.responses = options.responses;\n this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};\n }\n};\n\n// src/generate-text/output.ts\nvar output_exports = {};\n__export(output_exports, {\n object: () => object,\n text: () => text\n});\nimport {\n asSchema as asSchema4,\n safeParseJSON as safeParseJSON4,\n safeValidateTypes as safeValidateTypes4\n} from \"@ai-sdk/provider-utils\";\nvar text = () => ({\n type: \"text\",\n responseFormat: { type: \"text\" },\n async parsePartial({ text: text2 }) {\n return { partial: text2 };\n },\n async parseOutput({ text: text2 }) {\n return text2;\n }\n});\nvar object = ({\n schema: inputSchema\n}) => {\n const schema = asSchema4(inputSchema);\n return {\n type: \"object\",\n responseFormat: {\n type: \"json\",\n schema: schema.jsonSchema\n },\n async parsePartial({ text: text2 }) {\n const result = await parsePartialJson(text2);\n switch (result.state) {\n case \"failed-parse\":\n case \"undefined-input\":\n return void 0;\n case \"repaired-parse\":\n case \"successful-parse\":\n return {\n // Note: currently no validation of partial results:\n partial: result.value\n };\n default: {\n const _exhaustiveCheck = result.state;\n throw new Error(`Unsupported parse state: ${_exhaustiveCheck}`);\n }\n }\n },\n async parseOutput({ text: text2 }, context) {\n const parseResult = await safeParseJSON4({ text: text2 });\n if (!parseResult.success) {\n throw new NoObjectGeneratedError({\n message: \"No object generated: could not parse the response.\",\n cause: parseResult.error,\n text: text2,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason\n });\n }\n const validationResult = await safeValidateTypes4({\n value: parseResult.value,\n schema\n });\n if (!validationResult.success) {\n throw new NoObjectGeneratedError({\n message: \"No object generated: response did not match schema.\",\n cause: validationResult.error,\n text: text2,\n response: context.response,\n usage: context.usage,\n finishReason: context.finishReason\n });\n }\n return validationResult.value;\n }\n };\n};\n\n// src/generate-text/prune-messages.ts\nfunction pruneMessages({\n messages,\n reasoning = \"none\",\n toolCalls = [],\n emptyMessages = \"remove\"\n}) {\n if (reasoning === \"all\" || reasoning === \"before-last-message\") {\n messages = messages.map((message, messageIndex) => {\n if (message.role !== \"assistant\" || typeof message.content === \"string\" || reasoning === \"before-last-message\" && messageIndex === messages.length - 1) {\n return message;\n }\n return {\n ...message,\n content: message.content.filter((part) => part.type !== \"reasoning\")\n };\n });\n }\n if (toolCalls === \"none\") {\n toolCalls = [];\n } else if (toolCalls === \"all\") {\n toolCalls = [{ type: \"all\" }];\n } else if (toolCalls === \"before-last-message\") {\n toolCalls = [{ type: \"before-last-message\" }];\n } else if (typeof toolCalls === \"string\") {\n toolCalls = [{ type: toolCalls }];\n }\n for (const toolCall of toolCalls) {\n const keepLastMessagesCount = toolCall.type === \"all\" ? void 0 : toolCall.type === \"before-last-message\" ? 1 : Number(\n toolCall.type.slice(\"before-last-\".length).slice(0, -\"-messages\".length)\n );\n const keptToolCallIds = /* @__PURE__ */ new Set();\n const keptApprovalIds = /* @__PURE__ */ new Set();\n if (keepLastMessagesCount != null) {\n for (const message of messages.slice(0, -keepLastMessagesCount)) {\n if ((message.role === \"assistant\" || message.role === \"tool\") && typeof message.content !== \"string\") {\n for (const part of message.content) {\n if (part.type === \"tool-call\" || part.type === \"tool-result\") {\n keptToolCallIds.add(part.toolCallId);\n }\n }\n }\n }\n }\n messages = messages.map((message, messageIndex) => {\n if (message.role !== \"assistant\" && message.role !== \"tool\" || typeof message.content === \"string\" || keepLastMessagesCount && messageIndex >= messages.length - keepLastMessagesCount) {\n return message;\n }\n const toolCallIdToToolName = {};\n return {\n ...message,\n content: message.content.filter((part) => {\n if (part.type !== \"tool-call\" && part.type !== \"tool-result\") {\n return true;\n }\n if (part.type === \"tool-call\") {\n toolCallIdToToolName[part.toolCallId] = part.toolName;\n }\n if ((part.type === \"tool-call\" || part.type === \"tool-result\") && keptToolCallIds.has(part.toolCallId)) {\n return true;\n }\n return toolCall.tools != null && !toolCall.tools.includes(part.toolName);\n })\n };\n });\n }\n if (emptyMessages === \"remove\") {\n messages = messages.filter((message) => message.content.length > 0);\n }\n return messages;\n}\n\n// src/generate-text/smooth-stream.ts\nimport { delay as originalDelay } from \"@ai-sdk/provider-utils\";\nimport { InvalidArgumentError as InvalidArgumentError2 } from \"@ai-sdk/provider\";\nvar CHUNKING_REGEXPS = {\n word: /\\S+\\s+/m,\n line: /\\n+/m\n};\nfunction smoothStream({\n delayInMs = 10,\n chunking = \"word\",\n _internal: { delay: delay2 = originalDelay } = {}\n} = {}) {\n let detectChunk;\n if (typeof chunking === \"function\") {\n detectChunk = (buffer) => {\n const match = chunking(buffer);\n if (match == null) {\n return null;\n }\n if (!match.length) {\n throw new Error(`Chunking function must return a non-empty string.`);\n }\n if (!buffer.startsWith(match)) {\n throw new Error(\n `Chunking function must return a match that is a prefix of the buffer. Received: \"${match}\" expected to start with \"${buffer}\"`\n );\n }\n return match;\n };\n } else {\n const chunkingRegex = typeof chunking === \"string\" ? CHUNKING_REGEXPS[chunking] : chunking;\n if (chunkingRegex == null) {\n throw new InvalidArgumentError2({\n argument: \"chunking\",\n message: `Chunking must be \"word\" or \"line\" or a RegExp. Received: ${chunking}`\n });\n }\n detectChunk = (buffer) => {\n const match = chunkingRegex.exec(buffer);\n if (!match) {\n return null;\n }\n return buffer.slice(0, match.index) + (match == null ? void 0 : match[0]);\n };\n }\n return () => {\n let buffer = \"\";\n let id = \"\";\n return new TransformStream({\n async transform(chunk, controller) {\n if (chunk.type !== \"text-delta\") {\n if (buffer.length > 0) {\n controller.enqueue({ type: \"text-delta\", text: buffer, id });\n buffer = \"\";\n }\n controller.enqueue(chunk);\n return;\n }\n if (chunk.id !== id && buffer.length > 0) {\n controller.enqueue({ type: \"text-delta\", text: buffer, id });\n buffer = \"\";\n }\n buffer += chunk.text;\n id = chunk.id;\n let match;\n while ((match = detectChunk(buffer)) != null) {\n controller.enqueue({ type: \"text-delta\", text: match, id });\n buffer = buffer.slice(match.length);\n await delay2(delayInMs);\n }\n }\n });\n };\n}\n\n// src/middleware/default-settings-middleware.ts\nfunction defaultSettingsMiddleware({\n settings\n}) {\n return {\n middlewareVersion: \"v2\",\n transformParams: async ({ params }) => {\n return mergeObjects(settings, params);\n }\n };\n}\n\n// src/util/get-potential-start-index.ts\nfunction getPotentialStartIndex(text2, searchedText) {\n if (searchedText.length === 0) {\n return null;\n }\n const directIndex = text2.indexOf(searchedText);\n if (directIndex !== -1) {\n return directIndex;\n }\n for (let i = text2.length - 1; i >= 0; i--) {\n const suffix = text2.substring(i);\n if (searchedText.startsWith(suffix)) {\n return i;\n }\n }\n return null;\n}\n\n// src/middleware/extract-reasoning-middleware.ts\nfunction extractReasoningMiddleware({\n tagName,\n separator = \"\\n\",\n startWithReasoning = false\n}) {\n const openingTag = `<${tagName}>`;\n const closingTag = `</${tagName}>`;\n return {\n middlewareVersion: \"v2\",\n wrapGenerate: async ({ doGenerate }) => {\n const { content, ...rest } = await doGenerate();\n const transformedContent = [];\n for (const part of content) {\n if (part.type !== \"text\") {\n transformedContent.push(part);\n continue;\n }\n const text2 = startWithReasoning ? openingTag + part.text : part.text;\n const regexp = new RegExp(`${openingTag}(.*?)${closingTag}`, \"gs\");\n const matches = Array.from(text2.matchAll(regexp));\n if (!matches.length) {\n transformedContent.push(part);\n continue;\n }\n const reasoningText = matches.map((match) => match[1]).join(separator);\n let textWithoutReasoning = text2;\n for (let i = matches.length - 1; i >= 0; i--) {\n const match = matches[i];\n const beforeMatch = textWithoutReasoning.slice(0, match.index);\n const afterMatch = textWithoutReasoning.slice(\n match.index + match[0].length\n );\n textWithoutReasoning = beforeMatch + (beforeMatch.length > 0 && afterMatch.length > 0 ? separator : \"\") + afterMatch;\n }\n transformedContent.push({\n type: \"reasoning\",\n text: reasoningText\n });\n transformedContent.push({\n type: \"text\",\n text: textWithoutReasoning\n });\n }\n return { content: transformedContent, ...rest };\n },\n wrapStream: async ({ doStream }) => {\n const { stream, ...rest } = await doStream();\n const reasoningExtractions = {};\n let delayedTextStart;\n return {\n stream: stream.pipeThrough(\n new TransformStream({\n transform: (chunk, controller) => {\n if (chunk.type === \"text-start\") {\n delayedTextStart = chunk;\n return;\n }\n if (chunk.type === \"text-end\" && delayedTextStart) {\n controller.enqueue(delayedTextStart);\n delayedTextStart = void 0;\n }\n if (chunk.type !== \"text-delta\") {\n controller.enqueue(chunk);\n return;\n }\n if (reasoningExtractions[chunk.id] == null) {\n reasoningExtractions[chunk.id] = {\n isFirstReasoning: true,\n isFirstText: true,\n afterSwitch: false,\n isReasoning: startWithReasoning,\n buffer: \"\",\n idCounter: 0,\n textId: chunk.id\n };\n }\n const activeExtraction = reasoningExtractions[chunk.id];\n activeExtraction.buffer += chunk.delta;\n function publish(text2) {\n if (text2.length > 0) {\n const prefix = activeExtraction.afterSwitch && (activeExtraction.isReasoning ? !activeExtraction.isFirstReasoning : !activeExtraction.isFirstText) ? separator : \"\";\n if (activeExtraction.isReasoning && (activeExtraction.afterSwitch || activeExtraction.isFirstReasoning)) {\n controller.enqueue({\n type: \"reasoning-start\",\n id: `reasoning-${activeExtraction.idCounter}`\n });\n }\n if (activeExtraction.isReasoning) {\n controller.enqueue({\n type: \"reasoning-delta\",\n delta: prefix + text2,\n id: `reasoning-${activeExtraction.idCounter}`\n });\n } else {\n if (delayedTextStart) {\n controller.enqueue(delayedTextStart);\n delayedTextStart = void 0;\n }\n controller.enqueue({\n type: \"text-delta\",\n delta: prefix + text2,\n id: activeExtraction.textId\n });\n }\n activeExtraction.afterSwitch = false;\n if (activeExtraction.isReasoning) {\n activeExtraction.isFirstReasoning = false;\n } else {\n activeExtraction.isFirstText = false;\n }\n }\n }\n do {\n const nextTag = activeExtraction.isReasoning ? closingTag : openingTag;\n const startIndex = getPotentialStartIndex(\n activeExtraction.buffer,\n nextTag\n );\n if (startIndex == null) {\n publish(activeExtraction.buffer);\n activeExtraction.buffer = \"\";\n break;\n }\n publish(activeExtraction.buffer.slice(0, startIndex));\n const foundFullMatch = startIndex + nextTag.length <= activeExtraction.buffer.length;\n if (foundFullMatch) {\n activeExtraction.buffer = activeExtraction.buffer.slice(\n startIndex + nextTag.length\n );\n if (activeExtraction.isReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: `reasoning-${activeExtraction.idCounter++}`\n });\n }\n activeExtraction.isReasoning = !activeExtraction.isReasoning;\n activeExtraction.afterSwitch = true;\n } else {\n activeExtraction.buffer = activeExtraction.buffer.slice(startIndex);\n break;\n }\n } while (true);\n }\n })\n ),\n ...rest\n };\n }\n };\n}\n\n// src/middleware/simulate-streaming-middleware.ts\nfunction simulateStreamingMiddleware() {\n return {\n middlewareVersion: \"v2\",\n wrapStream: async ({ doGenerate }) => {\n const result = await doGenerate();\n let id = 0;\n const simulatedStream = new ReadableStream({\n start(controller) {\n controller.enqueue({\n type: \"stream-start\",\n warnings: result.warnings\n });\n controller.enqueue({ type: \"response-metadata\", ...result.response });\n for (const part of result.content) {\n switch (part.type) {\n case \"text\": {\n if (part.text.length > 0) {\n controller.enqueue({ type: \"text-start\", id: String(id) });\n controller.enqueue({\n type: \"text-delta\",\n id: String(id),\n delta: part.text\n });\n controller.enqueue({ type: \"text-end\", id: String(id) });\n id++;\n }\n break;\n }\n case \"reasoning\": {\n controller.enqueue({\n type: \"reasoning-start\",\n id: String(id),\n providerMetadata: part.providerMetadata\n });\n controller.enqueue({\n type: \"reasoning-delta\",\n id: String(id),\n delta: part.text\n });\n controller.enqueue({ type: \"reasoning-end\", id: String(id) });\n id++;\n break;\n }\n default: {\n controller.enqueue(part);\n break;\n }\n }\n }\n controller.enqueue({\n type: \"finish\",\n finishReason: result.finishReason,\n usage: result.usage,\n providerMetadata: result.providerMetadata\n });\n controller.close();\n }\n });\n return {\n stream: simulatedStream,\n request: result.request,\n response: result.response\n };\n }\n };\n}\n\n// src/middleware/wrap-language-model.ts\nvar wrapLanguageModel = ({\n model,\n middleware: middlewareArg,\n modelId,\n providerId\n}) => {\n return [...asArray(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {\n return doWrap({ model: wrappedModel, middleware, modelId, providerId });\n }, model);\n};\nvar doWrap = ({\n model,\n middleware: {\n transformParams,\n wrapGenerate,\n wrapStream,\n overrideProvider,\n overrideModelId,\n overrideSupportedUrls\n },\n modelId,\n providerId\n}) => {\n var _a16, _b, _c;\n async function doTransform({\n params,\n type\n }) {\n return transformParams ? await transformParams({ params, type, model }) : params;\n }\n return {\n specificationVersion: \"v2\",\n provider: (_a16 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a16 : model.provider,\n modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,\n supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,\n async doGenerate(params) {\n const transformedParams = await doTransform({ params, type: \"generate\" });\n const doGenerate = async () => model.doGenerate(transformedParams);\n const doStream = async () => model.doStream(transformedParams);\n return wrapGenerate ? wrapGenerate({\n doGenerate,\n doStream,\n params: transformedParams,\n model\n }) : doGenerate();\n },\n async doStream(params) {\n const transformedParams = await doTransform({ params, type: \"stream\" });\n const doGenerate = async () => model.doGenerate(transformedParams);\n const doStream = async () => model.doStream(transformedParams);\n return wrapStream ? wrapStream({ doGenerate, doStream, params: transformedParams, model }) : doStream();\n }\n };\n};\n\n// src/middleware/wrap-provider.ts\nfunction wrapProvider({\n provider,\n languageModelMiddleware\n}) {\n const wrappedProvider = {\n languageModel(modelId) {\n let model = provider.languageModel(modelId);\n model = wrapLanguageModel({\n model,\n middleware: languageModelMiddleware\n });\n return model;\n },\n textEmbeddingModel: provider.textEmbeddingModel,\n imageModel: provider.imageModel,\n transcriptionModel: provider.transcriptionModel,\n speechModel: provider.speechModel\n };\n return wrappedProvider;\n}\n\n// src/registry/custom-provider.ts\nimport {\n NoSuchModelError as NoSuchModelError2\n} from \"@ai-sdk/provider\";\nfunction customProvider({\n languageModels,\n textEmbeddingModels,\n imageModels,\n transcriptionModels,\n speechModels,\n fallbackProvider\n}) {\n return {\n languageModel(modelId) {\n if (languageModels != null && modelId in languageModels) {\n return languageModels[modelId];\n }\n if (fallbackProvider) {\n return fallbackProvider.languageModel(modelId);\n }\n throw new NoSuchModelError2({ modelId, modelType: \"languageModel\" });\n },\n textEmbeddingModel(modelId) {\n if (textEmbeddingModels != null && modelId in textEmbeddingModels) {\n return textEmbeddingModels[modelId];\n }\n if (fallbackProvider) {\n return fallbackProvider.textEmbeddingModel(modelId);\n }\n throw new NoSuchModelError2({ modelId, modelType: \"textEmbeddingModel\" });\n },\n imageModel(modelId) {\n if (imageModels != null && modelId in imageModels) {\n return imageModels[modelId];\n }\n if (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) {\n return fallbackProvider.imageModel(modelId);\n }\n throw new NoSuchModelError2({ modelId, modelType: \"imageModel\" });\n },\n transcriptionModel(modelId) {\n if (transcriptionModels != null && modelId in transcriptionModels) {\n return transcriptionModels[modelId];\n }\n if (fallbackProvider == null ? void 0 : fallbackProvider.transcriptionModel) {\n return fallbackProvider.transcriptionModel(modelId);\n }\n throw new NoSuchModelError2({ modelId, modelType: \"transcriptionModel\" });\n },\n speechModel(modelId) {\n if (speechModels != null && modelId in speechModels) {\n return speechModels[modelId];\n }\n if (fallbackProvider == null ? void 0 : fallbackProvider.speechModel) {\n return fallbackProvider.speechModel(modelId);\n }\n throw new NoSuchModelError2({ modelId, modelType: \"speechModel\" });\n }\n };\n}\nvar experimental_customProvider = customProvider;\n\n// src/registry/no-such-provider-error.ts\nimport { AISDKError as AISDKError20, NoSuchModelError as NoSuchModelError3 } from \"@ai-sdk/provider\";\nvar name15 = \"AI_NoSuchProviderError\";\nvar marker15 = `vercel.ai.error.${name15}`;\nvar symbol15 = Symbol.for(marker15);\nvar _a15;\nvar NoSuchProviderError = class extends NoSuchModelError3 {\n constructor({\n modelId,\n modelType,\n providerId,\n availableProviders,\n message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`\n }) {\n super({ errorName: name15, modelId, modelType, message });\n this[_a15] = true;\n this.providerId = providerId;\n this.availableProviders = availableProviders;\n }\n static isInstance(error) {\n return AISDKError20.hasMarker(error, marker15);\n }\n};\n_a15 = symbol15;\n\n// src/registry/provider-registry.ts\nimport {\n NoSuchModelError as NoSuchModelError4\n} from \"@ai-sdk/provider\";\nfunction createProviderRegistry(providers, {\n separator = \":\",\n languageModelMiddleware\n} = {}) {\n const registry = new DefaultProviderRegistry({\n separator,\n languageModelMiddleware\n });\n for (const [id, provider] of Object.entries(providers)) {\n registry.registerProvider({ id, provider });\n }\n return registry;\n}\nvar experimental_createProviderRegistry = createProviderRegistry;\nvar DefaultProviderRegistry = class {\n constructor({\n separator,\n languageModelMiddleware\n }) {\n this.providers = {};\n this.separator = separator;\n this.languageModelMiddleware = languageModelMiddleware;\n }\n registerProvider({\n id,\n provider\n }) {\n this.providers[id] = provider;\n }\n getProvider(id, modelType) {\n const provider = this.providers[id];\n if (provider == null) {\n throw new NoSuchProviderError({\n modelId: id,\n modelType,\n providerId: id,\n availableProviders: Object.keys(this.providers)\n });\n }\n return provider;\n }\n splitId(id, modelType) {\n const index = id.indexOf(this.separator);\n if (index === -1) {\n throw new NoSuchModelError4({\n modelId: id,\n modelType,\n message: `Invalid ${modelType} id for registry: ${id} (must be in the format \"providerId${this.separator}modelId\")`\n });\n }\n return [id.slice(0, index), id.slice(index + this.separator.length)];\n }\n languageModel(id) {\n var _a16, _b;\n const [providerId, modelId] = this.splitId(id, \"languageModel\");\n let model = (_b = (_a16 = this.getProvider(providerId, \"languageModel\")).languageModel) == null ? void 0 : _b.call(\n _a16,\n modelId\n );\n if (model == null) {\n throw new NoSuchModelError4({ modelId: id, modelType: \"languageModel\" });\n }\n if (this.languageModelMiddleware != null) {\n model = wrapLanguageModel({\n model,\n middleware: this.languageModelMiddleware\n });\n }\n return model;\n }\n textEmbeddingModel(id) {\n var _a16;\n const [providerId, modelId] = this.splitId(id, \"textEmbeddingModel\");\n const provider = this.getProvider(providerId, \"textEmbeddingModel\");\n const model = (_a16 = provider.textEmbeddingModel) == null ? void 0 : _a16.call(provider, modelId);\n if (model == null) {\n throw new NoSuchModelError4({\n modelId: id,\n modelType: \"textEmbeddingModel\"\n });\n }\n return model;\n }\n imageModel(id) {\n var _a16;\n const [providerId, modelId] = this.splitId(id, \"imageModel\");\n const provider = this.getProvider(providerId, \"imageModel\");\n const model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);\n if (model == null) {\n throw new NoSuchModelError4({ modelId: id, modelType: \"imageModel\" });\n }\n return model;\n }\n transcriptionModel(id) {\n var _a16;\n const [providerId, modelId] = this.splitId(id, \"transcriptionModel\");\n const provider = this.getProvider(providerId, \"transcriptionModel\");\n const model = (_a16 = provider.transcriptionModel) == null ? void 0 : _a16.call(provider, modelId);\n if (model == null) {\n throw new NoSuchModelError4({\n modelId: id,\n modelType: \"transcriptionModel\"\n });\n }\n return model;\n }\n speechModel(id) {\n var _a16;\n const [providerId, modelId] = this.splitId(id, \"speechModel\");\n const provider = this.getProvider(providerId, \"speechModel\");\n const model = (_a16 = provider.speechModel) == null ? void 0 : _a16.call(provider, modelId);\n if (model == null) {\n throw new NoSuchModelError4({ modelId: id, modelType: \"speechModel\" });\n }\n return model;\n }\n};\n\n// src/transcribe/transcribe.ts\nimport { withUserAgentSuffix as withUserAgentSuffix8 } from \"@ai-sdk/provider-utils\";\n\n// src/error/no-transcript-generated-error.ts\nimport { AISDKError as AISDKError21 } from \"@ai-sdk/provider\";\nvar NoTranscriptGeneratedError = class extends AISDKError21 {\n constructor(options) {\n super({\n name: \"AI_NoTranscriptGeneratedError\",\n message: \"No transcript generated.\"\n });\n this.responses = options.responses;\n }\n};\n\n// src/transcribe/transcribe.ts\nasync function transcribe({\n model,\n audio,\n providerOptions = {},\n maxRetries: maxRetriesArg,\n abortSignal,\n headers\n}) {\n if (model.specificationVersion !== \"v2\") {\n throw new UnsupportedModelVersionError({\n version: model.specificationVersion,\n provider: model.provider,\n modelId: model.modelId\n });\n }\n const { retry } = prepareRetries({\n maxRetries: maxRetriesArg,\n abortSignal\n });\n const headersWithUserAgent = withUserAgentSuffix8(\n headers != null ? headers : {},\n `ai/${VERSION}`\n );\n const audioData = audio instanceof URL ? (await download({ url: audio })).data : convertDataContentToUint8Array(audio);\n const result = await retry(\n () => {\n var _a16;\n return model.doGenerate({\n audio: audioData,\n abortSignal,\n headers: headersWithUserAgent,\n providerOptions,\n mediaType: (_a16 = detectMediaType({\n data: audioData,\n signatures: audioMediaTypeSignatures\n })) != null ? _a16 : \"audio/wav\"\n });\n }\n );\n logWarnings(result.warnings);\n if (!result.text) {\n throw new NoTranscriptGeneratedError({ responses: [result.response] });\n }\n return new DefaultTranscriptionResult({\n text: result.text,\n segments: result.segments,\n language: result.language,\n durationInSeconds: result.durationInSeconds,\n warnings: result.warnings,\n responses: [result.response],\n providerMetadata: result.providerMetadata\n });\n}\nvar DefaultTranscriptionResult = class {\n constructor(options) {\n var _a16;\n this.text = options.text;\n this.segments = options.segments;\n this.language = options.language;\n this.durationInSeconds = options.durationInSeconds;\n this.warnings = options.warnings;\n this.responses = options.responses;\n this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};\n }\n};\n\n// src/ui/call-completion-api.ts\nimport {\n parseJsonEventStream,\n withUserAgentSuffix as withUserAgentSuffix9,\n getRuntimeEnvironmentUserAgent as getRuntimeEnvironmentUserAgent2\n} from \"@ai-sdk/provider-utils\";\n\n// src/ui/process-text-stream.ts\nasync function processTextStream({\n stream,\n onTextPart\n}) {\n const reader = stream.pipeThrough(new TextDecoderStream()).getReader();\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n await onTextPart(value);\n }\n}\n\n// src/ui/call-completion-api.ts\nvar getOriginalFetch = () => fetch;\nasync function callCompletionApi({\n api,\n prompt,\n credentials,\n headers,\n body,\n streamProtocol = \"data\",\n setCompletion,\n setLoading,\n setError,\n setAbortController,\n onFinish,\n onError,\n fetch: fetch2 = getOriginalFetch()\n}) {\n var _a16;\n try {\n setLoading(true);\n setError(void 0);\n const abortController = new AbortController();\n setAbortController(abortController);\n setCompletion(\"\");\n const response = await fetch2(api, {\n method: \"POST\",\n body: JSON.stringify({\n prompt,\n ...body\n }),\n credentials,\n headers: withUserAgentSuffix9(\n {\n \"Content-Type\": \"application/json\",\n ...headers\n },\n `ai-sdk/${VERSION}`,\n getRuntimeEnvironmentUserAgent2()\n ),\n signal: abortController.signal\n }).catch((err) => {\n throw err;\n });\n if (!response.ok) {\n throw new Error(\n (_a16 = await response.text()) != null ? _a16 : \"Failed to fetch the chat response.\"\n );\n }\n if (!response.body) {\n throw new Error(\"The response body is empty.\");\n }\n let result = \"\";\n switch (streamProtocol) {\n case \"text\": {\n await processTextStream({\n stream: response.body,\n onTextPart: (chunk) => {\n result += chunk;\n setCompletion(result);\n }\n });\n break;\n }\n case \"data\": {\n await consumeStream({\n stream: parseJsonEventStream({\n stream: response.body,\n schema: uiMessageChunkSchema\n }).pipeThrough(\n new TransformStream({\n async transform(part) {\n if (!part.success) {\n throw part.error;\n }\n const streamPart = part.value;\n if (streamPart.type === \"text-delta\") {\n result += streamPart.delta;\n setCompletion(result);\n } else if (streamPart.type === \"error\") {\n throw new Error(streamPart.errorText);\n }\n }\n })\n ),\n onError: (error) => {\n throw error;\n }\n });\n break;\n }\n default: {\n const exhaustiveCheck = streamProtocol;\n throw new Error(`Unknown stream protocol: ${exhaustiveCheck}`);\n }\n }\n if (onFinish) {\n onFinish(prompt, result);\n }\n setAbortController(null);\n return result;\n } catch (err) {\n if (err.name === \"AbortError\") {\n setAbortController(null);\n return null;\n }\n if (err instanceof Error) {\n if (onError) {\n onError(err);\n }\n }\n setError(err);\n } finally {\n setLoading(false);\n }\n}\n\n// src/ui/chat.ts\nimport {\n generateId as generateIdFunc\n} from \"@ai-sdk/provider-utils\";\n\n// src/ui/convert-file-list-to-file-ui-parts.ts\nasync function convertFileListToFileUIParts(files) {\n if (files == null) {\n return [];\n }\n if (!globalThis.FileList || !(files instanceof globalThis.FileList)) {\n throw new Error(\"FileList is not supported in the current environment\");\n }\n return Promise.all(\n Array.from(files).map(async (file) => {\n const { name: name16, type } = file;\n const dataUrl = await new Promise((resolve2, reject) => {\n const reader = new FileReader();\n reader.onload = (readerEvent) => {\n var _a16;\n resolve2((_a16 = readerEvent.target) == null ? void 0 : _a16.result);\n };\n reader.onerror = (error) => reject(error);\n reader.readAsDataURL(file);\n });\n return {\n type: \"file\",\n mediaType: type,\n filename: name16,\n url: dataUrl\n };\n })\n );\n}\n\n// src/ui/default-chat-transport.ts\nimport { parseJsonEventStream as parseJsonEventStream2 } from \"@ai-sdk/provider-utils\";\n\n// src/ui/http-chat-transport.ts\nimport {\n normalizeHeaders,\n resolve,\n withUserAgentSuffix as withUserAgentSuffix10,\n getRuntimeEnvironmentUserAgent as getRuntimeEnvironmentUserAgent3\n} from \"@ai-sdk/provider-utils\";\nvar HttpChatTransport = class {\n constructor({\n api = \"/api/chat\",\n credentials,\n headers,\n body,\n fetch: fetch2,\n prepareSendMessagesRequest,\n prepareReconnectToStreamRequest\n }) {\n this.api = api;\n this.credentials = credentials;\n this.headers = headers;\n this.body = body;\n this.fetch = fetch2;\n this.prepareSendMessagesRequest = prepareSendMessagesRequest;\n this.prepareReconnectToStreamRequest = prepareReconnectToStreamRequest;\n }\n async sendMessages({\n abortSignal,\n ...options\n }) {\n var _a16, _b, _c, _d, _e;\n const resolvedBody = await resolve(this.body);\n const resolvedHeaders = await resolve(this.headers);\n const resolvedCredentials = await resolve(this.credentials);\n const baseHeaders = {\n ...normalizeHeaders(resolvedHeaders),\n ...normalizeHeaders(options.headers)\n };\n const preparedRequest = await ((_a16 = this.prepareSendMessagesRequest) == null ? void 0 : _a16.call(this, {\n api: this.api,\n id: options.chatId,\n messages: options.messages,\n body: { ...resolvedBody, ...options.body },\n headers: baseHeaders,\n credentials: resolvedCredentials,\n requestMetadata: options.metadata,\n trigger: options.trigger,\n messageId: options.messageId\n }));\n const api = (_b = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b : this.api;\n const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? normalizeHeaders(preparedRequest.headers) : baseHeaders;\n const body = (preparedRequest == null ? void 0 : preparedRequest.body) !== void 0 ? preparedRequest.body : {\n ...resolvedBody,\n ...options.body,\n id: options.chatId,\n messages: options.messages,\n trigger: options.trigger,\n messageId: options.messageId\n };\n const credentials = (_c = preparedRequest == null ? void 0 : preparedRequest.credentials) != null ? _c : resolvedCredentials;\n const fetch2 = (_d = this.fetch) != null ? _d : globalThis.fetch;\n const response = await fetch2(api, {\n method: \"POST\",\n headers: withUserAgentSuffix10(\n {\n \"Content-Type\": \"application/json\",\n ...headers\n },\n `ai-sdk/${VERSION}`,\n getRuntimeEnvironmentUserAgent3()\n ),\n body: JSON.stringify(body),\n credentials,\n signal: abortSignal\n });\n if (!response.ok) {\n throw new Error(\n (_e = await response.text()) != null ? _e : \"Failed to fetch the chat response.\"\n );\n }\n if (!response.body) {\n throw new Error(\"The response body is empty.\");\n }\n return this.processResponseStream(response.body);\n }\n async reconnectToStream(options) {\n var _a16, _b, _c, _d, _e;\n const resolvedBody = await resolve(this.body);\n const resolvedHeaders = await resolve(this.headers);\n const resolvedCredentials = await resolve(this.credentials);\n const baseHeaders = {\n ...normalizeHeaders(resolvedHeaders),\n ...normalizeHeaders(options.headers)\n };\n const preparedRequest = await ((_a16 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a16.call(this, {\n api: this.api,\n id: options.chatId,\n body: { ...resolvedBody, ...options.body },\n headers: baseHeaders,\n credentials: resolvedCredentials,\n requestMetadata: options.metadata\n }));\n const api = (_b = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b : `${this.api}/${options.chatId}/stream`;\n const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? normalizeHeaders(preparedRequest.headers) : baseHeaders;\n const credentials = (_c = preparedRequest == null ? void 0 : preparedRequest.credentials) != null ? _c : resolvedCredentials;\n const fetch2 = (_d = this.fetch) != null ? _d : globalThis.fetch;\n const response = await fetch2(api, {\n method: \"GET\",\n headers: withUserAgentSuffix10(\n headers,\n `ai-sdk/${VERSION}`,\n getRuntimeEnvironmentUserAgent3()\n ),\n credentials\n });\n if (response.status === 204) {\n return null;\n }\n if (!response.ok) {\n throw new Error(\n (_e = await response.text()) != null ? _e : \"Failed to fetch the chat response.\"\n );\n }\n if (!response.body) {\n throw new Error(\"The response body is empty.\");\n }\n return this.processResponseStream(response.body);\n }\n};\n\n// src/ui/default-chat-transport.ts\nvar DefaultChatTransport = class extends HttpChatTransport {\n constructor(options = {}) {\n super(options);\n }\n processResponseStream(stream) {\n return parseJsonEventStream2({\n stream,\n schema: uiMessageChunkSchema\n }).pipeThrough(\n new TransformStream({\n async transform(chunk, controller) {\n if (!chunk.success) {\n throw chunk.error;\n }\n controller.enqueue(chunk.value);\n }\n })\n );\n }\n};\n\n// src/ui/chat.ts\nvar AbstractChat = class {\n constructor({\n generateId: generateId3 = generateIdFunc,\n id = generateId3(),\n transport = new DefaultChatTransport(),\n messageMetadataSchema,\n dataPartSchemas,\n state,\n onError,\n onToolCall,\n onFinish,\n onData,\n sendAutomaticallyWhen\n }) {\n this.activeResponse = void 0;\n this.jobExecutor = new SerialJobExecutor();\n /**\n * Appends or replaces a user message to the chat list. This triggers the API call to fetch\n * the assistant's response.\n *\n * If a messageId is provided, the message will be replaced.\n */\n this.sendMessage = async (message, options) => {\n var _a16, _b, _c, _d;\n if (message == null) {\n await this.makeRequest({\n trigger: \"submit-message\",\n messageId: (_a16 = this.lastMessage) == null ? void 0 : _a16.id,\n ...options\n });\n return;\n }\n let uiMessage;\n if (\"text\" in message || \"files\" in message) {\n const fileParts = Array.isArray(message.files) ? message.files : await convertFileListToFileUIParts(message.files);\n uiMessage = {\n parts: [\n ...fileParts,\n ...\"text\" in message && message.text != null ? [{ type: \"text\", text: message.text }] : []\n ]\n };\n } else {\n uiMessage = message;\n }\n if (message.messageId != null) {\n const messageIndex = this.state.messages.findIndex(\n (m) => m.id === message.messageId\n );\n if (messageIndex === -1) {\n throw new Error(`message with id ${message.messageId} not found`);\n }\n if (this.state.messages[messageIndex].role !== \"user\") {\n throw new Error(\n `message with id ${message.messageId} is not a user message`\n );\n }\n this.state.messages = this.state.messages.slice(0, messageIndex + 1);\n this.state.replaceMessage(messageIndex, {\n ...uiMessage,\n id: message.messageId,\n role: (_b = uiMessage.role) != null ? _b : \"user\",\n metadata: message.metadata\n });\n } else {\n this.state.pushMessage({\n ...uiMessage,\n id: (_c = uiMessage.id) != null ? _c : this.generateId(),\n role: (_d = uiMessage.role) != null ? _d : \"user\",\n metadata: message.metadata\n });\n }\n await this.makeRequest({\n trigger: \"submit-message\",\n messageId: message.messageId,\n ...options\n });\n };\n /**\n * Regenerate the assistant message with the provided message id.\n * If no message id is provided, the last assistant message will be regenerated.\n */\n this.regenerate = async ({\n messageId,\n ...options\n } = {}) => {\n const messageIndex = messageId == null ? this.state.messages.length - 1 : this.state.messages.findIndex((message) => message.id === messageId);\n if (messageIndex === -1) {\n throw new Error(`message ${messageId} not found`);\n }\n this.state.messages = this.state.messages.slice(\n 0,\n // if the message is a user message, we need to include it in the request:\n this.messages[messageIndex].role === \"assistant\" ? messageIndex : messageIndex + 1\n );\n await this.makeRequest({\n trigger: \"regenerate-message\",\n messageId,\n ...options\n });\n };\n /**\n * Attempt to resume an ongoing streaming response.\n */\n this.resumeStream = async (options = {}) => {\n await this.makeRequest({ trigger: \"resume-stream\", ...options });\n };\n /**\n * Clear the error state and set the status to ready if the chat is in an error state.\n */\n this.clearError = () => {\n if (this.status === \"error\") {\n this.state.error = void 0;\n this.setStatus({ status: \"ready\" });\n }\n };\n this.addToolResult = async ({\n state = \"output-available\",\n tool: tool2,\n toolCallId,\n output,\n errorText\n }) => this.jobExecutor.run(async () => {\n var _a16, _b;\n const messages = this.state.messages;\n const lastMessage = messages[messages.length - 1];\n this.state.replaceMessage(messages.length - 1, {\n ...lastMessage,\n parts: lastMessage.parts.map(\n (part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? { ...part, state, output, errorText } : part\n )\n });\n if (this.activeResponse) {\n this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map(\n (part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? {\n ...part,\n state,\n output,\n errorText\n } : part\n );\n }\n if (this.status !== \"streaming\" && this.status !== \"submitted\" && ((_a16 = this.sendAutomaticallyWhen) == null ? void 0 : _a16.call(this, { messages: this.state.messages }))) {\n this.makeRequest({\n trigger: \"submit-message\",\n messageId: (_b = this.lastMessage) == null ? void 0 : _b.id\n });\n }\n });\n /**\n * Abort the current request immediately, keep the generated tokens if any.\n */\n this.stop = async () => {\n var _a16;\n if (this.status !== \"streaming\" && this.status !== \"submitted\")\n return;\n if ((_a16 = this.activeResponse) == null ? void 0 : _a16.abortController) {\n this.activeResponse.abortController.abort();\n }\n };\n this.id = id;\n this.transport = transport;\n this.generateId = generateId3;\n this.messageMetadataSchema = messageMetadataSchema;\n this.dataPartSchemas = dataPartSchemas;\n this.state = state;\n this.onError = onError;\n this.onToolCall = onToolCall;\n this.onFinish = onFinish;\n this.onData = onData;\n this.sendAutomaticallyWhen = sendAutomaticallyWhen;\n }\n /**\n * Hook status:\n *\n * - `submitted`: The message has been sent to the API and we're awaiting the start of the response stream.\n * - `streaming`: The response is actively streaming in from the API, receiving chunks of data.\n * - `ready`: The full response has been received and processed; a new user message can be submitted.\n * - `error`: An error occurred during the API request, preventing successful completion.\n */\n get status() {\n return this.state.status;\n }\n setStatus({\n status,\n error\n }) {\n if (this.status === status)\n return;\n this.state.status = status;\n this.state.error = error;\n }\n get error() {\n return this.state.error;\n }\n get messages() {\n return this.state.messages;\n }\n get lastMessage() {\n return this.state.messages[this.state.messages.length - 1];\n }\n set messages(messages) {\n this.state.messages = messages;\n }\n async makeRequest({\n trigger,\n metadata,\n headers,\n body,\n messageId\n }) {\n var _a16, _b, _c;\n this.setStatus({ status: \"submitted\", error: void 0 });\n const lastMessage = this.lastMessage;\n let isAbort = false;\n let isDisconnect = false;\n let isError = false;\n try {\n const activeResponse = {\n state: createStreamingUIMessageState({\n lastMessage: this.state.snapshot(lastMessage),\n messageId: this.generateId()\n }),\n abortController: new AbortController()\n };\n activeResponse.abortController.signal.addEventListener(\"abort\", () => {\n isAbort = true;\n });\n this.activeResponse = activeResponse;\n let stream;\n if (trigger === \"resume-stream\") {\n const reconnect = await this.transport.reconnectToStream({\n chatId: this.id,\n metadata,\n headers,\n body\n });\n if (reconnect == null) {\n this.setStatus({ status: \"ready\" });\n return;\n }\n stream = reconnect;\n } else {\n stream = await this.transport.sendMessages({\n chatId: this.id,\n messages: this.state.messages,\n abortSignal: activeResponse.abortController.signal,\n metadata,\n headers,\n body,\n trigger,\n messageId\n });\n }\n const runUpdateMessageJob = (job) => (\n // serialize the job execution to avoid race conditions:\n this.jobExecutor.run(\n () => job({\n state: activeResponse.state,\n write: () => {\n var _a17;\n this.setStatus({ status: \"streaming\" });\n const replaceLastMessage = activeResponse.state.message.id === ((_a17 = this.lastMessage) == null ? void 0 : _a17.id);\n if (replaceLastMessage) {\n this.state.replaceMessage(\n this.state.messages.length - 1,\n activeResponse.state.message\n );\n } else {\n this.state.pushMessage(activeResponse.state.message);\n }\n }\n })\n )\n );\n await consumeStream({\n stream: processUIMessageStream({\n stream,\n onToolCall: this.onToolCall,\n onData: this.onData,\n messageMetadataSchema: this.messageMetadataSchema,\n dataPartSchemas: this.dataPartSchemas,\n runUpdateMessageJob,\n onError: (error) => {\n throw error;\n }\n }),\n onError: (error) => {\n throw error;\n }\n });\n this.setStatus({ status: \"ready\" });\n } catch (err) {\n if (isAbort || err.name === \"AbortError\") {\n isAbort = true;\n this.setStatus({ status: \"ready\" });\n return null;\n }\n isError = true;\n if (err instanceof TypeError && (err.message.toLowerCase().includes(\"fetch\") || err.message.toLowerCase().includes(\"network\"))) {\n isDisconnect = true;\n }\n if (this.onError && err instanceof Error) {\n this.onError(err);\n }\n this.setStatus({ status: \"error\", error: err });\n } finally {\n try {\n (_a16 = this.onFinish) == null ? void 0 : _a16.call(this, {\n message: this.activeResponse.state.message,\n messages: this.state.messages,\n isAbort,\n isDisconnect,\n isError\n });\n } catch (err) {\n console.error(err);\n }\n this.activeResponse = void 0;\n }\n if (((_b = this.sendAutomaticallyWhen) == null ? void 0 : _b.call(this, { messages: this.state.messages })) && !isError) {\n await this.makeRequest({\n trigger: \"submit-message\",\n messageId: (_c = this.lastMessage) == null ? void 0 : _c.id,\n metadata,\n headers,\n body\n });\n }\n }\n};\n\n// src/ui/last-assistant-message-is-complete-with-tool-calls.ts\nfunction lastAssistantMessageIsCompleteWithToolCalls({\n messages\n}) {\n const message = messages[messages.length - 1];\n if (!message) {\n return false;\n }\n if (message.role !== \"assistant\") {\n return false;\n }\n const lastStepStartIndex = message.parts.reduce((lastIndex, part, index) => {\n return part.type === \"step-start\" ? index : lastIndex;\n }, -1);\n const lastStepToolInvocations = message.parts.slice(lastStepStartIndex + 1).filter(isToolOrDynamicToolUIPart).filter((part) => !part.providerExecuted);\n return lastStepToolInvocations.length > 0 && lastStepToolInvocations.every(\n (part) => part.state === \"output-available\" || part.state === \"output-error\"\n );\n}\n\n// src/ui/transform-text-to-ui-message-stream.ts\nfunction transformTextToUiMessageStream({\n stream\n}) {\n return stream.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"start\" });\n controller.enqueue({ type: \"start-step\" });\n controller.enqueue({ type: \"text-start\", id: \"text-1\" });\n },\n async transform(part, controller) {\n controller.enqueue({ type: \"text-delta\", id: \"text-1\", delta: part });\n },\n async flush(controller) {\n controller.enqueue({ type: \"text-end\", id: \"text-1\" });\n controller.enqueue({ type: \"finish-step\" });\n controller.enqueue({ type: \"finish\" });\n }\n })\n );\n}\n\n// src/ui/text-stream-chat-transport.ts\nvar TextStreamChatTransport = class extends HttpChatTransport {\n constructor(options = {}) {\n super(options);\n }\n processResponseStream(stream) {\n return transformTextToUiMessageStream({\n stream: stream.pipeThrough(new TextDecoderStream())\n });\n }\n};\n\n// src/ui/validate-ui-messages.ts\nimport { TypeValidationError as TypeValidationError4 } from \"@ai-sdk/provider\";\nimport {\n lazyValidator as lazyValidator2,\n validateTypes as validateTypes2,\n zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z8 } from \"zod/v4\";\nvar uiMessagesSchema = lazyValidator2(\n () => zodSchema2(\n z8.array(\n z8.object({\n id: z8.string(),\n role: z8.enum([\"system\", \"user\", \"assistant\"]),\n metadata: z8.unknown().optional(),\n parts: z8.array(\n z8.union([\n z8.object({\n type: z8.literal(\"text\"),\n text: z8.string(),\n state: z8.enum([\"streaming\", \"done\"]).optional(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z8.object({\n type: z8.literal(\"reasoning\"),\n text: z8.string(),\n state: z8.enum([\"streaming\", \"done\"]).optional(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z8.object({\n type: z8.literal(\"source-url\"),\n sourceId: z8.string(),\n url: z8.string(),\n title: z8.string().optional(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z8.object({\n type: z8.literal(\"source-document\"),\n sourceId: z8.string(),\n mediaType: z8.string(),\n title: z8.string(),\n filename: z8.string().optional(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z8.object({\n type: z8.literal(\"file\"),\n mediaType: z8.string(),\n filename: z8.string().optional(),\n url: z8.string(),\n providerMetadata: providerMetadataSchema.optional()\n }),\n z8.object({\n type: z8.literal(\"step-start\")\n }),\n z8.object({\n type: z8.string().startsWith(\"data-\"),\n id: z8.string().optional(),\n data: z8.unknown()\n }),\n z8.object({\n type: z8.literal(\"dynamic-tool\"),\n toolName: z8.string(),\n toolCallId: z8.string(),\n state: z8.literal(\"input-streaming\"),\n input: z8.unknown().optional(),\n providerExecuted: z8.boolean().optional(),\n output: z8.never().optional(),\n errorText: z8.never().optional()\n }),\n z8.object({\n type: z8.literal(\"dynamic-tool\"),\n toolName: z8.string(),\n toolCallId: z8.string(),\n state: z8.literal(\"input-available\"),\n input: z8.unknown(),\n providerExecuted: z8.boolean().optional(),\n output: z8.never().optional(),\n errorText: z8.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional()\n }),\n z8.object({\n type: z8.literal(\"dynamic-tool\"),\n toolName: z8.string(),\n toolCallId: z8.string(),\n state: z8.literal(\"output-available\"),\n input: z8.unknown(),\n providerExecuted: z8.boolean().optional(),\n output: z8.unknown(),\n errorText: z8.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n preliminary: z8.boolean().optional()\n }),\n z8.object({\n type: z8.literal(\"dynamic-tool\"),\n toolName: z8.string(),\n toolCallId: z8.string(),\n state: z8.literal(\"output-error\"),\n input: z8.unknown(),\n providerExecuted: z8.boolean().optional(),\n output: z8.never().optional(),\n errorText: z8.string(),\n callProviderMetadata: providerMetadataSchema.optional()\n }),\n z8.object({\n type: z8.string().startsWith(\"tool-\"),\n toolCallId: z8.string(),\n state: z8.literal(\"input-streaming\"),\n providerExecuted: z8.boolean().optional(),\n input: z8.unknown().optional(),\n output: z8.never().optional(),\n errorText: z8.never().optional(),\n approval: z8.never().optional()\n }),\n z8.object({\n type: z8.string().startsWith(\"tool-\"),\n toolCallId: z8.string(),\n state: z8.literal(\"input-available\"),\n providerExecuted: z8.boolean().optional(),\n input: z8.unknown(),\n output: z8.never().optional(),\n errorText: z8.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z8.never().optional()\n }),\n z8.object({\n type: z8.string().startsWith(\"tool-\"),\n toolCallId: z8.string(),\n state: z8.literal(\"approval-requested\"),\n input: z8.unknown(),\n providerExecuted: z8.boolean().optional(),\n output: z8.never().optional(),\n errorText: z8.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z8.object({\n id: z8.string(),\n approved: z8.never().optional(),\n reason: z8.never().optional()\n })\n }),\n z8.object({\n type: z8.string().startsWith(\"tool-\"),\n toolCallId: z8.string(),\n state: z8.literal(\"approval-responded\"),\n input: z8.unknown(),\n providerExecuted: z8.boolean().optional(),\n output: z8.never().optional(),\n errorText: z8.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z8.object({\n id: z8.string(),\n approved: z8.boolean(),\n reason: z8.string().optional()\n })\n }),\n z8.object({\n type: z8.string().startsWith(\"tool-\"),\n toolCallId: z8.string(),\n state: z8.literal(\"output-available\"),\n providerExecuted: z8.boolean().optional(),\n input: z8.unknown(),\n output: z8.unknown(),\n errorText: z8.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n preliminary: z8.boolean().optional(),\n approval: z8.object({\n id: z8.string(),\n approved: z8.literal(true),\n reason: z8.string().optional()\n }).optional()\n }),\n z8.object({\n type: z8.string().startsWith(\"tool-\"),\n toolCallId: z8.string(),\n state: z8.literal(\"output-error\"),\n providerExecuted: z8.boolean().optional(),\n input: z8.unknown(),\n output: z8.never().optional(),\n errorText: z8.string(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z8.object({\n id: z8.string(),\n approved: z8.literal(true),\n reason: z8.string().optional()\n }).optional()\n }),\n z8.object({\n type: z8.string().startsWith(\"tool-\"),\n toolCallId: z8.string(),\n state: z8.literal(\"output-denied\"),\n providerExecuted: z8.boolean().optional(),\n input: z8.unknown(),\n output: z8.never().optional(),\n errorText: z8.never().optional(),\n callProviderMetadata: providerMetadataSchema.optional(),\n approval: z8.object({\n id: z8.string(),\n approved: z8.literal(false),\n reason: z8.string().optional()\n })\n })\n ])\n )\n })\n )\n )\n);\nasync function safeValidateUIMessages({\n messages,\n metadataSchema,\n dataSchemas,\n tools\n}) {\n try {\n if (messages == null) {\n return {\n success: false,\n error: new InvalidArgumentError({\n parameter: \"messages\",\n value: messages,\n message: \"messages parameter must be provided\"\n })\n };\n }\n const validatedMessages = await validateTypes2({\n value: messages,\n schema: uiMessagesSchema\n });\n if (metadataSchema) {\n for (const message of validatedMessages) {\n await validateTypes2({\n value: message.metadata,\n schema: metadataSchema\n });\n }\n }\n if (dataSchemas) {\n for (const message of validatedMessages) {\n const dataParts = message.parts.filter(\n (part) => part.type.startsWith(\"data-\")\n );\n for (const dataPart of dataParts) {\n const dataName = dataPart.type.slice(5);\n const dataSchema = dataSchemas[dataName];\n if (!dataSchema) {\n return {\n success: false,\n error: new TypeValidationError4({\n value: dataPart.data,\n cause: `No data schema found for data part ${dataName}`\n })\n };\n }\n await validateTypes2({\n value: dataPart.data,\n schema: dataSchema\n });\n }\n }\n }\n if (tools) {\n for (const message of validatedMessages) {\n const toolParts = message.parts.filter(\n (part) => part.type.startsWith(\"tool-\")\n );\n for (const toolPart of toolParts) {\n const toolName = toolPart.type.slice(5);\n const tool2 = tools[toolName];\n if (!tool2) {\n return {\n success: false,\n error: new TypeValidationError4({\n value: toolPart.input,\n cause: `No tool schema found for tool part ${toolName}`\n })\n };\n }\n if (toolPart.state === \"input-available\" || toolPart.state === \"output-available\" || toolPart.state === \"output-error\") {\n await validateTypes2({\n value: toolPart.input,\n schema: tool2.inputSchema\n });\n }\n if (toolPart.state === \"output-available\" && tool2.outputSchema) {\n await validateTypes2({\n value: toolPart.output,\n schema: tool2.outputSchema\n });\n }\n }\n }\n }\n return {\n success: true,\n data: validatedMessages\n };\n } catch (error) {\n const err = error;\n return {\n success: false,\n error: err\n };\n }\n}\nasync function validateUIMessages({\n messages,\n metadataSchema,\n dataSchemas,\n tools\n}) {\n const response = await safeValidateUIMessages({\n messages,\n metadataSchema,\n dataSchemas,\n tools\n });\n if (!response.success)\n throw response.error;\n return response.data;\n}\n\n// src/ui-message-stream/create-ui-message-stream.ts\nimport {\n generateId as generateIdFunc2,\n getErrorMessage as getErrorMessage8\n} from \"@ai-sdk/provider-utils\";\nfunction createUIMessageStream({\n execute,\n onError = getErrorMessage8,\n originalMessages,\n onFinish,\n generateId: generateId3 = generateIdFunc2\n}) {\n let controller;\n const ongoingStreamPromises = [];\n const stream = new ReadableStream({\n start(controllerArg) {\n controller = controllerArg;\n }\n });\n function safeEnqueue(data) {\n try {\n controller.enqueue(data);\n } catch (error) {\n }\n }\n try {\n const result = execute({\n writer: {\n write(part) {\n safeEnqueue(part);\n },\n merge(streamArg) {\n ongoingStreamPromises.push(\n (async () => {\n const reader = streamArg.getReader();\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n break;\n safeEnqueue(value);\n }\n })().catch((error) => {\n safeEnqueue({\n type: \"error\",\n errorText: onError(error)\n });\n })\n );\n },\n onError\n }\n });\n if (result) {\n ongoingStreamPromises.push(\n result.catch((error) => {\n safeEnqueue({\n type: \"error\",\n errorText: onError(error)\n });\n })\n );\n }\n } catch (error) {\n safeEnqueue({\n type: \"error\",\n errorText: onError(error)\n });\n }\n const waitForStreams = new Promise(async (resolve2) => {\n while (ongoingStreamPromises.length > 0) {\n await ongoingStreamPromises.shift();\n }\n resolve2();\n });\n waitForStreams.finally(() => {\n try {\n controller.close();\n } catch (error) {\n }\n });\n return handleUIMessageStreamFinish({\n stream,\n messageId: generateId3(),\n originalMessages,\n onFinish,\n onError\n });\n}\n\n// src/ui-message-stream/read-ui-message-stream.ts\nfunction readUIMessageStream({\n message,\n stream,\n onError,\n terminateOnError = false\n}) {\n var _a16;\n let controller;\n let hasErrored = false;\n const outputStream = new ReadableStream({\n start(controllerParam) {\n controller = controllerParam;\n }\n });\n const state = createStreamingUIMessageState({\n messageId: (_a16 = message == null ? void 0 : message.id) != null ? _a16 : \"\",\n lastMessage: message\n });\n const handleError = (error) => {\n onError == null ? void 0 : onError(error);\n if (!hasErrored && terminateOnError) {\n hasErrored = true;\n controller == null ? void 0 : controller.error(error);\n }\n };\n consumeStream({\n stream: processUIMessageStream({\n stream,\n runUpdateMessageJob(job) {\n return job({\n state,\n write: () => {\n controller == null ? void 0 : controller.enqueue(structuredClone(state.message));\n }\n });\n },\n onError: handleError\n }),\n onError: handleError\n }).finally(() => {\n if (!hasErrored) {\n controller == null ? void 0 : controller.close();\n }\n });\n return createAsyncIterableStream(outputStream);\n}\nexport {\n AISDKError17 as AISDKError,\n APICallError,\n AbstractChat,\n DefaultChatTransport,\n DownloadError,\n EmptyResponseBodyError,\n Agent as Experimental_Agent,\n HttpChatTransport,\n InvalidArgumentError,\n InvalidDataContentError,\n InvalidMessageRoleError,\n InvalidPromptError,\n InvalidResponseDataError,\n InvalidStreamPartError,\n InvalidToolInputError,\n JSONParseError,\n JsonToSseTransformStream,\n LoadAPIKeyError,\n LoadSettingError,\n MessageConversionError,\n NoContentGeneratedError,\n NoImageGeneratedError,\n NoObjectGeneratedError,\n NoOutputGeneratedError,\n NoOutputSpecifiedError,\n NoSpeechGeneratedError,\n NoSuchModelError,\n NoSuchProviderError,\n NoSuchToolError,\n output_exports as Output,\n RetryError,\n SerialJobExecutor,\n TextStreamChatTransport,\n TooManyEmbeddingValuesForCallError,\n ToolCallRepairError,\n TypeValidationError,\n UI_MESSAGE_STREAM_HEADERS,\n UnsupportedFunctionalityError,\n UnsupportedModelVersionError,\n asSchema5 as asSchema,\n assistantModelMessageSchema,\n callCompletionApi,\n consumeStream,\n convertFileListToFileUIParts,\n convertToCoreMessages,\n convertToModelMessages,\n coreAssistantMessageSchema,\n coreMessageSchema,\n coreSystemMessageSchema,\n coreToolMessageSchema,\n coreUserMessageSchema,\n cosineSimilarity,\n createGateway,\n createIdGenerator5 as createIdGenerator,\n createProviderRegistry,\n createTextStreamResponse,\n createUIMessageStream,\n createUIMessageStreamResponse,\n customProvider,\n defaultSettingsMiddleware,\n dynamicTool,\n embed,\n embedMany,\n experimental_createProviderRegistry,\n experimental_customProvider,\n generateImage as experimental_generateImage,\n generateSpeech as experimental_generateSpeech,\n transcribe as experimental_transcribe,\n extractReasoningMiddleware,\n gateway2 as gateway,\n generateId2 as generateId,\n generateObject,\n generateText,\n getTextFromDataUrl,\n getToolName,\n getToolOrDynamicToolName,\n hasToolCall,\n isDataUIPart,\n isDeepEqualData,\n isFileUIPart,\n isReasoningUIPart,\n isTextUIPart,\n isToolOrDynamicToolUIPart,\n isToolUIPart,\n jsonSchema,\n lastAssistantMessageIsCompleteWithToolCalls,\n modelMessageSchema,\n parseJsonEventStream3 as parseJsonEventStream,\n parsePartialJson,\n pipeTextStreamToResponse,\n pipeUIMessageStreamToResponse,\n pruneMessages,\n readUIMessageStream,\n safeValidateUIMessages,\n simulateReadableStream,\n simulateStreamingMiddleware,\n smoothStream,\n stepCountIs,\n streamObject,\n streamText,\n systemModelMessageSchema,\n tool,\n toolModelMessageSchema,\n uiMessageChunkSchema,\n userModelMessageSchema,\n validateUIMessages,\n wrapLanguageModel,\n wrapProvider,\n zodSchema3 as zodSchema\n};\n//# sourceMappingURL=index.mjs.map"
57
57
  ],
58
- "mappings": "ioBACA,FAAuB,SAAnB,HAC0B,yBAA1B,GAC2B,oBAA3B,IADmB,OAEnB,GAAe,OAAO,UAAU,eAChC,GAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,GAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,GAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,GAAkB,CAAI,EACpC,GAAI,CAAC,GAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,GAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,GAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,GAAe,CAAC,IAAQ,GAAY,GAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,GAAsB,CAAC,EAC3B,GAAS,GAAqB,CAC5B,uBAAwB,IAAM,GAC9B,WAAY,IAAM,EACpB,CAAC,EACD,GAAO,QAAU,GAAa,EAAmB,EACjD,IAAM,GAAyB,OAAO,IAAI,yBAAyB,EACnE,SAAS,EAAU,EAAG,CAEpB,OADmB,WACD,KAAyB,MAAM,GAAK,CAAC,wBCzBzD,IAAuB,eAAnB,GAC0B,yBAA1B,GAC2B,oBAA3B,IADmB,OAGnB,GAAe,OAAO,UAAU,eAChC,GAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,GAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,GAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,GAAkB,CAAI,EACpC,GAAI,CAAC,GAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,GAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,GAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAUL,GAAe,CAAC,IAAQ,GAAY,GAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,GAAgC,CAAC,EACrC,GAAS,GAA+B,CACtC,mBAAoB,IAAM,GAC1B,uBAAwB,IAAM,EAChC,CAAC,EACD,GAAO,QAAU,GAAa,EAA6B,EAC3D,IAAI,QACA,QACJ,eAAe,EAAkB,EAAG,CAClC,IAAI,EAAQ,GACR,EACJ,GAAI,CACF,EAAQ,GAAuB,EAC/B,MAAO,EAAO,CACd,EAAM,EAER,GAAI,CACF,KAAS,kBAAiB,cAAe,iBAAkB,MAAM,QAAQ,IAAI,CAC3E,KAAa,+BACb,KAAa,8BACf,CAAC,EACD,GAAI,CAAC,GAAS,EAAU,EAAgB,CAAK,CAAC,EAC5C,MAAM,EAAa,EACnB,EAAQ,GAAuB,EAEjC,MAAO,EAAO,CACd,GAAI,GAAK,SAAW,aAAiB,MACnC,EAAM,QAAU,GAAG,EAAI;AAAA,EAC3B,EAAM,UAEJ,MAAM,IAAI,GAAmB,qBAAqB,+BAAgC,CAAK,EAEzF,OAAO,EAET,SAAS,EAAsB,EAAG,CAChC,IAAM,GAAS,EAAG,GAAmB,YAAY,EAAE,UAAU,wBAA0B,QAAQ,IAAI,kBACnG,GAAI,CAAC,EACH,MAAU,MACR,mIACF,EAEF,OAAO,wBCpET,IAAuB,eAAnB,GAC0B,yBAA1B,GAC2B,oBAA3B,IADmB,OAEnB,GAAe,OAAO,UAAU,eAChC,GAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAQ,EACf,GAAU,EAAQ,EAAM,CAAE,IAAK,EAAI,GAAO,WAAY,EAAK,CAAC,GAE5D,GAAc,CAAC,EAAI,EAAM,EAAQ,IAAS,CAC5C,GAAI,GAAQ,OAAO,IAAS,UAAY,OAAO,IAAS,YACtD,QAAS,KAAO,GAAkB,CAAI,EACpC,GAAI,CAAC,GAAa,KAAK,EAAI,CAAG,GAAK,IAAQ,EACzC,GAAU,EAAI,EAAK,CAAE,IAAK,IAAM,EAAK,GAAM,WAAY,EAAE,EAAO,GAAiB,EAAM,CAAG,IAAM,EAAK,UAAW,CAAC,EAEvH,OAAO,GAEL,GAAe,CAAC,IAAQ,GAAY,GAAU,CAAC,EAAG,aAAc,CAAE,MAAO,EAAK,CAAC,EAAG,CAAG,EACrF,GAAc,CAAC,EACnB,GAAS,GAAa,CACpB,WAAY,IAAM,GAAmB,WACrC,mBAAoB,IAAM,GAA6B,mBACvD,uBAAwB,IAAM,GAA6B,sBAC7D,CAAC,EACD,GAAO,QAAU,GAAa,EAAW,EACzC,IAAI,QACA,0BCVJ,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAmB,OAGnB,eAAc,OAAO,aAAe,SAAW,WAAa,yBCJpE,IAAI,GAAmB,IAAQ,GAAK,kBAAqB,OAAO,OAAU,QAAQ,CAAC,EAAG,EAAG,EAAG,EAAI,CAC5F,GAAI,IAAO,OAAW,EAAK,EAC3B,OAAO,eAAe,EAAG,EAAI,CAAE,WAAY,GAAM,IAAK,QAAQ,EAAG,CAAE,OAAO,EAAE,GAAM,CAAC,GACjF,QAAQ,CAAC,EAAG,EAAG,EAAG,EAAI,CACxB,GAAI,IAAO,OAAW,EAAK,EAC3B,EAAE,GAAM,EAAE,KAEV,GAAgB,IAAQ,GAAK,cAAiB,QAAQ,CAAC,EAAG,EAAS,CACnE,QAAS,KAAK,EAAG,GAAI,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAK,EAAS,CAAC,EAAG,GAAgB,EAAS,EAAG,CAAC,GAE5H,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,QAAsC,EAAO,oBCX7C,IAAI,GAAmB,IAAQ,GAAK,kBAAqB,OAAO,OAAU,QAAQ,CAAC,EAAG,EAAG,EAAG,EAAI,CAC5F,GAAI,IAAO,OAAW,EAAK,EAC3B,OAAO,eAAe,EAAG,EAAI,CAAE,WAAY,GAAM,IAAK,QAAQ,EAAG,CAAE,OAAO,EAAE,GAAM,CAAC,GACjF,QAAQ,CAAC,EAAG,EAAG,EAAG,EAAI,CACxB,GAAI,IAAO,OAAW,EAAK,EAC3B,EAAE,GAAM,EAAE,KAEV,GAAgB,IAAQ,GAAK,cAAiB,QAAQ,CAAC,EAAG,EAAS,CACnE,QAAS,KAAK,EAAG,GAAI,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAK,EAAS,CAAC,EAAG,GAAgB,EAAS,EAAG,CAAC,GAE5H,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5D,QAAgC,EAAO,oBCXvC,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,WAAe,OAEf,WAAU,0BCHlB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,gBAAuB,2BAA+B,OAC9D,IAAM,QACA,GAAK,gCAiBX,SAAS,EAAuB,CAAC,EAAY,CACzC,IAAM,EAAmB,IAAI,IAAI,CAAC,CAAU,CAAC,EACvC,EAAmB,IAAI,IACvB,EAAiB,EAAW,MAAM,EAAE,EAC1C,GAAI,CAAC,EAED,MAAO,IAAM,GAEjB,IAAM,EAAmB,CACrB,MAAO,CAAC,EAAe,GACvB,MAAO,CAAC,EAAe,GACvB,MAAO,CAAC,EAAe,GACvB,WAAY,EAAe,EAC/B,EAEA,GAAI,EAAiB,YAAc,KAC/B,OAAO,QAAqB,CAAC,EAAe,CACxC,OAAO,IAAkB,GAGjC,SAAS,CAAO,CAAC,EAAG,CAEhB,OADA,EAAiB,IAAI,CAAC,EACf,GAEX,SAAS,CAAO,CAAC,EAAG,CAEhB,OADA,EAAiB,IAAI,CAAC,EACf,GAEX,OAAO,QAAqB,CAAC,EAAe,CACxC,GAAI,EAAiB,IAAI,CAAa,EAClC,MAAO,GAEX,GAAI,EAAiB,IAAI,CAAa,EAClC,MAAO,GAEX,IAAM,EAAqB,EAAc,MAAM,EAAE,EACjD,GAAI,CAAC,EAGD,OAAO,EAAQ,CAAa,EAEhC,IAAM,EAAsB,CACxB,MAAO,CAAC,EAAmB,GAC3B,MAAO,CAAC,EAAmB,GAC3B,MAAO,CAAC,EAAmB,GAC3B,WAAY,EAAmB,EACnC,EAEA,GAAI,EAAoB,YAAc,KAClC,OAAO,EAAQ,CAAa,EAGhC,GAAI,EAAiB,QAAU,EAAoB,MAC/C,OAAO,EAAQ,CAAa,EAEhC,GAAI,EAAiB,QAAU,EAAG,CAC9B,GAAI,EAAiB,QAAU,EAAoB,OAC/C,EAAiB,OAAS,EAAoB,MAC9C,OAAO,EAAQ,CAAa,EAEhC,OAAO,EAAQ,CAAa,EAEhC,GAAI,EAAiB,OAAS,EAAoB,MAC9C,OAAO,EAAQ,CAAa,EAEhC,OAAO,EAAQ,CAAa,GAG5B,2BAA0B,GAgB1B,gBAAe,GAAwB,GAAU,OAAO,oBCxGhE,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,oBAA2B,aAAoB,kBAAsB,OAC7E,IAAM,QACA,QACA,QACA,GAAQ,GAAU,QAAQ,MAAM,GAAG,EAAE,GACrC,GAA+B,OAAO,IAAI,wBAAwB,IAAO,EACzE,GAAU,GAAW,YAC3B,SAAS,EAAc,CAAC,EAAM,EAAU,EAAM,EAAgB,GAAO,CACjE,IAAI,EACJ,IAAM,EAAO,GAAQ,KAAiC,EAAK,GAAQ,OAAmC,MAAQ,IAAY,OAAI,EAAK,CAC/H,QAAS,GAAU,OACvB,EACA,GAAI,CAAC,GAAiB,EAAI,GAAO,CAE7B,IAAM,EAAU,MAAM,gEAAgE,GAAM,EAE5F,OADA,EAAK,MAAM,EAAI,OAAS,EAAI,OAAO,EAC5B,GAEX,GAAI,EAAI,UAAY,GAAU,QAAS,CAEnC,IAAM,EAAU,MAAM,gDAAgD,EAAI,eAAe,+CAAkD,GAAU,SAAS,EAE9J,OADA,EAAK,MAAM,EAAI,OAAS,EAAI,OAAO,EAC5B,GAIX,OAFA,EAAI,GAAQ,EACZ,EAAK,MAAM,+CAA+C,MAAS,GAAU,UAAU,EAChF,GAEH,kBAAiB,GACzB,SAAS,EAAS,CAAC,EAAM,CACrB,IAAI,EAAI,EACR,IAAM,GAAiB,EAAK,GAAQ,OAAmC,MAAQ,IAAY,OAAS,OAAI,EAAG,QAC3G,GAAI,CAAC,GAAiB,EAAE,EAAG,GAAS,cAAc,CAAa,EAC3D,OAEJ,OAAQ,EAAK,GAAQ,OAAmC,MAAQ,IAAY,OAAS,OAAI,EAAG,GAExF,aAAY,GACpB,SAAS,EAAgB,CAAC,EAAM,EAAM,CAClC,EAAK,MAAM,kDAAkD,MAAS,GAAU,UAAU,EAC1F,IAAM,EAAM,GAAQ,IACpB,GAAI,EACA,OAAO,EAAI,GAGX,oBAAmB,qBC9C3B,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,uBAA2B,OACnC,IAAM,QAUN,MAAM,EAAoB,CACtB,WAAW,CAAC,EAAO,CACf,KAAK,WAAa,EAAM,WAAa,sBAEzC,KAAK,IAAI,EAAM,CACX,OAAO,GAAS,QAAS,KAAK,WAAY,CAAI,EAElD,KAAK,IAAI,EAAM,CACX,OAAO,GAAS,QAAS,KAAK,WAAY,CAAI,EAElD,IAAI,IAAI,EAAM,CACV,OAAO,GAAS,OAAQ,KAAK,WAAY,CAAI,EAEjD,IAAI,IAAI,EAAM,CACV,OAAO,GAAS,OAAQ,KAAK,WAAY,CAAI,EAEjD,OAAO,IAAI,EAAM,CACb,OAAO,GAAS,UAAW,KAAK,WAAY,CAAI,EAExD,CACQ,uBAAsB,GAC9B,SAAS,EAAQ,CAAC,EAAU,EAAW,EAAM,CACzC,IAAM,GAAU,EAAG,GAAe,WAAW,MAAM,EAEnD,GAAI,CAAC,EACD,OAGJ,OADA,EAAK,QAAQ,CAAS,EACf,EAAO,GAAU,GAAG,CAAI,qBCxCnC,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,gBAAoB,OAM5B,IAAI,IACH,QAAS,CAAC,EAAc,CAErB,EAAa,EAAa,KAAU,GAAK,OAEzC,EAAa,EAAa,MAAW,IAAM,QAE3C,EAAa,EAAa,KAAU,IAAM,OAE1C,EAAa,EAAa,KAAU,IAAM,OAE1C,EAAa,EAAa,MAAW,IAAM,QAK3C,EAAa,EAAa,QAAa,IAAM,UAE7C,EAAa,EAAa,IAAS,MAAQ,QAC5C,GAAuB,kBAAyB,gBAAe,CAAC,EAAE,oBC1BrE,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,4BAAgC,OACxC,IAAM,QACN,SAAS,EAAwB,CAAC,EAAU,EAAQ,CAChD,GAAI,EAAW,GAAQ,aAAa,KAChC,EAAW,GAAQ,aAAa,KAE/B,QAAI,EAAW,GAAQ,aAAa,IACrC,EAAW,GAAQ,aAAa,IAGpC,EAAS,GAAU,CAAC,EACpB,SAAS,CAAW,CAAC,EAAU,EAAU,CACrC,IAAM,EAAU,EAAO,GACvB,GAAI,OAAO,IAAY,YAAc,GAAY,EAC7C,OAAO,EAAQ,KAAK,CAAM,EAE9B,OAAO,QAAS,EAAG,GAEvB,MAAO,CACH,MAAO,EAAY,QAAS,GAAQ,aAAa,KAAK,EACtD,KAAM,EAAY,OAAQ,GAAQ,aAAa,IAAI,EACnD,KAAM,EAAY,OAAQ,GAAQ,aAAa,IAAI,EACnD,MAAO,EAAY,QAAS,GAAQ,aAAa,KAAK,EACtD,QAAS,EAAY,UAAW,GAAQ,aAAa,OAAO,CAChE,EAEI,4BAA2B,qBC3BnC,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,WAAe,OACvB,IAAM,QACA,QACA,QACA,QACA,GAAW,OAKjB,MAAM,EAAQ,CAKV,WAAW,EAAG,CACV,SAAS,CAAS,CAAC,EAAU,CACzB,OAAO,QAAS,IAAI,EAAM,CACtB,IAAM,GAAU,EAAG,GAAe,WAAW,MAAM,EAEnD,GAAI,CAAC,EACD,OACJ,OAAO,EAAO,GAAU,GAAG,CAAI,GAIvC,IAAM,EAAO,KAEP,EAAY,CAAC,EAAQ,EAAoB,CAAE,SAAU,GAAQ,aAAa,IAAK,IAAM,CACvF,IAAI,EAAI,EAAI,EACZ,GAAI,IAAW,EAAM,CAIjB,IAAM,EAAU,MAAM,oIAAoI,EAE1J,OADA,EAAK,OAAO,EAAK,EAAI,SAAW,MAAQ,IAAY,OAAI,EAAK,EAAI,OAAO,EACjE,GAEX,GAAI,OAAO,IAAsB,SAC7B,EAAoB,CAChB,SAAU,CACd,EAEJ,IAAM,GAAa,EAAG,GAAe,WAAW,MAAM,EAChD,GAAa,EAAG,GAAiB,2BAA2B,EAAK,EAAkB,YAAc,MAAQ,IAAY,OAAI,EAAK,GAAQ,aAAa,KAAM,CAAM,EAErK,GAAI,GAAa,CAAC,EAAkB,wBAAyB,CACzD,IAAM,GAAS,EAAS,MAAM,EAAE,SAAW,MAAQ,IAAY,OAAI,EAAK,kCACxE,EAAU,KAAK,2CAA2C,GAAO,EACjE,EAAU,KAAK,6DAA6D,GAAO,EAEvF,OAAQ,EAAG,GAAe,gBAAgB,OAAQ,EAAW,EAAM,EAAI,GAE3E,EAAK,UAAY,EACjB,EAAK,QAAU,IAAM,EAChB,EAAG,GAAe,kBAAkB,GAAU,CAAI,GAEvD,EAAK,sBAAwB,CAAC,IAAY,CACtC,OAAO,IAAI,GAAkB,oBAAoB,CAAO,GAE5D,EAAK,QAAU,EAAU,SAAS,EAClC,EAAK,MAAQ,EAAU,OAAO,EAC9B,EAAK,KAAO,EAAU,MAAM,EAC5B,EAAK,KAAO,EAAU,MAAM,EAC5B,EAAK,MAAQ,EAAU,OAAO,QAG3B,SAAQ,EAAG,CACd,GAAI,CAAC,KAAK,UACN,KAAK,UAAY,IAAI,GAEzB,OAAO,KAAK,UAEpB,CACQ,WAAU,qBC3ElB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAmB,OAC3B,MAAM,EAAY,CACd,WAAW,CAAC,EAAS,CACjB,KAAK,SAAW,EAAU,IAAI,IAAI,CAAO,EAAI,IAAI,IAErD,QAAQ,CAAC,EAAK,CACV,IAAM,EAAQ,KAAK,SAAS,IAAI,CAAG,EACnC,GAAI,CAAC,EACD,OAEJ,OAAO,OAAO,OAAO,CAAC,EAAG,CAAK,EAElC,aAAa,EAAG,CACZ,OAAO,MAAM,KAAK,KAAK,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAG,KAAO,CAAC,EAAG,CAAC,CAAC,EAErE,QAAQ,CAAC,EAAK,EAAO,CACjB,IAAM,EAAa,IAAI,GAAY,KAAK,QAAQ,EAEhD,OADA,EAAW,SAAS,IAAI,EAAK,CAAK,EAC3B,EAEX,WAAW,CAAC,EAAK,CACb,IAAM,EAAa,IAAI,GAAY,KAAK,QAAQ,EAEhD,OADA,EAAW,SAAS,OAAO,CAAG,EACvB,EAEX,aAAa,IAAI,EAAM,CACnB,IAAM,EAAa,IAAI,GAAY,KAAK,QAAQ,EAChD,QAAW,KAAO,EACd,EAAW,SAAS,OAAO,CAAG,EAElC,OAAO,EAEX,KAAK,EAAG,CACJ,OAAO,IAAI,GAEnB,CACQ,eAAc,qBCrCtB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,8BAAkC,OAIlC,8BAA6B,OAAO,sBAAsB,oBCLlE,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,kCAAyC,iBAAqB,OACtE,IAAM,QACA,QACA,QACA,GAAO,GAAO,QAAQ,SAAS,EAMrC,SAAS,EAAa,CAAC,EAAU,CAAC,EAAG,CACjC,OAAO,IAAI,GAAe,YAAY,IAAI,IAAI,OAAO,QAAQ,CAAO,CAAC,CAAC,EAElE,iBAAgB,GAOxB,SAAS,EAA8B,CAAC,EAAK,CACzC,GAAI,OAAO,IAAQ,SACf,GAAK,MAAM,qDAAqD,OAAO,GAAK,EAC5E,EAAM,GAEV,MAAO,CACH,SAAU,GAAS,2BACnB,QAAQ,EAAG,CACP,OAAO,EAEf,EAEI,kCAAiC,qBCjCzC,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,gBAAuB,oBAAwB,OAEvD,SAAS,EAAgB,CAAC,EAAa,CAOnC,OAAO,OAAO,IAAI,CAAW,EAEzB,oBAAmB,GAC3B,MAAM,EAAY,CAMd,WAAW,CAAC,EAAe,CAEvB,IAAM,EAAO,KACb,EAAK,gBAAkB,EAAgB,IAAI,IAAI,CAAa,EAAI,IAAI,IACpE,EAAK,SAAW,CAAC,IAAQ,EAAK,gBAAgB,IAAI,CAAG,EACrD,EAAK,SAAW,CAAC,EAAK,IAAU,CAC5B,IAAM,EAAU,IAAI,GAAY,EAAK,eAAe,EAEpD,OADA,EAAQ,gBAAgB,IAAI,EAAK,CAAK,EAC/B,GAEX,EAAK,YAAc,CAAC,IAAQ,CACxB,IAAM,EAAU,IAAI,GAAY,EAAK,eAAe,EAEpD,OADA,EAAQ,gBAAgB,OAAO,CAAG,EAC3B,GAGnB,CAEQ,gBAAe,IAAI,qBCrC3B,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,qBAAyB,OACjC,IAAM,GAAa,CACf,CAAE,EAAG,QAAS,EAAG,OAAQ,EACzB,CAAE,EAAG,OAAQ,EAAG,MAAO,EACvB,CAAE,EAAG,OAAQ,EAAG,MAAO,EACvB,CAAE,EAAG,QAAS,EAAG,OAAQ,EACzB,CAAE,EAAG,UAAW,EAAG,OAAQ,CAC/B,EAMA,MAAM,EAAkB,CACpB,WAAW,EAAG,CACV,SAAS,CAAY,CAAC,EAAU,CAC5B,OAAO,QAAS,IAAI,EAAM,CACtB,GAAI,QAAS,CAGT,IAAI,EAAU,QAAQ,GACtB,GAAI,OAAO,IAAY,WAGnB,EAAU,QAAQ,IAGtB,GAAI,OAAO,IAAY,WACnB,OAAO,EAAQ,MAAM,QAAS,CAAI,IAKlD,QAAS,EAAI,EAAG,EAAI,GAAW,OAAQ,IACnC,KAAK,GAAW,GAAG,GAAK,EAAa,GAAW,GAAG,CAAC,EAGhE,CACQ,qBAAoB,qBCvC5B,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,mBAA0B,0CAAiD,gCAAuC,kCAAyC,+BAAsC,yBAAgC,qBAA4B,uBAA8B,cAAqB,qCAA4C,6BAAoC,+BAAsC,wBAA+B,uBAA8B,mBAA0B,2BAAkC,qBAA4B,cAAqB,aAAiB,OAKzmB,MAAM,EAAU,CACZ,WAAW,EAAG,EAId,WAAW,CAAC,EAAO,EAAU,CACzB,OAAe,qBAKnB,eAAe,CAAC,EAAO,EAAU,CAC7B,OAAe,yBAKnB,aAAa,CAAC,EAAO,EAAU,CAC3B,OAAe,uBAKnB,mBAAmB,CAAC,EAAO,EAAU,CACjC,OAAe,+BAKnB,qBAAqB,CAAC,EAAO,EAAU,CACnC,OAAe,gCAKnB,uBAAuB,CAAC,EAAO,EAAU,CACrC,OAAe,kCAKnB,6BAA6B,CAAC,EAAO,EAAU,CAC3C,OAAe,0CAKnB,0BAA0B,CAAC,EAAW,EAAc,EAIpD,6BAA6B,CAAC,EAAW,EAC7C,CACQ,aAAY,GACpB,MAAM,EAAW,CACjB,CACQ,cAAa,GACrB,MAAM,WAA0B,EAAW,CACvC,GAAG,CAAC,EAAQ,EAAa,EAC7B,CACQ,qBAAoB,GAC5B,MAAM,WAAgC,EAAW,CAC7C,GAAG,CAAC,EAAQ,EAAa,EAC7B,CACQ,2BAA0B,GAClC,MAAM,WAAwB,EAAW,CACrC,MAAM,CAAC,EAAQ,EAAa,EAChC,CACQ,mBAAkB,GAC1B,MAAM,WAA4B,EAAW,CACzC,MAAM,CAAC,EAAQ,EAAa,EAChC,CACQ,uBAAsB,GAC9B,MAAM,EAAqB,CACvB,WAAW,CAAC,EAAW,EACvB,cAAc,CAAC,EAAW,EAC9B,CACQ,wBAAuB,GAC/B,MAAM,WAAoC,EAAqB,CAC/D,CACQ,+BAA8B,GACtC,MAAM,WAAkC,EAAqB,CAC7D,CACQ,6BAA4B,GACpC,MAAM,WAA0C,EAAqB,CACrE,CACQ,qCAAoC,GACpC,cAAa,IAAI,GAEjB,uBAAsB,IAAI,GAC1B,qBAAoB,IAAI,GACxB,yBAAwB,IAAI,GAC5B,+BAA8B,IAAI,GAElC,kCAAiC,IAAI,GACrC,gCAA+B,IAAI,GACnC,0CAAyC,IAAI,GAIrD,SAAS,EAAe,EAAG,CACvB,OAAe,cAEX,mBAAkB,qBC7G1B,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,aAAiB,OAEzB,IAAI,IACH,QAAS,CAAC,EAAW,CAClB,EAAU,EAAU,IAAS,GAAK,MAClC,EAAU,EAAU,OAAY,GAAK,WACtC,GAAoB,eAAsB,aAAY,CAAC,EAAE,oBCP5D,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,wBAA+B,wBAA4B,OAC3D,wBAAuB,CAC3B,GAAG,CAAC,EAAS,EAAK,CACd,GAAI,GAAW,KACX,OAEJ,OAAO,EAAQ,IAEnB,IAAI,CAAC,EAAS,CACV,GAAI,GAAW,KACX,MAAO,CAAC,EAEZ,OAAO,OAAO,KAAK,CAAO,EAElC,EACQ,wBAAuB,CAC3B,GAAG,CAAC,EAAS,EAAK,EAAO,CACrB,GAAI,GAAW,KACX,OAEJ,EAAQ,GAAO,EAEvB,oBCvBA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,sBAA0B,OAClC,IAAM,QACN,MAAM,EAAmB,CACrB,MAAM,EAAG,CACL,OAAO,GAAU,aAErB,IAAI,CAAC,EAAU,EAAI,KAAY,EAAM,CACjC,OAAO,EAAG,KAAK,EAAS,GAAG,CAAI,EAEnC,IAAI,CAAC,EAAU,EAAQ,CACnB,OAAO,EAEX,MAAM,EAAG,CACL,OAAO,KAEX,OAAO,EAAG,CACN,OAAO,KAEf,CACQ,sBAAqB,qBCpB7B,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,cAAkB,OAC1B,IAAM,QACA,QACA,QACA,GAAW,UACX,GAAuB,IAAI,GAAqB,mBAItD,MAAM,EAAW,CAEb,WAAW,EAAG,QAEP,YAAW,EAAG,CACjB,GAAI,CAAC,KAAK,UACN,KAAK,UAAY,IAAI,GAEzB,OAAO,KAAK,UAOhB,uBAAuB,CAAC,EAAgB,CACpC,OAAQ,EAAG,GAAe,gBAAgB,GAAU,EAAgB,GAAO,QAAQ,SAAS,CAAC,EAKjG,MAAM,EAAG,CACL,OAAO,KAAK,mBAAmB,EAAE,OAAO,EAU5C,IAAI,CAAC,EAAS,EAAI,KAAY,EAAM,CAChC,OAAO,KAAK,mBAAmB,EAAE,KAAK,EAAS,EAAI,EAAS,GAAG,CAAI,EAQvE,IAAI,CAAC,EAAS,EAAQ,CAClB,OAAO,KAAK,mBAAmB,EAAE,KAAK,EAAS,CAAM,EAEzD,kBAAkB,EAAG,CACjB,OAAQ,EAAG,GAAe,WAAW,EAAQ,GAAK,GAGtD,OAAO,EAAG,CACN,KAAK,mBAAmB,EAAE,QAAQ,GACjC,EAAG,GAAe,kBAAkB,GAAU,GAAO,QAAQ,SAAS,CAAC,EAEhF,CACQ,cAAa,qBC9ErB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,cAAkB,OAgB1B,IAAI,IACH,QAAS,CAAC,EAAY,CAEnB,EAAW,EAAW,KAAU,GAAK,OAErC,EAAW,EAAW,QAAa,GAAK,YACzC,GAAqB,gBAAuB,cAAa,CAAC,EAAE,oBCR/D,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,wBAA+B,mBAA0B,kBAAsB,OACvF,IAAM,QACE,kBAAiB,mBACjB,mBAAkB,mCAClB,wBAAuB,CAC3B,QAAiB,mBACjB,OAAgB,kBAChB,WAAY,GAAc,WAAW,IACzC,oBCTA,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,oBAAwB,OAChC,IAAM,QAMN,MAAM,EAAiB,CACnB,WAAW,CAAC,EAAe,GAAyB,qBAAsB,CACtE,KAAK,aAAe,EAGxB,WAAW,EAAG,CACV,OAAO,KAAK,aAGhB,YAAY,CAAC,EAAM,EAAQ,CACvB,OAAO,KAGX,aAAa,CAAC,EAAa,CACvB,OAAO,KAGX,QAAQ,CAAC,EAAO,EAAa,CACzB,OAAO,KAEX,OAAO,CAAC,EAAO,CACX,OAAO,KAEX,QAAQ,CAAC,EAAQ,CACb,OAAO,KAGX,SAAS,CAAC,EAAS,CACf,OAAO,KAGX,UAAU,CAAC,EAAO,CACd,OAAO,KAGX,GAAG,CAAC,EAAU,EAEd,WAAW,EAAG,CACV,MAAO,GAGX,eAAe,CAAC,EAAY,EAAO,EACvC,CACQ,oBAAmB,qBCnD3B,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,kBAAyB,kBAAyB,cAAqB,WAAkB,iBAAwB,WAAe,OACxI,IAAM,QACA,QACA,QAIA,IAAY,EAAG,GAAU,kBAAkB,gCAAgC,EAMjF,SAAS,EAAO,CAAC,EAAS,CACtB,OAAO,EAAQ,SAAS,EAAQ,GAAK,OAEjC,WAAU,GAIlB,SAAS,EAAa,EAAG,CACrB,OAAO,GAAQ,GAAU,WAAW,YAAY,EAAE,OAAO,CAAC,EAEtD,iBAAgB,GAOxB,SAAS,EAAO,CAAC,EAAS,EAAM,CAC5B,OAAO,EAAQ,SAAS,GAAU,CAAI,EAElC,WAAU,GAMlB,SAAS,EAAU,CAAC,EAAS,CACzB,OAAO,EAAQ,YAAY,EAAQ,EAE/B,cAAa,GAQrB,SAAS,EAAc,CAAC,EAAS,EAAa,CAC1C,OAAO,GAAQ,EAAS,IAAI,GAAmB,iBAAiB,CAAW,CAAC,EAExE,kBAAiB,GAMzB,SAAS,EAAc,CAAC,EAAS,CAC7B,IAAI,EACJ,OAAQ,EAAK,GAAQ,CAAO,KAAO,MAAQ,IAAY,OAAS,OAAI,EAAG,YAAY,EAE/E,kBAAiB,qBC/EzB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,mBAA0B,sBAA6B,iBAAwB,kBAAsB,OAgB7G,IAAM,QACA,QACA,GAAsB,oBACtB,GAAqB,kBAC3B,SAAS,EAAc,CAAC,EAAS,CAC7B,OAAO,GAAoB,KAAK,CAAO,GAAK,IAAY,GAAyB,gBAE7E,kBAAiB,GACzB,SAAS,EAAa,CAAC,EAAQ,CAC3B,OAAO,GAAmB,KAAK,CAAM,GAAK,IAAW,GAAyB,eAE1E,iBAAgB,GAKxB,SAAS,EAAkB,CAAC,EAAa,CACrC,OAAQ,GAAe,EAAY,OAAO,GAAK,GAAc,EAAY,MAAM,EAE3E,sBAAqB,GAO7B,SAAS,EAAe,CAAC,EAAa,CAClC,OAAO,IAAI,GAAmB,iBAAiB,CAAW,EAEtD,mBAAkB,qBC/B1B,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,cAAkB,OAC1B,IAAM,QACA,QACA,QACA,QACA,GAAa,GAAU,WAAW,YAAY,EAIpD,MAAM,EAAW,CAEb,SAAS,CAAC,EAAM,EAAS,EAAU,GAAW,OAAO,EAAG,CAEpD,GADa,QAAQ,IAAY,MAAQ,IAAiB,OAAS,OAAI,EAAQ,IAAI,EAE/E,OAAO,IAAI,GAAmB,iBAElC,IAAM,EAAoB,IAAY,EAAG,GAAgB,gBAAgB,CAAO,EAChF,GAAI,GAAc,CAAiB,IAC9B,EAAG,GAAoB,oBAAoB,CAAiB,EAC7D,OAAO,IAAI,GAAmB,iBAAiB,CAAiB,EAGhE,YAAO,IAAI,GAAmB,iBAGtC,eAAe,CAAC,EAAM,EAAM,EAAM,EAAM,CACpC,IAAI,EACA,EACA,EACJ,GAAI,UAAU,OAAS,EACnB,OAEC,QAAI,UAAU,SAAW,EAC1B,EAAK,EAEJ,QAAI,UAAU,SAAW,EAC1B,EAAO,EACP,EAAK,EAGL,OAAO,EACP,EAAM,EACN,EAAK,EAET,IAAM,EAAgB,IAAQ,MAAQ,IAAa,OAAI,EAAM,GAAW,OAAO,EACzE,EAAO,KAAK,UAAU,EAAM,EAAM,CAAa,EAC/C,GAAsB,EAAG,GAAgB,SAAS,EAAe,CAAI,EAC3E,OAAO,GAAW,KAAK,EAAoB,EAAI,OAAW,CAAI,EAEtE,CACQ,cAAa,GACrB,SAAS,EAAa,CAAC,EAAa,CAChC,OAAQ,OAAO,IAAgB,UAC3B,OAAO,EAAY,SAAc,UACjC,OAAO,EAAY,UAAe,UAClC,OAAO,EAAY,aAAkB,4BCxD7C,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAmB,OAC3B,IAAM,QACA,GAAc,IAAI,GAAa,WAIrC,MAAM,EAAY,CACd,WAAW,CAAC,EAAW,EAAM,EAAS,EAAS,CAC3C,KAAK,UAAY,EACjB,KAAK,KAAO,EACZ,KAAK,QAAU,EACf,KAAK,QAAU,EAEnB,SAAS,CAAC,EAAM,EAAS,EAAS,CAC9B,OAAO,KAAK,WAAW,EAAE,UAAU,EAAM,EAAS,CAAO,EAE7D,eAAe,CAAC,EAAO,EAAU,EAAU,EAAK,CAC5C,IAAM,EAAS,KAAK,WAAW,EAC/B,OAAO,QAAQ,MAAM,EAAO,gBAAiB,EAAQ,SAAS,EAMlE,UAAU,EAAG,CACT,GAAI,KAAK,UACL,OAAO,KAAK,UAEhB,IAAM,EAAS,KAAK,UAAU,kBAAkB,KAAK,KAAM,KAAK,QAAS,KAAK,OAAO,EACrF,GAAI,CAAC,EACD,OAAO,GAGX,OADA,KAAK,UAAY,EACV,KAAK,UAEpB,CACQ,eAAc,qBCrCtB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,sBAA0B,OAClC,IAAM,QAON,MAAM,EAAmB,CACrB,SAAS,CAAC,EAAO,EAAU,EAAU,CACjC,OAAO,IAAI,GAAa,WAEhC,CACQ,sBAAqB,qBCd7B,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,uBAA2B,OACnC,IAAM,QACA,QACA,GAAuB,IAAI,GAAqB,mBAStD,MAAM,EAAoB,CAItB,SAAS,CAAC,EAAM,EAAS,EAAS,CAC9B,IAAI,EACJ,OAAS,EAAK,KAAK,kBAAkB,EAAM,EAAS,CAAO,KAAO,MAAQ,IAAY,OAAI,EAAK,IAAI,GAAc,YAAY,KAAM,EAAM,EAAS,CAAO,EAE7J,WAAW,EAAG,CACV,IAAI,EACJ,OAAQ,EAAK,KAAK,aAAe,MAAQ,IAAY,OAAI,EAAK,GAKlE,WAAW,CAAC,EAAU,CAClB,KAAK,UAAY,EAErB,iBAAiB,CAAC,EAAM,EAAS,EAAS,CACtC,IAAI,EACJ,OAAQ,EAAK,KAAK,aAAe,MAAQ,IAAY,OAAS,OAAI,EAAG,UAAU,EAAM,EAAS,CAAO,EAE7G,CACQ,uBAAsB,qBCpC9B,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,oBAAwB,OAMhC,IAAI,IACH,QAAS,CAAC,EAAkB,CAKzB,EAAiB,EAAiB,WAAgB,GAAK,aAKvD,EAAiB,EAAiB,OAAY,GAAK,SAKnD,EAAiB,EAAiB,mBAAwB,GAAK,uBAChE,GAA2B,sBAA6B,oBAAmB,CAAC,EAAE,oBCvCjF,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,YAAgB,OAgBxB,IAAI,IACH,QAAS,CAAC,EAAU,CAEjB,EAAS,EAAS,SAAc,GAAK,WAKrC,EAAS,EAAS,OAAY,GAAK,SAKnC,EAAS,EAAS,OAAY,GAAK,SAMnC,EAAS,EAAS,SAAc,GAAK,WAMrC,EAAS,EAAS,SAAc,GAAK,aACtC,GAAmB,cAAqB,YAAW,CAAC,EAAE,oBC3CzD,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,kBAAsB,OAI9B,IAAI,IACH,QAAS,CAAC,EAAgB,CAIvB,EAAe,EAAe,MAAW,GAAK,QAK9C,EAAe,EAAe,GAAQ,GAAK,KAI3C,EAAe,EAAe,MAAW,GAAK,UAC/C,GAAyB,oBAA2B,kBAAiB,CAAC,EAAE,oBCL3E,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,iBAAwB,eAAmB,OACnD,IAAM,GAAuB,eACvB,GAAY,QAAQ,YACpB,GAAmB,WAAW,kBAAoC,WAClE,GAAkB,IAAI,OAAO,OAAO,MAAa,MAAoB,EACrE,GAAyB,sBACzB,GAAkC,MASxC,SAAS,EAAW,CAAC,EAAK,CACtB,OAAO,GAAgB,KAAK,CAAG,EAE3B,eAAc,GAKtB,SAAS,EAAa,CAAC,EAAO,CAC1B,OAAQ,GAAuB,KAAK,CAAK,GACrC,CAAC,GAAgC,KAAK,CAAK,EAE3C,iBAAgB,qBC5BxB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,kBAAsB,OAC9B,IAAM,QACA,GAAwB,GACxB,GAAsB,IACtB,GAAyB,IACzB,GAAiC,IAUvC,MAAM,EAAe,CACjB,WAAW,CAAC,EAAe,CAEvB,GADA,KAAK,eAAiB,IAAI,IACtB,EACA,KAAK,OAAO,CAAa,EAEjC,GAAG,CAAC,EAAK,EAAO,CAGZ,IAAM,EAAa,KAAK,OAAO,EAC/B,GAAI,EAAW,eAAe,IAAI,CAAG,EACjC,EAAW,eAAe,OAAO,CAAG,EAGxC,OADA,EAAW,eAAe,IAAI,EAAK,CAAK,EACjC,EAEX,KAAK,CAAC,EAAK,CACP,IAAM,EAAa,KAAK,OAAO,EAE/B,OADA,EAAW,eAAe,OAAO,CAAG,EAC7B,EAEX,GAAG,CAAC,EAAK,CACL,OAAO,KAAK,eAAe,IAAI,CAAG,EAEtC,SAAS,EAAG,CACR,OAAO,KAAK,MAAM,EACb,OAAO,CAAC,EAAK,IAAQ,CAEtB,OADA,EAAI,KAAK,EAAM,GAAiC,KAAK,IAAI,CAAG,CAAC,EACtD,GACR,CAAC,CAAC,EACA,KAAK,EAAsB,EAEpC,MAAM,CAAC,EAAe,CAClB,GAAI,EAAc,OAAS,GACvB,OAoBJ,GAnBA,KAAK,eAAiB,EACjB,MAAM,EAAsB,EAC5B,QAAQ,EACR,OAAO,CAAC,EAAK,IAAS,CACvB,IAAM,EAAa,EAAK,KAAK,EACvB,EAAI,EAAW,QAAQ,EAA8B,EAC3D,GAAI,IAAM,GAAI,CACV,IAAM,EAAM,EAAW,MAAM,EAAG,CAAC,EAC3B,EAAQ,EAAW,MAAM,EAAI,EAAG,EAAK,MAAM,EACjD,IAAK,EAAG,GAAwB,aAAa,CAAG,IAAM,EAAG,GAAwB,eAAe,CAAK,EACjG,EAAI,IAAI,EAAK,CAAK,EAM1B,OAAO,GACR,IAAI,GAAK,EAER,KAAK,eAAe,KAAO,GAC3B,KAAK,eAAiB,IAAI,IAAI,MAAM,KAAK,KAAK,eAAe,QAAQ,CAAC,EACjE,QAAQ,EACR,MAAM,EAAG,EAAqB,CAAC,EAG5C,KAAK,EAAG,CACJ,OAAO,MAAM,KAAK,KAAK,eAAe,KAAK,CAAC,EAAE,QAAQ,EAE1D,MAAM,EAAG,CACL,IAAM,EAAa,IAAI,GAEvB,OADA,EAAW,eAAiB,IAAI,IAAI,KAAK,cAAc,EAChD,EAEf,CACQ,kBAAiB,qBCrFzB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,oBAAwB,OAChC,IAAM,QACN,SAAS,EAAgB,CAAC,EAAe,CACrC,OAAO,IAAI,GAAkB,eAAe,CAAa,EAErD,oBAAmB,qBCN3B,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,WAAe,OAGvB,IAAM,QAEE,WAAU,GAAU,WAAW,YAAY,oBCNnD,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,QAAY,OAGpB,IAAM,QAOE,QAAO,GAAO,QAAQ,SAAS,oBCXvC,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,uBAA8B,qBAAyB,OAC/D,IAAM,QAKN,MAAM,EAAkB,CACpB,QAAQ,CAAC,EAAO,EAAU,EAAU,CAChC,OAAO,GAAY,WAE3B,CACQ,qBAAoB,GACpB,uBAAsB,IAAI,qBCblC,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,cAAkB,OAC1B,IAAM,QACA,QACA,QACA,GAAW,UAIjB,MAAM,EAAW,CAEb,WAAW,EAAG,QAEP,YAAW,EAAG,CACjB,GAAI,CAAC,KAAK,UACN,KAAK,UAAY,IAAI,GAEzB,OAAO,KAAK,UAMhB,sBAAsB,CAAC,EAAU,CAC7B,OAAQ,EAAG,GAAe,gBAAgB,GAAU,EAAU,GAAO,QAAQ,SAAS,CAAC,EAK3F,gBAAgB,EAAG,CACf,OAAQ,EAAG,GAAe,WAAW,EAAQ,GAAK,GAAoB,oBAK1E,QAAQ,CAAC,EAAM,EAAS,EAAS,CAC7B,OAAO,KAAK,iBAAiB,EAAE,SAAS,EAAM,EAAS,CAAO,EAGlE,OAAO,EAAG,EACL,EAAG,GAAe,kBAAkB,GAAU,GAAO,QAAQ,SAAS,CAAC,EAEhF,CACQ,cAAa,qBC3CrB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,WAAe,OAGvB,IAAM,QAEE,WAAU,GAAU,WAAW,YAAY,oBCNnD,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,yBAA6B,OAIrC,MAAM,EAAsB,CAExB,MAAM,CAAC,EAAU,EAAU,EAE3B,OAAO,CAAC,EAAS,EAAU,CACvB,OAAO,EAEX,MAAM,EAAG,CACL,MAAO,CAAC,EAEhB,CACQ,yBAAwB,qBChBhC,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,iBAAwB,cAAqB,oBAA2B,cAAkB,OAClG,IAAM,QACA,QAIA,IAAe,EAAG,GAAU,kBAAkB,2BAA2B,EAO/E,SAAS,EAAU,CAAC,EAAS,CACzB,OAAO,EAAQ,SAAS,EAAW,GAAK,OAEpC,cAAa,GAMrB,SAAS,EAAgB,EAAG,CACxB,OAAO,GAAW,GAAU,WAAW,YAAY,EAAE,OAAO,CAAC,EAEzD,oBAAmB,GAO3B,SAAS,EAAU,CAAC,EAAS,EAAS,CAClC,OAAO,EAAQ,SAAS,GAAa,CAAO,EAExC,cAAa,GAMrB,SAAS,EAAa,CAAC,EAAS,CAC5B,OAAO,EAAQ,YAAY,EAAW,EAElC,iBAAgB,qBC7CxB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,kBAAsB,OAC9B,IAAM,QACA,QACA,QACA,QACA,QACA,QACA,GAAW,cACX,GAA2B,IAAI,GAAwB,sBAI7D,MAAM,EAAe,CAEjB,WAAW,EAAG,CACV,KAAK,cAAgB,GAAQ,cAC7B,KAAK,WAAa,GAAkB,WACpC,KAAK,iBAAmB,GAAkB,iBAC1C,KAAK,WAAa,GAAkB,WACpC,KAAK,cAAgB,GAAkB,oBAGpC,YAAW,EAAG,CACjB,GAAI,CAAC,KAAK,UACN,KAAK,UAAY,IAAI,GAEzB,OAAO,KAAK,UAOhB,mBAAmB,CAAC,EAAY,CAC5B,OAAQ,EAAG,GAAe,gBAAgB,GAAU,EAAY,GAAO,QAAQ,SAAS,CAAC,EAS7F,MAAM,CAAC,EAAS,EAAS,EAAS,GAAoB,qBAAsB,CACxE,OAAO,KAAK,qBAAqB,EAAE,OAAO,EAAS,EAAS,CAAM,EAStE,OAAO,CAAC,EAAS,EAAS,EAAS,GAAoB,qBAAsB,CACzE,OAAO,KAAK,qBAAqB,EAAE,QAAQ,EAAS,EAAS,CAAM,EAKvE,MAAM,EAAG,CACL,OAAO,KAAK,qBAAqB,EAAE,OAAO,EAG9C,OAAO,EAAG,EACL,EAAG,GAAe,kBAAkB,GAAU,GAAO,QAAQ,SAAS,CAAC,EAE5E,oBAAoB,EAAG,CACnB,OAAQ,EAAG,GAAe,WAAW,EAAQ,GAAK,GAE1D,CACQ,kBAAiB,qBCvEzB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,eAAmB,OAG3B,IAAM,QAEE,eAAc,GAAc,eAAe,YAAY,oBCN/D,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,YAAgB,OACxB,IAAM,QACA,QACA,QACA,QACA,QACA,GAAW,QAIjB,MAAM,EAAS,CAEX,WAAW,EAAG,CACV,KAAK,qBAAuB,IAAI,GAAsB,oBACtD,KAAK,gBAAkB,GAAoB,gBAC3C,KAAK,mBAAqB,GAAoB,mBAC9C,KAAK,WAAa,GAAgB,WAClC,KAAK,QAAU,GAAgB,QAC/B,KAAK,cAAgB,GAAgB,cACrC,KAAK,eAAiB,GAAgB,eACtC,KAAK,QAAU,GAAgB,QAC/B,KAAK,eAAiB,GAAgB,qBAGnC,YAAW,EAAG,CACjB,GAAI,CAAC,KAAK,UACN,KAAK,UAAY,IAAI,GAEzB,OAAO,KAAK,UAOhB,uBAAuB,CAAC,EAAU,CAC9B,IAAM,GAAW,EAAG,GAAe,gBAAgB,GAAU,KAAK,qBAAsB,GAAO,QAAQ,SAAS,CAAC,EACjH,GAAI,EACA,KAAK,qBAAqB,YAAY,CAAQ,EAElD,OAAO,EAKX,iBAAiB,EAAG,CAChB,OAAQ,EAAG,GAAe,WAAW,EAAQ,GAAK,KAAK,qBAK3D,SAAS,CAAC,EAAM,EAAS,CACrB,OAAO,KAAK,kBAAkB,EAAE,UAAU,EAAM,CAAO,EAG3D,OAAO,EAAG,EACL,EAAG,GAAe,kBAAkB,GAAU,GAAO,QAAQ,SAAS,CAAC,EACxE,KAAK,qBAAuB,IAAI,GAAsB,oBAE9D,CACQ,YAAW,qBC7DnB,OAAO,eAAe,GAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,SAAa,OAGrB,IAAM,QAEE,SAAQ,GAAQ,SAAS,YAAY,mBCN7C,OAAO,eAAe,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EACpD,QAAgB,cAAsB,UAAkB,OAAe,UAAkB,uBAA+B,kBAA0B,iBAAyB,gBAAwB,iBAAyB,qBAA6B,mBAA2B,aAAqB,iBAAyB,WAAmB,mBAA2B,sBAA8B,cAAsB,uBAA+B,uBAA+B,YAAoB,kBAA0B,eAAuB,oBAA4B,eAAuB,mBAA2B,iCAAsC,OACnqB,IAAI,QACJ,OAAO,eAAe,EAAS,iCAAkC,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAQ,+BAAkC,CAAC,EAE1J,IAAI,QACJ,OAAO,eAAe,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAU,iBAAoB,CAAC,EAChI,OAAO,eAAe,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAU,aAAgB,CAAC,EAExH,IAAI,QACJ,OAAO,eAAe,EAAS,oBAAqB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAgB,kBAAqB,CAAC,EACxI,IAAI,QACJ,OAAO,eAAe,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAQ,aAAgB,CAAC,EAEtH,IAAI,QACJ,OAAO,eAAe,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAY,gBAAmB,CAAC,EAChI,IAAI,QACJ,OAAO,eAAe,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAS,UAAa,CAAC,EAEjH,IAAI,QACJ,OAAO,eAAe,EAAS,uBAAwB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAoB,qBAAwB,CAAC,EAClJ,OAAO,eAAe,EAAS,uBAAwB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAoB,qBAAwB,CAAC,EAClJ,IAAI,QACJ,OAAO,eAAe,EAAS,cAAe,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAc,YAAe,CAAC,EAC1H,IAAI,QACJ,OAAO,eAAe,EAAS,sBAAuB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAsB,oBAAuB,CAAC,EAClJ,IAAI,QACJ,OAAO,eAAe,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAiB,iBAAoB,CAAC,EACvI,IAAI,QACJ,OAAO,eAAe,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAY,SAAY,CAAC,EAClH,IAAI,QACJ,OAAO,eAAe,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAS,eAAkB,CAAC,EAC3H,IAAI,QACJ,OAAO,eAAe,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAc,WAAc,CAAC,EACxH,IAAI,QACJ,OAAO,eAAe,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAQ,iBAAoB,CAAC,EAC9H,IAAI,QACJ,OAAO,eAAe,EAAS,qBAAsB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAoB,mBAAsB,CAAC,EAC9I,OAAO,eAAe,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAoB,eAAkB,CAAC,EACtI,OAAO,eAAe,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAoB,cAAiB,CAAC,EACpI,IAAI,QACJ,OAAO,eAAe,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAyB,eAAkB,CAAC,EAC3I,OAAO,eAAe,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAyB,gBAAmB,CAAC,EAC7I,OAAO,eAAe,EAAS,uBAAwB,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAyB,qBAAwB,CAAC,EAGvJ,IAAM,QACN,OAAO,eAAe,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAc,QAAW,CAAC,EAClH,IAAM,QACN,OAAO,eAAe,EAAS,OAAQ,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAW,KAAQ,CAAC,EACzG,IAAM,QACN,OAAO,eAAe,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAc,QAAW,CAAC,EAClH,IAAM,QACN,OAAO,eAAe,EAAS,cAAe,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAkB,YAAe,CAAC,EAC9H,IAAM,QACN,OAAO,eAAe,EAAS,QAAS,CAAE,WAAY,GAAM,IAAK,QAAS,EAAG,CAAE,OAAO,GAAY,MAAS,CAAC,EAEpG,UAAU,CACd,QAAS,GAAc,QACvB,KAAM,GAAW,KACjB,QAAS,GAAc,QACvB,YAAa,GAAkB,YAC/B,MAAO,GAAY,KACvB,IC4mBA,kBACA,cA9qBA,IAAI,GAAS,0BACT,GAAS,OAAO,IAAI,EAAM,EAC1B,GAAI,GACJ,GAAe,MAAM,UAAuB,GAAK,MAAO,GAAK,GAAQ,GAAI,CAC3E,WAAW,EACT,UACA,aAAa,IACb,SACC,CACD,MAAM,CAAO,EACb,KAAK,IAAM,GACX,KAAK,WAAa,EAClB,KAAK,MAAQ,QAOR,WAAU,CAAC,EAAO,CACvB,OAAO,EAAc,UAAU,CAAK,QAE/B,UAAS,CAAC,EAAO,CACtB,OAAO,OAAO,IAAU,UAAY,IAAU,MAAQ,MAAU,GAAS,EAAM,MAAY,GAE/F,EAGI,GAAO,6BACP,GAAU,2BAA2B,KACrC,GAAU,OAAO,IAAI,EAAO,EAC5B,GAAK,GACL,GAA6B,MAAM,UAAqC,GAAM,GAAc,GAAM,GAAS,GAAK,CAClH,WAAW,EACT,UAAU,wBACV,aAAa,IACb,SACE,CAAC,EAAG,CACN,MAAM,CAAE,UAAS,aAAY,OAAM,CAAC,EACpC,KAAK,IAAO,GAEZ,KAAK,KAAO,GACZ,KAAK,KAAO,6BAEP,WAAU,CAAC,EAAO,CACvB,OAAO,GAAa,UAAU,CAAK,GAAK,MAAW,QAK9C,sBAAqB,EAC1B,iBACA,oBACA,UAAU,wBACV,aAAa,IACb,SACC,CACD,IAAI,EACJ,GAAI,EACF,EAAoB;AAAA;AAAA;AAAA;AAAA,2EAKf,QAAI,EACT,EAAoB;AAAA;AAAA;AAAA;AAAA,4FAMpB,OAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oFAStB,OAAO,IAAI,EAA4B,CACrC,QAAS,EACT,aACA,OACF,CAAC,EAEL,EAGI,GAAQ,6BACR,GAAU,2BAA2B,KACrC,GAAU,OAAO,IAAI,EAAO,EAC5B,GAAK,GACL,GAA6B,cAAe,GAAM,GAAc,GAAM,GAAS,GAAK,CACtF,WAAW,EACT,UAAU,kBACV,aAAa,IACb,SACE,CAAC,EAAG,CACN,MAAM,CAAE,UAAS,aAAY,OAAM,CAAC,EACpC,KAAK,IAAO,GAEZ,KAAK,KAAO,GACZ,KAAK,KAAO,8BAEP,WAAU,CAAC,EAAO,CACvB,OAAO,GAAa,UAAU,CAAK,GAAK,MAAW,EAEvD,EAGI,GAAQ,wBACR,GAAU,2BAA2B,KACrC,GAAU,OAAO,IAAI,EAAO,EAC5B,GAAK,GACL,GAAwB,cAAe,GAAM,GAAc,GAAM,GAAS,GAAK,CACjF,WAAW,EACT,UAAU,sBACV,aAAa,IACb,SACE,CAAC,EAAG,CACN,MAAM,CAAE,UAAS,aAAY,OAAM,CAAC,EACpC,KAAK,IAAO,GAEZ,KAAK,KAAO,GACZ,KAAK,KAAO,4BAEP,WAAU,CAAC,EAAO,CACvB,OAAO,GAAa,UAAU,CAAK,GAAK,MAAW,EAEvD,EAKI,GAAQ,4BACR,GAAU,2BAA2B,KACrC,GAAU,OAAO,IAAI,EAAO,EAC5B,GAA2B,GAC7B,IAAM,GACJ,EAAE,OAAO,CACP,QAAS,EAAE,OAAO,CACpB,CAAC,CACH,CACF,EACI,GAAK,GACL,GAA4B,cAAe,GAAM,GAAc,GAAM,GAAS,GAAK,CACrF,WAAW,EACT,UAAU,kBACV,aAAa,IACb,UACA,SACE,CAAC,EAAG,CACN,MAAM,CAAE,UAAS,aAAY,OAAM,CAAC,EACpC,KAAK,IAAO,GAEZ,KAAK,KAAO,GACZ,KAAK,KAAO,kBACZ,KAAK,QAAU,QAEV,WAAU,CAAC,EAAO,CACvB,OAAO,GAAa,UAAU,CAAK,GAAK,MAAW,EAEvD,EAGI,GAAQ,6BACR,GAAU,2BAA2B,KACrC,GAAU,OAAO,IAAI,EAAO,EAC5B,GAAK,GACL,GAA6B,cAAe,GAAM,GAAc,GAAM,GAAS,GAAK,CACtF,WAAW,EACT,UAAU,wBACV,aAAa,IACb,SACE,CAAC,EAAG,CACN,MAAM,CAAE,UAAS,aAAY,OAAM,CAAC,EACpC,KAAK,IAAO,GAEZ,KAAK,KAAO,GACZ,KAAK,KAAO,8BAEP,WAAU,CAAC,EAAO,CACvB,OAAO,GAAa,UAAU,CAAK,GAAK,MAAW,EAEvD,EAGI,GAAQ,uBACR,GAAU,2BAA2B,KACrC,GAAU,OAAO,IAAI,EAAO,EAC5B,GAAK,GACL,GAAuB,cAAe,GAAM,GAAc,GAAM,GAAS,GAAK,CAChF,WAAW,EACT,UAAU,gCACV,aAAa,IACb,WACA,kBACA,SACE,CAAC,EAAG,CACN,MAAM,CAAE,UAAS,aAAY,OAAM,CAAC,EACpC,KAAK,IAAO,GAEZ,KAAK,KAAO,GACZ,KAAK,KAAO,iBACZ,KAAK,SAAW,EAChB,KAAK,gBAAkB,QAElB,WAAU,CAAC,EAAO,CACvB,OAAO,GAAa,UAAU,CAAK,GAAK,MAAW,EAEvD,EAQA,eAAe,EAA8B,EAC3C,WACA,aACA,iBAAiB,yBACjB,QACA,cACC,CACD,IAAM,EAAc,MAAM,GAAkB,CAC1C,MAAO,EACP,OAAQ,EACV,CAAC,EACD,GAAI,CAAC,EAAY,QACf,OAAO,IAAI,GAAqB,CAC9B,QAAS,kCAAkC,IAC3C,aACA,WACA,gBAAiB,EAAY,MAC7B,OACF,CAAC,EAEH,IAAM,EAAoB,EAAY,MAChC,EAAY,EAAkB,MAAM,KACpC,EAAU,EAAkB,MAAM,QACxC,OAAQ,OACD,uBACH,OAAO,GAA2B,sBAAsB,CACtD,eAAgB,IAAe,UAC/B,kBAAmB,IAAe,OAClC,aACA,OACF,CAAC,MACE,wBACH,OAAO,IAAI,GAA2B,CAAE,UAAS,aAAY,OAAM,CAAC,MACjE,sBACH,OAAO,IAAI,GAAsB,CAAE,UAAS,aAAY,OAAM,CAAC,MAC5D,kBAAmB,CACtB,IAAM,EAAc,MAAM,GAAkB,CAC1C,MAAO,EAAkB,MAAM,MAC/B,OAAQ,EACV,CAAC,EACD,OAAO,IAAI,GAA0B,CACnC,UACA,aACA,QAAS,EAAY,QAAU,EAAY,MAAM,QAAe,OAChE,OACF,CAAC,CACH,KACK,wBACH,OAAO,IAAI,GAA2B,CAAE,UAAS,aAAY,OAAM,CAAC,UAEpE,OAAO,IAAI,GAA2B,CAAE,UAAS,aAAY,OAAM,CAAC,GAG1E,IAAI,GAA6B,GAC/B,IAAM,GACJ,EAAG,OAAO,CACR,MAAO,EAAG,OAAO,CACf,QAAS,EAAG,OAAO,EACnB,KAAM,EAAG,OAAO,EAAE,QAAQ,EAC1B,MAAO,EAAG,QAAQ,EAAE,QAAQ,EAC5B,KAAM,EAAG,MAAM,CAAC,EAAG,OAAO,EAAG,EAAG,OAAO,CAAC,CAAC,EAAE,QAAQ,CACrD,CAAC,CACH,CAAC,CACH,CACF,EAGA,SAAS,EAAc,CAAC,EAAO,EAAY,CACzC,IAAI,EACJ,GAAI,GAAa,WAAW,CAAK,EAC/B,OAAO,EAET,GAAI,GAAa,WAAW,CAAK,EAC/B,OAAO,GAA+B,CACpC,SAAU,GAAuB,CAAK,EACtC,YAAa,EAAM,EAAM,aAAe,KAAO,EAAM,IACrD,eAAgB,yBAChB,MAAO,EACP,YACF,CAAC,EAEH,OAAO,GAA+B,CACpC,SAAU,CAAC,EACX,WAAY,IACZ,eAAgB,aAAiB,MAAQ,2BAA2B,EAAM,UAAY,wBACtF,MAAO,EACP,YACF,CAAC,EAIH,SAAS,EAAsB,CAAC,EAAO,CACrC,GAAI,EAAM,OAAc,OACtB,OAAO,EAAM,KAEf,GAAI,EAAM,cAAgB,KACxB,GAAI,CACF,OAAO,KAAK,MAAM,EAAM,YAAY,EACpC,MAAO,EAAG,CACV,OAAO,EAAM,aAGjB,MAAO,CAAC,EAUV,IAAI,GAA6B,yBACjC,eAAe,EAAe,CAAC,EAAS,CACtC,IAAM,EAAS,MAAM,GAAmB,CACtC,MAAO,EAAQ,IACf,OAAQ,EACV,CAAC,EACD,OAAO,EAAO,QAAU,EAAO,MAAa,OAE9C,IAAI,GAA0B,GAC5B,IAAM,GAAW,EAAG,MAAM,CAAC,EAAG,QAAQ,SAAS,EAAG,EAAG,QAAQ,MAAM,CAAC,CAAC,CAAC,CACxE,EAYI,GAAuB,KAAM,CAC/B,WAAW,CAAC,EAAQ,CAClB,KAAK,OAAS,OAEV,mBAAkB,EAAG,CACzB,GAAI,CACF,IAAQ,SAAU,MAAM,GAAW,CACjC,IAAK,GAAG,KAAK,OAAO,iBACpB,QAAS,MAAM,GAAQ,KAAK,OAAO,QAAQ,CAAC,EAC5C,0BAA2B,GACzB,EACF,EACA,sBAAuB,GAA+B,CACpD,YAAa,EAAG,IAAI,EACpB,eAAgB,CAAC,IAAS,CAC5B,CAAC,EACD,MAAO,KAAK,OAAO,KACrB,CAAC,EACD,OAAO,EACP,MAAO,EAAO,CACd,MAAM,MAAM,GAAe,CAAK,QAG9B,WAAU,EAAG,CACjB,GAAI,CACF,IAAM,EAAU,IAAI,IAAI,KAAK,OAAO,OAAO,GACnC,SAAU,MAAM,GAAW,CACjC,IAAK,GAAG,EAAQ,oBAChB,QAAS,MAAM,GAAQ,KAAK,OAAO,QAAQ,CAAC,EAC5C,0BAA2B,GACzB,EACF,EACA,sBAAuB,GAA+B,CACpD,YAAa,EAAG,IAAI,EACpB,eAAgB,CAAC,IAAS,CAC5B,CAAC,EACD,MAAO,KAAK,OAAO,KACrB,CAAC,EACD,OAAO,EACP,MAAO,EAAO,CACd,MAAM,MAAM,GAAe,CAAK,GAGtC,EACI,GAAuC,GACzC,IAAM,GACJ,EAAG,OAAO,CACR,OAAQ,EAAG,MACT,EAAG,OAAO,CACR,GAAI,EAAG,OAAO,EACd,KAAM,EAAG,OAAO,EAChB,YAAa,EAAG,OAAO,EAAE,QAAQ,EACjC,QAAS,EAAG,OAAO,CACjB,MAAO,EAAG,OAAO,EACjB,OAAQ,EAAG,OAAO,EAClB,iBAAkB,EAAG,OAAO,EAAE,QAAQ,EACtC,kBAAmB,EAAG,OAAO,EAAE,QAAQ,CACzC,CAAC,EAAE,UACD,EAAG,QAAO,SAAQ,mBAAkB,wBAAyB,CAC3D,QACA,YACG,EAAmB,CAAE,kBAAmB,CAAiB,EAAI,CAAC,KAC9D,EAAoB,CAAE,yBAA0B,CAAkB,EAAI,CAAC,CAC5E,EACF,EAAE,QAAQ,EACV,cAAe,EAAG,OAAO,CACvB,qBAAsB,EAAG,QAAQ,IAAI,EACrC,SAAU,EAAG,OAAO,EACpB,QAAS,EAAG,OAAO,CACrB,CAAC,EACD,UAAW,EAAG,KAAK,CAAC,WAAY,YAAa,OAAO,CAAC,EAAE,QAAQ,CACjE,CAAC,CACH,CACF,CAAC,CACH,CACF,EACI,GAA+B,GACjC,IAAM,GACJ,EAAG,OAAO,CACR,QAAS,EAAG,OAAO,EACnB,WAAY,EAAG,OAAO,CACxB,CAAC,EAAE,UAAU,EAAG,UAAS,iBAAkB,CACzC,UACA,UAAW,CACb,EAAE,CACJ,CACF,EAYI,GAAuB,KAAM,CAC/B,WAAW,CAAC,EAAS,EAAQ,CAC3B,KAAK,QAAU,EACf,KAAK,OAAS,EACd,KAAK,qBAAuB,KAC5B,KAAK,cAAgB,CAAE,MAAO,CAAC,IAAI,CAAE,KAEnC,SAAQ,EAAG,CACb,OAAO,KAAK,OAAO,cAEf,QAAO,CAAC,EAAS,CACrB,IAAQ,YAAa,KAAiB,GAAyB,EAC/D,MAAO,CACL,KAAM,KAAK,qBAAqB,CAAoB,EACpD,SAAU,CAAC,CACb,OAEI,WAAU,CAAC,EAAS,CACxB,IAAQ,OAAM,YAAa,MAAM,KAAK,QAAQ,CAAO,GAC7C,eAAgB,EAClB,EAAkB,MAAM,GAAS,KAAK,OAAO,QAAQ,CAAC,EAC5D,GAAI,CACF,IACE,kBACA,MAAO,EACP,SAAU,GACR,MAAM,GAAc,CACtB,IAAK,KAAK,OAAO,EACjB,QAAS,GACP,EACA,EAAQ,QACR,KAAK,sBAAsB,KAAK,QAAS,EAAK,EAC9C,MAAM,GAAS,KAAK,OAAO,WAAW,CACxC,EACA,KAAM,EACN,0BAA2B,GAA2B,EAAG,IAAI,CAAC,EAC9D,sBAAuB,GAAgC,CACrD,YAAa,EAAG,IAAI,EACpB,eAAgB,CAAC,IAAS,CAC5B,CAAC,KACE,GAAe,CAAE,aAAY,EAChC,MAAO,KAAK,OAAO,KACrB,CAAC,EACD,MAAO,IACF,EACH,QAAS,CAAE,KAAM,CAAK,EACtB,SAAU,CAAE,QAAS,EAAiB,KAAM,CAAY,EACxD,UACF,EACA,MAAO,EAAO,CACd,MAAM,MAAM,GAAe,EAAO,MAAM,GAAgB,CAAe,CAAC,QAGtE,SAAQ,CAAC,EAAS,CACtB,IAAQ,OAAM,YAAa,MAAM,KAAK,QAAQ,CAAO,GAC7C,eAAgB,EAClB,EAAkB,MAAM,GAAS,KAAK,OAAO,QAAQ,CAAC,EAC5D,GAAI,CACF,IAAQ,MAAO,EAAU,mBAAoB,MAAM,GAAc,CAC/D,IAAK,KAAK,OAAO,EACjB,QAAS,GACP,EACA,EAAQ,QACR,KAAK,sBAAsB,KAAK,QAAS,EAAI,EAC7C,MAAM,GAAS,KAAK,OAAO,WAAW,CACxC,EACA,KAAM,EACN,0BAA2B,GAAiC,EAAG,IAAI,CAAC,EACpE,sBAAuB,GAAgC,CACrD,YAAa,EAAG,IAAI,EACpB,eAAgB,CAAC,IAAS,CAC5B,CAAC,KACE,GAAe,CAAE,aAAY,EAChC,MAAO,KAAK,OAAO,KACrB,CAAC,EACD,MAAO,CACL,OAAQ,EAAS,YACf,IAAI,gBAAgB,CAClB,KAAK,CAAC,EAAY,CAChB,GAAI,EAAS,OAAS,EACpB,EAAW,QAAQ,CAAE,KAAM,eAAgB,UAAS,CAAC,GAGzD,SAAS,CAAC,EAAO,EAAY,CAC3B,GAAI,EAAM,QAAS,CACjB,IAAM,EAAa,EAAM,MACzB,GAAI,EAAW,OAAS,OAAS,CAAC,EAAQ,iBACxC,OAEF,GAAI,EAAW,OAAS,qBAAuB,EAAW,WAAa,OAAO,EAAW,YAAc,SACrG,EAAW,UAAY,IAAI,KAAK,EAAW,SAAS,EAEtD,EAAW,QAAQ,CAAU,EAE7B,OAAW,MACT,EAAM,KACR,EAGN,CAAC,CACH,EACA,QAAS,CAAE,KAAM,CAAK,EACtB,SAAU,CAAE,QAAS,CAAgB,CACvC,EACA,MAAO,EAAO,CACd,MAAM,MAAM,GAAe,EAAO,MAAM,GAAgB,CAAe,CAAC,GAG5E,UAAU,CAAC,EAAM,CACf,OAAO,GAAQ,OAAO,IAAS,UAAY,SAAU,GAAQ,EAAK,OAAS,OAQ7E,oBAAoB,CAAC,EAAS,CAC5B,QAAW,KAAW,EAAQ,OAC5B,QAAW,KAAQ,EAAQ,QACzB,GAAI,KAAK,WAAW,CAAI,EAAG,CACzB,IAAM,EAAW,EACjB,GAAI,EAAS,gBAAgB,WAAY,CACvC,IAAM,EAAS,WAAW,KAAK,EAAS,IAAI,EACtC,EAAa,OAAO,KAAK,CAAM,EAAE,SAAS,QAAQ,EACxD,EAAS,KAAO,IAAI,IAClB,QAAQ,EAAS,WAAa,qCAAqC,GACrE,GAKR,OAAO,EAET,MAAM,EAAG,CACP,MAAO,GAAG,KAAK,OAAO,yBAExB,qBAAqB,CAAC,EAAS,EAAW,CACxC,MAAO,CACL,0CAA2C,IAC3C,uBAAwB,EACxB,8BAA+B,OAAO,CAAS,CACjD,EAEJ,EAaI,GAAwB,KAAM,CAChC,WAAW,CAAC,EAAS,EAAQ,CAC3B,KAAK,QAAU,EACf,KAAK,OAAS,EACd,KAAK,qBAAuB,KAC5B,KAAK,qBAAuB,KAC5B,KAAK,sBAAwB,MAE3B,SAAQ,EAAG,CACb,OAAO,KAAK,OAAO,cAEf,QAAO,EACX,SACA,UACA,cACA,mBACC,CACD,IAAI,EACJ,IAAM,EAAkB,MAAM,GAAS,KAAK,OAAO,QAAQ,CAAC,EAC5D,GAAI,CACF,IACE,kBACA,MAAO,EACP,YACE,MAAM,GAAe,CACvB,IAAK,KAAK,OAAO,EACjB,QAAS,GACP,EACA,GAAW,KAAO,EAAU,CAAC,EAC7B,KAAK,sBAAsB,EAC3B,MAAM,GAAS,KAAK,OAAO,WAAW,CACxC,EACA,KAAM,CACJ,MAAO,EAAO,SAAW,EAAI,EAAO,GAAK,KACtC,EAAkB,CAAE,iBAAgB,EAAI,CAAC,CAC9C,EACA,0BAA2B,GACzB,EACF,EACA,sBAAuB,GAAgC,CACrD,YAAa,EAAG,IAAI,EACpB,eAAgB,CAAC,IAAS,CAC5B,CAAC,KACE,GAAe,CAAE,aAAY,EAChC,MAAO,KAAK,OAAO,KACrB,CAAC,EACD,MAAO,CACL,WAAY,EAAa,WACzB,OAAQ,EAAM,EAAa,QAAU,KAAO,EAAW,OACvD,iBAAkB,EAAa,iBAC/B,SAAU,CAAE,QAAS,EAAiB,KAAM,CAAS,CACvD,EACA,MAAO,EAAO,CACd,MAAM,MAAM,GAAe,EAAO,MAAM,GAAgB,CAAe,CAAC,GAG5E,MAAM,EAAG,CACP,MAAO,GAAG,KAAK,OAAO,0BAExB,qBAAqB,EAAG,CACtB,MAAO,CACL,2CAA4C,IAC5C,cAAe,KAAK,OACtB,EAEJ,EACI,GAAiC,GACnC,IAAM,GACJ,EAAG,OAAO,CACR,WAAY,EAAG,MAAM,EAAG,MAAM,EAAG,OAAO,CAAC,CAAC,EAC1C,MAAO,EAAG,OAAO,CAAE,OAAQ,EAAG,OAAO,CAAE,CAAC,EAAE,QAAQ,EAClD,iBAAkB,EAAG,OAAO,EAAG,OAAO,EAAG,EAAG,OAAO,EAAG,OAAO,EAAG,EAAG,QAAQ,CAAC,CAAC,EAAE,SAAS,CAC1F,CAAC,CACH,CACF,EAKA,eAAe,EAAkB,EAAG,CAClC,IAAI,EACJ,OAAQ,EAAM,cAAW,EAAE,UAAY,KAAY,OAAI,EAAI,eAO7D,IAAI,GAAiB,QAGjB,GAA8B,QAClC,SAAS,EAAqB,CAAC,EAAU,CAAC,EAAG,CAC3C,IAAI,EAAK,EACT,IAAI,EAAkB,KAClB,EAAgB,KACd,GAAsB,EAAM,EAAQ,6BAA+B,KAAO,EAAM,OAClF,EAAgB,EACd,GAAW,EAAM,GAAqB,EAAQ,OAAO,IAAM,KAAO,EAAM,qCACxE,EAAa,SAAY,CAC7B,IAAM,EAAO,MAAM,GAAoB,CAAO,EAC9C,GAAI,EACF,OAAO,EACL,CACE,cAAe,UAAU,EAAK,QAC9B,8BAA+B,IAC9B,IAA6B,EAAK,cAChC,EAAQ,OACb,EACA,kBAAkB,IACpB,EAEF,MAAM,GAA2B,sBAAsB,CACrD,eAAgB,GAChB,kBAAmB,GACnB,WAAY,GACd,CAAC,GAEG,EAAoB,IAAM,CAC9B,IAAM,EAAe,GAAoB,CACvC,aAAmB,OACnB,wBAAyB,sBAC3B,CAAC,EACK,EAAc,GAAoB,CACtC,aAAmB,OACnB,wBAAyB,YAC3B,CAAC,EACK,EAAS,GAAoB,CACjC,aAAmB,OACnB,wBAAyB,eAC3B,CAAC,EACD,MAAO,UAAY,CACjB,IAAM,EAAY,MAAM,GAAmB,EAC3C,MAAO,IACF,GAAgB,CAAE,wBAAyB,CAAa,KACxD,GAAe,CAAE,sBAAuB,CAAY,KACpD,GAAU,CAAE,iBAAkB,CAAO,KACrC,GAAa,CAAE,qBAAsB,CAAU,CACpD,IAGE,EAAsB,CAAC,IAAY,CACvC,OAAO,IAAI,GAAqB,EAAS,CACvC,SAAU,UACV,UACA,QAAS,EACT,MAAO,EAAQ,MACf,YAAa,EAAkB,CACjC,CAAC,GAEG,EAAqB,SAAY,CACrC,IAAI,EAAK,EAAK,EACd,IAAM,GAAO,GAAM,GAAO,EAAM,EAAQ,YAAc,KAAY,OAAI,EAAI,cAAgB,KAAY,OAAI,EAAI,KAAK,CAAG,EAAE,QAAQ,IAAM,KAAO,EAAK,KAAK,IAAI,EAC3J,GAAI,CAAC,GAAmB,EAAM,EAAgB,EAC5C,EAAgB,EAChB,EAAkB,IAAI,GAAqB,CACzC,UACA,QAAS,EACT,MAAO,EAAQ,KACjB,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,IAAa,CAEzC,OADA,EAAgB,EACT,EACR,EAAE,MAAM,MAAO,IAAU,CACxB,MAAM,MAAM,GACV,EACA,MAAM,GAAgB,MAAM,EAAW,CAAC,CAC1C,EACD,EAEH,OAAO,EAAgB,QAAQ,QAAQ,CAAa,EAAI,GAEpD,EAAa,SAAY,CAC7B,OAAO,IAAI,GAAqB,CAC9B,UACA,QAAS,EACT,MAAO,EAAQ,KACjB,CAAC,EAAE,WAAW,EAAE,MAAM,MAAO,IAAU,CACrC,MAAM,MAAM,GACV,EACA,MAAM,GAAgB,MAAM,EAAW,CAAC,CAC1C,EACD,GAEG,EAAW,QAAQ,CAAC,EAAS,CACjC,GAAI,WACF,MAAU,MACR,4EACF,EAEF,OAAO,EAAoB,CAAO,GAiBpC,OAfA,EAAS,mBAAqB,EAC9B,EAAS,WAAa,EACtB,EAAS,WAAa,CAAC,IAAY,CACjC,MAAM,IAAI,GAAiB,CAAE,UAAS,UAAW,YAAa,CAAC,GAEjE,EAAS,cAAgB,EACzB,EAAS,mBAAqB,CAAC,IAAY,CACzC,OAAO,IAAI,GAAsB,EAAS,CACxC,SAAU,UACV,UACA,QAAS,EACT,MAAO,EAAQ,MACf,YAAa,EAAkB,CACjC,CAAC,GAEI,EAET,IAAI,GAAU,GAAsB,EACpC,eAAe,EAAmB,CAAC,EAAS,CAC1C,IAAM,EAAS,GAAoB,CACjC,aAAc,EAAQ,OACtB,wBAAyB,oBAC3B,CAAC,EACD,GAAI,EACF,MAAO,CACL,MAAO,EACP,WAAY,SACd,EAEF,GAAI,CAEF,MAAO,CACL,MAFgB,MAAM,sBAAmB,EAGzC,WAAY,MACd,EACA,MAAO,EAAG,CACV,OAAO,MCimBX,kBA2EA,cA7/CA,IAAI,GAAY,OAAO,eACnB,GAAW,CAAC,EAAQ,IAAQ,CAC9B,QAAS,KAAU,EACjB,GAAU,EAAQ,EAAQ,CAAE,IAAK,EAAI,GAAS,WAAY,EAAK,CAAC,GA0BhE,GAAO,4BACP,GAAS,mBAAmB,KAC5B,GAAS,OAAO,IAAI,EAAM,EAC1B,GACA,GAAyB,cAAc,CAAW,CAEpD,WAAW,EAAG,UAAU,wBAA2B,CAAC,EAAG,CACrD,MAAM,CAAE,QAAM,SAAQ,CAAC,EACvB,KAAK,IAAM,SAEN,WAAU,CAAC,EAAO,CACvB,OAAO,EAAW,UAAU,EAAO,EAAM,EAE7C,EACA,GAAK,GAGL,SAAS,EAAa,CAAC,EAAS,CAE9B,OAAQ,EAAQ,UACT,sBAAuB,CAC1B,IAAI,EAAU,wBAAkB,EAAQ,kDACxC,GAAI,EAAQ,QACV,GAAW,MAAM,EAAQ,UAE3B,OAAO,CACT,KACK,mBAAoB,CAEvB,IAAI,EAAU,6BADG,SAAU,EAAQ,KAAO,EAAQ,KAAK,KAAO,iDAE9D,GAAI,EAAQ,QACV,GAAW,MAAM,EAAQ,UAE3B,OAAO,CACT,KACK,QACH,MAAO,mBAAa,EAAQ,kBAG5B,MAAO,mBAAa,KAAK,UAAU,EAAS,KAAM,CAAC,KAIzD,IAAI,GAA6B,mGAC7B,GAAkB,GAClB,GAAc,CAAC,IAAa,CAC9B,GAAI,EAAS,SAAW,EACtB,OAEF,IAAM,EAAS,WAAW,oBAC1B,GAAI,IAAW,GACb,OAEF,GAAI,OAAO,IAAW,WAAY,CAChC,EAAO,CAAQ,EACf,OAEF,GAAI,CAAC,GACH,GAAkB,GAClB,QAAQ,KAAK,EAA0B,EAEzC,QAAW,KAAW,EACpB,QAAQ,KAAK,GAAc,CAAO,CAAC,GA0BnC,GAAQ,0BACR,GAAU,mBAAmB,KAC7B,GAAU,OAAO,IAAI,EAAO,EAC5B,GACA,EAAuB,cAAc,CAAY,CACnD,WAAW,EACT,YACA,QACA,WACC,CACD,MAAM,CACJ,KAAM,GACN,QAAS,kCAAkC,MAAc,GAC3D,CAAC,EACD,KAAK,IAAO,GACZ,KAAK,UAAY,EACjB,KAAK,MAAQ,QAER,WAAU,CAAC,EAAO,CACvB,OAAO,EAAY,UAAU,EAAO,EAAO,EAE/C,EACA,GAAM,GAIN,IAAI,GAAQ,4BACR,GAAU,mBAAmB,KAC7B,GAAU,OAAO,IAAI,EAAO,EAC5B,GACA,GAAyB,cAAc,CAAY,CACrD,WAAW,EACT,QACA,WACC,CACD,MAAM,CAAE,KAAM,GAAO,SAAQ,CAAC,EAC9B,KAAK,IAAO,GACZ,KAAK,MAAQ,QAER,WAAU,CAAC,EAAO,CACvB,OAAO,EAAY,UAAU,EAAO,EAAO,EAE/C,EACA,GAAM,GAIN,IAAI,GAAQ,2BACR,GAAU,mBAAmB,KAC7B,GAAU,OAAO,IAAI,EAAO,EAC5B,GACA,GAAwB,cAAc,CAAY,CACpD,WAAW,EACT,YACA,WACA,QACA,UAAU,0BAA0B,MAAa,GAAgB,CAAK,KACrE,CACD,MAAM,CAAE,KAAM,GAAO,UAAS,OAAM,CAAC,EACrC,KAAK,IAAO,GACZ,KAAK,UAAY,EACjB,KAAK,SAAW,QAEX,WAAU,CAAC,EAAO,CACvB,OAAO,EAAY,UAAU,EAAO,EAAO,EAE/C,EACA,GAAM,GAIN,IAAI,GAAQ,2BACR,GAAU,mBAAmB,KAC7B,GAAU,OAAO,IAAI,EAAO,EAC5B,GACA,GAAwB,cAAc,CAAY,CACpD,WAAW,EACT,UAAU,sBACV,QACA,aACC,CACD,MAAM,CAAE,KAAM,GAAO,UAAS,OAAM,CAAC,EACrC,KAAK,IAAO,GACZ,KAAK,UAAY,QAEZ,WAAU,CAAC,EAAO,CACvB,OAAO,EAAY,UAAU,EAAO,EAAO,EAE/C,EACA,GAAM,GAIN,IAAI,GAAQ,4BACR,GAAU,mBAAmB,KAC7B,GAAU,OAAO,IAAI,EAAO,EAC5B,GACA,GAAyB,cAAc,CAAY,CACrD,WAAW,EACT,UAAU,uBACV,QACA,KAAM,EACN,WACA,QACA,gBACC,CACD,MAAM,CAAE,KAAM,GAAO,UAAS,OAAM,CAAC,EACrC,KAAK,IAAO,GACZ,KAAK,KAAO,EACZ,KAAK,SAAW,EAChB,KAAK,MAAQ,EACb,KAAK,aAAe,QAEf,WAAU,CAAC,EAAO,CACvB,OAAO,EAAY,UAAU,EAAO,EAAO,EAE/C,EACA,GAAM,GAIN,IAAI,GAAQ,4BACR,GAAU,mBAAmB,KAC7B,GAAU,OAAO,IAAI,EAAO,EAC5B,GACA,GAAyB,cAAc,CAAY,CAErD,WAAW,EACT,UAAU,uBACV,SACE,CAAC,EAAG,CACN,MAAM,CAAE,KAAM,GAAO,UAAS,OAAM,CAAC,EACrC,KAAK,IAAO,SAEP,WAAU,CAAC,EAAO,CACvB,OAAO,EAAY,UAAU,EAAO,EAAO,EAE/C,EACA,GAAM,GAIN,IAAI,GAAyB,cAAc,CAAY,CACrD,WAAW,CAAC,EAAS,CACnB,MAAM,CACJ,KAAM,4BACN,QAAS,4BACX,CAAC,EACD,KAAK,UAAY,EAAQ,UAE7B,EAII,GAAQ,qBACR,GAAU,mBAAmB,KAC7B,GAAU,OAAO,IAAI,EAAO,EAC5B,GACA,GAAkB,cAAc,CAAY,CAC9C,WAAW,EACT,WACA,iBAAsB,OACtB,UAAU,yCAAyC,OAAc,IAAwB,OAAI,0BAA4B,oBAAoB,EAAe,KAAK,IAAI,QACpK,CACD,MAAM,CAAE,KAAM,GAAO,SAAQ,CAAC,EAC9B,KAAK,IAAO,GACZ,KAAK,SAAW,EAChB,KAAK,eAAiB,QAEjB,WAAU,CAAC,EAAO,CACvB,OAAO,EAAY,UAAU,EAAO,EAAO,EAE/C,EACA,GAAM,GAIN,IAAI,GAAQ,yBACR,GAAU,mBAAmB,KAC7B,GAAU,OAAO,IAAI,EAAO,EAC5B,GACA,GAAsB,cAAc,CAAa,CACnD,WAAW,EACT,QACA,gBACA,UAAU,8BAA8B,GAAiB,CAAK,KAC7D,CACD,MAAM,CAAE,KAAM,GAAO,UAAS,OAAM,CAAC,EACrC,KAAK,IAAO,GACZ,KAAK,cAAgB,QAEhB,WAAU,CAAC,EAAO,CACvB,OAAO,EAAa,UAAU,EAAO,EAAO,EAEhD,EACA,GAAM,GAIN,IAAI,GAA+B,cAAc,CAAa,CAC5D,WAAW,CAAC,EAAS,CACnB,MAAM,CACJ,KAAM,kCACN,QAAS,6BAA6B,EAAQ,yBAAyB,EAAQ,wBAAwB,EAAQ,oFACjH,CAAC,EACD,KAAK,QAAU,EAAQ,QACvB,KAAK,SAAW,EAAQ,SACxB,KAAK,QAAU,EAAQ,QAE3B,EAII,GAAS,6BACT,GAAW,mBAAmB,KAC9B,GAAW,OAAO,IAAI,EAAQ,EAC9B,GACA,GAA0B,cAAc,CAAa,CACvD,WAAW,EACT,UACA,QACA,UAAU,+FAA+F,OAAO,MAC/G,CACD,MAAM,CAAE,KAAM,GAAQ,UAAS,OAAM,CAAC,EACtC,KAAK,IAAQ,GACb,KAAK,QAAU,QAEV,WAAU,CAAC,EAAO,CACvB,OAAO,EAAa,UAAU,EAAO,EAAQ,EAEjD,EACA,GAAO,GAIP,IAAI,GAAS,6BACT,GAAW,mBAAmB,KAC9B,GAAW,OAAO,IAAI,EAAQ,EAC9B,GACA,GAA0B,cAAc,CAAa,CACvD,WAAW,EACT,OACA,UAAU,0BAA0B,8DACnC,CACD,MAAM,CAAE,KAAM,GAAQ,SAAQ,CAAC,EAC/B,KAAK,IAAQ,GACb,KAAK,KAAO,QAEP,WAAU,CAAC,EAAO,CACvB,OAAO,EAAa,UAAU,EAAO,EAAQ,EAEjD,EACA,GAAO,GAIP,IAAI,GAAS,4BACT,GAAW,mBAAmB,KAC9B,GAAW,OAAO,IAAI,EAAQ,EAC9B,GACA,GAAyB,cAAc,CAAa,CACtD,WAAW,EACT,kBACA,WACC,CACD,MAAM,CAAE,KAAM,GAAQ,SAAQ,CAAC,EAC/B,KAAK,IAAQ,GACb,KAAK,gBAAkB,QAElB,WAAU,CAAC,EAAO,CACvB,OAAO,EAAa,UAAU,EAAO,EAAQ,EAEjD,EACA,GAAO,GAIP,IAAI,GAAS,mBACT,GAAW,mBAAmB,KAC9B,GAAW,OAAO,IAAI,EAAQ,EAC9B,GACA,GAAgB,cAAc,CAAa,CAC7C,WAAW,EACT,MACA,aACA,aACA,QACA,UAAU,GAAS,KAAO,sBAAsB,MAAQ,KAAc,IAAe,sBAAsB,MAAQ,KAClH,CACD,MAAM,CAAE,KAAM,GAAQ,UAAS,OAAM,CAAC,EACtC,KAAK,IAAQ,GACb,KAAK,IAAM,EACX,KAAK,WAAa,EAClB,KAAK,WAAa,QAEb,WAAU,CAAC,EAAO,CACvB,OAAO,EAAa,UAAU,EAAO,EAAQ,EAEjD,EACA,GAAO,GAIP,IAAI,GAAS,gBACT,GAAW,mBAAmB,KAC9B,GAAW,OAAO,IAAI,EAAQ,EAC9B,GACA,GAAa,cAAc,CAAa,CAC1C,WAAW,EACT,UACA,SACA,UACC,CACD,MAAM,CAAE,KAAM,GAAQ,SAAQ,CAAC,EAC/B,KAAK,IAAQ,GACb,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,UAAY,EAAO,EAAO,OAAS,SAEnC,WAAU,CAAC,EAAO,CACvB,OAAO,EAAa,UAAU,EAAO,EAAQ,EAEjD,EACA,GAAO,GAGP,SAAS,EAAoB,CAAC,EAAO,CACnC,GAAI,OAAO,IAAU,SAAU,CAC7B,GAAI,EAAM,uBAAyB,KACjC,MAAM,IAAI,GAA6B,CACrC,QAAS,EAAM,qBACf,SAAU,EAAM,SAChB,QAAS,EAAM,OACjB,CAAC,EAEH,OAAO,EAET,OAAO,GAAkB,EAAE,cAAc,CAAK,EAEhD,SAAS,EAAqB,CAAC,EAAO,CACpC,GAAI,OAAO,IAAU,SAAU,CAC7B,GAAI,EAAM,uBAAyB,KACjC,MAAM,IAAI,GAA6B,CACrC,QAAS,EAAM,qBACf,SAAU,EAAM,SAChB,QAAS,EAAM,OACjB,CAAC,EAEH,OAAO,EAET,OAAO,GAAkB,EAAE,mBACzB,CACF,EAEF,SAAS,EAAiB,EAAG,CAC3B,IAAI,EACJ,OAAQ,EAAO,WAAW,0BAA4B,KAAO,EAAO,GAUtE,IAAI,GAA2B,CAC7B,CACE,UAAW,YACX,YAAa,CAAC,GAAI,GAAI,EAAE,CAE1B,EACA,CACE,UAAW,YACX,YAAa,CAAC,IAAK,GAAI,GAAI,EAAE,CAE/B,EACA,CACE,UAAW,aACX,YAAa,CAAC,IAAK,GAAG,CAExB,EACA,CACE,UAAW,aACX,YAAa,CACX,GACA,GACA,GACA,GAEA,KACA,KACA,KACA,KAEA,GACA,GACA,GACA,EAEF,CACF,EACA,CACE,UAAW,YACX,YAAa,CAAC,GAAI,EAAE,CACtB,EACA,CACE,UAAW,aACX,YAAa,CAAC,GAAI,GAAI,GAAI,CAAC,CAC7B,EACA,CACE,UAAW,aACX,YAAa,CAAC,GAAI,GAAI,EAAG,EAAE,CAC7B,EACA,CACE,UAAW,aACX,YAAa,CACX,EACA,EACA,EACA,GACA,IACA,IACA,IACA,IACA,GACA,IACA,IACA,GACF,CACF,EACA,CACE,UAAW,aACX,YAAa,CACX,EACA,EACA,EACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,EACF,CACF,CACF,EACI,GAA2B,CAC7B,CACE,UAAW,aACX,YAAa,CAAC,IAAK,GAAG,CACxB,EACA,CACE,UAAW,aACX,YAAa,CAAC,IAAK,GAAG,CACxB,EACA,CACE,UAAW,aACX,YAAa,CAAC,IAAK,GAAG,CACxB,EACA,CACE,UAAW,aACX,YAAa,CAAC,IAAK,GAAG,CACxB,EACA,CACE,UAAW,aACX,YAAa,CAAC,IAAK,GAAG,CACxB,EACA,CACE,UAAW,aACX,YAAa,CAAC,IAAK,GAAG,CACxB,EACA,CACE,UAAW,YACX,YAAa,CACX,GAEA,GAEA,GAEA,GAEA,KACA,KACA,KACA,KACA,GAEA,GAEA,GAEA,EAEF,CACF,EACA,CACE,UAAW,YACX,YAAa,CAAC,GAAI,IAAK,IAAK,EAAE,CAChC,EACA,CACE,UAAW,aACX,YAAa,CAAC,IAAK,GAAI,GAAI,EAAE,CAC/B,EACA,CACE,UAAW,YACX,YAAa,CAAC,GAAI,GAAI,EAAG,CAAC,CAC5B,EACA,CACE,UAAW,YACX,YAAa,CAAC,IAAK,IAAK,IAAK,GAAG,CAClC,EACA,CACE,UAAW,aACX,YAAa,CAAC,GAAI,GAAI,IAAK,GAAG,CAChC,CACF,EACI,GAAW,CAAC,IAAS,CACvB,IAAM,EAAQ,OAAO,IAAS,SAAW,GAA0B,CAAI,EAAI,EACrE,GAAW,EAAM,GAAK,MAAQ,IAAM,EAAM,GAAK,MAAQ,IAAM,EAAM,GAAK,MAAQ,EAAI,EAAM,GAAK,IACrG,OAAO,EAAM,MAAM,EAAU,EAAE,GAEjC,SAAS,EAAqB,CAAC,EAAM,CAInC,OAHe,OAAO,IAAS,UAAY,EAAK,WAAW,MAAM,GAAK,OAAO,IAAS,UAAY,EAAK,OAAS,IAAM,EAAK,KAAO,IAClI,EAAK,KAAO,IACZ,EAAK,KAAO,GACI,GAAS,CAAI,EAAI,EAEnC,SAAS,EAAe,EACtB,OACA,cACC,CACD,IAAM,EAAgB,GAAsB,CAAI,EAC1C,EAAQ,OAAO,IAAkB,SAAW,GAChD,EAAc,UAAU,EAAG,KAAK,IAAI,EAAc,OAAQ,EAAE,CAAC,CAC/D,EAAI,EACJ,QAAW,KAAa,EACtB,GAAI,EAAM,QAAU,EAAU,YAAY,QAAU,EAAU,YAAY,MACxE,CAAC,EAAM,IAAU,IAAS,MAAQ,EAAM,KAAW,CACrD,EACE,OAAO,EAAU,UAGrB,OAUF,IAAI,GAAiB,SAGjB,GAAW,OAAS,SAAU,CAChC,IAAI,EACJ,IAAM,EAAU,EAAI,SAAS,EAC7B,GAAI,CACF,IAAM,EAAW,MAAM,MAAM,EAAS,CACpC,QAAS,EACP,CAAC,EACD,UAAU,KACV,GAA+B,CACjC,CACF,CAAC,EACD,GAAI,CAAC,EAAS,GACZ,MAAM,IAAI,GAAc,CACtB,IAAK,EACL,WAAY,EAAS,OACrB,WAAY,EAAS,UACvB,CAAC,EAEH,MAAO,CACL,KAAM,IAAI,WAAW,MAAM,EAAS,YAAY,CAAC,EACjD,WAAY,EAAO,EAAS,QAAQ,IAAI,cAAc,IAAM,KAAO,EAAY,MACjF,EACA,MAAO,EAAO,CACd,GAAI,GAAc,WAAW,CAAK,EAChC,MAAM,EAER,MAAM,IAAI,GAAc,CAAE,IAAK,EAAS,MAAO,CAAM,CAAC,IAKtD,GAAgC,CAAC,EAAY,KAAa,CAAC,IAAuB,QAAQ,IAC5F,EAAmB,IACjB,MAAO,IAAsB,EAAkB,sBAAwB,KAAO,EAAU,CAAiB,CAC3G,CACF,EAWA,SAAS,EAAY,CAAC,EAAS,CAC7B,GAAI,CACF,IAAO,EAAQ,GAAiB,EAAQ,MAAM,GAAG,EACjD,MAAO,CACL,UAAW,EAAO,MAAM,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,GAC3C,eACF,EACA,MAAO,EAAO,CACd,MAAO,CACL,UAAgB,OAChB,cAAoB,MACtB,GAKJ,IAAI,GAAoB,EAAE,MAAM,CAC9B,EAAE,OAAO,EACT,EAAE,WAAW,UAAU,EACvB,EAAE,WAAW,WAAW,EACxB,EAAE,OAEA,CAAC,IAAU,CACT,IAAI,EAAM,EACV,OAAQ,GAAM,EAAO,WAAW,SAAW,KAAY,OAAI,EAAK,SAAS,CAAK,IAAM,KAAO,EAAK,IAElG,CAAE,QAAS,kBAAmB,CAChC,CACF,CAAC,EACD,SAAS,EAAmC,CAAC,EAAS,CACpD,GAAI,aAAmB,WACrB,MAAO,CAAE,KAAM,EAAS,UAAgB,MAAE,EAE5C,GAAI,aAAmB,YACrB,MAAO,CAAE,KAAM,IAAI,WAAW,CAAO,EAAG,UAAgB,MAAE,EAE5D,GAAI,OAAO,IAAY,SACrB,GAAI,CACF,EAAU,IAAI,IAAI,CAAO,EACzB,MAAO,EAAO,EAGlB,GAAI,aAAmB,KAAO,EAAQ,WAAa,QAAS,CAC1D,IAAQ,UAAW,EAAkB,iBAAkB,GACrD,EAAQ,SAAS,CACnB,EACA,GAAI,GAAoB,MAAQ,GAAiB,KAC/C,MAAM,IAAI,EAAa,CACrB,KAAM,0BACN,QAAS,sCAAsC,EAAQ,SAAS,GAClE,CAAC,EAEH,MAAO,CAAE,KAAM,EAAe,UAAW,CAAiB,EAE5D,MAAO,CAAE,KAAM,EAAS,UAAgB,MAAE,EAE5C,SAAS,EAAgC,CAAC,EAAS,CACjD,GAAI,OAAO,IAAY,SACrB,OAAO,EAET,GAAI,aAAmB,YACrB,OAAO,GAA0B,IAAI,WAAW,CAAO,CAAC,EAE1D,OAAO,GAA0B,CAAO,EAE1C,SAAS,EAA8B,CAAC,EAAS,CAC/C,GAAI,aAAmB,WACrB,OAAO,EAET,GAAI,OAAO,IAAY,SACrB,GAAI,CACF,OAAO,GAA2B,CAAO,EACzC,MAAO,EAAO,CACd,MAAM,IAAI,GAAwB,CAChC,QAAS,sEACT,UACA,MAAO,CACT,CAAC,EAGL,GAAI,aAAmB,YACrB,OAAO,IAAI,WAAW,CAAO,EAE/B,MAAM,IAAI,GAAwB,CAAE,SAAQ,CAAC,EAI/C,eAAe,EAA4B,EACzC,SACA,gBACA,SAAU,EAAY,GAA8B,GACnD,CACD,IAAM,EAAmB,MAAM,GAC7B,EAAO,SACP,EACA,CACF,EACA,MAAO,CACL,GAAG,EAAO,QAAU,KAAO,CAAC,CAAE,KAAM,SAAU,QAAS,EAAO,MAAO,CAAC,EAAI,CAAC,EAC3E,GAAG,EAAO,SAAS,IACjB,CAAC,IAAY,GAA8B,CAAE,UAAS,kBAAiB,CAAC,CAC1E,CACF,EAEF,SAAS,EAA6B,EACpC,UACA,oBACC,CACD,IAAM,EAAO,EAAQ,KACrB,OAAQ,OACD,SACH,MAAO,CACL,KAAM,SACN,QAAS,EAAQ,QACjB,gBAAiB,EAAQ,eAC3B,MAEG,OAAQ,CACX,GAAI,OAAO,EAAQ,UAAY,SAC7B,MAAO,CACL,KAAM,OACN,QAAS,CAAC,CAAE,KAAM,OAAQ,KAAM,EAAQ,OAAQ,CAAC,EACjD,gBAAiB,EAAQ,eAC3B,EAEF,MAAO,CACL,KAAM,OACN,QAAS,EAAQ,QAAQ,IAAI,CAAC,IAAS,GAA+B,EAAM,CAAgB,CAAC,EAAE,OAAO,CAAC,IAAS,EAAK,OAAS,QAAU,EAAK,OAAS,EAAE,EACxJ,gBAAiB,EAAQ,eAC3B,CACF,KACK,YAAa,CAChB,GAAI,OAAO,EAAQ,UAAY,SAC7B,MAAO,CACL,KAAM,YACN,QAAS,CAAC,CAAE,KAAM,OAAQ,KAAM,EAAQ,OAAQ,CAAC,EACjD,gBAAiB,EAAQ,eAC3B,EAEF,MAAO,CACL,KAAM,YACN,QAAS,EAAQ,QAAQ,OAEvB,CAAC,IAAS,EAAK,OAAS,QAAU,EAAK,OAAS,IAAM,EAAK,iBAAmB,IAChF,EAAE,IAAI,CAAC,IAAS,CACd,IAAM,EAAkB,EAAK,gBAC7B,OAAQ,EAAK,UACN,OAAQ,CACX,IAAQ,OAAM,aAAc,GAC1B,EAAK,IACP,EACA,MAAO,CACL,KAAM,OACN,OACA,SAAU,EAAK,SACf,UAAW,GAAa,KAAO,EAAY,EAAK,UAChD,iBACF,CACF,KACK,YACH,MAAO,CACL,KAAM,YACN,KAAM,EAAK,KACX,iBACF,MAEG,OACH,MAAO,CACL,KAAM,OACN,KAAM,EAAK,KACX,iBACF,MAEG,YACH,MAAO,CACL,KAAM,YACN,WAAY,EAAK,WACjB,SAAU,EAAK,SACf,MAAO,EAAK,MACZ,iBAAkB,EAAK,iBACvB,iBACF,MAEG,cACH,MAAO,CACL,KAAM,cACN,WAAY,EAAK,WACjB,SAAU,EAAK,SACf,OAAQ,EAAK,OACb,iBACF,GAGL,EACD,gBAAiB,EAAQ,eAC3B,CACF,KACK,OACH,MAAO,CACL,KAAM,OACN,QAAS,EAAQ,QAAQ,IAAI,CAAC,KAAU,CACtC,KAAM,cACN,WAAY,EAAK,WACjB,SAAU,EAAK,SACf,OAAQ,EAAK,OACb,gBAAiB,EAAK,eACxB,EAAE,EACF,gBAAiB,EAAQ,eAC3B,UAIA,MAAM,IAAI,GAAwB,CAAE,KADX,CACkC,CAAC,GAIlE,eAAe,EAAc,CAAC,EAAU,EAAW,EAAe,CAChE,IAAM,EAAmB,EAAS,OAAO,CAAC,IAAY,EAAQ,OAAS,MAAM,EAAE,IAAI,CAAC,IAAY,EAAQ,OAAO,EAAE,OAC/G,CAAC,IAAY,MAAM,QAAQ,CAAO,CACpC,EAAE,KAAK,EAAE,OACP,CAAC,IAAS,EAAK,OAAS,SAAW,EAAK,OAAS,MACnD,EAAE,IAAI,CAAC,IAAS,CACd,IAAI,EACJ,IAAM,GAAa,EAAO,EAAK,YAAc,KAAO,EAAO,EAAK,OAAS,QAAU,UAAiB,OAChG,EAAO,EAAK,OAAS,QAAU,EAAK,MAAQ,EAAK,KACrD,GAAI,OAAO,IAAS,SAClB,GAAI,CACF,EAAO,IAAI,IAAI,CAAI,EACnB,MAAO,EAAS,EAGpB,MAAO,CAAE,YAAW,MAAK,EAC1B,EAAE,OACD,CAAC,IAAS,EAAK,gBAAgB,GACjC,EAAE,IAAI,CAAC,KAAU,CACf,IAAK,EAAK,KACV,sBAAuB,EAAK,WAAa,MAAQ,GAAe,CAC9D,IAAK,EAAK,KAAK,SAAS,EACxB,UAAW,EAAK,UAChB,eACF,CAAC,CACH,EAAE,EACI,EAAkB,MAAM,EAAU,CAAgB,EACxD,OAAO,OAAO,YACZ,EAAgB,IACd,CAAC,EAAM,IAAU,GAAQ,KAAO,KAAO,CACrC,EAAiB,GAAO,IAAI,SAAS,EACrC,CAAE,KAAM,EAAK,KAAM,UAAW,EAAK,SAAU,CAC/C,CACF,EAAE,OAAO,CAAC,IAAS,GAAQ,IAAI,CACjC,EAEF,SAAS,EAA8B,CAAC,EAAM,EAAkB,CAC9D,IAAI,EACJ,GAAI,EAAK,OAAS,OAChB,MAAO,CACL,KAAM,OACN,KAAM,EAAK,KACX,gBAAiB,EAAK,eACxB,EAEF,IAAI,EACE,EAAO,EAAK,KAClB,OAAQ,OACD,QACH,EAAe,EAAK,MACpB,UACG,OACH,EAAe,EAAK,KACpB,cAEA,MAAU,MAAM,0BAA0B,GAAM,EAEpD,IAAQ,KAAM,EAAe,UAAW,GAAuB,GAAoC,CAAY,EAC3G,EAAY,GAAsB,KAAO,EAAqB,EAAK,UACnE,EAAO,EACX,GAAI,aAAgB,IAAK,CACvB,IAAM,EAAiB,EAAiB,EAAK,SAAS,GACtD,GAAI,EACF,EAAO,EAAe,KACtB,GAAa,OAAmB,EAAY,EAAe,WAG/D,OAAQ,OACD,QAAS,CACZ,GAAI,aAAgB,YAAc,OAAO,IAAS,SAChD,GAAa,EAAO,GAAgB,CAAE,OAAM,WAAY,EAAyB,CAAC,IAAM,KAAO,EAAO,EAExG,MAAO,CACL,KAAM,OACN,UAAW,GAAa,KAAO,EAAY,UAE3C,SAAe,OACf,OACA,gBAAiB,EAAK,eACxB,CACF,KACK,OAAQ,CACX,GAAI,GAAa,KACf,MAAU,MAAM,qCAAqC,EAEvD,MAAO,CACL,KAAM,OACN,YACA,SAAU,EAAK,SACf,OACA,gBAAiB,EAAK,eACxB,CACF,GAKJ,SAAS,EAAmB,EAC1B,kBACA,cACA,OACA,OACA,kBACA,mBACA,OACA,iBACC,CACD,GAAI,GAAmB,KAAM,CAC3B,GAAI,CAAC,OAAO,UAAU,CAAe,EACnC,MAAM,IAAI,EAAqB,CAC7B,UAAW,kBACX,MAAO,EACP,QAAS,oCACX,CAAC,EAEH,GAAI,EAAkB,EACpB,MAAM,IAAI,EAAqB,CAC7B,UAAW,kBACX,MAAO,EACP,QAAS,8BACX,CAAC,EAGL,GAAI,GAAe,MACjB,GAAI,OAAO,IAAgB,SACzB,MAAM,IAAI,EAAqB,CAC7B,UAAW,cACX,MAAO,EACP,QAAS,8BACX,CAAC,EAGL,GAAI,GAAQ,MACV,GAAI,OAAO,IAAS,SAClB,MAAM,IAAI,EAAqB,CAC7B,UAAW,OACX,MAAO,EACP,QAAS,uBACX,CAAC,EAGL,GAAI,GAAQ,MACV,GAAI,OAAO,IAAS,SAClB,MAAM,IAAI,EAAqB,CAC7B,UAAW,OACX,MAAO,EACP,QAAS,uBACX,CAAC,EAGL,GAAI,GAAmB,MACrB,GAAI,OAAO,IAAoB,SAC7B,MAAM,IAAI,EAAqB,CAC7B,UAAW,kBACX,MAAO,EACP,QAAS,kCACX,CAAC,EAGL,GAAI,GAAoB,MACtB,GAAI,OAAO,IAAqB,SAC9B,MAAM,IAAI,EAAqB,CAC7B,UAAW,mBACX,MAAO,EACP,QAAS,mCACX,CAAC,EAGL,GAAI,GAAQ,MACV,GAAI,CAAC,OAAO,UAAU,CAAI,EACxB,MAAM,IAAI,EAAqB,CAC7B,UAAW,OACX,MAAO,EACP,QAAS,yBACX,CAAC,EAGL,MAAO,CACL,kBACA,cACA,OACA,OACA,kBACA,mBACA,gBACA,MACF,EAOF,SAAS,EAAgB,CAAC,EAAS,CACjC,OAAO,GAAW,MAAQ,OAAO,KAAK,CAAO,EAAE,OAAS,EAI1D,SAAS,EAAyB,EAChC,QACA,aACA,eACC,CACD,GAAI,CAAC,GAAiB,CAAK,EACzB,MAAO,CACL,MAAY,OACZ,WAAiB,MACnB,EAKF,MAAO,CACL,OAJoB,GAAe,KAAO,OAAO,QAAQ,CAAK,EAAE,OAChE,EAAE,KAAY,EAAY,SAAS,CAAM,CAC3C,EAAI,OAAO,QAAQ,CAAK,GAED,IAAI,EAAE,EAAQ,KAAW,CAC5C,IAAM,EAAW,EAAM,KACvB,OAAQ,OACI,YACL,cACA,WACH,MAAO,CACL,KAAM,WACN,KAAM,EACN,YAAa,EAAM,YACnB,YAAa,GAAS,EAAM,WAAW,EAAE,WACzC,gBAAiB,EAAM,eACzB,MACG,mBACH,MAAO,CACL,KAAM,mBACN,KAAM,EACN,GAAI,EAAM,GACV,KAAM,EAAM,IACd,UAGA,MAAU,MAAM,0BADQ,GACmC,GAGhE,EACD,WAAY,GAAc,KAAO,CAAE,KAAM,MAAO,EAAI,OAAO,IAAe,SAAW,CAAE,KAAM,CAAW,EAAI,CAAE,KAAM,OAAQ,SAAU,EAAW,QAAS,CAC5J,EAgBF,IAAI,GAAkB,EAAG,KACvB,IAAM,EAAG,MAAM,CACb,EAAG,KAAK,EACR,EAAG,OAAO,EACV,EAAG,OAAO,EACV,EAAG,QAAQ,EACX,EAAG,OAAO,EAAG,OAAO,EAAG,EAAe,EACtC,EAAG,MAAM,EAAe,CAC1B,CAAC,CACH,EAGI,EAAyB,EAAG,OAC9B,EAAG,OAAO,EACV,EAAG,OAAO,EAAG,OAAO,EAAG,EAAe,CACxC,EAII,GAAiB,EAAG,OAAO,CAC7B,KAAM,EAAG,QAAQ,MAAM,EACvB,KAAM,EAAG,OAAO,EAChB,gBAAiB,EAAuB,SAAS,CACnD,CAAC,EACG,GAAkB,EAAG,OAAO,CAC9B,KAAM,EAAG,QAAQ,OAAO,EACxB,MAAO,EAAG,MAAM,CAAC,GAAmB,EAAG,WAAW,GAAG,CAAC,CAAC,EACvD,UAAW,EAAG,OAAO,EAAE,SAAS,EAChC,gBAAiB,EAAuB,SAAS,CACnD,CAAC,EACG,GAAiB,EAAG,OAAO,CAC7B,KAAM,EAAG,QAAQ,MAAM,EACvB,KAAM,EAAG,MAAM,CAAC,GAAmB,EAAG,WAAW,GAAG,CAAC,CAAC,EACtD,SAAU,EAAG,OAAO,EAAE,SAAS,EAC/B,UAAW,EAAG,OAAO,EACrB,gBAAiB,EAAuB,SAAS,CACnD,CAAC,EACG,GAAsB,EAAG,OAAO,CAClC,KAAM,EAAG,QAAQ,WAAW,EAC5B,KAAM,EAAG,OAAO,EAChB,gBAAiB,EAAuB,SAAS,CACnD,CAAC,EACG,GAAqB,EAAG,OAAO,CACjC,KAAM,EAAG,QAAQ,WAAW,EAC5B,WAAY,EAAG,OAAO,EACtB,SAAU,EAAG,OAAO,EACpB,MAAO,EAAG,QAAQ,EAClB,gBAAiB,EAAuB,SAAS,EACjD,iBAAkB,EAAG,QAAQ,EAAE,SAAS,CAC1C,CAAC,EACG,GAAe,EAAG,mBAAmB,OAAQ,CAC/C,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,MAAM,EACvB,MAAO,EAAG,OAAO,CACnB,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,MAAM,EACvB,MAAO,EACT,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,YAAY,EAC7B,MAAO,EAAG,OAAO,CACnB,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,YAAY,EAC7B,MAAO,EACT,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,SAAS,EAC1B,MAAO,EAAG,MACR,EAAG,MAAM,CACP,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,MAAM,EACvB,KAAM,EAAG,OAAO,CAClB,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,OAAO,EACxB,KAAM,EAAG,OAAO,EAChB,UAAW,EAAG,OAAO,CACvB,CAAC,CACH,CAAC,CACH,CACF,CAAC,CACH,CAAC,EACG,GAAuB,EAAG,OAAO,CACnC,KAAM,EAAG,QAAQ,aAAa,EAC9B,WAAY,EAAG,OAAO,EACtB,SAAU,EAAG,OAAO,EACpB,OAAQ,GACR,gBAAiB,EAAuB,SAAS,CACnD,CAAC,EAGG,GAA2B,EAAG,OAChC,CACE,KAAM,EAAG,QAAQ,QAAQ,EACzB,QAAS,EAAG,OAAO,EACnB,gBAAiB,EAAuB,SAAS,CACnD,CACF,EACI,GAA0B,GAC1B,GAAyB,EAAG,OAAO,CACrC,KAAM,EAAG,QAAQ,MAAM,EACvB,QAAS,EAAG,MAAM,CAChB,EAAG,OAAO,EACV,EAAG,MAAM,EAAG,MAAM,CAAC,GAAgB,GAAiB,EAAc,CAAC,CAAC,CACtE,CAAC,EACD,gBAAiB,EAAuB,SAAS,CACnD,CAAC,EACG,GAAwB,GACxB,GAA8B,EAAG,OAAO,CAC1C,KAAM,EAAG,QAAQ,WAAW,EAC5B,QAAS,EAAG,MAAM,CAChB,EAAG,OAAO,EACV,EAAG,MACD,EAAG,MAAM,CACP,GACA,GACA,GACA,GACA,EACF,CAAC,CACH,CACF,CAAC,EACD,gBAAiB,EAAuB,SAAS,CACnD,CAAC,EACG,GAA6B,GAC7B,GAAyB,EAAG,OAAO,CACrC,KAAM,EAAG,QAAQ,MAAM,EACvB,QAAS,EAAG,MAAM,EAAoB,EACtC,gBAAiB,EAAuB,SAAS,CACnD,CAAC,EACG,GAAwB,GACxB,GAAqB,EAAG,MAAM,CAChC,GACA,GACA,GACA,EACF,CAAC,EACG,GAAoB,GAGxB,eAAe,EAAiB,CAAC,EAAQ,CACvC,GAAI,EAAO,QAAU,MAAQ,EAAO,UAAY,KAC9C,MAAM,IAAI,GAAoB,CAC5B,SACA,QAAS,oCACX,CAAC,EAEH,GAAI,EAAO,QAAU,MAAQ,EAAO,UAAY,KAC9C,MAAM,IAAI,GAAoB,CAC5B,SACA,QAAS,wDACX,CAAC,EAEH,GAAI,EAAO,QAAU,MAAQ,OAAO,EAAO,SAAW,SACpD,MAAM,IAAI,GAAoB,CAC5B,SACA,QAAS,yBACX,CAAC,EAEH,IAAI,EACJ,GAAI,EAAO,QAAU,MAAQ,OAAO,EAAO,SAAW,SACpD,EAAW,CAAC,CAAE,KAAM,OAAQ,QAAS,EAAO,MAAO,CAAC,EAC/C,QAAI,EAAO,QAAU,MAAQ,MAAM,QAAQ,EAAO,MAAM,EAC7D,EAAW,EAAO,OACb,QAAI,EAAO,UAAY,KAC5B,EAAW,EAAO,SAElB,WAAM,IAAI,GAAoB,CAC5B,SACA,QAAS,oCACX,CAAC,EAEH,GAAI,EAAS,SAAW,EACtB,MAAM,IAAI,GAAoB,CAC5B,SACA,QAAS,4BACX,CAAC,EAEH,IAAM,EAAmB,MAAM,GAAkB,CAC/C,MAAO,EACP,OAAQ,EAAG,MAAM,EAAkB,CACrC,CAAC,EACD,GAAI,CAAC,EAAiB,QACpB,MAAM,IAAI,GAAoB,CAC5B,SACA,QAAS,+HACT,MAAO,EAAiB,KAC1B,CAAC,EAEH,MAAO,CACL,WACA,OAAQ,EAAO,MACjB,EASF,SAAS,EAAgB,CAAC,EAAO,CAC/B,GAAI,GAA2B,WAAW,CAAK,GAAK,GAA0B,WAAW,CAAK,EAC5F,OAAO,IAAI,EAAa,CACtB,KAAM,eACN,QAAS,0KACT,MAAO,CACT,CAAC,EAEH,OAAO,EAIT,SAAS,EAAqB,EAC5B,cACA,aACC,CACD,MAAO,CAEL,iBAAkB,GAAG,KAAe,GAAa,KAAY,OAAI,EAAU,aAAe,KAAO,IAAI,EAAU,aAAe,KAC9H,gBAAiB,GAAa,KAAY,OAAI,EAAU,WAExD,iBAAkB,EAClB,0BAA2B,GAAa,KAAY,OAAI,EAAU,UACpE,EAIF,SAAS,EAA0B,EACjC,QACA,WACA,YACA,WACC,CACD,IAAI,EACJ,MAAO,CACL,oBAAqB,EAAM,SAC3B,cAAe,EAAM,WAElB,OAAO,QAAQ,CAAQ,EAAE,OAAO,CAAC,GAAa,EAAK,KAAW,CAE/D,OADA,EAAW,eAAe,KAAS,EAC5B,GACN,CAAC,CAAC,KAEF,OAAO,SAAS,EAAO,GAAa,KAAY,OAAI,EAAU,WAAa,KAAO,EAAO,CAAC,CAAC,EAAE,OAC9F,CAAC,GAAa,EAAK,KAAW,CAE5B,OADA,EAAW,yBAAyB,KAAS,EACtC,GAET,CAAC,CACH,KAEG,OAAO,QAAQ,GAAW,KAAO,EAAU,CAAC,CAAC,EAAE,OAAO,CAAC,GAAa,EAAK,KAAW,CACrF,GAAI,IAAe,OACjB,EAAW,sBAAsB,KAAS,EAE5C,OAAO,GACN,CAAC,CAAC,CACP,EAOF,IAAI,GAAa,CACf,SAAS,EAAG,CACV,OAAO,IAET,eAAe,CAAC,EAAQ,EAAM,EAAM,EAAM,CACxC,GAAI,OAAO,IAAS,WAClB,OAAO,EAAK,EAAQ,EAEtB,GAAI,OAAO,IAAS,WAClB,OAAO,EAAK,EAAQ,EAEtB,GAAI,OAAO,IAAS,WAClB,OAAO,EAAK,EAAQ,EAG1B,EACI,GAAW,CACb,WAAW,EAAG,CACZ,OAAO,IAET,YAAY,EAAG,CACb,OAAO,MAET,aAAa,EAAG,CACd,OAAO,MAET,QAAQ,EAAG,CACT,OAAO,MAET,OAAO,EAAG,CACR,OAAO,MAET,QAAQ,EAAG,CACT,OAAO,MAET,SAAS,EAAG,CACV,OAAO,MAET,UAAU,EAAG,CACX,OAAO,MAET,GAAG,EAAG,CACJ,OAAO,MAET,WAAW,EAAG,CACZ,MAAO,IAET,eAAe,EAAG,CAChB,OAAO,KAEX,EACI,GAAkB,CACpB,QAAS,GACT,OAAQ,GACR,WAAY,CACd,EAGA,SAAS,EAAS,EAChB,YAAY,GACZ,UACE,CAAC,EAAG,CACN,GAAI,CAAC,EACH,OAAO,GAET,GAAI,EACF,OAAO,EAET,OAAO,SAAM,UAAU,IAAI,EAK7B,SAAS,EAAU,EACjB,KAAM,EACN,SACA,aACA,KACA,cAAc,IACb,CACD,OAAO,EAAO,gBAAgB,EAAQ,CAAE,YAAW,EAAG,MAAO,IAAS,CACpE,GAAI,CACF,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,GAAI,EACF,EAAK,IAAI,EAEX,OAAO,EACP,MAAO,EAAO,CACd,GAAI,CACF,GAAkB,EAAM,CAAK,SAC7B,CACA,EAAK,IAAI,EAEX,MAAM,GAET,EAEH,SAAS,EAAiB,CAAC,EAAM,EAAO,CACtC,GAAI,aAAiB,MACnB,EAAK,gBAAgB,CACnB,KAAM,EAAM,KACZ,QAAS,EAAM,QACf,MAAO,EAAM,KACf,CAAC,EACD,EAAK,UAAU,CACb,KAAM,kBAAe,MACrB,QAAS,EAAM,OACjB,CAAC,EAED,OAAK,UAAU,CAAE,KAAM,kBAAe,KAAM,CAAC,EAKjD,SAAS,CAAyB,EAChC,YACA,cACC,CACD,IAAK,GAAa,KAAY,OAAI,EAAU,aAAe,GACzD,MAAO,CAAC,EAEV,OAAO,OAAO,QAAQ,CAAU,EAAE,OAAO,CAAC,GAAc,EAAK,KAAW,CACtE,GAAI,GAAS,KACX,OAAO,EAET,GAAI,OAAO,IAAU,UAAY,UAAW,GAAS,OAAO,EAAM,QAAU,WAAY,CACtF,IAAK,GAAa,KAAY,OAAI,EAAU,gBAAkB,GAC5D,OAAO,EAET,IAAM,EAAS,EAAM,MAAM,EAC3B,OAAO,GAAU,KAAO,EAAc,IAAK,GAAc,GAAM,CAAO,EAExE,GAAI,OAAO,IAAU,UAAY,WAAY,GAAS,OAAO,EAAM,SAAW,WAAY,CACxF,IAAK,GAAa,KAAY,OAAI,EAAU,iBAAmB,GAC7D,OAAO,EAET,IAAM,EAAS,EAAM,OAAO,EAC5B,OAAO,GAAU,KAAO,EAAc,IAAK,GAAc,GAAM,CAAO,EAExE,MAAO,IAAK,GAAc,GAAM,CAAM,GACrC,CAAC,CAAC,EAIP,SAAS,EAAqB,CAAC,EAAQ,CACrC,OAAO,KAAK,UACV,EAAO,IAAI,CAAC,KAAa,IACpB,EACH,QAAS,OAAO,EAAQ,UAAY,SAAW,EAAQ,QAAU,EAAQ,QAAQ,IAC/E,CAAC,IAAS,EAAK,OAAS,OAAS,IAC5B,EACH,KAAM,EAAK,gBAAgB,WAAa,GAAiC,EAAK,IAAI,EAAI,EAAK,IAC7F,EAAI,CACN,CACF,EAAE,CACJ,EAIF,SAAS,EAAqB,CAAC,EAAQ,EAAQ,CAC7C,MAAO,CACL,YAAa,GAAe,EAAO,YAAa,EAAO,WAAW,EAClE,aAAc,GAAe,EAAO,aAAc,EAAO,YAAY,EACrE,YAAa,GAAe,EAAO,YAAa,EAAO,WAAW,EAClE,gBAAiB,GACf,EAAO,gBACP,EAAO,eACT,EACA,kBAAmB,GACjB,EAAO,kBACP,EAAO,iBACT,CACF,EAEF,SAAS,EAAc,CAAC,EAAa,EAAa,CAChD,OAAO,GAAe,MAAQ,GAAe,KAAY,QAAK,GAAe,KAAO,EAAc,IAAM,GAAe,KAAO,EAAc,GAI9I,SAAS,EAAO,CAAC,EAAO,CACtB,OAAO,IAAe,OAAI,CAAC,EAAI,MAAM,QAAQ,CAAK,EAAI,EAAQ,CAAC,CAAK,EAMtE,SAAS,EAAiB,EACxB,QACA,2BACC,CACD,IAAM,EAAU,EAAM,gBACtB,GAAI,CAAC,EACH,OAAO,EACT,IAAI,EACE,EAAe,EAAQ,kBAC7B,GAAI,EAAc,CAChB,IAAM,EAAY,WAAW,CAAY,EACzC,GAAI,CAAC,OAAO,MAAM,CAAS,EACzB,EAAK,EAGT,IAAM,EAAa,EAAQ,eAC3B,GAAI,GAAc,IAAY,OAAG,CAC/B,IAAM,EAAiB,WAAW,CAAU,EAC5C,GAAI,CAAC,OAAO,MAAM,CAAc,EAC9B,EAAK,EAAiB,KAEtB,OAAK,KAAK,MAAM,CAAU,EAAI,KAAK,IAAI,EAG3C,GAAI,GAAM,MAAQ,CAAC,OAAO,MAAM,CAAE,GAAK,GAAK,IAAO,EAAK,OAAY,EAAK,GACvE,OAAO,EAET,OAAO,EAET,IAAI,GAAoD,EACtD,aAAa,EACb,mBAAmB,KACnB,gBAAgB,EAChB,eACE,CAAC,IAAM,MAAO,IAAM,GAA6B,EAAG,CACtD,aACA,UAAW,EACX,gBACA,aACF,CAAC,EACD,eAAe,EAA4B,CAAC,GAC1C,aACA,YACA,gBACA,eACC,EAAS,CAAC,EAAG,CACd,GAAI,CACF,OAAO,MAAM,EAAE,EACf,MAAO,EAAO,CACd,GAAI,GAAa,CAAK,EACpB,MAAM,EAER,GAAI,IAAe,EACjB,MAAM,EAER,IAAM,EAAe,GAAiB,CAAK,EACrC,EAAY,CAAC,GAAG,EAAQ,CAAK,EAC7B,EAAY,EAAU,OAC5B,GAAI,EAAY,EACd,MAAM,IAAI,GAAW,CACnB,QAAS,gBAAgB,2BAAmC,IAC5D,OAAQ,qBACR,OAAQ,CACV,CAAC,EAEH,GAAI,aAAiB,OAAS,GAAc,WAAW,CAAK,GAAK,EAAM,cAAgB,IAAQ,GAAa,EAQ1G,OAPA,MAAM,GACJ,GAAkB,CAChB,QACA,wBAAyB,CAC3B,CAAC,EACD,CAAE,aAAY,CAChB,EACO,GACL,EACA,CACE,aACA,UAAW,EAAgB,EAC3B,gBACA,aACF,EACA,CACF,EAEF,GAAI,IAAc,EAChB,MAAM,EAER,MAAM,IAAI,GAAW,CACnB,QAAS,gBAAgB,yCAAiD,KAC1E,OAAQ,oBACR,OAAQ,CACV,CAAC,GAKL,SAAS,EAAc,EACrB,aACA,eACC,CACD,GAAI,GAAc,KAAM,CACtB,GAAI,CAAC,OAAO,UAAU,CAAU,EAC9B,MAAM,IAAI,EAAqB,CAC7B,UAAW,aACX,MAAO,EACP,QAAS,+BACX,CAAC,EAEH,GAAI,EAAa,EACf,MAAM,IAAI,EAAqB,CAC7B,UAAW,aACX,MAAO,EACP,QAAS,yBACX,CAAC,EAGL,IAAM,EAAmB,GAAc,KAAO,EAAa,EAC3D,MAAO,CACL,WAAY,EACZ,MAAO,GAAkD,CACvD,WAAY,EACZ,aACF,CAAC,CACH,EAIF,SAAS,EAAkB,CAAC,EAAS,CACnC,IAAM,EAAQ,EAAQ,OACpB,CAAC,IAAa,EAAS,OAAS,MAClC,EACA,GAAI,EAAM,SAAW,EACnB,OAEF,OAAO,EAAM,IAAI,CAAC,IAAa,EAAS,IAAI,EAAE,KAAK,EAAE,EAQvD,IAAI,GAAuB,KAAM,CAC/B,WAAW,EACT,OACA,aACC,CACD,IAAM,EAAe,aAAgB,WACrC,KAAK,WAAa,EAAoB,OAAI,EAC1C,KAAK,eAAiB,EAAe,EAAY,OACjD,KAAK,UAAY,KAGf,OAAM,EAAG,CACX,GAAI,KAAK,YAAc,KACrB,KAAK,WAAa,GAA2B,KAAK,cAAc,EAElE,OAAO,KAAK,cAGV,WAAU,EAAG,CACf,GAAI,KAAK,gBAAkB,KACzB,KAAK,eAAiB,GAA2B,KAAK,UAAU,EAElE,OAAO,KAAK,eAEhB,EACI,GAA+B,cAAc,EAAqB,CACpE,WAAW,CAAC,EAAS,CACnB,MAAM,CAAO,EACb,KAAK,KAAO,OAEhB,EAQA,eAAe,EAAa,EAC1B,WACA,QACA,iBACA,SACA,YACC,CACD,GAAI,CACF,GAAI,GAAS,KACX,MAAM,IAAI,GAAgB,CAAE,SAAU,EAAS,QAAS,CAAC,EAE3D,GAAI,CACF,OAAO,MAAM,GAAgB,CAAE,WAAU,OAAM,CAAC,EAChD,MAAO,EAAO,CACd,GAAI,GAAkB,MAAQ,EAAE,GAAgB,WAAW,CAAK,GAAK,GAAsB,WAAW,CAAK,GACzG,MAAM,EAER,IAAI,EAAmB,KACvB,GAAI,CACF,EAAmB,MAAM,EAAe,CACtC,WACA,QACA,YAAa,EAAG,cAAe,CAC7B,IAAQ,eAAgB,EAAM,GAC9B,OAAO,GAAU,CAAW,EAAE,YAEhC,SACA,WACA,OACF,CAAC,EACD,MAAO,EAAa,CACpB,MAAM,IAAI,GAAoB,CAC5B,MAAO,EACP,cAAe,CACjB,CAAC,EAEH,GAAI,GAAoB,KACtB,MAAM,EAER,OAAO,MAAM,GAAgB,CAAE,SAAU,EAAkB,OAAM,CAAC,GAEpE,MAAO,EAAO,CACd,IAAM,EAAc,MAAM,GAAc,CAAE,KAAM,EAAS,KAAM,CAAC,EAC1D,EAAQ,EAAY,QAAU,EAAY,MAAQ,EAAS,MACjE,MAAO,CACL,KAAM,YACN,WAAY,EAAS,WACrB,SAAU,EAAS,SACnB,QACA,QAAS,GACT,QAAS,GACT,OACF,GAGJ,eAAe,EAAe,EAC5B,WACA,SACC,CACD,IAAM,EAAW,EAAS,SACpB,EAAQ,EAAM,GACpB,GAAI,GAAS,KACX,MAAM,IAAI,GAAgB,CACxB,SAAU,EAAS,SACnB,eAAgB,OAAO,KAAK,CAAK,CACnC,CAAC,EAEH,IAAM,EAAS,GAAU,EAAM,WAAW,EACpC,EAAc,EAAS,MAAM,KAAK,IAAM,GAAK,MAAM,GAAmB,CAAE,MAAO,CAAC,EAAG,QAAO,CAAC,EAAI,MAAM,GAAc,CAAE,KAAM,EAAS,MAAO,QAAO,CAAC,EACzJ,GAAI,EAAY,UAAY,GAC1B,MAAM,IAAI,GAAsB,CAC9B,WACA,UAAW,EAAS,MACpB,MAAO,EAAY,KACrB,CAAC,EAEH,OAAO,EAAM,OAAS,UAAY,CAChC,KAAM,YACN,WAAY,EAAS,WACrB,SAAU,EAAS,SACnB,MAAO,EAAY,MACnB,iBAAkB,EAAS,iBAC3B,iBAAkB,EAAS,iBAC3B,QAAS,EACX,EAAI,CACF,KAAM,YACN,WAAY,EAAS,WACrB,WACA,MAAO,EAAY,MACnB,iBAAkB,EAAS,iBAC3B,iBAAkB,EAAS,gBAC7B,EAIF,IAAI,GAAoB,KAAM,CAC5B,WAAW,EACT,UACA,eACA,QACA,WACA,UACA,WACA,oBACC,CACD,KAAK,QAAU,EACf,KAAK,aAAe,EACpB,KAAK,MAAQ,EACb,KAAK,SAAW,EAChB,KAAK,QAAU,EACf,KAAK,SAAW,EAChB,KAAK,iBAAmB,KAEtB,KAAI,EAAG,CACT,OAAO,KAAK,QAAQ,OAAO,CAAC,IAAS,EAAK,OAAS,MAAM,EAAE,IAAI,CAAC,IAAS,EAAK,IAAI,EAAE,KAAK,EAAE,KAEzF,UAAS,EAAG,CACd,OAAO,KAAK,QAAQ,OAAO,CAAC,IAAS,EAAK,OAAS,WAAW,KAE5D,cAAa,EAAG,CAClB,OAAO,KAAK,UAAU,SAAW,EAAS,OAAI,KAAK,UAAU,IAAI,CAAC,IAAS,EAAK,IAAI,EAAE,KAAK,EAAE,KAE3F,MAAK,EAAG,CACV,OAAO,KAAK,QAAQ,OAAO,CAAC,IAAS,EAAK,OAAS,MAAM,EAAE,IAAI,CAAC,IAAS,EAAK,IAAI,KAEhF,QAAO,EAAG,CACZ,OAAO,KAAK,QAAQ,OAAO,CAAC,IAAS,EAAK,OAAS,QAAQ,KAEzD,UAAS,EAAG,CACd,OAAO,KAAK,QAAQ,OAAO,CAAC,IAAS,EAAK,OAAS,WAAW,KAE5D,gBAAe,EAAG,CACpB,OAAO,KAAK,UAAU,OACpB,CAAC,IAAa,EAAS,UAAY,EACrC,KAEE,iBAAgB,EAAG,CACrB,OAAO,KAAK,UAAU,OACpB,CAAC,IAAa,EAAS,UAAY,EACrC,KAEE,YAAW,EAAG,CAChB,OAAO,KAAK,QAAQ,OAAO,CAAC,IAAS,EAAK,OAAS,aAAa,KAE9D,kBAAiB,EAAG,CACtB,OAAO,KAAK,YAAY,OACtB,CAAC,IAAe,EAAW,UAAY,EACzC,KAEE,mBAAkB,EAAG,CACvB,OAAO,KAAK,YAAY,OACtB,CAAC,IAAe,EAAW,UAAY,EACzC,EAEJ,EAGA,SAAS,EAAW,CAAC,EAAW,CAC9B,MAAO,EAAG,WAAY,EAAM,SAAW,EAEzC,SAAS,EAAW,CAAC,EAAU,CAC7B,MAAO,EAAG,WAAY,CACpB,IAAI,EAAM,EAAI,EACd,OAAQ,GAAM,GAAM,EAAO,EAAM,EAAM,OAAS,KAAO,KAAY,OAAI,EAAK,YAAc,KAAY,OAAI,EAAG,KAC3G,CAAC,IAAa,EAAS,WAAa,CACtC,IAAM,KAAO,EAAK,IAGtB,eAAe,EAAkB,EAC/B,iBACA,SACC,CACD,OAAQ,MAAM,QAAQ,IAAI,EAAe,IAAI,CAAC,IAAc,EAAU,CAAE,OAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAW,CAAM,EAO7G,SAAS,EAAqB,EAC5B,SACA,KAAM,EACN,aACC,CACD,GAAI,IAAc,OAChB,MAAO,CAAE,KAAM,aAAc,MAAO,GAAiB,CAAM,CAAE,EACxD,QAAI,IAAc,OACvB,MAAO,CAAE,KAAM,aAAc,MAAO,GAAY,CAAM,CAAE,EAE1D,GAAI,GAAS,KAAY,OAAI,EAAM,cACjC,OAAO,EAAM,cAAc,CAAM,EAEnC,OAAO,OAAO,IAAW,SAAW,CAAE,KAAM,OAAQ,MAAO,CAAO,EAAI,CAAE,KAAM,OAAQ,MAAO,GAAY,CAAM,CAAE,EAEnH,SAAS,EAAW,CAAC,EAAO,CAC1B,OAAO,IAAe,OAAI,KAAO,EAInC,SAAS,EAAkB,EACzB,QAAS,EACT,SACC,CACD,IAAM,EAAmB,CAAC,EACpB,EAAU,EAAa,OAAO,CAAC,IAAS,EAAK,OAAS,QAAQ,EAAE,OACpE,CAAC,KAAU,EAAK,OAAS,eAAiB,EAAK,oBAAsB,EAAK,OAAS,cAAgB,EAAK,iBAC1G,EAAE,OAAO,CAAC,IAAS,EAAK,OAAS,QAAU,EAAK,KAAK,OAAS,CAAC,EAAE,IAAI,CAAC,IAAS,CAC7E,OAAQ,EAAK,UACN,OACH,MAAO,CACL,KAAM,OACN,KAAM,EAAK,KACX,gBAAiB,EAAK,gBACxB,MACG,YACH,MAAO,CACL,KAAM,YACN,KAAM,EAAK,KACX,gBAAiB,EAAK,gBACxB,MACG,OACH,MAAO,CACL,KAAM,OACN,KAAM,EAAK,KAAK,OAChB,UAAW,EAAK,KAAK,UACrB,gBAAiB,EAAK,gBACxB,MACG,YACH,MAAO,CACL,KAAM,YACN,WAAY,EAAK,WACjB,SAAU,EAAK,SACf,MAAO,EAAK,MACZ,iBAAkB,EAAK,iBACvB,gBAAiB,EAAK,gBACxB,MACG,cACH,MAAO,CACL,KAAM,cACN,WAAY,EAAK,WACjB,SAAU,EAAK,SACf,OAAQ,GAAsB,CAC5B,KAAM,GAAS,KAAY,OAAI,EAAM,EAAK,UAC1C,OAAQ,EAAK,OACb,UAAW,MACb,CAAC,EACD,iBAAkB,GAClB,gBAAiB,EAAK,gBACxB,MACG,aACH,MAAO,CACL,KAAM,cACN,WAAY,EAAK,WACjB,SAAU,EAAK,SACf,OAAQ,GAAsB,CAC5B,KAAM,GAAS,KAAY,OAAI,EAAM,EAAK,UAC1C,OAAQ,EAAK,MACb,UAAW,MACb,CAAC,EACD,gBAAiB,EAAK,gBACxB,GAEL,EACD,GAAI,EAAQ,OAAS,EACnB,EAAiB,KAAK,CACpB,KAAM,YACN,SACF,CAAC,EAEH,IAAM,EAAoB,EAAa,OAAO,CAAC,IAAS,EAAK,OAAS,eAAiB,EAAK,OAAS,YAAY,EAAE,OAAO,CAAC,IAAS,CAAC,EAAK,gBAAgB,EAAE,IAAI,CAAC,KAAgB,CAC/K,KAAM,cACN,WAAY,EAAW,WACvB,SAAU,EAAW,SACrB,OAAQ,GAAsB,CAC5B,KAAM,GAAS,KAAY,OAAI,EAAM,EAAW,UAChD,OAAQ,EAAW,OAAS,cAAgB,EAAW,OAAS,EAAW,MAC3E,UAAW,EAAW,OAAS,aAAe,OAAS,MACzD,CAAC,CACH,EAAE,EACF,GAAI,EAAkB,OAAS,EAC7B,EAAiB,KAAK,CACpB,KAAM,OACN,QAAS,CACX,CAAC,EAEH,OAAO,EAIT,IAAI,GAAqB,GAAkB,CACzC,OAAQ,QACR,KAAM,EACR,CAAC,EACD,eAAe,EAAY,EACzB,MAAO,EACP,QACA,aACA,SACA,SACA,WACA,WAAY,EACZ,cACA,UACA,WAAW,GAAY,CAAC,EACxB,oBAAqB,EACrB,uBAAwB,EACxB,kBACA,2BACA,cAAc,EACd,2BACA,cAAc,EACd,4BAA6B,EAC7B,sBAAuB,EACvB,uBACA,WACE,WAAY,EAAc,GAC1B,cAAc,IAAsB,IAAI,MACtC,CAAC,EACL,kBACG,GACF,CACD,IAAM,EAAQ,GAAqB,CAAQ,EACrC,EAAiB,GAAQ,CAAQ,GAC/B,aAAY,SAAU,GAAe,CAC3C,WAAY,EACZ,aACF,CAAC,EACK,EAAe,GAAoB,CAAQ,EAC3C,EAAuB,EAC3B,GAAW,KAAO,EAAU,CAAC,EAC7B,MAAM,IACR,EACM,EAA0B,GAA2B,CACzD,QACA,YACA,QAAS,EACT,SAAU,IAAK,EAAc,YAAW,CAC1C,CAAC,EACK,GAAgB,MAAM,GAAkB,CAC5C,SACA,SACA,UACF,CAAC,EACK,EAAS,GAAU,CAAS,EAClC,GAAI,CACF,OAAO,MAAM,GAAW,CACtB,KAAM,kBACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,kBACb,WACF,CAAC,KACE,EAEH,oBAAqB,EAAM,SAC3B,cAAe,EAAM,QAErB,YAAa,CACX,MAAO,IAAM,KAAK,UAAU,CAAE,SAAQ,SAAQ,UAAS,CAAC,CAC1D,CACF,CACF,CAAC,EACD,SACA,GAAI,MAAO,KAAS,CAClB,IAAI,GAAM,GAAI,EAAI,GAAI,GAAI,GAAI,EAC9B,IAAM,GAAgB,GAAoB,CAAQ,EAC9C,EACA,GAAkB,CAAC,EACnB,GAAoB,CAAC,EACnB,GAAmB,CAAC,EACpB,EAAQ,CAAC,EACf,EAAG,CACD,IAAM,EAAoB,CACxB,GAAG,GAAc,SACjB,GAAG,EACL,EACM,EAAoB,MAAO,GAAe,KAAY,OAAI,EAAY,CAC1E,QACA,QACA,WAAY,EAAM,OAClB,SAAU,CACZ,CAAC,GACK,EAAY,IACf,GAAO,GAAqB,KAAY,OAAI,EAAkB,QAAU,KAAO,GAAO,CACzF,EACM,EAAiB,MAAM,GAA6B,CACxD,OAAQ,CACN,QAAS,GAAK,GAAqB,KAAY,OAAI,EAAkB,SAAW,KAAO,GAAK,GAAc,OAC1G,UAAW,EAAK,GAAqB,KAAY,OAAI,EAAkB,WAAa,KAAO,EAAK,CAClG,EACA,cAAe,MAAM,EAAU,cAC/B,SAAU,CACZ,CAAC,GACO,WAAY,EAAgB,MAAO,IAAc,GAA0B,CACjF,QACA,YAAa,GAAK,GAAqB,KAAY,OAAI,EAAkB,aAAe,KAAO,GAAK,EACpG,aAAc,GAAK,GAAqB,KAAY,OAAI,EAAkB,cAAgB,KAAO,GAAK,CACxG,CAAC,EACD,EAAuB,MAAM,EAC3B,IAAM,CACJ,IAAI,EACJ,OAAO,GAAW,CAChB,KAAM,6BACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,6BACb,WACF,CAAC,KACE,EAEH,oBAAqB,EAAU,SAC/B,cAAe,EAAU,QAEzB,qBAAsB,CACpB,MAAO,IAAM,GAAsB,CAAc,CACnD,EACA,kBAAmB,CAEjB,MAAO,IAAM,IAAa,KAAY,OAAI,GAAU,IAAI,CAAC,KAAU,KAAK,UAAU,EAAK,CAAC,CAC1F,EACA,uBAAwB,CACtB,MAAO,IAAM,GAAkB,KAAO,KAAK,UAAU,CAAc,EAAS,MAC9E,EAEA,gBAAiB,EAAU,SAC3B,uBAAwB,EAAU,QAClC,mCAAoC,EAAS,iBAC7C,4BAA6B,EAAS,gBACtC,kCAAmC,EAAS,gBAC5C,gCAAiC,EAAS,cAC1C,8BAA+B,EAAO,EAAS,cAAgB,KAAO,EAAY,OAClF,uBAAwB,EAAS,KACjC,uBAAwB,EAAS,IACnC,CACF,CAAC,EACD,SACA,GAAI,MAAO,KAAU,CACnB,IAAI,GAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GACxC,IAAM,GAAS,MAAM,EAAU,WAAW,IACrC,GACH,MAAO,GACP,WAAY,EACZ,eAAgB,GAAU,KAAY,OAAI,EAAO,eACjD,OAAQ,EACR,kBACA,cACA,QAAS,CACX,CAAC,EACK,GAAe,CACnB,IAAK,IAAO,GAAO,GAAO,WAAa,KAAY,OAAI,GAAK,KAAO,KAAO,GAAM,EAAY,EAC5F,WAAY,IAAO,GAAM,GAAO,WAAa,KAAY,OAAI,GAAI,YAAc,KAAO,GAAM,EAAY,EACxG,SAAU,IAAO,GAAM,GAAO,WAAa,KAAY,OAAI,GAAI,UAAY,KAAO,GAAM,EAAU,QAClG,SAAU,GAAM,GAAO,WAAa,KAAY,OAAI,GAAI,QACxD,MAAO,GAAK,GAAO,WAAa,KAAY,OAAI,GAAG,IACrD,EAiCA,OAhCA,GAAM,cACJ,EAA0B,CACxB,YACA,WAAY,CACV,2BAA4B,GAAO,aACnC,mBAAoB,CAClB,OAAQ,IAAM,GAAmB,GAAO,OAAO,CACjD,EACA,wBAAyB,CACvB,OAAQ,IAAM,CACZ,IAAM,GAAY,GAAY,GAAO,OAAO,EAC5C,OAAO,IAAa,KAAY,OAAI,KAAK,UAAU,EAAS,EAEhE,EACA,iBAAkB,GAAa,GAC/B,oBAAqB,GAAa,QAClC,wBAAyB,GAAa,UAAU,YAAY,EAC5D,+BAAgC,KAAK,UACnC,GAAO,gBACT,EAEA,wBAAyB,GAAO,MAAM,YACtC,4BAA6B,GAAO,MAAM,aAE1C,iCAAkC,CAAC,GAAO,YAAY,EACtD,qBAAsB,GAAa,GACnC,wBAAyB,GAAa,QACtC,4BAA6B,GAAO,MAAM,YAC1C,6BAA8B,GAAO,MAAM,YAC7C,CACF,CAAC,CACH,EACO,IAAK,GAAQ,SAAU,EAAa,EAE/C,CAAC,EAEL,EACA,IAAM,GAAgB,MAAM,QAAQ,IAClC,EAAqB,QAAQ,OAC3B,CAAC,IAAS,EAAK,OAAS,WAC1B,EAAE,IACA,CAAC,IAAa,GAAc,CAC1B,WACA,QACA,iBACA,SACA,SAAU,CACZ,CAAC,CACH,CACF,EACA,QAAW,KAAY,GAAe,CACpC,GAAI,EAAS,QACX,SAEF,IAAM,GAAQ,EAAM,EAAS,UAC7B,IAAK,IAAS,KAAY,OAAI,GAAM,mBAAqB,KACvD,MAAM,GAAM,iBAAiB,CAC3B,MAAO,EAAS,MAChB,WAAY,EAAS,WACrB,SAAU,EACV,cACA,sBACF,CAAC,EAGL,IAAM,EAAmB,GAAc,OACrC,CAAC,IAAa,EAAS,SAAW,EAAS,OAC7C,EACA,GAAoB,CAAC,EACrB,QAAW,KAAY,EACrB,GAAkB,KAAK,CACrB,KAAM,aACN,WAAY,EAAS,WACrB,SAAU,EAAS,SACnB,MAAO,EAAS,MAChB,MAAO,GAAiB,EAAS,KAAK,EACtC,QAAS,EACX,CAAC,EAKH,GAHA,GAAkB,GAAc,OAC9B,CAAC,IAAa,CAAC,EAAS,gBAC1B,EACI,GAAS,KACX,GAAkB,KAChB,GAAG,MAAM,GAAa,CACpB,UAAW,GAAgB,OACzB,CAAC,IAAa,CAAC,EAAS,OAC1B,EACA,QACA,SACA,YACA,SAAU,EACV,cACA,sBACF,CAAC,CACH,EAEF,IAAM,EAAc,GAAU,CAC5B,QAAS,EAAqB,QAC9B,UAAW,GACX,YAAa,EACf,CAAC,EACD,GAAiB,KACf,GAAG,GAAmB,CACpB,QAAS,EACT,OACF,CAAC,CACH,EACA,IAAM,GAAoB,IAAI,GAAkB,CAC9C,QAAS,EACT,aAAc,EAAqB,aACnC,MAAO,EAAqB,MAC5B,SAAU,EAAqB,SAC/B,iBAAkB,EAAqB,iBACvC,SAAU,GAAK,EAAqB,UAAY,KAAO,GAAK,CAAC,EAC7D,SAAU,IACL,EAAqB,SAExB,SAAU,gBAAgB,EAAgB,CAC5C,CACF,CAAC,EACD,IAAa,EAAK,EAAqB,WAAa,KAAO,EAAK,CAAC,CAAC,EAClE,EAAM,KAAK,EAAiB,EAC5B,MAAO,GAAgB,KAAY,OAAI,EAAa,EAAiB,SAGrE,GAAgB,OAAS,GACzB,GAAkB,SAAW,GAAgB,QAC7C,CAAC,MAAM,GAAmB,CAAE,iBAAgB,OAAM,CAAC,GAErD,GAAK,cACH,EAA0B,CACxB,YACA,WAAY,CACV,2BAA4B,EAAqB,aACjD,mBAAoB,CAClB,OAAQ,IAAM,GAAmB,EAAqB,OAAO,CAC/D,EACA,wBAAyB,CACvB,OAAQ,IAAM,CACZ,IAAM,EAAY,GAAY,EAAqB,OAAO,EAC1D,OAAO,GAAa,KAAY,OAAI,KAAK,UAAU,CAAS,EAEhE,EACA,+BAAgC,KAAK,UACnC,EAAqB,gBACvB,EAEA,wBAAyB,EAAqB,MAAM,YACpD,4BAA6B,EAAqB,MAAM,YAC1D,CACF,CAAC,CACH,EACA,IAAM,EAAW,EAAM,EAAM,OAAS,GAClC,GACJ,GAAI,EAAS,eAAiB,OAC5B,GAAiB,MAAO,GAAU,KAAY,OAAI,EAAO,YACvD,CAAE,KAAM,EAAS,IAAK,EACtB,CACE,SAAU,EAAS,SACnB,MAAO,EAAS,MAChB,aAAc,EAAS,YACzB,CACF,GAEF,OAAO,IAAI,GAA0B,CACnC,QACA,iBACF,CAAC,EAEL,CAAC,EACD,MAAO,GAAO,CACd,MAAM,GAAiB,EAAK,GAGhC,eAAe,EAAY,EACzB,YACA,QACA,SACA,YACA,WACA,cACA,wBACC,CA8ED,OA7EoB,MAAM,QAAQ,IAChC,EAAU,IAAI,OAAS,aAAY,WAAU,WAAY,CACvD,IAAM,EAAQ,EAAM,GACpB,IAAK,GAAS,KAAY,OAAI,EAAM,UAAY,KAC9C,OAEF,OAAO,GAAW,CAChB,KAAM,cACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,cACb,WACF,CAAC,EACD,mBAAoB,EACpB,iBAAkB,EAClB,mBAAoB,CAClB,OAAQ,IAAM,KAAK,UAAU,CAAK,CACpC,CACF,CACF,CAAC,EACD,SACA,GAAI,MAAO,IAAS,CAClB,GAAI,CACF,IAAM,EAAS,GAAY,CACzB,QAAS,EAAM,QAAQ,KAAK,CAAK,EACjC,QACA,QAAS,CACP,aACA,WACA,cACA,sBACF,CACF,CAAC,EACG,EACJ,cAAiB,KAAQ,EACvB,GAAI,EAAK,OAAS,QAChB,EAAS,EAAK,OAGlB,GAAI,CACF,EAAK,cACH,EAA0B,CACxB,YACA,WAAY,CACV,qBAAsB,CACpB,OAAQ,IAAM,KAAK,UAAU,CAAM,CACrC,CACF,CACF,CAAC,CACH,EACA,MAAO,EAAS,EAElB,MAAO,CACL,KAAM,cACN,aACA,WACA,QACA,SACA,QAAS,EAAM,OAAS,SAC1B,EACA,MAAO,EAAO,CAEd,OADA,GAAkB,EAAM,CAAK,EACtB,CACL,KAAM,aACN,aACA,WACA,QACA,QACA,QAAS,EAAM,OAAS,SAC1B,GAGN,CAAC,EACF,CACH,GACmB,OACjB,CAAC,IAAW,GAAU,IACxB,EAEF,IAAI,GAA4B,KAAM,CACpC,WAAW,CAAC,EAAS,CACnB,KAAK,MAAQ,EAAQ,MACrB,KAAK,eAAiB,EAAQ,kBAE5B,UAAS,EAAG,CACd,OAAO,KAAK,MAAM,KAAK,MAAM,OAAS,MAEpC,QAAO,EAAG,CACZ,OAAO,KAAK,UAAU,WAEpB,KAAI,EAAG,CACT,OAAO,KAAK,UAAU,QAEpB,MAAK,EAAG,CACV,OAAO,KAAK,UAAU,SAEpB,cAAa,EAAG,CAClB,OAAO,KAAK,UAAU,iBAEpB,UAAS,EAAG,CACd,OAAO,KAAK,UAAU,aAEpB,UAAS,EAAG,CACd,OAAO,KAAK,UAAU,aAEpB,gBAAe,EAAG,CACpB,OAAO,KAAK,UAAU,mBAEpB,iBAAgB,EAAG,CACrB,OAAO,KAAK,UAAU,oBAEpB,YAAW,EAAG,CAChB,OAAO,KAAK,UAAU,eAEpB,kBAAiB,EAAG,CACtB,OAAO,KAAK,UAAU,qBAEpB,mBAAkB,EAAG,CACvB,OAAO,KAAK,UAAU,sBAEpB,QAAO,EAAG,CACZ,OAAO,KAAK,UAAU,WAEpB,aAAY,EAAG,CACjB,OAAO,KAAK,UAAU,gBAEpB,SAAQ,EAAG,CACb,OAAO,KAAK,UAAU,YAEpB,iBAAgB,EAAG,CACrB,OAAO,KAAK,UAAU,oBAEpB,SAAQ,EAAG,CACb,OAAO,KAAK,UAAU,YAEpB,QAAO,EAAG,CACZ,OAAO,KAAK,UAAU,WAEpB,MAAK,EAAG,CACV,OAAO,KAAK,UAAU,SAEpB,WAAU,EAAG,CACf,OAAO,KAAK,MAAM,OAChB,CAAC,EAAY,IAAS,CACpB,OAAO,GAAsB,EAAY,EAAK,KAAK,GAErD,CACE,YAAkB,OAClB,aAAmB,OACnB,YAAkB,OAClB,gBAAsB,OACtB,kBAAwB,MAC1B,CACF,KAEE,oBAAmB,EAAG,CACxB,GAAI,KAAK,gBAAkB,KACzB,MAAM,IAAI,GAEZ,OAAO,KAAK,eAEhB,EACA,SAAS,EAAW,CAAC,EAAS,CAC5B,IAAM,EAAQ,EAAQ,OACpB,CAAC,IAAS,EAAK,OAAS,WAC1B,EACA,GAAI,EAAM,SAAW,EACnB,OAEF,OAAO,EAAM,IAAI,CAAC,KAAc,CAC9B,WAAY,EAAS,WACrB,SAAU,EAAS,SACnB,MAAO,EAAS,KAClB,EAAE,EAEJ,SAAS,EAAS,EAChB,UACA,YACA,eACC,CACD,MAAO,CACL,GAAG,EAAQ,IAAI,CAAC,IAAS,CACvB,OAAQ,EAAK,UACN,WACA,gBACA,SACH,OAAO,MACJ,OACH,MAAO,CACL,KAAM,OACN,KAAM,IAAI,GAAqB,CAAI,CACrC,MAEG,YACH,OAAO,EAAU,KACf,CAAC,IAAa,EAAS,aAAe,EAAK,UAC7C,MAEG,cAAe,CAClB,IAAM,EAAW,EAAU,KACzB,CAAC,IAAc,EAAU,aAAe,EAAK,UAC/C,EACA,GAAI,GAAY,KACd,MAAU,MAAM,aAAa,EAAK,uBAAuB,EAE3D,GAAI,EAAK,QACP,MAAO,CACL,KAAM,aACN,WAAY,EAAK,WACjB,SAAU,EAAK,SACf,MAAO,EAAS,MAChB,MAAO,EAAK,OACZ,iBAAkB,GAClB,QAAS,EAAS,OACpB,EAEF,MAAO,CACL,KAAM,cACN,WAAY,EAAK,WACjB,SAAU,EAAK,SACf,MAAO,EAAS,MAChB,OAAQ,EAAK,OACb,iBAAkB,GAClB,QAAS,EAAS,OACpB,CACF,GAEH,EACD,GAAG,CACL,EAaF,SAAS,EAAc,CAAC,EAAS,EAAgB,CAC/C,IAAM,EAAkB,IAAI,QAAQ,GAAW,KAAO,EAAU,CAAC,CAAC,EAClE,QAAY,EAAK,KAAU,OAAO,QAAQ,CAAc,EACtD,GAAI,CAAC,EAAgB,IAAI,CAAG,EAC1B,EAAgB,IAAI,EAAK,CAAK,EAGlC,OAAO,EAIT,SAAS,EAAwB,EAC/B,SACA,aACA,UACA,cACC,CACD,OAAO,IAAI,SAAS,EAAW,YAAY,IAAI,iBAAmB,EAAG,CACnE,OAAQ,GAAU,KAAO,EAAS,IAClC,aACA,QAAS,GAAe,EAAS,CAC/B,eAAgB,2BAClB,CAAC,CACH,CAAC,EAIH,SAAS,EAAqB,EAC5B,WACA,SACA,aACA,UACA,UACC,CACD,EAAS,UAAU,GAAU,KAAO,EAAS,IAAK,EAAY,CAAO,EACrE,IAAM,EAAS,EAAO,UAAU,GACnB,SAAY,CACvB,GAAI,CACF,MAAO,GAAM,CACX,IAAQ,OAAM,SAAU,MAAM,EAAO,KAAK,EAC1C,GAAI,EACF,MAEF,GAAI,CADgB,EAAS,MAAM,CAAK,EAEtC,MAAM,IAAI,QAAQ,CAAC,IAAa,CAC9B,EAAS,KAAK,QAAS,CAAQ,EAChC,GAGL,MAAO,EAAO,CACd,MAAM,SACN,CACA,EAAS,IAAI,KAGZ,EAIP,SAAS,EAAwB,EAC/B,WACA,SACA,aACA,UACA,cACC,CACD,GAAsB,CACpB,WACA,SACA,aACA,QAAS,OAAO,YACd,GAAe,EAAS,CACtB,eAAgB,2BAClB,CAAC,EAAE,QAAQ,CACb,EACA,OAAQ,EAAW,YAAY,IAAI,iBAAmB,CACxD,CAAC,EAIH,IAAI,GAA2B,cAAc,eAAgB,CAC3D,WAAW,EAAG,CACZ,MAAM,CACJ,SAAS,CAAC,EAAM,EAAY,CAC1B,EAAW,QAAQ,SAAS,KAAK,UAAU,CAAI;AAAA;AAAA,CAEtD,GAEK,KAAK,CAAC,EAAY,CAChB,EAAW,QAAQ;AAAA;AAAA,CAAkB,EAEzC,CAAC,EAEL,EAGI,GAA4B,CAC9B,eAAgB,oBAChB,gBAAiB,WACjB,WAAY,aACZ,gCAAiC,KACjC,oBAAqB,IAEvB,EAGA,SAAS,EAA6B,EACpC,SACA,aACA,UACA,SACA,oBACC,CACD,IAAI,EAAY,EAAO,YAAY,IAAI,EAA0B,EACjE,GAAI,EAAkB,CACpB,IAAO,EAAS,GAAW,EAAU,IAAI,EACzC,EAAY,EACZ,EAAiB,CAAE,OAAQ,CAAQ,CAAC,EAEtC,OAAO,IAAI,SAAS,EAAU,YAAY,IAAI,iBAAmB,EAAG,CAClE,SACA,aACA,QAAS,GAAe,EAAS,EAAyB,CAC5D,CAAC,EAIH,SAAS,EAAsB,EAC7B,mBACA,qBACC,CACD,GAAI,GAAoB,KACtB,OAEF,IAAM,EAAc,EAAiB,EAAiB,OAAS,GAC/D,OAAQ,GAAe,KAAY,OAAI,EAAY,QAAU,YAAc,EAAY,GAAK,OAAO,IAAsB,WAAa,EAAkB,EAAI,EAW9J,IAAI,GAAuB,GACzB,IAAM,GACJ,EAAG,MAAM,CACP,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,YAAY,EAC7B,GAAI,EAAG,OAAO,EACd,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,YAAY,EAC7B,GAAI,EAAG,OAAO,EACd,MAAO,EAAG,OAAO,EACjB,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,UAAU,EAC3B,GAAI,EAAG,OAAO,EACd,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,OAAO,EACxB,UAAW,EAAG,OAAO,CACvB,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,kBAAkB,EACnC,WAAY,EAAG,OAAO,EACtB,SAAU,EAAG,OAAO,EACpB,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,QAAS,EAAG,QAAQ,EAAE,SAAS,CACjC,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,kBAAkB,EACnC,WAAY,EAAG,OAAO,EACtB,eAAgB,EAAG,OAAO,CAC5B,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,sBAAsB,EACvC,WAAY,EAAG,OAAO,EACtB,SAAU,EAAG,OAAO,EACpB,MAAO,EAAG,QAAQ,EAClB,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,iBAAkB,EAAuB,SAAS,EAClD,QAAS,EAAG,QAAQ,EAAE,SAAS,CACjC,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,kBAAkB,EACnC,WAAY,EAAG,OAAO,EACtB,SAAU,EAAG,OAAO,EACpB,MAAO,EAAG,QAAQ,EAClB,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,iBAAkB,EAAuB,SAAS,EAClD,QAAS,EAAG,QAAQ,EAAE,SAAS,EAC/B,UAAW,EAAG,OAAO,CACvB,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,uBAAuB,EACxC,WAAY,EAAG,OAAO,EACtB,OAAQ,EAAG,QAAQ,EACnB,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,QAAS,EAAG,QAAQ,EAAE,SAAS,EAC/B,YAAa,EAAG,QAAQ,EAAE,SAAS,CACrC,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,mBAAmB,EACpC,WAAY,EAAG,OAAO,EACtB,UAAW,EAAG,OAAO,EACrB,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,QAAS,EAAG,QAAQ,EAAE,SAAS,CACjC,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,iBAAiB,EAClC,GAAI,EAAG,OAAO,EACd,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,iBAAiB,EAClC,GAAI,EAAG,OAAO,EACd,MAAO,EAAG,OAAO,EACjB,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,eAAe,EAChC,GAAI,EAAG,OAAO,EACd,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,YAAY,EAC7B,SAAU,EAAG,OAAO,EACpB,IAAK,EAAG,OAAO,EACf,MAAO,EAAG,OAAO,EAAE,SAAS,EAC5B,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,iBAAiB,EAClC,SAAU,EAAG,OAAO,EACpB,UAAW,EAAG,OAAO,EACrB,MAAO,EAAG,OAAO,EACjB,SAAU,EAAG,OAAO,EAAE,SAAS,EAC/B,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,MAAM,EACvB,IAAK,EAAG,OAAO,EACf,UAAW,EAAG,OAAO,EACrB,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,OACP,CAAC,IAAU,OAAO,IAAU,UAAY,EAAM,WAAW,OAAO,EAChE,CAAE,QAAS,8BAA+B,CAC5C,EACA,GAAI,EAAG,OAAO,EAAE,SAAS,EACzB,KAAM,EAAG,QAAQ,EACjB,UAAW,EAAG,QAAQ,EAAE,SAAS,CACnC,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,YAAY,CAC/B,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,aAAa,CAChC,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,OAAO,EACxB,UAAW,EAAG,OAAO,EAAE,SAAS,EAChC,gBAAiB,EAAG,QAAQ,EAAE,SAAS,CACzC,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,QAAQ,EACzB,gBAAiB,EAAG,QAAQ,EAAE,SAAS,CACzC,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,OAAO,CAC1B,CAAC,EACD,EAAG,aAAa,CACd,KAAM,EAAG,QAAQ,kBAAkB,EACnC,gBAAiB,EAAG,QAAQ,CAC9B,CAAC,CACH,CAAC,CACH,CACF,EACA,SAAS,EAAoB,CAAC,EAAO,CACnC,OAAO,EAAM,KAAK,WAAW,OAAO,EAItC,SAAS,EAAY,CAAC,EAAM,EAAW,CACrC,GAAI,IAAc,QAAK,IAAmB,OACxC,OAEF,GAAI,IAAc,OAChB,OAAO,EAET,GAAI,IAAmB,OACrB,OAAO,EAET,IAAM,EAAS,IAAK,CAAK,EACzB,QAAW,KAAO,EAChB,GAAI,OAAO,UAAU,eAAe,KAAK,EAAW,CAAG,EAAG,CACxD,IAAM,EAAiB,EAAU,GACjC,GAAI,IAAwB,OAC1B,SACF,IAAM,EAAY,KAAO,EAAO,EAAK,GAAY,OAC3C,EAAiB,IAAmB,MAAQ,OAAO,IAAmB,UAAY,CAAC,MAAM,QAAQ,CAAc,GAAK,EAAE,aAA0B,OAAS,EAAE,aAA0B,QACrL,EAAiB,IAAc,MAAQ,IAAmB,QAAK,OAAO,IAAc,UAAY,CAAC,MAAM,QAAQ,CAAS,GAAK,EAAE,aAAqB,OAAS,EAAE,aAAqB,QAC1L,GAAI,GAAkB,EACpB,EAAO,GAAO,GACZ,EACA,CACF,EAEA,OAAO,GAAO,EAIpB,OAAO,EAOT,SAAS,EAAO,CAAC,EAAO,CACtB,IAAM,EAAQ,CAAC,MAAM,EACjB,EAAiB,GACjB,EAAe,KACnB,SAAS,CAAiB,CAAC,EAAM,EAAG,EAAW,CAE3C,OAAQ,OACD,IAAK,CACR,EAAiB,EACjB,EAAM,IAAI,EACV,EAAM,KAAK,CAAS,EACpB,EAAM,KAAK,eAAe,EAC1B,KACF,KACK,QACA,QACA,IAAK,CACR,EAAiB,EACjB,EAAe,EACf,EAAM,IAAI,EACV,EAAM,KAAK,CAAS,EACpB,EAAM,KAAK,gBAAgB,EAC3B,KACF,KACK,IAAK,CACR,EAAM,IAAI,EACV,EAAM,KAAK,CAAS,EACpB,EAAM,KAAK,eAAe,EAC1B,KACF,KACK,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,IAAK,CACR,EAAiB,EACjB,EAAM,IAAI,EACV,EAAM,KAAK,CAAS,EACpB,EAAM,KAAK,eAAe,EAC1B,KACF,KACK,IAAK,CACR,EAAiB,EACjB,EAAM,IAAI,EACV,EAAM,KAAK,CAAS,EACpB,EAAM,KAAK,qBAAqB,EAChC,KACF,KACK,IAAK,CACR,EAAiB,EACjB,EAAM,IAAI,EACV,EAAM,KAAK,CAAS,EACpB,EAAM,KAAK,oBAAoB,EAC/B,KACF,GAIN,SAAS,CAAuB,CAAC,EAAM,EAAG,CACxC,OAAQ,OACD,IAAK,CACR,EAAM,IAAI,EACV,EAAM,KAAK,2BAA2B,EACtC,KACF,KACK,IAAK,CACR,EAAiB,EACjB,EAAM,IAAI,EACV,KACF,GAGJ,SAAS,CAAsB,CAAC,EAAM,EAAG,CACvC,OAAQ,OACD,IAAK,CACR,EAAM,IAAI,EACV,EAAM,KAAK,0BAA0B,EACrC,KACF,KACK,IAAK,CACR,EAAiB,EACjB,EAAM,IAAI,EACV,KACF,GAGJ,QAAS,EAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CACrC,IAAM,EAAO,EAAM,GAEnB,OADqB,EAAM,EAAM,OAAS,QAEnC,OACH,EAAkB,EAAM,EAAG,QAAQ,EACnC,UACG,sBAAuB,CAC1B,OAAQ,OACD,IAAK,CACR,EAAM,IAAI,EACV,EAAM,KAAK,mBAAmB,EAC9B,KACF,KACK,IAAK,CACR,EAAiB,EACjB,EAAM,IAAI,EACV,KACF,EAEF,KACF,KACK,4BAA6B,CAChC,OAAQ,OACD,IAAK,CACR,EAAM,IAAI,EACV,EAAM,KAAK,mBAAmB,EAC9B,KACF,EAEF,KACF,KACK,oBAAqB,CACxB,OAAQ,OACD,IAAK,CACR,EAAM,IAAI,EACV,EAAM,KAAK,yBAAyB,EACpC,KACF,EAEF,KACF,KACK,0BAA2B,CAC9B,OAAQ,OACD,IAAK,CACR,EAAM,IAAI,EACV,EAAM,KAAK,4BAA4B,EACvC,KACF,EAEF,KACF,KACK,6BAA8B,CACjC,EAAkB,EAAM,EAAG,2BAA2B,EACtD,KACF,KACK,4BAA6B,CAChC,EAAwB,EAAM,CAAC,EAC/B,KACF,KACK,gBAAiB,CACpB,OAAQ,OACD,IAAK,CACR,EAAM,IAAI,EACV,EAAiB,EACjB,KACF,KACK,KAAM,CACT,EAAM,KAAK,sBAAsB,EACjC,KACF,SAEE,EAAiB,EAGrB,KACF,KACK,qBAAsB,CACzB,OAAQ,OACD,IAAK,CACR,EAAiB,EACjB,EAAM,IAAI,EACV,KACF,SACS,CACP,EAAiB,EACjB,EAAkB,EAAM,EAAG,0BAA0B,EACrD,KACF,EAEF,KACF,KACK,2BAA4B,CAC/B,OAAQ,OACD,IAAK,CACR,EAAM,IAAI,EACV,EAAM,KAAK,0BAA0B,EACrC,KACF,KACK,IAAK,CACR,EAAiB,EACjB,EAAM,IAAI,EACV,KACF,SACS,CACP,EAAiB,EACjB,KACF,EAEF,KACF,KACK,2BAA4B,CAC/B,EAAkB,EAAM,EAAG,0BAA0B,EACrD,KACF,KACK,uBAAwB,CAC3B,EAAM,IAAI,EACV,EAAiB,EACjB,KACF,KACK,gBAAiB,CACpB,OAAQ,OACD,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,IAAK,CACR,EAAiB,EACjB,KACF,KACK,QACA,QACA,QACA,IACH,UAEG,IAAK,CAER,GADA,EAAM,IAAI,EACN,EAAM,EAAM,OAAS,KAAO,2BAC9B,EAAuB,EAAM,CAAC,EAEhC,GAAI,EAAM,EAAM,OAAS,KAAO,4BAC9B,EAAwB,EAAM,CAAC,EAEjC,KACF,KACK,IAAK,CAER,GADA,EAAM,IAAI,EACN,EAAM,EAAM,OAAS,KAAO,4BAC9B,EAAwB,EAAM,CAAC,EAEjC,KACF,KACK,IAAK,CAER,GADA,EAAM,IAAI,EACN,EAAM,EAAM,OAAS,KAAO,2BAC9B,EAAuB,EAAM,CAAC,EAEhC,KACF,SACS,CACP,EAAM,IAAI,EACV,KACF,EAEF,KACF,KACK,iBAAkB,CACrB,IAAM,EAAiB,EAAM,UAAU,EAAc,EAAI,CAAC,EAC1D,GAAI,CAAC,QAAQ,WAAW,CAAc,GAAK,CAAC,OAAO,WAAW,CAAc,GAAK,CAAC,OAAO,WAAW,CAAc,GAEhH,GADA,EAAM,IAAI,EACN,EAAM,EAAM,OAAS,KAAO,4BAC9B,EAAwB,EAAM,CAAC,EAC1B,QAAI,EAAM,EAAM,OAAS,KAAO,2BACrC,EAAuB,EAAM,CAAC,EAGhC,OAAiB,EAEnB,KACF,GAGJ,IAAI,EAAS,EAAM,MAAM,EAAG,EAAiB,CAAC,EAC9C,QAAS,EAAI,EAAM,OAAS,EAAG,GAAK,EAAG,IAErC,OADc,EAAM,QAEb,gBAAiB,CACpB,GAAU,IACV,KACF,KACK,wBACA,8BACA,gCACA,0BACA,iCACA,4BAA6B,CAChC,GAAU,IACV,KACF,KACK,yBACA,+BACA,2BAA4B,CAC/B,GAAU,IACV,KACF,KACK,iBAAkB,CACrB,IAAM,EAAiB,EAAM,UAAU,EAAc,EAAM,MAAM,EACjE,GAAI,OAAO,WAAW,CAAc,EAClC,GAAU,OAAO,MAAM,EAAe,MAAM,EACvC,QAAI,QAAQ,WAAW,CAAc,EAC1C,GAAU,QAAQ,MAAM,EAAe,MAAM,EACxC,QAAI,OAAO,WAAW,CAAc,EACzC,GAAU,OAAO,MAAM,EAAe,MAAM,CAEhD,EAGJ,OAAO,EAIT,eAAe,EAAgB,CAAC,EAAU,CACxC,GAAI,IAAkB,OACpB,MAAO,CAAE,MAAY,OAAG,MAAO,iBAAkB,EAEnD,IAAI,EAAS,MAAM,GAAe,CAAE,KAAM,CAAS,CAAC,EACpD,GAAI,EAAO,QACT,MAAO,CAAE,MAAO,EAAO,MAAO,MAAO,kBAAmB,EAG1D,GADA,EAAS,MAAM,GAAe,CAAE,KAAM,GAAQ,CAAQ,CAAE,CAAC,EACrD,EAAO,QACT,MAAO,CAAE,MAAO,EAAO,MAAO,MAAO,gBAAiB,EAExD,MAAO,CAAE,MAAY,OAAG,MAAO,cAAe,EAIhD,SAAS,EAAY,CAAC,EAAM,CAC1B,OAAO,EAAK,KAAK,WAAW,OAAO,EAErC,SAAS,EAAY,CAAC,EAAM,CAC1B,OAAO,EAAK,OAAS,OAEvB,SAAS,EAAY,CAAC,EAAM,CAC1B,OAAO,EAAK,OAAS,OAEvB,SAAS,EAAiB,CAAC,EAAM,CAC/B,OAAO,EAAK,OAAS,YAEvB,SAAS,EAAY,CAAC,EAAM,CAC1B,OAAO,EAAK,KAAK,WAAW,OAAO,EAErC,SAAS,EAAmB,CAAC,EAAM,CACjC,OAAO,EAAK,OAAS,eAEvB,SAAS,EAAyB,CAAC,EAAM,CACvC,OAAO,GAAa,CAAI,GAAK,GAAoB,CAAI,EAEvD,SAAS,EAAW,CAAC,EAAM,CACzB,OAAO,EAAK,KAAK,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,EAE/C,SAAS,EAAwB,CAAC,EAAM,CACtC,OAAO,GAAoB,CAAI,EAAI,EAAK,SAAW,GAAY,CAAI,EAIrE,SAAS,EAA6B,EACpC,cACA,aACC,CACD,MAAO,CACL,SAAU,GAAe,KAAY,OAAI,EAAY,QAAU,YAAc,EAAc,CACzF,GAAI,EACJ,SAAe,OACf,KAAM,YACN,MAAO,CAAC,CACV,EACA,gBAAiB,CAAC,EAClB,qBAAsB,CAAC,EACvB,iBAAkB,CAAC,CACrB,EAEF,SAAS,EAAsB,EAC7B,SACA,wBACA,kBACA,sBACA,UACA,aACA,UACC,CACD,OAAO,EAAO,YACZ,IAAI,gBAAgB,MACZ,UAAS,CAAC,EAAO,EAAY,CACjC,MAAM,EAAoB,OAAS,QAAO,WAAY,CACpD,IAAI,EAAM,EAAI,EAAI,EAClB,SAAS,CAAiB,CAAC,EAAY,CAErC,IAAM,EADkB,EAAM,QAAQ,MAAM,OAAO,EAAY,EACxB,KACrC,CAAC,IAAe,EAAW,aAAe,CAC5C,EACA,GAAI,GAAkB,KACpB,MAAU,MACR,8DACF,EAEF,OAAO,EAET,SAAS,CAAwB,CAAC,EAAY,CAI5C,IAAM,EAHkB,EAAM,QAAQ,MAAM,OAC1C,CAAC,IAAS,EAAK,OAAS,cAC1B,EACuC,KACrC,CAAC,IAAe,EAAW,aAAe,CAC5C,EACA,GAAI,GAAkB,KACpB,MAAU,MACR,8DACF,EAEF,OAAO,EAET,SAAS,CAAc,CAAC,EAAS,CAC/B,IAAI,EACJ,IAAM,EAAO,EAAM,QAAQ,MAAM,KAC/B,CAAC,IAAU,GAAa,CAAK,GAAK,EAAM,aAAe,EAAQ,UACjE,EACM,EAAa,EACb,EAAU,EAChB,GAAI,GAAQ,MAQV,GAPA,EAAK,MAAQ,EAAQ,MACrB,EAAQ,MAAQ,EAAW,MAC3B,EAAQ,OAAS,EAAW,OAC5B,EAAQ,UAAY,EAAW,UAC/B,EAAQ,SAAW,EAAW,SAC9B,EAAQ,YAAc,EAAW,YACjC,EAAQ,kBAAoB,EAAO,EAAW,mBAAqB,KAAO,EAAO,EAAK,iBAClF,EAAW,kBAAoB,MAAQ,EAAK,QAAU,kBACxD,EAAK,qBAAuB,EAAW,iBAGzC,OAAM,QAAQ,MAAM,KAAK,CACvB,KAAM,QAAQ,EAAQ,WACtB,WAAY,EAAQ,WACpB,MAAO,EAAQ,MACf,MAAO,EAAW,MAClB,OAAQ,EAAW,OACnB,SAAU,EAAW,SACrB,UAAW,EAAW,UACtB,iBAAkB,EAAW,iBAC7B,YAAa,EAAW,eACrB,EAAW,kBAAoB,KAAO,CAAE,qBAAsB,EAAW,gBAAiB,EAAI,CAAC,CACpG,CAAC,EAGL,SAAS,CAAqB,CAAC,EAAS,CACtC,IAAI,EAAM,EACV,IAAM,EAAO,EAAM,QAAQ,MAAM,KAC/B,CAAC,IAAU,EAAM,OAAS,gBAAkB,EAAM,aAAe,EAAQ,UAC3E,EACM,EAAa,EACb,EAAU,EAChB,GAAI,GAAQ,MASV,GARA,EAAK,MAAQ,EAAQ,MACrB,EAAQ,SAAW,EAAQ,SAC3B,EAAQ,MAAQ,EAAW,MAC3B,EAAQ,OAAS,EAAW,OAC5B,EAAQ,UAAY,EAAW,UAC/B,EAAQ,UAAY,EAAO,EAAW,WAAa,KAAO,EAAO,EAAQ,SACzE,EAAQ,YAAc,EAAW,YACjC,EAAQ,kBAAoB,EAAM,EAAW,mBAAqB,KAAO,EAAM,EAAK,iBAChF,EAAW,kBAAoB,MAAQ,EAAK,QAAU,kBACxD,EAAK,qBAAuB,EAAW,iBAGzC,OAAM,QAAQ,MAAM,KAAK,CACvB,KAAM,eACN,SAAU,EAAQ,SAClB,WAAY,EAAQ,WACpB,MAAO,EAAQ,MACf,MAAO,EAAW,MAClB,OAAQ,EAAW,OACnB,UAAW,EAAW,UACtB,YAAa,EAAW,YACxB,iBAAkB,EAAW,oBAC1B,EAAW,kBAAoB,KAAO,CAAE,qBAAsB,EAAW,gBAAiB,EAAI,CAAC,CACpG,CAAC,EAGL,eAAe,CAAqB,CAAC,EAAU,CAC7C,GAAI,GAAY,KAAM,CACpB,IAAM,EAAiB,EAAM,QAAQ,UAAY,KAAO,GAAa,EAAM,QAAQ,SAAU,CAAQ,EAAI,EACzG,GAAI,GAAyB,KAC3B,MAAM,GAAc,CAClB,MAAO,EACP,OAAQ,CACV,CAAC,EAEH,EAAM,QAAQ,SAAW,GAG7B,OAAQ,EAAM,UACP,aAAc,CACjB,IAAM,EAAW,CACf,KAAM,OACN,KAAM,GACN,iBAAkB,EAAM,iBACxB,MAAO,WACT,EACA,EAAM,gBAAgB,EAAM,IAAM,EAClC,EAAM,QAAQ,MAAM,KAAK,CAAQ,EACjC,EAAM,EACN,KACF,KACK,aAAc,CACjB,IAAM,EAAW,EAAM,gBAAgB,EAAM,IAC7C,EAAS,MAAQ,EAAM,MACvB,EAAS,kBAAoB,EAAO,EAAM,mBAAqB,KAAO,EAAO,EAAS,iBACtF,EAAM,EACN,KACF,KACK,WAAY,CACf,IAAM,EAAW,EAAM,gBAAgB,EAAM,IAC7C,EAAS,MAAQ,OACjB,EAAS,kBAAoB,EAAK,EAAM,mBAAqB,KAAO,EAAK,EAAS,iBAClF,OAAO,EAAM,gBAAgB,EAAM,IACnC,EAAM,EACN,KACF,KACK,kBAAmB,CACtB,IAAM,EAAgB,CACpB,KAAM,YACN,KAAM,GACN,iBAAkB,EAAM,iBACxB,MAAO,WACT,EACA,EAAM,qBAAqB,EAAM,IAAM,EACvC,EAAM,QAAQ,MAAM,KAAK,CAAa,EACtC,EAAM,EACN,KACF,KACK,kBAAmB,CACtB,IAAM,EAAgB,EAAM,qBAAqB,EAAM,IACvD,EAAc,MAAQ,EAAM,MAC5B,EAAc,kBAAoB,EAAK,EAAM,mBAAqB,KAAO,EAAK,EAAc,iBAC5F,EAAM,EACN,KACF,KACK,gBAAiB,CACpB,IAAM,EAAgB,EAAM,qBAAqB,EAAM,IACvD,EAAc,kBAAoB,EAAK,EAAM,mBAAqB,KAAO,EAAK,EAAc,iBAC5F,EAAc,MAAQ,OACtB,OAAO,EAAM,qBAAqB,EAAM,IACxC,EAAM,EACN,KACF,KACK,OAAQ,CACX,EAAM,QAAQ,MAAM,KAAK,CACvB,KAAM,OACN,UAAW,EAAM,UACjB,IAAK,EAAM,GACb,CAAC,EACD,EAAM,EACN,KACF,KACK,aAAc,CACjB,EAAM,QAAQ,MAAM,KAAK,CACvB,KAAM,aACN,SAAU,EAAM,SAChB,IAAK,EAAM,IACX,MAAO,EAAM,MACb,iBAAkB,EAAM,gBAC1B,CAAC,EACD,EAAM,EACN,KACF,KACK,kBAAmB,CACtB,EAAM,QAAQ,MAAM,KAAK,CACvB,KAAM,kBACN,SAAU,EAAM,SAChB,UAAW,EAAM,UACjB,MAAO,EAAM,MACb,SAAU,EAAM,SAChB,iBAAkB,EAAM,gBAC1B,CAAC,EACD,EAAM,EACN,KACF,KACK,mBAAoB,CACvB,IAAM,EAAkB,EAAM,QAAQ,MAAM,OAAO,EAAY,EAO/D,GANA,EAAM,iBAAiB,EAAM,YAAc,CACzC,KAAM,GACN,SAAU,EAAM,SAChB,MAAO,EAAgB,OACvB,QAAS,EAAM,OACjB,EACI,EAAM,QACR,EAAsB,CACpB,WAAY,EAAM,WAClB,SAAU,EAAM,SAChB,MAAO,kBACP,MAAY,OACZ,iBAAkB,EAAM,gBAC1B,CAAC,EAED,OAAe,CACb,WAAY,EAAM,WAClB,SAAU,EAAM,SAChB,MAAO,kBACP,MAAY,OACZ,iBAAkB,EAAM,gBAC1B,CAAC,EAEH,EAAM,EACN,KACF,KACK,mBAAoB,CACvB,IAAM,EAAkB,EAAM,iBAAiB,EAAM,YACrD,EAAgB,MAAQ,EAAM,eAC9B,IAAQ,MAAO,GAAgB,MAAM,GACnC,EAAgB,IAClB,EACA,GAAI,EAAgB,QAClB,EAAsB,CACpB,WAAY,EAAM,WAClB,SAAU,EAAgB,SAC1B,MAAO,kBACP,MAAO,CACT,CAAC,EAED,OAAe,CACb,WAAY,EAAM,WAClB,SAAU,EAAgB,SAC1B,MAAO,kBACP,MAAO,CACT,CAAC,EAEH,EAAM,EACN,KACF,KACK,uBAAwB,CAC3B,GAAI,EAAM,QACR,EAAsB,CACpB,WAAY,EAAM,WAClB,SAAU,EAAM,SAChB,MAAO,kBACP,MAAO,EAAM,MACb,iBAAkB,EAAM,iBACxB,iBAAkB,EAAM,gBAC1B,CAAC,EAED,OAAe,CACb,WAAY,EAAM,WAClB,SAAU,EAAM,SAChB,MAAO,kBACP,MAAO,EAAM,MACb,iBAAkB,EAAM,iBACxB,iBAAkB,EAAM,gBAC1B,CAAC,EAGH,GADA,EAAM,EACF,GAAc,CAAC,EAAM,iBACvB,MAAM,EAAW,CACf,SAAU,CACZ,CAAC,EAEH,KACF,KACK,mBAAoB,CACvB,GAAI,EAAM,QACR,EAAsB,CACpB,WAAY,EAAM,WAClB,SAAU,EAAM,SAChB,MAAO,eACP,MAAO,EAAM,MACb,UAAW,EAAM,UACjB,iBAAkB,EAAM,iBACxB,iBAAkB,EAAM,gBAC1B,CAAC,EAED,OAAe,CACb,WAAY,EAAM,WAClB,SAAU,EAAM,SAChB,MAAO,eACP,MAAY,OACZ,SAAU,EAAM,MAChB,UAAW,EAAM,UACjB,iBAAkB,EAAM,iBACxB,iBAAkB,EAAM,gBAC1B,CAAC,EAEH,EAAM,EACN,KACF,KACK,wBAAyB,CAC5B,GAAI,EAAM,QAAS,CACjB,IAAM,EAAiB,EACrB,EAAM,UACR,EACA,EAAsB,CACpB,WAAY,EAAM,WAClB,SAAU,EAAe,SACzB,MAAO,mBACP,MAAO,EAAe,MACtB,OAAQ,EAAM,OACd,YAAa,EAAM,WACrB,CAAC,EACI,KACL,IAAM,EAAiB,EAAkB,EAAM,UAAU,EACzD,EAAe,CACb,WAAY,EAAM,WAClB,SAAU,GAAY,CAAc,EACpC,MAAO,mBACP,MAAO,EAAe,MACtB,OAAQ,EAAM,OACd,iBAAkB,EAAM,iBACxB,YAAa,EAAM,WACrB,CAAC,EAEH,EAAM,EACN,KACF,KACK,oBAAqB,CACxB,GAAI,EAAM,QAAS,CACjB,IAAM,EAAiB,EACrB,EAAM,UACR,EACA,EAAsB,CACpB,WAAY,EAAM,WAClB,SAAU,EAAe,SACzB,MAAO,eACP,MAAO,EAAe,MACtB,UAAW,EAAM,UACjB,iBAAkB,EAAM,gBAC1B,CAAC,EACI,KACL,IAAM,EAAiB,EAAkB,EAAM,UAAU,EACzD,EAAe,CACb,WAAY,EAAM,WAClB,SAAU,GAAY,CAAc,EACpC,MAAO,eACP,MAAO,EAAe,MACtB,SAAU,EAAe,SACzB,UAAW,EAAM,UACjB,iBAAkB,EAAM,gBAC1B,CAAC,EAEH,EAAM,EACN,KACF,KACK,aAAc,CACjB,EAAM,QAAQ,MAAM,KAAK,CAAE,KAAM,YAAa,CAAC,EAC/C,KACF,KACK,cAAe,CAClB,EAAM,gBAAkB,CAAC,EACzB,EAAM,qBAAuB,CAAC,EAC9B,KACF,KACK,QAAS,CACZ,GAAI,EAAM,WAAa,KACrB,EAAM,QAAQ,GAAK,EAAM,UAG3B,GADA,MAAM,EAAsB,EAAM,eAAe,EAC7C,EAAM,WAAa,MAAQ,EAAM,iBAAmB,KACtD,EAAM,EAER,KACF,KACK,SAAU,CAEb,GADA,MAAM,EAAsB,EAAM,eAAe,EAC7C,EAAM,iBAAmB,KAC3B,EAAM,EAER,KACF,KACK,mBAAoB,CAEvB,GADA,MAAM,EAAsB,EAAM,eAAe,EAC7C,EAAM,iBAAmB,KAC3B,EAAM,EAER,KACF,KACK,QAAS,CACZ,GAAW,MAAgB,EAAY,MAAM,EAAM,SAAS,CAAC,EAC7D,KACF,SAEE,GAAI,GAAqB,CAAK,EAAG,CAC/B,IAAK,GAAmB,KAAY,OAAI,EAAgB,EAAM,QAAU,KACtE,MAAM,GAAc,CAClB,MAAO,EAAM,KACb,OAAQ,EAAgB,EAAM,KAChC,CAAC,EAEH,IAAM,EAAY,EAClB,GAAI,EAAU,UAAW,CACvB,GAAU,MAAgB,EAAO,CAAS,EAC1C,MAEF,IAAM,EAAiB,EAAU,IAAM,KAAO,EAAM,QAAQ,MAAM,KAChE,CAAC,IAAa,EAAU,OAAS,EAAS,MAAQ,EAAU,KAAO,EAAS,EAC9E,EAAS,OACT,GAAI,GAAkB,KACpB,EAAe,KAAO,EAAU,KAEhC,OAAM,QAAQ,MAAM,KAAK,CAAS,EAEpC,GAAU,MAAgB,EAAO,CAAS,EAC1C,EAAM,GAIZ,EAAW,QAAQ,CAAK,EACzB,EAEL,CAAC,CACH,EAIF,SAAS,EAA2B,EAClC,YACA,mBAAmB,CAAC,EACpB,WACA,UACA,UACC,CACD,IAAI,EAAc,GAAoB,KAAY,OAAI,EAAiB,EAAiB,OAAS,GACjG,IAAK,GAAe,KAAY,OAAI,EAAY,QAAU,YACxD,EAAmB,OAEnB,OAAY,EAAY,GAE1B,IAAI,EAAY,GACV,EAAmB,EAAO,YAC9B,IAAI,gBAAgB,CAClB,SAAS,CAAC,EAAO,EAAY,CAC3B,GAAI,EAAM,OAAS,QAAS,CAC1B,IAAM,EAAa,EACnB,GAAI,EAAW,WAAa,MAAQ,GAAa,KAC/C,EAAW,UAAY,EAG3B,GAAI,EAAM,OAAS,QACjB,EAAY,GAEd,EAAW,QAAQ,CAAK,EAE5B,CAAC,CACH,EACA,GAAI,GAAY,KACd,OAAO,EAET,IAAM,EAAQ,GAA8B,CAC1C,YAAa,EAAc,gBAAgB,CAAW,EAAS,OAC/D,UAAW,GAAa,KAAO,EAAY,EAE7C,CAAC,EACK,EAAsB,MAAO,IAAQ,CACzC,MAAM,EAAI,CAAE,QAAO,MAAO,IAAM,EAC9B,CAAC,GAED,EAAe,GACb,EAAe,SAAY,CAC/B,GAAI,GAAgB,CAAC,EACnB,OAEF,EAAe,GACf,IAAM,EAAiB,EAAM,QAAQ,MAAQ,GAAe,KAAY,OAAI,EAAY,IACxF,MAAM,EAAS,CACb,YACA,iBACA,gBAAiB,EAAM,QACvB,SAAU,CACR,GAAG,EAAiB,EAAiB,MAAM,EAAG,EAAE,EAAI,EACpD,EAAM,OACR,CACF,CAAC,GAEH,OAAO,GAAuB,CAC5B,OAAQ,EACR,sBACA,SACF,CAAC,EAAE,YACD,IAAI,gBAAgB,CAClB,SAAS,CAAC,EAAO,EAAY,CAC3B,EAAW,QAAQ,CAAK,QAGpB,OAAM,EAAG,CACb,MAAM,EAAa,QAEf,MAAK,EAAG,CACZ,MAAM,EAAa,EAEvB,CAAC,CACH,EAIF,SAAS,EAA6B,EACpC,WACA,SACA,aACA,UACA,SACA,oBACC,CACD,IAAI,EAAY,EAAO,YAAY,IAAI,EAA0B,EACjE,GAAI,EAAkB,CACpB,IAAO,EAAS,GAAW,EAAU,IAAI,EACzC,EAAY,EACZ,EAAiB,CAAE,OAAQ,CAAQ,CAAC,EAEtC,GAAsB,CACpB,WACA,SACA,aACA,QAAS,OAAO,YACd,GAAe,EAAS,EAAyB,EAAE,QAAQ,CAC7D,EACA,OAAQ,EAAU,YAAY,IAAI,iBAAmB,CACvD,CAAC,EAIH,SAAS,EAAyB,CAAC,EAAQ,CACzC,IAAM,EAAS,EAAO,YAAY,IAAI,eAAiB,EAuDvD,OAtDA,EAAO,OAAO,eAAiB,QAAQ,EAAG,CACxC,IAAM,EAAS,KAAK,UAAU,EAC1B,EAAW,GACf,eAAe,CAAO,CAAC,EAAc,CACnC,IAAI,EACJ,EAAW,GACX,GAAI,CACF,GAAI,EACF,OAAQ,EAAO,EAAO,SAAW,KAAY,OAAI,EAAK,KAAK,CAAM,UAEnE,CACA,GAAI,CACF,EAAO,YAAY,EACnB,MAAO,EAAG,IAIhB,MAAO,MAKC,KAAI,EAAG,CACX,GAAI,EACF,MAAO,CAAE,KAAM,GAAM,MAAY,MAAE,EAErC,IAAQ,OAAM,SAAU,MAAM,EAAO,KAAK,EAC1C,GAAI,EAEF,OADA,MAAM,EAAQ,EAAI,EACX,CAAE,KAAM,GAAM,MAAY,MAAE,EAErC,MAAO,CAAE,KAAM,GAAO,OAAM,QAOxB,OAAM,EAAG,CAEb,OADA,MAAM,EAAQ,EAAI,EACX,CAAE,KAAM,GAAM,MAAY,MAAE,QAQ/B,MAAK,CAAC,EAAK,CAEf,MADA,MAAM,EAAQ,EAAI,EACZ,EAEV,GAEK,EAIT,eAAe,EAAa,EAC1B,SACA,WACC,CACD,IAAM,EAAS,EAAO,UAAU,EAChC,GAAI,CACF,MAAO,GAAM,CACX,IAAQ,QAAS,MAAM,EAAO,KAAK,EACnC,GAAI,EACF,OAEJ,MAAO,EAAO,CACd,GAAW,MAAgB,EAAQ,CAAK,SACxC,CACA,EAAO,YAAY,GAKvB,SAAS,EAAuB,EAAG,CACjC,IAAI,EACA,EAKJ,MAAO,CACL,QALc,IAAI,QAAQ,CAAC,EAAK,IAAQ,CACxC,EAAW,EACX,EAAS,EACV,EAGC,QAAS,EACT,QACF,EAIF,SAAS,EAAsB,EAAG,CAChC,IAAI,EAAqB,CAAC,EACtB,EAAa,KACb,EAAW,GACX,EAAmB,GAAwB,EACzC,EAAY,IAAM,CACtB,EAAW,GACX,EAAiB,QAAQ,EACzB,EAAmB,QAAQ,CAAC,IAAW,EAAO,OAAO,CAAC,EACtD,EAAqB,CAAC,EACtB,GAAc,MAAgB,EAAW,MAAM,GAE3C,EAAc,SAAY,CAC9B,GAAI,GAAY,EAAmB,SAAW,EAAG,CAC/C,GAAc,MAAgB,EAAW,MAAM,EAC/C,OAEF,GAAI,EAAmB,SAAW,EAGhC,OAFA,EAAmB,GAAwB,EAC3C,MAAM,EAAiB,QAChB,EAAY,EAErB,GAAI,CACF,IAAQ,QAAO,QAAS,MAAM,EAAmB,GAAG,KAAK,EACzD,GAAI,GAEF,GADA,EAAmB,MAAM,EACrB,EAAmB,OAAS,EAC9B,MAAM,EAAY,EACb,QAAI,EACT,GAAc,MAAgB,EAAW,MAAM,EAGjD,QAAc,MAAgB,EAAW,QAAQ,CAAK,EAExD,MAAO,EAAO,CACd,GAAc,MAAgB,EAAW,MAAM,CAAK,EACpD,EAAmB,MAAM,EACzB,EAAU,IAGd,MAAO,CACL,OAAQ,IAAI,eAAe,CACzB,KAAK,CAAC,EAAiB,CACrB,EAAa,GAEf,KAAM,OACA,OAAM,EAAG,CACb,QAAW,KAAU,EACnB,MAAM,EAAO,OAAO,EAEtB,EAAqB,CAAC,EACtB,EAAW,GAEf,CAAC,EACD,UAAW,CAAC,IAAgB,CAC1B,GAAI,EACF,MAAU,MAAM,iDAAiD,EAEnE,EAAmB,KAAK,EAAY,UAAU,CAAC,EAC/C,EAAiB,QAAQ,GAM3B,MAAO,IAAM,CAGX,GAFA,EAAW,GACX,EAAiB,QAAQ,EACrB,EAAmB,SAAW,EAChC,GAAc,MAAgB,EAAW,MAAM,GAOnD,WACF,EAIF,IAAI,GAAiB,KAAM,CACzB,WAAW,EAAG,CACZ,KAAK,OAAS,CAAE,KAAM,SAAU,EAChC,KAAK,SAAgB,OACrB,KAAK,QAAe,UAElB,QAAO,EAAG,CACZ,GAAI,KAAK,SACP,OAAO,KAAK,SAWd,OATA,KAAK,SAAW,IAAI,QAAQ,CAAC,EAAU,IAAW,CAChD,GAAI,KAAK,OAAO,OAAS,WACvB,EAAS,KAAK,OAAO,KAAK,EACrB,QAAI,KAAK,OAAO,OAAS,WAC9B,EAAO,KAAK,OAAO,KAAK,EAE1B,KAAK,SAAW,EAChB,KAAK,QAAU,EAChB,EACM,KAAK,SAEd,OAAO,CAAC,EAAO,CACb,IAAI,EAEJ,GADA,KAAK,OAAS,CAAE,KAAM,WAAY,OAAM,EACpC,KAAK,UACN,EAAO,KAAK,WAAa,MAAgB,EAAK,KAAK,KAAM,CAAK,EAGnE,MAAM,CAAC,EAAO,CACZ,IAAI,EAEJ,GADA,KAAK,OAAS,CAAE,KAAM,WAAY,OAAM,EACpC,KAAK,UACN,EAAO,KAAK,UAAY,MAAgB,EAAK,KAAK,KAAM,CAAK,EAGpE,EAGA,SAAS,EAAG,EAAG,CACb,IAAI,EAAM,EACV,OAAQ,GAAM,EAAO,YAAc,KAAY,OAAI,WAAW,cAAgB,KAAY,OAAI,EAAK,IAAI,IAAM,KAAO,EAAK,KAAK,IAAI,EASpI,SAAS,EAAsB,EAC7B,QACA,kBACA,SACA,YACA,SACA,WACA,cACA,iBACA,wBACC,CACD,IAAI,EAA8B,KAC5B,EAAoB,IAAI,eAAe,CAC3C,KAAK,CAAC,EAAY,CAChB,EAA8B,EAElC,CAAC,EACK,EAAyC,IAAI,IAC7C,EAA6B,IAAI,IACnC,EAAW,GACX,EAAmB,OACvB,SAAS,CAAY,EAAG,CACtB,GAAI,GAAY,EAAuB,OAAS,EAAG,CACjD,GAAI,GAAe,KACjB,EAA4B,QAAQ,CAAW,EAEjD,EAA4B,MAAM,GAGtC,IAAM,EAAgB,IAAI,gBAAgB,MAClC,UAAS,CAAC,EAAO,EAAY,CACjC,IAAM,EAAY,EAAM,KACxB,OAAQ,OACD,mBACA,iBACA,iBACA,eACA,sBACA,sBACA,oBACA,uBACA,uBACA,qBACA,aACA,wBACA,YACA,MAAO,CACV,EAAW,QAAQ,CAAK,EACxB,KACF,KACK,OAAQ,CACX,EAAW,QAAQ,CACjB,KAAM,OACN,KAAM,IAAI,GAA6B,CACrC,KAAM,EAAM,KACZ,UAAW,EAAM,SACnB,CAAC,CACH,CAAC,EACD,KACF,KACK,SAAU,CACb,EAAc,CACZ,KAAM,SACN,aAAc,EAAM,aACpB,MAAO,EAAM,MACb,iBAAkB,EAAM,gBAC1B,EACA,KACF,KACK,YAAa,CAChB,GAAI,CACF,IAAM,EAAW,MAAM,GAAc,CACnC,SAAU,EACV,QACA,iBACA,SACA,UACF,CAAC,EAED,GADA,EAAW,QAAQ,CAAQ,EACvB,EAAS,QAAS,CACpB,EAA4B,QAAQ,CAClC,KAAM,aACN,WAAY,EAAS,WACrB,SAAU,EAAS,SACnB,MAAO,EAAS,MAChB,MAAO,GAAiB,EAAS,KAAK,EACtC,QAAS,EACX,CAAC,EACD,MAEF,IAAM,EAAQ,EAAM,EAAS,UAE7B,GADA,EAAW,IAAI,EAAS,WAAY,EAAS,KAAK,EAC9C,EAAM,kBAAoB,KAC5B,MAAM,EAAM,iBAAiB,CAC3B,MAAO,EAAS,MAChB,WAAY,EAAS,WACrB,WACA,cACA,sBACF,CAAC,EAEH,GAAI,EAAM,SAAW,MAAQ,EAAS,mBAAqB,GAAM,CAC/D,IAAM,EAAkB,GAAW,EACnC,EAAuB,IAAI,CAAe,EAC1C,GAAW,CACT,KAAM,cACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,cACb,WACF,CAAC,EACD,mBAAoB,EAAS,SAC7B,iBAAkB,EAAS,WAC3B,mBAAoB,CAClB,OAAQ,IAAM,KAAK,UAAU,EAAS,KAAK,CAC7C,CACF,CACF,CAAC,EACD,SACA,GAAI,MAAO,IAAS,CAClB,IAAI,EACJ,GAAI,CACF,IAAM,EAAS,GAAa,CAC1B,QAAS,EAAM,QAAQ,KAAK,CAAK,EACjC,MAAO,EAAS,MAChB,QAAS,CACP,WAAY,EAAS,WACrB,WACA,cACA,sBACF,CACF,CAAC,EACD,cAAiB,KAAQ,EASvB,GARA,EAA4B,QAAQ,IAC/B,EACH,KAAM,cACN,OAAQ,EAAK,UACV,EAAK,OAAS,eAAiB,CAChC,YAAa,EACf,CACF,CAAC,EACG,EAAK,OAAS,QAChB,EAAS,EAAK,OAGlB,MAAO,EAAO,CACd,GAAkB,EAAM,CAAK,EAC7B,EAA4B,QAAQ,IAC/B,EACH,KAAM,aACN,OACF,CAAC,EACD,EAAuB,OAAO,CAAe,EAC7C,EAAa,EACb,OAEF,EAAuB,OAAO,CAAe,EAC7C,EAAa,EACb,GAAI,CACF,EAAK,cACH,EAA0B,CACxB,YACA,WAAY,CACV,qBAAsB,CACpB,OAAQ,IAAM,KAAK,UAAU,CAAM,CACrC,CACF,CACF,CAAC,CACH,EACA,MAAO,EAAS,GAGtB,CAAC,GAEH,MAAO,EAAO,CACd,EAA4B,QAAQ,CAAE,KAAM,QAAS,OAAM,CAAC,EAE9D,KACF,KACK,cAAe,CAClB,IAAM,EAAW,EAAM,SACvB,GAAI,EAAM,QACR,EAA4B,QAAQ,CAClC,KAAM,aACN,WAAY,EAAM,WAClB,WACA,MAAO,EAAW,IAAI,EAAM,UAAU,EACtC,iBAAkB,EAAM,iBACxB,MAAO,EAAM,MACf,CAAC,EAED,OAAW,QAAQ,CACjB,KAAM,cACN,WAAY,EAAM,WAClB,WACA,MAAO,EAAW,IAAI,EAAM,UAAU,EACtC,OAAQ,EAAM,OACd,iBAAkB,EAAM,gBAC1B,CAAC,EAEH,KACF,SAGE,MAAU,MAAM,yBADS,GACkC,IAIjE,KAAK,EAAG,CACN,EAAW,GACX,EAAa,EAEjB,CAAC,EACD,OAAO,IAAI,eAAe,MAClB,MAAK,CAAC,EAAY,CACtB,OAAO,QAAQ,IAAI,CACjB,EAAgB,YAAY,CAAa,EAAE,OACzC,IAAI,eAAe,CACjB,KAAK,CAAC,EAAO,CACX,EAAW,QAAQ,CAAK,GAE1B,KAAK,EAAG,EAEV,CAAC,CACH,EACA,EAAkB,OAChB,IAAI,eAAe,CACjB,KAAK,CAAC,EAAO,CACX,EAAW,QAAQ,CAAK,GAE1B,KAAK,EAAG,CACN,EAAW,MAAM,EAErB,CAAC,CACH,CACF,CAAC,EAEL,CAAC,EAIH,IAAI,GAAsB,GAAmB,CAC3C,OAAQ,QACR,KAAM,EACR,CAAC,EACD,SAAS,EAAU,EACjB,QACA,QACA,aACA,SACA,SACA,WACA,aACA,cACA,UACA,WAAW,GAAY,CAAC,EACxB,oBAAqB,EACrB,uBAAwB,EACxB,cACA,kBACA,2BACA,cAAc,EACd,4BAA6B,EAC7B,uBAAwB,EACxB,sBAAuB,EACvB,mBAAmB,GACnB,UACA,UAAU,EAAG,WAAY,CACvB,QAAQ,MAAM,CAAK,GAErB,WACA,UACA,eACA,uBACA,WACE,IAAK,EAAO,GACZ,WAAY,EAAc,GAC1B,cAAc,IAAsB,IAAI,MACtC,CAAC,KACF,GACF,CACD,OAAO,IAAI,GAAwB,CACjC,MAAO,GAAqB,CAAK,EACjC,YACA,UACA,WACA,aACA,cACA,SACA,SACA,WACA,QACA,aACA,WAAY,GAAQ,CAAS,EAC7B,cACA,iBACA,eAAgB,GAAQ,CAAQ,EAChC,SACA,kBACA,cACA,mBACA,UACA,UACA,WACA,UACA,eACA,IAAK,EACL,cACA,WAAY,EACZ,uBACA,SAAU,CACZ,CAAC,EAEH,SAAS,EAA2B,CAAC,EAAQ,CAC3C,GAAI,CAAC,EACH,OAAO,IAAI,gBAAgB,CACzB,SAAS,CAAC,EAAO,EAAY,CAC3B,EAAW,QAAQ,CAAE,KAAM,EAAO,cAAoB,MAAE,CAAC,EAE7D,CAAC,EAEH,IAAI,EAAwB,OACxB,EAAQ,GACR,EAAY,GACZ,EAAoB,GACxB,SAAS,CAAgB,EACvB,aACA,gBAAqB,QACpB,CACD,EAAW,QAAQ,CACjB,KAAM,CACJ,KAAM,aACN,GAAI,EACJ,KAAM,CACR,EACA,eACF,CAAC,EACD,EAAY,GAEd,OAAO,IAAI,gBAAgB,MACnB,UAAS,CAAC,EAAO,EAAY,CACjC,GAAI,EAAM,OAAS,eAAiB,EAAU,OAAS,EACrD,EAAiB,CAAE,YAAW,CAAC,EAEjC,GAAI,EAAM,OAAS,cAAgB,EAAM,OAAS,cAAgB,EAAM,OAAS,WAAY,CAC3F,EAAW,QAAQ,CAAE,KAAM,EAAO,cAAoB,MAAE,CAAC,EACzD,OAEF,GAAI,GAAoB,KACtB,EAAmB,EAAM,GACpB,QAAI,EAAM,KAAO,EAAkB,CACxC,EAAW,QAAQ,CAAE,KAAM,EAAO,cAAoB,MAAE,CAAC,EACzD,OAEF,GAAI,EAAM,OAAS,aAAc,CAC/B,EAAW,QAAQ,CAAE,KAAM,EAAO,cAAoB,MAAE,CAAC,EACzD,OAEF,GAAI,EAAM,OAAS,WAAY,CAC7B,GAAI,EAAU,OAAS,EACrB,EAAiB,CAAE,YAAW,CAAC,EAEjC,EAAW,QAAQ,CAAE,KAAM,EAAO,cAAoB,MAAE,CAAC,EACzD,OAEF,GAAS,EAAM,KACf,GAAa,EAAM,KACnB,IAAM,EAAS,MAAM,EAAO,aAAa,CAAE,KAAM,CAAM,CAAC,EACxD,GAAI,GAAU,KAAM,CAClB,IAAM,EAAc,KAAK,UAAU,EAAO,OAAO,EACjD,GAAI,IAAgB,EAClB,EAAiB,CAAE,aAAY,cAAe,EAAO,OAAQ,CAAC,EAC9D,EAAoB,GAI5B,CAAC,EAEH,IAAI,GAA0B,KAAM,CAClC,WAAW,EACT,QACA,YACA,UACA,WACA,WAAY,EACZ,cACA,SACA,SACA,WACA,QACA,aACA,aACA,cACA,iBACA,iBACA,SACA,kBACA,cACA,mBACA,IAAK,EACL,cACA,WAAY,EACZ,UACA,UACA,WACA,UACA,eACA,uBACA,SAAU,GACT,CACD,KAAK,YAAc,IAAI,GACvB,KAAK,cAAgB,IAAI,GACzB,KAAK,OAAS,IAAI,GAClB,KAAK,OAAS,EACd,KAAK,iBAAmB,EACxB,KAAK,MAAQ,EACb,IAAI,EACA,EAAkB,CAAC,EACjB,GAA2B,CAAC,EAC9B,EAA4B,OAC5B,GAA0B,OAC1B,GAAkB,CAAC,EACnB,GAAmB,CAAC,EAClB,EAAgB,CAAC,EACnB,GACA,GAAoB,CAAC,EACrB,GAAyB,CAAC,EACxB,EAAiB,IAAI,gBAAgB,MACnC,UAAS,CAAC,EAAO,EAAY,CACjC,IAAI,EAAM,EAAI,GAAI,GAClB,EAAW,QAAQ,CAAK,EACxB,IAAQ,QAAS,EACjB,GAAI,EAAK,OAAS,cAAgB,EAAK,OAAS,mBAAqB,EAAK,OAAS,UAAY,EAAK,OAAS,aAAe,EAAK,OAAS,eAAiB,EAAK,OAAS,oBAAsB,EAAK,OAAS,oBAAsB,EAAK,OAAS,MAC/O,MAAO,GAAW,KAAY,OAAI,EAAQ,CAAE,MAAO,CAAK,CAAC,GAE3D,GAAI,EAAK,OAAS,QAChB,MAAM,EAAQ,CAAE,MAAO,GAAiB,EAAK,KAAK,CAAE,CAAC,EAEvD,GAAI,EAAK,OAAS,aAChB,GAAkB,EAAK,IAAM,CAC3B,KAAM,OACN,KAAM,GACN,iBAAkB,EAAK,gBACzB,EACA,EAAgB,KAAK,GAAkB,EAAK,GAAG,EAEjD,GAAI,EAAK,OAAS,aAAc,CAC9B,IAAM,EAAa,GAAkB,EAAK,IAC1C,GAAI,GAAc,KAAM,CACtB,EAAW,QAAQ,CACjB,KAAM,CACJ,KAAM,QACN,MAAO,aAAa,EAAK,cAC3B,EACA,cAAoB,MACtB,CAAC,EACD,OAEF,EAAW,MAAQ,EAAK,KACxB,EAAW,kBAAoB,EAAO,EAAK,mBAAqB,KAAO,EAAO,EAAW,iBAE3F,GAAI,EAAK,OAAS,WAAY,CAC5B,IAAM,EAAa,GAAkB,EAAK,IAC1C,GAAI,GAAc,KAAM,CACtB,EAAW,QAAQ,CACjB,KAAM,CACJ,KAAM,QACN,MAAO,aAAa,EAAK,cAC3B,EACA,cAAoB,MACtB,CAAC,EACD,OAEF,EAAW,kBAAoB,EAAK,EAAK,mBAAqB,KAAO,EAAK,EAAW,iBACrF,OAAO,GAAkB,EAAK,IAEhC,GAAI,EAAK,OAAS,kBAChB,GAAuB,EAAK,IAAM,CAChC,KAAM,YACN,KAAM,GACN,iBAAkB,EAAK,gBACzB,EACA,EAAgB,KAAK,GAAuB,EAAK,GAAG,EAEtD,GAAI,EAAK,OAAS,kBAAmB,CACnC,IAAM,EAAkB,GAAuB,EAAK,IACpD,GAAI,GAAmB,KAAM,CAC3B,EAAW,QAAQ,CACjB,KAAM,CACJ,KAAM,QACN,MAAO,kBAAkB,EAAK,cAChC,EACA,cAAoB,MACtB,CAAC,EACD,OAEF,EAAgB,MAAQ,EAAK,KAC7B,EAAgB,kBAAoB,GAAK,EAAK,mBAAqB,KAAO,GAAK,EAAgB,iBAEjG,GAAI,EAAK,OAAS,gBAAiB,CACjC,IAAM,EAAkB,GAAuB,EAAK,IACpD,GAAI,GAAmB,KAAM,CAC3B,EAAW,QAAQ,CACjB,KAAM,CACJ,KAAM,QACN,MAAO,kBAAkB,EAAK,cAChC,EACA,cAAoB,MACtB,CAAC,EACD,OAEF,EAAgB,kBAAoB,GAAK,EAAK,mBAAqB,KAAO,GAAK,EAAgB,iBAC/F,OAAO,GAAuB,EAAK,IAErC,GAAI,EAAK,OAAS,OAChB,EAAgB,KAAK,CAAE,KAAM,OAAQ,KAAM,EAAK,IAAK,CAAC,EAExD,GAAI,EAAK,OAAS,SAChB,EAAgB,KAAK,CAAI,EAE3B,GAAI,EAAK,OAAS,YAChB,EAAgB,KAAK,CAAI,EAE3B,GAAI,EAAK,OAAS,eAAiB,CAAC,EAAK,YACvC,EAAgB,KAAK,CAAI,EAE3B,GAAI,EAAK,OAAS,aAChB,EAAgB,KAAK,CAAI,EAE3B,GAAI,EAAK,OAAS,aAChB,GAAkB,EAAK,QACvB,GAAmB,EAAK,SAE1B,GAAI,EAAK,OAAS,cAAe,CAC/B,IAAM,EAAe,GAAmB,CACtC,QAAS,EACT,OACF,CAAC,EACK,GAAoB,IAAI,GAAkB,CAC9C,QAAS,EACT,aAAc,EAAK,aACnB,MAAO,EAAK,MACZ,SAAU,GACV,QAAS,GACT,SAAU,IACL,EAAK,SACR,SAAU,CAAC,GAAG,GAA0B,GAAG,CAAY,CACzD,EACA,iBAAkB,EAAK,gBACzB,CAAC,EACD,MAAO,GAAgB,KAAY,OAAI,EAAa,EAAiB,GACrE,GAAY,EAAgB,EAC5B,EAAc,KAAK,EAAiB,EACpC,EAAkB,CAAC,EACnB,GAAyB,CAAC,EAC1B,GAAoB,CAAC,EACrB,GAAyB,KAAK,GAAG,CAAY,EAC7C,EAAW,QAAQ,EAErB,GAAI,EAAK,OAAS,SAChB,GAAqB,EAAK,WAC1B,EAAuB,EAAK,mBAG1B,MAAK,CAAC,EAAY,CACtB,GAAI,CACF,GAAI,EAAc,SAAW,EAAG,CAC9B,IAAM,GAAQ,IAAI,GAAuB,CACvC,QAAS,mDACX,CAAC,EACD,EAAK,cAAc,OAAO,EAAK,EAC/B,EAAK,YAAY,OAAO,EAAK,EAC7B,EAAK,OAAO,OAAO,EAAK,EACxB,OAEF,IAAM,EAAe,GAAwB,KAAO,EAAuB,UACrE,EAAa,IAAsB,KAAO,GAAqB,CACnE,YAAkB,OAClB,aAAmB,OACnB,YAAkB,MACpB,EACA,EAAK,cAAc,QAAQ,CAAY,EACvC,EAAK,YAAY,QAAQ,CAAU,EACnC,EAAK,OAAO,QAAQ,CAAa,EACjC,IAAM,EAAY,EAAc,EAAc,OAAS,GACvD,MAAO,GAAY,KAAY,OAAI,EAAS,CAC1C,eACA,aACA,MAAO,EAAU,MACjB,QAAS,EAAU,QACnB,KAAM,EAAU,KAChB,cAAe,EAAU,cACzB,UAAW,EAAU,UACrB,MAAO,EAAU,MACjB,QAAS,EAAU,QACnB,UAAW,EAAU,UACrB,gBAAiB,EAAU,gBAC3B,iBAAkB,EAAU,iBAC5B,YAAa,EAAU,YACvB,kBAAmB,EAAU,kBAC7B,mBAAoB,EAAU,mBAC9B,QAAS,EAAU,QACnB,SAAU,EAAU,SACpB,SAAU,EAAU,SACpB,iBAAkB,EAAU,iBAC5B,MAAO,CACT,CAAC,GACD,GAAS,cACP,EAA0B,CACxB,YACA,WAAY,CACV,2BAA4B,EAC5B,mBAAoB,CAAE,OAAQ,IAAM,EAAU,IAAK,EACnD,wBAAyB,CACvB,OAAQ,IAAM,CACZ,IAAI,GACJ,QAAS,GAAO,EAAU,YAAc,KAAY,OAAI,GAAK,QAAU,KAAK,UAAU,EAAU,SAAS,EAAS,OAEtH,EACA,+BAAgC,KAAK,UACnC,EAAU,gBACZ,EACA,uBAAwB,EAAW,YACnC,wBAAyB,EAAW,aACpC,uBAAwB,EAAW,YACnC,2BAA4B,EAAW,gBACvC,6BAA8B,EAAW,iBAC3C,CACF,CAAC,CACH,EACA,MAAO,EAAO,CACd,EAAW,MAAM,CAAK,SACtB,CACA,GAAS,IAAI,GAGnB,CAAC,EACK,GAAmB,GAAuB,EAChD,KAAK,UAAY,GAAiB,UAClC,KAAK,YAAc,GAAiB,MACpC,IAAM,EAAS,GAAiB,OAAO,UAAU,EAC7C,GAAS,IAAI,eAAe,MACxB,MAAK,CAAC,EAAY,CACtB,EAAW,QAAQ,CAAE,KAAM,OAAQ,CAAC,QAEhC,KAAI,CAAC,EAAY,CACrB,SAAS,CAAK,EAAG,CACf,GAAW,MAAgB,EAAQ,CAAE,MAAO,CAAc,CAAC,EAC3D,EAAW,QAAQ,CAAE,KAAM,OAAQ,CAAC,EACpC,EAAW,MAAM,EAEnB,GAAI,CACF,IAAQ,OAAM,SAAU,MAAM,EAAO,KAAK,EAC1C,GAAI,EAAM,CACR,EAAW,MAAM,EACjB,OAEF,GAAI,GAAe,KAAY,OAAI,EAAY,QAAS,CACtD,EAAM,EACN,OAEF,EAAW,QAAQ,CAAK,EACxB,MAAO,EAAO,CACd,GAAI,GAAc,CAAK,IAAM,GAAe,KAAY,OAAI,EAAY,SACtE,EAAM,EAEN,OAAW,MAAM,CAAK,IAI5B,MAAM,CAAC,EAAQ,CACb,OAAO,GAAiB,OAAO,OAAO,CAAM,EAEhD,CAAC,EACD,QAAW,KAAa,EACtB,GAAS,GAAO,YACd,EAAU,CACR,QACA,UAAU,EAAG,CACX,GAAiB,UAAU,EAE/B,CAAC,CACH,EAEF,KAAK,WAAa,GAAO,YAAY,GAA4B,CAAM,CAAC,EAAE,YAAY,CAAc,EACpG,IAAQ,cAAY,UAAU,GAAe,CAC3C,WAAY,EACZ,aACF,CAAC,EACK,EAAS,GAAU,CAAS,EAC5B,EAAe,GAAoB,CAAQ,EAC3C,GAA0B,GAA2B,CACzD,QACA,YACA,UACA,SAAU,IAAK,EAAc,aAAW,CAC1C,CAAC,EACK,EAAO,KACb,GAAW,CACT,KAAM,gBACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CAAE,YAAa,gBAAiB,WAAU,CAAC,KACjE,GAEH,YAAa,CACX,MAAO,IAAM,KAAK,UAAU,CAAE,SAAQ,SAAQ,UAAS,CAAC,CAC1D,CACF,CACF,CAAC,EACD,SACA,YAAa,GACb,GAAI,MAAO,IAAgB,CACzB,GAAW,EACX,eAAe,CAAU,EACvB,cACA,mBACA,UACC,CACD,IAAI,GAAM,EAAI,EAAI,GAAI,EACtB,IAAM,GAAoB,EAAK,iBAC/B,EAAa,IAAI,GACjB,IAAM,GAAgB,MAAM,GAAkB,CAC5C,SACA,SACA,UACF,CAAC,EACK,GAAoB,CACxB,GAAG,GAAc,SACjB,GAAG,CACL,EACM,GAAoB,MAAO,GAAe,KAAY,OAAI,EAAY,CAC1E,QACA,MAAO,EACP,WAAY,EAAc,OAC1B,SAAU,EACZ,CAAC,GACK,GAAY,IACf,GAAO,IAAqB,KAAY,OAAI,GAAkB,QAAU,KAAO,GAAO,CACzF,EACM,GAAiB,MAAM,GAA6B,CACxD,OAAQ,CACN,QAAS,EAAK,IAAqB,KAAY,OAAI,GAAkB,SAAW,KAAO,EAAK,GAAc,OAC1G,UAAW,EAAK,IAAqB,KAAY,OAAI,GAAkB,WAAa,KAAO,EAAK,EAClG,EACA,cAAe,MAAM,GAAU,cAC/B,SAAU,CACZ,CAAC,GACO,WAAY,GAAgB,MAAO,IAAc,GAA0B,CACjF,QACA,YAAa,GAAK,IAAqB,KAAY,OAAI,GAAkB,aAAe,KAAO,GAAK,EACpG,aAAc,EAAK,IAAqB,KAAY,OAAI,GAAkB,cAAgB,KAAO,EAAK,CACxG,CAAC,GAEC,QAAU,OAAQ,GAAS,YAAU,YACrC,gBACA,qBACE,MAAM,GACR,IAAM,GAAW,CACf,KAAM,yBACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,yBACb,WACF,CAAC,KACE,GAEH,oBAAqB,GAAU,SAC/B,cAAe,GAAU,QAEzB,qBAAsB,CACpB,MAAO,IAAM,GAAsB,EAAc,CACnD,EACA,kBAAmB,CAEjB,MAAO,IAAM,IAAa,KAAY,OAAI,GAAU,IAAI,CAAC,IAAU,KAAK,UAAU,CAAK,CAAC,CAC1F,EACA,uBAAwB,CACtB,MAAO,IAAM,IAAkB,KAAO,KAAK,UAAU,EAAc,EAAS,MAC9E,EAEA,gBAAiB,GAAU,SAC3B,uBAAwB,GAAU,QAClC,mCAAoC,EAAa,iBACjD,4BAA6B,EAAa,gBAC1C,kCAAmC,EAAa,gBAChD,gCAAiC,EAAa,cAC9C,6BAA8B,EAAa,YAC3C,uBAAwB,EAAa,KACrC,uBAAwB,EAAa,IACvC,CACF,CAAC,EACD,SACA,YAAa,GACb,GAAI,MAAO,IAAkB,CAC3B,MAAO,CACL,iBAAkB,EAAK,EAEvB,aAAc,EACd,OAAQ,MAAM,GAAU,SAAS,IAC5B,EACH,MAAO,GACP,WAAY,GACZ,eAAgB,GAAU,KAAY,OAAI,EAAO,eACjD,OAAQ,GACR,kBACA,cACA,UACA,iBAAkB,EACpB,CAAC,CACH,EAEJ,CAAC,CACH,EACM,GAAwB,GAAuB,CACnD,QACA,gBAAiB,GACjB,SACA,YACA,SACA,SAAU,GACV,iBACA,cACA,sBACF,CAAC,EACK,GAAc,IAAW,KAAO,GAAU,CAAC,EAC3C,GAAgB,CAAC,EACjB,GAAkB,CAAC,EACrB,GACE,GAA0B,CAAC,EAC7B,GAAmB,UACnB,GAAY,CACd,YAAkB,OAClB,aAAmB,OACnB,YAAkB,MACpB,EACI,GACA,GAAiB,GACjB,GAAe,CACjB,GAAI,EAAY,EAChB,UAAW,EAAY,EACvB,QAAS,EAAM,OACjB,EACI,GAAa,GACjB,EAAK,UACH,GAAsB,YACpB,IAAI,gBAAgB,MACZ,UAAS,CAAC,EAAO,GAAY,CACjC,IAAI,GAAM,GAAK,GAAK,GACpB,GAAI,EAAM,OAAS,eAAgB,CACjC,GAAW,EAAM,SACjB,OAEF,GAAI,GAAgB,CAClB,IAAM,GAAiB,EAAK,EAAI,GAChC,GAAiB,GACjB,GAAa,SAAS,uBAAwB,CAC5C,6BAA8B,EAChC,CAAC,EACD,GAAa,cAAc,CACzB,6BAA8B,EAChC,CAAC,EACD,GAAW,QAAQ,CACjB,KAAM,aACN,QAAS,GACT,SAAU,IAAY,KAAO,GAAW,CAAC,CAC3C,CAAC,EAEH,IAAM,GAAY,EAAM,KACxB,OAAQ,QACD,iBACA,WAAY,CACf,GAAW,QAAQ,CAAK,EACxB,KACF,KACK,aAAc,CACjB,GAAI,EAAM,MAAM,OAAS,EACvB,GAAW,QAAQ,CACjB,KAAM,aACN,GAAI,EAAM,GACV,KAAM,EAAM,MACZ,iBAAkB,EAAM,gBAC1B,CAAC,EACD,IAAc,EAAM,MAEtB,KACF,KACK,sBACA,gBAAiB,CACpB,GAAW,QAAQ,CAAK,EACxB,KACF,KACK,kBAAmB,CACtB,GAAW,QAAQ,CACjB,KAAM,kBACN,GAAI,EAAM,GACV,KAAM,EAAM,MACZ,iBAAkB,EAAM,gBAC1B,CAAC,EACD,KACF,KACK,YAAa,CAChB,GAAW,QAAQ,CAAK,EACxB,GAAc,KAAK,CAAK,EACxB,KACF,KACK,cAAe,CAElB,GADA,GAAW,QAAQ,CAAK,EACpB,CAAC,EAAM,YACT,GAAgB,KAAK,CAAK,EAE5B,KACF,KACK,aAAc,CACjB,GAAW,QAAQ,CAAK,EACxB,GAAgB,KAAK,CAAK,EAC1B,KACF,KACK,oBAAqB,CACxB,GAAe,CACb,IAAK,GAAO,EAAM,KAAO,KAAO,GAAO,GAAa,GACpD,WAAY,GAAM,EAAM,YAAc,KAAO,GAAM,GAAa,UAChE,SAAU,GAAM,EAAM,UAAY,KAAO,GAAM,GAAa,OAC9D,EACA,KACF,KACK,SAAU,CACb,GAAY,EAAM,MAClB,GAAmB,EAAM,aACzB,GAAuB,EAAM,iBAC7B,IAAM,GAAa,EAAK,EAAI,GAC5B,GAAa,SAAS,kBAAkB,EACxC,GAAa,cAAc,CACzB,yBAA0B,GAC1B,uCAAwC,OAAQ,GAAM,GAAU,eAAiB,KAAO,GAAM,GAAK,EACrG,CAAC,EACD,KACF,KACK,OAAQ,CACX,GAAW,QAAQ,CAAK,EACxB,KACF,KACK,SAAU,CACb,GAAW,QAAQ,CAAK,EACxB,KACF,KACK,mBAAoB,CACvB,GAAwB,EAAM,IAAM,EAAM,SAC1C,IAAM,GAAQ,GAAS,KAAY,OAAI,EAAM,EAAM,UACnD,IAAK,IAAS,KAAY,OAAI,GAAM,eAAiB,KACnD,MAAM,GAAM,aAAa,CACvB,WAAY,EAAM,GAClB,SAAU,GACV,cACA,sBACF,CAAC,EAEH,GAAW,QAAQ,IACd,EACH,SAAU,IAAS,KAAY,OAAI,GAAM,QAAU,SACrD,CAAC,EACD,KACF,KACK,iBAAkB,CACrB,OAAO,GAAwB,EAAM,IACrC,GAAW,QAAQ,CAAK,EACxB,KACF,KACK,mBAAoB,CACvB,IAAM,GAAW,GAAwB,EAAM,IACzC,GAAQ,GAAS,KAAY,OAAI,EAAM,IAC7C,IAAK,IAAS,KAAY,OAAI,GAAM,eAAiB,KACnD,MAAM,GAAM,aAAa,CACvB,eAAgB,EAAM,MACtB,WAAY,EAAM,GAClB,SAAU,GACV,cACA,sBACF,CAAC,EAEH,GAAW,QAAQ,CAAK,EACxB,KACF,KACK,QAAS,CACZ,GAAW,QAAQ,CAAK,EACxB,GAAmB,QACnB,KACF,KACK,MAAO,CACV,GAAI,GACF,GAAW,QAAQ,CAAK,EAE1B,KACF,SAGE,MAAU,MAAM,uBADQ,IACgC,SAKxD,MAAK,CAAC,EAAY,CACtB,IAAM,GAAoB,GAAc,OAAS,EAAI,KAAK,UAAU,EAAa,EAAS,OAC1F,GAAI,CACF,GAAa,cACX,EAA0B,CACxB,YACA,WAAY,CACV,2BAA4B,GAC5B,mBAAoB,CAClB,OAAQ,IAAM,EAChB,EACA,wBAAyB,CACvB,OAAQ,IAAM,EAChB,EACA,iBAAkB,GAAa,GAC/B,oBAAqB,GAAa,QAClC,wBAAyB,GAAa,UAAU,YAAY,EAC5D,+BAAgC,KAAK,UAAU,EAAoB,EACnE,uBAAwB,GAAU,YAClC,wBAAyB,GAAU,aACnC,uBAAwB,GAAU,YAClC,2BAA4B,GAAU,gBACtC,6BAA8B,GAAU,kBAExC,iCAAkC,CAAC,EAAgB,EACnD,qBAAsB,GAAa,GACnC,wBAAyB,GAAa,QACtC,4BAA6B,GAAU,YACvC,6BAA8B,GAAU,YAC1C,CACF,CAAC,CACH,EACA,MAAO,GAAO,SACd,CACA,GAAa,IAAI,EAEnB,EAAW,QAAQ,CACjB,KAAM,cACN,aAAc,GACd,MAAO,GACP,iBAAkB,GAClB,SAAU,IACL,GACH,QAAS,IAAY,KAAY,OAAI,GAAS,OAChD,CACF,CAAC,EACD,IAAM,GAAgB,GAAsB,GAAO,EAAS,EAC5D,MAAM,EAAW,QACjB,IAAM,GAAkB,GAAc,OACpC,CAAC,KAAa,GAAS,mBAAqB,EAC9C,EACM,GAAoB,GAAgB,OACxC,CAAC,KAAe,GAAW,mBAAqB,EAClD,EACA,GAAI,GAAgB,OAAS,GAC7B,GAAkB,SAAW,GAAgB,QAC7C,CAAC,MAAM,GAAmB,CACxB,iBACA,MAAO,CACT,CAAC,EAAG,CACF,EAAiB,KACf,GAAG,GAAmB,CACpB,QAEE,EAAc,EAAc,OAAS,GAAG,QAE1C,OACF,CAAC,CACH,EACA,GAAI,CACF,MAAM,EAAW,CACf,YAAa,EAAc,EAC3B,mBACA,MAAO,EACT,CAAC,EACD,MAAO,GAAO,CACd,EAAW,QAAQ,CACjB,KAAM,QACN,QACF,CAAC,EACD,EAAK,YAAY,GAGnB,OAAW,QAAQ,CACjB,KAAM,SACN,aAAc,GACd,WAAY,EACd,CAAC,EACD,EAAK,YAAY,EAGvB,CAAC,CACH,CACF,EAEF,MAAM,EAAW,CACf,YAAa,EACb,iBAAkB,CAAC,EACnB,MAAO,CACL,YAAkB,OAClB,aAAmB,OACnB,YAAkB,MACpB,CACF,CAAC,EAEL,CAAC,EAAE,MAAM,CAAC,IAAU,CAClB,EAAK,UACH,IAAI,eAAe,CACjB,KAAK,CAAC,EAAY,CAChB,EAAW,QAAQ,CAAE,KAAM,QAAS,OAAM,CAAC,EAC3C,EAAW,MAAM,EAErB,CAAC,CACH,EACA,EAAK,YAAY,EAClB,KAEC,MAAK,EAAG,CAEV,OADA,KAAK,cAAc,EACZ,KAAK,OAAO,WAEjB,UAAS,EAAG,CACd,OAAO,KAAK,MAAM,KAAK,CAAC,IAAU,EAAM,EAAM,OAAS,EAAE,KAEvD,QAAO,EAAG,CACZ,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,OAAO,KAE/C,SAAQ,EAAG,CACb,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,QAAQ,KAEhD,iBAAgB,EAAG,CACrB,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,gBAAgB,KAExD,KAAI,EAAG,CACT,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,IAAI,KAE5C,cAAa,EAAG,CAClB,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,aAAa,KAErD,UAAS,EAAG,CACd,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,SAAS,KAEjD,QAAO,EAAG,CACZ,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,OAAO,KAE/C,MAAK,EAAG,CACV,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,KAAK,KAE7C,UAAS,EAAG,CACd,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,SAAS,KAEjD,gBAAe,EAAG,CACpB,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,eAAe,KAEvD,iBAAgB,EAAG,CACrB,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,gBAAgB,KAExD,YAAW,EAAG,CAChB,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,WAAW,KAEnD,kBAAiB,EAAG,CACtB,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,iBAAiB,KAEzD,mBAAkB,EAAG,CACvB,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,kBAAkB,KAE1D,MAAK,EAAG,CACV,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,KAAK,KAE7C,QAAO,EAAG,CACZ,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,OAAO,KAE/C,SAAQ,EAAG,CACb,OAAO,KAAK,UAAU,KAAK,CAAC,IAAS,EAAK,QAAQ,KAEhD,WAAU,EAAG,CAEf,OADA,KAAK,cAAc,EACZ,KAAK,YAAY,WAEtB,aAAY,EAAG,CAEjB,OADA,KAAK,cAAc,EACZ,KAAK,cAAc,QAU5B,SAAS,EAAG,CACV,IAAO,EAAS,GAAW,KAAK,WAAW,IAAI,EAE/C,OADA,KAAK,WAAa,EACX,KAEL,WAAU,EAAG,CACf,OAAO,GACL,KAAK,UAAU,EAAE,YACf,IAAI,gBAAgB,CAClB,SAAS,EAAG,QAAQ,EAAY,CAC9B,GAAI,EAAK,OAAS,aAChB,EAAW,QAAQ,EAAK,IAAI,EAGlC,CAAC,CACH,CACF,KAEE,WAAU,EAAG,CACf,OAAO,GACL,KAAK,UAAU,EAAE,YACf,IAAI,gBAAgB,CAClB,SAAS,EAAG,QAAQ,EAAY,CAC9B,EAAW,QAAQ,CAAI,EAE3B,CAAC,CACH,CACF,OAEI,cAAa,CAAC,EAAS,CAC3B,IAAI,EACJ,GAAI,CACF,MAAM,GAAc,CAClB,OAAQ,KAAK,WACb,QAAS,GAAW,KAAY,OAAI,EAAQ,OAC9C,CAAC,EACD,MAAO,EAAO,EACb,EAAO,GAAW,KAAY,OAAI,EAAQ,UAAY,MAAgB,EAAK,KAAK,EAAS,CAAK,MAG/F,iCAAgC,EAAG,CACrC,GAAI,KAAK,QAAU,KACjB,MAAM,IAAI,GAEZ,OAAO,GACL,KAAK,UAAU,EAAE,YACf,IAAI,gBAAgB,CAClB,SAAS,EAAG,iBAAiB,EAAY,CACvC,GAAI,GAAiB,KACnB,EAAW,QAAQ,CAAa,EAGtC,CAAC,CACH,CACF,EAEF,iBAAiB,EACf,mBACA,oBACA,WACA,kBACA,gBAAgB,GAChB,cAAc,GACd,YAAY,GACZ,aAAa,GACb,UAAU,IACR,CAAC,EAAG,CACN,IAAM,EAAoB,GAAqB,KAAO,GAAuB,CAC3E,mBACA,kBAAmB,CACrB,CAAC,EAAS,OACJ,EAAoB,CAAC,EACrB,EAAY,CAAC,IAAe,CAChC,IAAI,EAAM,EACV,IAAM,EAAW,EAAkB,GAEnC,QADkB,GAAM,EAAO,KAAK,QAAU,KAAY,OAAI,EAAK,KAAc,KAAY,OAAI,EAAG,QAAU,UAC7F,GAAY,QAEzB,EAAa,KAAK,WAAW,YACjC,IAAI,gBAAgB,CAClB,UAAW,MAAO,EAAM,IAAe,CACrC,IAAM,EAAuB,GAAmB,KAAY,OAAI,EAAgB,CAAE,MAAK,CAAC,EAClF,EAAW,EAAK,KACtB,OAAQ,OACD,aAAc,CACjB,EAAW,QAAQ,CACjB,KAAM,aACN,GAAI,EAAK,MACN,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,CACpF,CAAC,EACD,KACF,KACK,aAAc,CACjB,EAAW,QAAQ,CACjB,KAAM,aACN,GAAI,EAAK,GACT,MAAO,EAAK,QACT,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,CACpF,CAAC,EACD,KACF,KACK,WAAY,CACf,EAAW,QAAQ,CACjB,KAAM,WACN,GAAI,EAAK,MACN,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,CACpF,CAAC,EACD,KACF,KACK,kBAAmB,CACtB,EAAW,QAAQ,CACjB,KAAM,kBACN,GAAI,EAAK,MACN,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,CACpF,CAAC,EACD,KACF,KACK,kBAAmB,CACtB,GAAI,EACF,EAAW,QAAQ,CACjB,KAAM,kBACN,GAAI,EAAK,GACT,MAAO,EAAK,QACT,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,CACpF,CAAC,EAEH,KACF,KACK,gBAAiB,CACpB,EAAW,QAAQ,CACjB,KAAM,gBACN,GAAI,EAAK,MACN,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,CACpF,CAAC,EACD,KACF,KACK,OAAQ,CACX,EAAW,QAAQ,CACjB,KAAM,OACN,UAAW,EAAK,KAAK,UACrB,IAAK,QAAQ,EAAK,KAAK,oBAAoB,EAAK,KAAK,QACvD,CAAC,EACD,KACF,KACK,SAAU,CACb,GAAI,GAAe,EAAK,aAAe,MACrC,EAAW,QAAQ,CACjB,KAAM,aACN,SAAU,EAAK,GACf,IAAK,EAAK,IACV,MAAO,EAAK,SACT,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,CACpF,CAAC,EAEH,GAAI,GAAe,EAAK,aAAe,WACrC,EAAW,QAAQ,CACjB,KAAM,kBACN,SAAU,EAAK,GACf,UAAW,EAAK,UAChB,MAAO,EAAK,MACZ,SAAU,EAAK,YACZ,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,CACpF,CAAC,EAEH,KACF,KACK,mBAAoB,CACvB,EAAkB,EAAK,IAAM,EAAK,SAClC,IAAM,EAAU,EAAU,EAAK,EAAE,EACjC,EAAW,QAAQ,CACjB,KAAM,mBACN,WAAY,EAAK,GACjB,SAAU,EAAK,YACZ,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,KAC/E,GAAW,KAAO,CAAE,SAAQ,EAAI,CAAC,CACtC,CAAC,EACD,KACF,KACK,mBAAoB,CACvB,EAAW,QAAQ,CACjB,KAAM,mBACN,WAAY,EAAK,GACjB,eAAgB,EAAK,KACvB,CAAC,EACD,KACF,KACK,YAAa,CAChB,EAAkB,EAAK,YAAc,EAAK,SAC1C,IAAM,EAAU,EAAU,EAAK,UAAU,EACzC,GAAI,EAAK,QACP,EAAW,QAAQ,CACjB,KAAM,mBACN,WAAY,EAAK,WACjB,SAAU,EAAK,SACf,MAAO,EAAK,SACT,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,KAC/E,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,KAC/E,GAAW,KAAO,CAAE,SAAQ,EAAI,CAAC,EACpC,UAAW,EAAQ,EAAK,KAAK,CAC/B,CAAC,EAED,OAAW,QAAQ,CACjB,KAAM,uBACN,WAAY,EAAK,WACjB,SAAU,EAAK,SACf,MAAO,EAAK,SACT,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,KAC/E,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,KAC/E,GAAW,KAAO,CAAE,SAAQ,EAAI,CAAC,CACtC,CAAC,EAEH,KACF,KACK,cAAe,CAClB,IAAM,EAAU,EAAU,EAAK,UAAU,EACzC,EAAW,QAAQ,CACjB,KAAM,wBACN,WAAY,EAAK,WACjB,OAAQ,EAAK,UACV,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,KAC/E,EAAK,aAAe,KAAO,CAAE,YAAa,EAAK,WAAY,EAAI,CAAC,KAChE,GAAW,KAAO,CAAE,SAAQ,EAAI,CAAC,CACtC,CAAC,EACD,KACF,KACK,aAAc,CACjB,IAAM,EAAU,EAAU,EAAK,UAAU,EACzC,EAAW,QAAQ,CACjB,KAAM,oBACN,WAAY,EAAK,WACjB,UAAW,EAAQ,EAAK,KAAK,KAC1B,EAAK,kBAAoB,KAAO,CAAE,iBAAkB,EAAK,gBAAiB,EAAI,CAAC,KAC/E,GAAW,KAAO,CAAE,SAAQ,EAAI,CAAC,CACtC,CAAC,EACD,KACF,KACK,QAAS,CACZ,EAAW,QAAQ,CACjB,KAAM,QACN,UAAW,EAAQ,EAAK,KAAK,CAC/B,CAAC,EACD,KACF,KACK,aAAc,CACjB,EAAW,QAAQ,CAAE,KAAM,YAAa,CAAC,EACzC,KACF,KACK,cAAe,CAClB,EAAW,QAAQ,CAAE,KAAM,aAAc,CAAC,EAC1C,KACF,KACK,QAAS,CACZ,GAAI,EACF,EAAW,QAAQ,CACjB,KAAM,WACH,GAAwB,KAAO,CAAE,gBAAiB,CAAqB,EAAI,CAAC,KAC5E,GAAqB,KAAO,CAAE,UAAW,CAAkB,EAAI,CAAC,CACrE,CAAC,EAEH,KACF,KACK,SAAU,CACb,GAAI,EACF,EAAW,QAAQ,CACjB,KAAM,YACH,GAAwB,KAAO,CAAE,gBAAiB,CAAqB,EAAI,CAAC,CACjF,CAAC,EAEH,KACF,KACK,QAAS,CACZ,EAAW,QAAQ,CAAI,EACvB,KACF,KACK,iBACH,UAEG,MACH,cAIA,MAAU,MAAM,uBADQ,GACgC,EAG5D,GAAI,GAAwB,MAAQ,IAAa,SAAW,IAAa,SACvE,EAAW,QAAQ,CACjB,KAAM,mBACN,gBAAiB,CACnB,CAAC,EAGP,CAAC,CACH,EACA,OAAO,GACL,GAA4B,CAC1B,OAAQ,EACR,UAAW,GAAqB,KAAO,EAAoB,GAAqB,KAAY,OAAI,EAAkB,EAClH,mBACA,WACA,SACF,CAAC,CACH,EAEF,6BAA6B,CAAC,GAC5B,mBACA,oBACA,WACA,kBACA,gBACA,cACA,aACA,YACA,aACG,GACD,CAAC,EAAG,CACN,GAA8B,CAC5B,WACA,OAAQ,KAAK,kBAAkB,CAC7B,mBACA,oBACA,WACA,kBACA,gBACA,cACA,aACA,YACA,SACF,CAAC,KACE,CACL,CAAC,EAEH,wBAAwB,CAAC,EAAU,EAAM,CACvC,GAAyB,CACvB,WACA,WAAY,KAAK,cACd,CACL,CAAC,EAEH,yBAAyB,EACvB,mBACA,oBACA,WACA,kBACA,gBACA,cACA,aACA,YACA,aACG,GACD,CAAC,EAAG,CACN,OAAO,GAA8B,CACnC,OAAQ,KAAK,kBAAkB,CAC7B,mBACA,oBACA,WACA,kBACA,gBACA,cACA,aACA,YACA,SACF,CAAC,KACE,CACL,CAAC,EAEH,oBAAoB,CAAC,EAAM,CACzB,OAAO,GAAyB,CAC9B,WAAY,KAAK,cACd,CACL,CAAC,EAEL,EAGA,SAAS,EAAsB,CAAC,EAAU,EAAS,CACjD,IAAM,EAAgB,CAAC,EACvB,GAAI,GAAW,KAAY,OAAI,EAAQ,0BACrC,EAAW,EAAS,IAAI,CAAC,KAAa,IACjC,EACH,MAAO,EAAQ,MAAM,OACnB,CAAC,IAAS,CAAC,GAA0B,CAAI,GAAK,EAAK,QAAU,mBAAqB,EAAK,QAAU,iBACnG,CACF,EAAE,EAEJ,QAAW,KAAW,EACpB,OAAQ,EAAQ,UACT,SAAU,CACb,IAAM,EAAY,EAAQ,MAAM,OAC9B,CAAC,IAAS,EAAK,OAAS,MAC1B,EACM,EAAmB,EAAU,OAAO,CAAC,EAAK,IAAS,CACvD,GAAI,EAAK,kBAAoB,KAC3B,MAAO,IAAK,KAAQ,EAAK,gBAAiB,EAE5C,OAAO,GACN,CAAC,CAAC,EACL,EAAc,KAAK,CACjB,KAAM,SACN,QAAS,EAAU,IAAI,CAAC,IAAS,EAAK,IAAI,EAAE,KAAK,EAAE,KAChD,OAAO,KAAK,CAAgB,EAAE,OAAS,EAAI,CAAE,gBAAiB,CAAiB,EAAI,CAAC,CACzF,CAAC,EACD,KACF,KACK,OAAQ,CACX,EAAc,KAAK,CACjB,KAAM,OACN,QAAS,EAAQ,MAAM,IAAI,CAAC,IAAS,CACnC,IAAI,EACJ,GAAI,GAAa,CAAI,EACnB,MAAO,CACL,KAAM,OACN,KAAM,EAAK,QACR,EAAK,kBAAoB,KAAO,CAAE,gBAAiB,EAAK,gBAAiB,EAAI,CAAC,CACnF,EAEF,GAAI,GAAa,CAAI,EACnB,MAAO,CACL,KAAM,OACN,UAAW,EAAK,UAChB,SAAU,EAAK,SACf,KAAM,EAAK,OACR,EAAK,kBAAoB,KAAO,CAAE,gBAAiB,EAAK,gBAAiB,EAAI,CAAC,CACnF,EAEF,GAAI,GAAa,CAAI,EACnB,OAAQ,EAAO,GAAW,KAAY,OAAI,EAAQ,kBAAoB,KAAY,OAAI,EAAK,KACzF,EACA,CACF,EAEH,EAAE,OAAO,CAAC,IAAS,GAAQ,IAAI,CAClC,CAAC,EACD,KACF,KACK,YAAa,CAChB,GAAI,EAAQ,OAAS,KAAM,CACzB,IAAI,EAAgB,QAAQ,EAAG,CAC7B,IAAI,EAAM,EAAI,EACd,GAAI,EAAM,SAAW,EACnB,OAEF,IAAM,EAAU,CAAC,EACjB,QAAW,KAAQ,EACjB,GAAI,GAAa,CAAI,EACnB,EAAQ,KAAK,CACX,KAAM,OACN,KAAM,EAAK,QACR,EAAK,kBAAoB,KAAO,CAAE,gBAAiB,EAAK,gBAAiB,EAAI,CAAC,CACnF,CAAC,EACI,QAAI,GAAa,CAAI,EAC1B,EAAQ,KAAK,CACX,KAAM,OACN,UAAW,EAAK,UAChB,SAAU,EAAK,SACf,KAAM,EAAK,GACb,CAAC,EACI,QAAI,GAAkB,CAAI,EAC/B,EAAQ,KAAK,CACX,KAAM,YACN,KAAM,EAAK,KACX,gBAAiB,EAAK,gBACxB,CAAC,EACI,QAAI,GAAoB,CAAI,EAAG,CACpC,IAAM,EAAW,EAAK,SACtB,GAAI,EAAK,QAAU,kBACjB,EAAQ,KAAK,CACX,KAAM,YACN,WAAY,EAAK,WACjB,WACA,MAAO,EAAK,SACT,EAAK,sBAAwB,KAAO,CAAE,gBAAiB,EAAK,oBAAqB,EAAI,CAAC,CAC3F,CAAC,EAEE,QAAI,GAAa,CAAI,EAAG,CAC7B,IAAM,EAAW,GAAY,CAAI,EACjC,GAAI,EAAK,QAAU,mBASjB,GARA,EAAQ,KAAK,CACX,KAAM,YACN,WAAY,EAAK,WACjB,WACA,MAAO,EAAK,QAAU,gBAAkB,EAAO,EAAK,QAAU,KAAO,EAAO,EAAK,SAAW,EAAK,MACjG,iBAAkB,EAAK,oBACpB,EAAK,sBAAwB,KAAO,CAAE,gBAAiB,EAAK,oBAAqB,EAAI,CAAC,CAC3F,CAAC,EACG,EAAK,mBAAqB,KAAS,EAAK,QAAU,oBAAsB,EAAK,QAAU,gBACzF,EAAQ,KAAK,CACX,KAAM,cACN,WAAY,EAAK,WACjB,WACA,OAAQ,GAAsB,CAC5B,OAAQ,EAAK,QAAU,eAAiB,EAAK,UAAY,EAAK,OAC9D,MAAO,EAAK,GAAW,KAAY,OAAI,EAAQ,QAAU,KAAY,OAAI,EAAG,GAC5E,UAAW,EAAK,QAAU,eAAiB,OAAS,MACtD,CAAC,CACH,CAAC,GAGA,QAAI,GAAa,CAAI,EAAG,CAC7B,IAAM,GAAY,EAAK,GAAW,KAAY,OAAI,EAAQ,kBAAoB,KAAY,OAAI,EAAG,KAC/F,EACA,CACF,EACA,GAAI,GAAY,KACd,EAAQ,KAAK,CAAQ,EAIvB,WAAU,MAAM,qBADS,GAC8B,EAG3D,EAAc,KAAK,CACjB,KAAM,YACN,SACF,CAAC,EACD,IAAM,EAAY,EAAM,OACtB,CAAC,IAAS,GAAa,CAAI,GAAK,EAAK,mBAAqB,IAAQ,EAAK,OAAS,cAClF,EACA,GAAI,EAAU,OAAS,EACrB,EAAc,KAAK,CACjB,KAAM,OACN,QAAS,EAAU,IAAI,CAAC,IAAa,CACnC,IAAI,EACJ,OAAQ,EAAS,WACV,mBACA,mBAAoB,CACvB,IAAM,EAAW,GAAyB,CAAQ,EAClD,MAAO,CACL,KAAM,cACN,WAAY,EAAS,WACrB,WACA,OAAQ,GAAsB,CAC5B,OAAQ,EAAS,QAAU,eAAiB,EAAS,UAAY,EAAS,OAC1E,MAAO,EAAO,GAAW,KAAY,OAAI,EAAQ,QAAU,KAAY,OAAI,EAAK,GAChF,UAAW,EAAS,QAAU,eAAiB,OAAS,MAC1D,CAAC,CACH,CACF,SAEE,OAAO,MAGZ,EAAE,OACD,CAAC,IAAW,GAAU,IACxB,CACF,CAAC,EAEH,EAAQ,CAAC,GAEX,IAAI,EAAe,EACnB,IAAI,EAAQ,CAAC,EACb,QAAW,KAAQ,EAAQ,MACzB,GAAI,GAAa,CAAI,GAAK,GAAkB,CAAI,GAAK,GAAa,CAAI,GAAK,GAA0B,CAAI,GAAK,GAAa,CAAI,EAC7H,EAAM,KAAK,CAAI,EACV,QAAI,EAAK,OAAS,aACvB,EAAc,EAGlB,EAAc,EACd,MAEF,KACF,SACS,CACP,IAAM,EAAmB,EAAQ,KACjC,MAAM,IAAI,GAAuB,CAC/B,gBAAiB,EACjB,QAAS,qBAAqB,GAChC,CAAC,CACH,EAGJ,OAAO,EAET,IAAI,GAAwB,GAGxB,GAAQ,KAAM,CAChB,WAAW,CAAC,EAAU,CACpB,KAAK,SAAW,KAEd,MAAK,EAAG,CACV,OAAO,KAAK,SAAS,WAEjB,SAAQ,CAAC,EAAS,CACtB,OAAO,GAAa,IAAK,KAAK,YAAa,CAAQ,CAAC,EAEtD,MAAM,CAAC,EAAS,CACd,OAAO,GAAW,IAAK,KAAK,YAAa,CAAQ,CAAC,EAKpD,OAAO,CAAC,EAAS,CACf,OAAO,KAAK,OAAO,CACjB,OAAQ,GAAuB,EAAQ,QAAQ,CACjD,CAAC,EAAE,0BAA0B,EAEjC,EAIA,eAAe,EAAK,EAClB,MAAO,EACP,QACA,kBACA,WAAY,EACZ,cACA,UACA,uBAAwB,GACvB,CACD,IAAM,EAAQ,GAAsB,CAAQ,GACpC,aAAY,SAAU,GAAe,CAC3C,WAAY,EACZ,aACF,CAAC,EACK,EAAuB,EAC3B,GAAW,KAAO,EAAU,CAAC,EAC7B,MAAM,IACR,EACM,EAA0B,GAA2B,CACzD,QACA,YACA,QAAS,EACT,SAAU,CAAE,YAAW,CACzB,CAAC,EACK,EAAS,GAAU,CAAS,EAClC,OAAO,GAAW,CAChB,KAAM,WACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CAAE,YAAa,WAAY,WAAU,CAAC,KAC5D,EACH,WAAY,CAAE,MAAO,IAAM,KAAK,UAAU,CAAK,CAAE,CACnD,CACF,CAAC,EACD,SACA,GAAI,MAAO,IAAS,CAClB,IAAQ,YAAW,QAAO,WAAU,oBAAqB,MAAM,EAC7D,IAEE,GAAW,CACT,KAAM,mBACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,mBACb,WACF,CAAC,KACE,EAEH,YAAa,CAAE,MAAO,IAAM,CAAC,KAAK,UAAU,CAAK,CAAC,CAAE,CACtD,CACF,CAAC,EACD,SACA,GAAI,MAAO,IAAgB,CACzB,IAAI,EACJ,IAAM,EAAgB,MAAM,EAAM,QAAQ,CACxC,OAAQ,CAAC,CAAK,EACd,cACA,QAAS,EACT,iBACF,CAAC,EACK,EAAa,EAAc,WAAW,GACtC,GAAU,EAAO,EAAc,QAAU,KAAO,EAAO,CAAE,OAAQ,GAAI,EAc3E,OAbA,EAAY,cACV,EAA0B,CACxB,YACA,WAAY,CACV,gBAAiB,CACf,OAAQ,IAAM,EAAc,WAAW,IACrC,CAAC,IAAe,KAAK,UAAU,CAAU,CAC3C,CACF,EACA,kBAAmB,EAAO,MAC5B,CACF,CAAC,CACH,EACO,CACL,UAAW,EACX,MAAO,EACP,iBAAkB,EAAc,iBAChC,SAAU,EAAc,QAC1B,EAEJ,CAAC,CAEL,EAUA,OATA,EAAK,cACH,EAA0B,CACxB,YACA,WAAY,CACV,eAAgB,CAAE,OAAQ,IAAM,KAAK,UAAU,CAAS,CAAE,EAC1D,kBAAmB,EAAM,MAC3B,CACF,CAAC,CACH,EACO,IAAI,GAAmB,CAC5B,QACA,YACA,QACA,mBACA,UACF,CAAC,EAEL,CAAC,EAEH,IAAI,GAAqB,KAAM,CAC7B,WAAW,CAAC,EAAS,CACnB,KAAK,MAAQ,EAAQ,MACrB,KAAK,UAAY,EAAQ,UACzB,KAAK,MAAQ,EAAQ,MACrB,KAAK,iBAAmB,EAAQ,iBAChC,KAAK,SAAW,EAAQ,SAE5B,EAMA,SAAS,EAAU,CAAC,EAAO,EAAW,CACpC,GAAI,GAAa,EACf,MAAU,MAAM,kCAAkC,EAEpD,IAAM,EAAS,CAAC,EAChB,QAAS,EAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EACrC,EAAO,KAAK,EAAM,MAAM,EAAG,EAAI,CAAS,CAAC,EAE3C,OAAO,EAIT,eAAe,EAAS,EACtB,MAAO,EACP,SACA,mBAAmB,IACnB,WAAY,EACZ,cACA,UACA,kBACA,uBAAwB,GACvB,CACD,IAAM,EAAQ,GAAsB,CAAQ,GACpC,aAAY,SAAU,GAAe,CAC3C,WAAY,EACZ,aACF,CAAC,EACK,EAAuB,EAC3B,GAAW,KAAO,EAAU,CAAC,EAC7B,MAAM,IACR,EACM,EAA0B,GAA2B,CACzD,QACA,YACA,QAAS,EACT,SAAU,CAAE,YAAW,CACzB,CAAC,EACK,EAAS,GAAU,CAAS,EAClC,OAAO,GAAW,CAChB,KAAM,eACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CAAE,YAAa,eAAgB,WAAU,CAAC,KAChE,EAEH,YAAa,CACX,MAAO,IAAM,EAAO,IAAI,CAAC,IAAU,KAAK,UAAU,CAAK,CAAC,CAC1D,CACF,CACF,CAAC,EACD,SACA,GAAI,MAAO,IAAS,CAClB,IAAI,EACJ,IAAO,EAAsB,GAAyB,MAAM,QAAQ,IAAI,CACtE,EAAM,qBACN,EAAM,qBACR,CAAC,EACD,GAAI,GAAwB,MAAQ,IAAyB,IAAU,CACrE,IAAQ,WAAY,EAAa,QAAO,WAAU,iBAAkB,GAAsB,MAAM,EAC9F,IAAM,CACJ,OAAO,GAAW,CAChB,KAAM,uBACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,uBACb,WACF,CAAC,KACE,EAEH,YAAa,CACX,MAAO,IAAM,EAAO,IAAI,CAAC,IAAU,KAAK,UAAU,CAAK,CAAC,CAC1D,CACF,CACF,CAAC,EACD,SACA,GAAI,MAAO,IAAgB,CACzB,IAAI,EACJ,IAAM,EAAgB,MAAM,EAAM,QAAQ,CACxC,SACA,cACA,QAAS,EACT,iBACF,CAAC,EACK,GAAc,EAAc,WAC5B,GAAU,EAAO,EAAc,QAAU,KAAO,EAAO,CAAE,OAAQ,GAAI,EAc3E,OAbA,EAAY,cACV,EAA0B,CACxB,YACA,WAAY,CACV,gBAAiB,CACf,OAAQ,IAAM,GAAY,IACxB,CAAC,KAAc,KAAK,UAAU,EAAS,CACzC,CACF,EACA,kBAAmB,EAAO,MAC5B,CACF,CAAC,CACH,EACO,CACL,WAAY,GACZ,MAAO,EACP,iBAAkB,EAAc,iBAChC,SAAU,EAAc,QAC1B,EAEJ,CAAC,EAEL,EAYA,OAXA,EAAK,cACH,EAA0B,CACxB,YACA,WAAY,CACV,gBAAiB,CACf,OAAQ,IAAM,EAAY,IAAI,CAAC,IAAc,KAAK,UAAU,CAAS,CAAC,CACxE,EACA,kBAAmB,EAAM,MAC3B,CACF,CAAC,CACH,EACO,IAAI,GAAuB,CAChC,SACA,WAAY,EACZ,QACA,iBAAkB,EAClB,UAAW,CAAC,CAAQ,CACtB,CAAC,EAEH,IAAM,EAAc,GAAW,EAAQ,CAAoB,EACrD,EAAa,CAAC,EACd,EAAY,CAAC,EACf,EAAS,EACT,EACE,EAAiB,GACrB,EACA,EAAwB,EAAmB,CAC7C,EACA,QAAW,KAAiB,EAAgB,CAC1C,IAAM,EAAU,MAAM,QAAQ,IAC5B,EAAc,IAAI,CAAC,IAAU,CAC3B,OAAO,EAAM,IAAM,CACjB,OAAO,GAAW,CAChB,KAAM,uBACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,uBACb,WACF,CAAC,KACE,EAEH,YAAa,CACX,MAAO,IAAM,EAAM,IAAI,CAAC,IAAU,KAAK,UAAU,CAAK,CAAC,CACzD,CACF,CACF,CAAC,EACD,SACA,GAAI,MAAO,IAAgB,CACzB,IAAI,EACJ,IAAM,EAAgB,MAAM,EAAM,QAAQ,CACxC,OAAQ,EACR,cACA,QAAS,EACT,iBACF,CAAC,EACK,EAAc,EAAc,WAC5B,IAAS,EAAO,EAAc,QAAU,KAAO,EAAO,CAAE,OAAQ,GAAI,EAc1E,OAbA,EAAY,cACV,EAA0B,CACxB,YACA,WAAY,CACV,gBAAiB,CACf,OAAQ,IAAM,EAAY,IACxB,CAAC,IAAc,KAAK,UAAU,CAAS,CACzC,CACF,EACA,kBAAmB,GAAM,MAC3B,CACF,CAAC,CACH,EACO,CACL,WAAY,EACZ,SACA,iBAAkB,EAAc,iBAChC,SAAU,EAAc,QAC1B,EAEJ,CAAC,EACF,EACF,CACH,EACA,QAAW,KAAU,EAInB,GAHA,EAAW,KAAK,GAAG,EAAO,UAAU,EACpC,EAAU,KAAK,EAAO,QAAQ,EAC9B,GAAU,EAAO,MAAM,OACnB,EAAO,iBACT,GAAI,CAAC,EACH,EAAmB,IAAK,EAAO,gBAAiB,EAEhD,aAAY,EAAc,KAAa,OAAO,QAC5C,EAAO,gBACT,EACE,EAAiB,GAAgB,KAC3B,EAAO,EAAiB,KAAkB,KAAO,EAAO,CAAC,KAC1D,CACL,EAiBV,OAXA,EAAK,cACH,EAA0B,CACxB,YACA,WAAY,CACV,gBAAiB,CACf,OAAQ,IAAM,EAAW,IAAI,CAAC,IAAc,KAAK,UAAU,CAAS,CAAC,CACvE,EACA,kBAAmB,CACrB,CACF,CAAC,CACH,EACO,IAAI,GAAuB,CAChC,SACA,aACA,MAAO,CAAE,QAAO,EAChB,mBACA,WACF,CAAC,EAEL,CAAC,EAEH,IAAI,GAAyB,KAAM,CACjC,WAAW,CAAC,EAAS,CACnB,KAAK,OAAS,EAAQ,OACtB,KAAK,WAAa,EAAQ,WAC1B,KAAK,MAAQ,EAAQ,MACrB,KAAK,iBAAmB,EAAQ,iBAChC,KAAK,UAAY,EAAQ,UAE7B,EAIA,eAAe,EAAa,EAC1B,QACA,SACA,IAAI,EACJ,mBACA,OACA,cACA,OACA,kBACA,WAAY,EACZ,cACA,WACC,CACD,IAAI,EAAM,EACV,GAAI,EAAM,uBAAyB,KACjC,MAAM,IAAI,GAA6B,CACrC,QAAS,EAAM,qBACf,SAAU,EAAM,SAChB,QAAS,EAAM,OACjB,CAAC,EAEH,IAAM,EAAuB,EAC3B,GAAW,KAAO,EAAU,CAAC,EAC7B,MAAM,IACR,GACQ,SAAU,GAAe,CAC/B,WAAY,EACZ,aACF,CAAC,EACK,GAA+B,EAAO,GAAoB,KAAO,EAAmB,MAAM,GAA4B,CAAK,IAAM,KAAO,EAAO,EAC/I,EAAY,KAAK,KAAK,EAAI,CAA2B,EACrD,EAAkB,MAAM,KAAK,CAAE,OAAQ,CAAU,EAAG,CAAC,EAAG,IAAM,CAClE,GAAI,EAAI,EAAY,EAClB,OAAO,EAET,IAAM,EAAY,EAAI,EACtB,OAAO,IAAc,EAAI,EAA8B,EACxD,EACK,EAAU,MAAM,QAAQ,IAC5B,EAAgB,IACd,MAAO,IAAmB,EACxB,IAAM,EAAM,WAAW,CACrB,SACA,EAAG,EACH,cACA,QAAS,EACT,OACA,cACA,OACA,gBAAiB,GAAmB,KAAO,EAAkB,CAAC,CAChE,CAAC,CACH,CACF,CACF,EACM,EAAS,CAAC,EACV,EAAW,CAAC,EACZ,EAAY,CAAC,EACb,EAAmB,CAAC,EAC1B,QAAW,KAAU,EAAS,CAgB5B,GAfA,EAAO,KACL,GAAG,EAAO,OAAO,IACf,CAAC,IAAU,CACT,IAAI,EACJ,OAAO,IAAI,GAAqB,CAC9B,KAAM,EACN,WAAY,EAAO,GAAgB,CACjC,KAAM,EACN,WAAY,EACd,CAAC,IAAM,KAAO,EAAO,WACvB,CAAC,EAEL,CACF,EACA,EAAS,KAAK,GAAG,EAAO,QAAQ,EAC5B,EAAO,iBACT,QAAY,EAAc,KAAa,OAAO,QAAQ,EAAO,gBAAgB,GAC1E,EAAK,EAAiB,KAAkB,OAAY,EAAiB,GAAgB,CAAE,OAAQ,CAAC,CAAE,GACnG,EAAiB,GAAc,OAAO,KACpC,GAAG,EAAO,iBAAiB,GAAc,MAC3C,EAGJ,EAAU,KAAK,EAAO,QAAQ,EAGhC,GADA,GAAY,CAAQ,EAChB,CAAC,EAAO,OACV,MAAM,IAAI,GAAsB,CAAE,WAAU,CAAC,EAE/C,OAAO,IAAI,GAA2B,CACpC,SACA,WACA,YACA,kBACF,CAAC,EAEH,IAAI,GAA6B,KAAM,CACrC,WAAW,CAAC,EAAS,CACnB,KAAK,OAAS,EAAQ,OACtB,KAAK,SAAW,EAAQ,SACxB,KAAK,UAAY,EAAQ,UACzB,KAAK,iBAAmB,EAAQ,oBAE9B,MAAK,EAAG,CACV,OAAO,KAAK,OAAO,GAEvB,EACA,eAAe,EAA2B,CAAC,EAAO,CAEhD,GAAI,EADe,EAAM,4BAA4B,UAEnD,OAAO,EAAM,iBAEf,OAAO,EAAM,iBAAiB,CAC5B,QAAS,EAAM,OACjB,CAAC,EAUH,SAAS,EAAuB,CAAC,EAAS,CACxC,IAAM,EAAQ,EAAQ,OACpB,CAAC,IAAa,EAAS,OAAS,WAClC,EACA,OAAO,EAAM,SAAW,EAAS,OAAI,EAAM,IAAI,CAAC,IAAa,EAAS,IAAI,EAAE,KAAK;AAAA,CAAI,EAcvF,IAAI,GAAyB,CAC3B,KAAM,YACN,WAAiB,YACX,sBAAqB,EAAG,QAAO,aAAa,CAChD,MAAO,CAAE,QAAS,GAAM,MAAO,CAAE,QAAS,EAAO,WAAU,CAAE,QAEzD,oBAAmB,CAAC,EAAO,EAAS,CACxC,OAAO,IAAe,OAAI,CACxB,QAAS,GACT,MAAO,IAAI,GAAuB,CAChC,QAAS,sDACT,KAAM,EAAQ,KACd,SAAU,EAAQ,SAClB,MAAO,EAAQ,MACf,aAAc,EAAQ,YACxB,CAAC,CACH,EAAI,CAAE,QAAS,GAAM,OAAM,GAE7B,mBAAmB,EAAG,CACpB,MAAM,IAAI,GAA+B,CACvC,cAAe,mCACjB,CAAC,EAEL,EACI,GAAuB,CAAC,KAAY,CACtC,KAAM,SACN,WAAY,EAAO,gBACb,sBAAqB,EAAG,QAAO,aAAa,CAChD,MAAO,CACL,QAAS,GACT,MAAO,CAEL,QAAS,EACT,WACF,CACF,QAEI,oBAAmB,CAAC,EAAO,CAC/B,OAAO,GAAmB,CAAE,QAAO,QAAO,CAAC,GAE7C,mBAAmB,EAAG,CACpB,MAAM,IAAI,GAA+B,CACvC,cAAe,gCACjB,CAAC,EAEL,GACI,GAAsB,CAAC,IAAW,CACpC,IAAQ,aAAY,GAAe,EAAO,WAC1C,MAAO,CACL,KAAM,QAIN,WAAY,CACV,QAAS,0CACT,KAAM,SACN,WAAY,CACV,SAAU,CAAE,KAAM,QAAS,MAAO,CAAW,CAC/C,EACA,SAAU,CAAC,UAAU,EACrB,qBAAsB,EACxB,OACM,sBAAqB,EACzB,QACA,eACA,eACA,gBACC,CACD,IAAI,EACJ,GAAI,CAAC,GAAa,CAAK,GAAK,CAAC,GAAY,EAAM,QAAQ,EACrD,MAAO,CACL,QAAS,GACT,MAAO,IAAI,GAAqB,CAC9B,QACA,MAAO,4DACT,CAAC,CACH,EAEF,IAAM,EAAa,EAAM,SACnB,EAAc,CAAC,EACrB,QAAS,EAAI,EAAG,EAAI,EAAW,OAAQ,IAAK,CAC1C,IAAM,EAAU,EAAW,GACrB,EAAS,MAAM,GAAmB,CAAE,MAAO,EAAS,QAAO,CAAC,EAClE,GAAI,IAAM,EAAW,OAAS,GAAK,CAAC,EAClC,SAEF,GAAI,CAAC,EAAO,QACV,OAAO,EAET,EAAY,KAAK,EAAO,KAAK,EAE/B,IAAM,GAAyB,EAAO,GAAgB,KAAY,OAAI,EAAa,SAAW,KAAO,EAAO,EACxG,EAAY,GAChB,GAAI,EACF,GAAa,IAEf,GAAI,EAAwB,EAC1B,GAAa,IAGf,GADA,GAAa,EAAY,MAAM,CAAqB,EAAE,IAAI,CAAC,IAAY,KAAK,UAAU,CAAO,CAAC,EAAE,KAAK,GAAG,EACpG,EACF,GAAa,IAEf,MAAO,CACL,QAAS,GACT,MAAO,CACL,QAAS,EACT,WACF,CACF,QAEI,oBAAmB,CAAC,EAAO,CAC/B,GAAI,CAAC,GAAa,CAAK,GAAK,CAAC,GAAY,EAAM,QAAQ,EACrD,MAAO,CACL,QAAS,GACT,MAAO,IAAI,GAAqB,CAC9B,QACA,MAAO,4DACT,CAAC,CACH,EAEF,IAAM,EAAa,EAAM,SACzB,QAAW,KAAW,EAAY,CAChC,IAAM,EAAS,MAAM,GAAmB,CAAE,MAAO,EAAS,QAAO,CAAC,EAClE,GAAI,CAAC,EAAO,QACV,OAAO,EAGX,MAAO,CAAE,QAAS,GAAM,MAAO,CAAW,GAE5C,mBAAmB,CAAC,EAAgB,CAClC,IAAI,EAAoB,EACxB,OAAO,GACL,EAAe,YACb,IAAI,gBAAgB,CAClB,SAAS,CAAC,EAAO,EAAY,CAC3B,OAAQ,EAAM,UACP,SAAU,CACb,IAAM,EAAQ,EAAM,OACpB,KAAO,EAAoB,EAAM,OAAQ,IACvC,EAAW,QAAQ,EAAM,EAAkB,EAE7C,KACF,KACK,iBACA,aACA,QACH,cAGA,MAAU,MACR,2BAFuB,GAGzB,GAIR,CAAC,CACH,CACF,EAEJ,GAEE,GAAqB,CAAC,IAAe,CACvC,MAAO,CACL,KAAM,OAIN,WAAY,CACV,QAAS,0CACT,KAAM,SACN,WAAY,CACV,OAAQ,CAAE,KAAM,SAAU,KAAM,CAAW,CAC7C,EACA,SAAU,CAAC,QAAQ,EACnB,qBAAsB,EACxB,OACM,oBAAmB,CAAC,EAAO,CAC/B,GAAI,CAAC,GAAa,CAAK,GAAK,OAAO,EAAM,SAAW,SAClD,MAAO,CACL,QAAS,GACT,MAAO,IAAI,GAAqB,CAC9B,QACA,MAAO,0EACT,CAAC,CACH,EAEF,IAAM,EAAS,EAAM,OACrB,OAAO,EAAW,SAAS,CAAM,EAAI,CAAE,QAAS,GAAM,MAAO,CAAO,EAAI,CACtE,QAAS,GACT,MAAO,IAAI,GAAqB,CAC9B,QACA,MAAO,oCACT,CAAC,CACH,QAEI,sBAAqB,EAAG,QAAO,aAAa,CAChD,GAAI,CAAC,GAAa,CAAK,GAAK,OAAO,EAAM,SAAW,SAClD,MAAO,CACL,QAAS,GACT,MAAO,IAAI,GAAqB,CAC9B,QACA,MAAO,0EACT,CAAC,CACH,EAEF,IAAM,EAAS,EAAM,OACf,EAAqB,EAAW,OACpC,CAAC,IAAc,EAAU,WAAW,CAAM,CAC5C,EACA,GAAI,EAAM,OAAO,SAAW,GAAK,EAAmB,SAAW,EAC7D,MAAO,CACL,QAAS,GACT,MAAO,IAAI,GAAqB,CAC9B,QACA,MAAO,oCACT,CAAC,CACH,EAEF,MAAO,CACL,QAAS,GACT,MAAO,CACL,QAAS,EAAmB,OAAS,EAAI,EAAS,EAAmB,GACrE,WACF,CACF,GAEF,mBAAmB,EAAG,CACpB,MAAM,IAAI,GAA+B,CACvC,cAAe,8BACjB,CAAC,EAEL,GAEF,SAAS,EAAiB,EACxB,SACA,SACA,cACC,CACD,OAAQ,OACD,SACH,OAAO,GAAqB,GAAU,CAAM,CAAC,MAC1C,QACH,OAAO,GAAoB,GAAU,CAAM,CAAC,MACzC,OACH,OAAO,GAAmB,CAAU,MACjC,YACH,OAAO,WAGP,MAAU,MAAM,uBADS,GACgC,GAQ/D,eAAe,EAA4B,CAAC,EAAQ,EAAgB,EAAS,CAC3E,IAAM,EAAc,MAAM,GAAe,CAAE,KAAM,CAAO,CAAC,EACzD,GAAI,CAAC,EAAY,QACf,MAAM,IAAI,GAAuB,CAC/B,QAAS,qDACT,MAAO,EAAY,MACnB,KAAM,EACN,SAAU,EAAQ,SAClB,MAAO,EAAQ,MACf,aAAc,EAAQ,YACxB,CAAC,EAEH,IAAM,EAAmB,MAAM,EAAe,oBAC5C,EAAY,MACZ,CACE,KAAM,EACN,SAAU,EAAQ,SAClB,MAAO,EAAQ,KACjB,CACF,EACA,GAAI,CAAC,EAAiB,QACpB,MAAM,IAAI,GAAuB,CAC/B,QAAS,sDACT,MAAO,EAAiB,MACxB,KAAM,EACN,SAAU,EAAQ,SAClB,MAAO,EAAQ,MACf,aAAc,EAAQ,YACxB,CAAC,EAEH,OAAO,EAAiB,MAE1B,eAAe,EAAsC,CAAC,EAAQ,EAAgB,EAAY,EAAS,CACjG,GAAI,CACF,OAAO,MAAM,GAA6B,EAAQ,EAAgB,CAAO,EACzE,MAAO,EAAO,CACd,GAAI,GAAc,MAAQ,GAAuB,WAAW,CAAK,IAAM,GAAgB,WAAW,EAAM,KAAK,GAAK,GAAqB,WAAW,EAAM,KAAK,GAAI,CAC/J,IAAM,EAAe,MAAM,EAAW,CACpC,KAAM,EACN,MAAO,EAAM,KACf,CAAC,EACD,GAAI,IAAiB,KACnB,MAAM,EAER,OAAO,MAAM,GACX,EACA,EACA,CACF,EAEF,MAAM,GAKV,SAAS,EAA6B,EACpC,SACA,SACA,aACA,oBACA,cACC,CACD,GAAI,GAAU,MAAQ,IAAW,UAAY,IAAW,SAAW,IAAW,QAAU,IAAW,YACjG,MAAM,IAAI,EAAqB,CAC7B,UAAW,SACX,MAAO,EACP,QAAS,sBACX,CAAC,EAEH,GAAI,IAAW,YAAa,CAC1B,GAAI,GAAU,KACZ,MAAM,IAAI,EAAqB,CAC7B,UAAW,SACX,MAAO,EACP,QAAS,+CACX,CAAC,EAEH,GAAI,GAAqB,KACvB,MAAM,IAAI,EAAqB,CAC7B,UAAW,oBACX,MAAO,EACP,QAAS,2DACX,CAAC,EAEH,GAAI,GAAc,KAChB,MAAM,IAAI,EAAqB,CAC7B,UAAW,aACX,MAAO,EACP,QAAS,oDACX,CAAC,EAEH,GAAI,GAAc,KAChB,MAAM,IAAI,EAAqB,CAC7B,UAAW,aACX,MAAO,EACP,QAAS,qDACX,CAAC,EAGL,GAAI,IAAW,SAAU,CACvB,GAAI,GAAU,KACZ,MAAM,IAAI,EAAqB,CAC7B,UAAW,SACX,MAAO,EACP,QAAS,uCACX,CAAC,EAEH,GAAI,GAAc,KAChB,MAAM,IAAI,EAAqB,CAC7B,UAAW,aACX,MAAO,EACP,QAAS,kDACX,CAAC,EAGL,GAAI,IAAW,QAAS,CACtB,GAAI,GAAU,KACZ,MAAM,IAAI,EAAqB,CAC7B,UAAW,SACX,MAAO,EACP,QAAS,8CACX,CAAC,EAEH,GAAI,GAAc,KAChB,MAAM,IAAI,EAAqB,CAC7B,UAAW,aACX,MAAO,EACP,QAAS,iDACX,CAAC,EAGL,GAAI,IAAW,OAAQ,CACrB,GAAI,GAAU,KACZ,MAAM,IAAI,EAAqB,CAC7B,UAAW,SACX,MAAO,EACP,QAAS,0CACX,CAAC,EAEH,GAAI,GAAqB,KACvB,MAAM,IAAI,EAAqB,CAC7B,UAAW,oBACX,MAAO,EACP,QAAS,sDACX,CAAC,EAEH,GAAI,GAAc,KAChB,MAAM,IAAI,EAAqB,CAC7B,UAAW,aACX,MAAO,EACP,QAAS,+CACX,CAAC,EAEH,GAAI,GAAc,KAChB,MAAM,IAAI,EAAqB,CAC7B,UAAW,aACX,MAAO,EACP,QAAS,2CACX,CAAC,EAEH,QAAW,KAAS,EAClB,GAAI,OAAO,IAAU,SACnB,MAAM,IAAI,EAAqB,CAC7B,UAAW,aACX,QACA,QAAS,8BACX,CAAC,GAOT,IAAI,GAAsB,GAAmB,CAAE,OAAQ,QAAS,KAAM,EAAG,CAAC,EAC1E,eAAe,EAAc,CAAC,EAAS,CACrC,IACE,MAAO,EACP,SAAS,SACT,SACA,SACA,WACA,WAAY,EACZ,cACA,UACA,wBAAyB,EACzB,uBAAwB,EACxB,sBAAuB,EACvB,kBACA,WACE,WAAY,EAAc,GAC1B,cAAc,IAAsB,IAAI,MACtC,CAAC,KACF,GACD,EACE,EAAQ,GAAqB,CAAQ,EACrC,EAAa,SAAU,EAAU,EAAQ,KAAY,QAEzD,OAAQ,EACR,oBACA,cACE,WAAY,EAAU,EAAU,CAAC,EACrC,GAA8B,CAC5B,SACA,OAAQ,EACR,aACA,oBACA,YACF,CAAC,EACD,IAAQ,aAAY,SAAU,GAAe,CAC3C,WAAY,EACZ,aACF,CAAC,EACK,EAAiB,GAAkB,CACvC,SACA,OAAQ,EACR,YACF,CAAC,EACK,EAAe,GAAoB,CAAQ,EAC3C,EAAuB,EAC3B,GAAW,KAAO,EAAU,CAAC,EAC7B,MAAM,IACR,EACM,EAA0B,GAA2B,CACzD,QACA,YACA,QAAS,EACT,SAAU,IAAK,EAAc,YAAW,CAC1C,CAAC,EACK,EAAS,GAAU,CAAS,EAClC,GAAI,CACF,OAAO,MAAM,GAAW,CACtB,KAAM,oBACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,oBACb,WACF,CAAC,KACE,EAEH,YAAa,CACX,MAAO,IAAM,KAAK,UAAU,CAAE,SAAQ,SAAQ,UAAS,CAAC,CAC1D,EACA,YAAa,EAAe,YAAc,KAAO,CAAE,MAAO,IAAM,KAAK,UAAU,EAAe,UAAU,CAAE,EAAS,OACnH,iBAAkB,EAClB,wBAAyB,EACzB,qBAAsB,EAAe,IACvC,CACF,CAAC,EACD,SACA,GAAI,MAAO,IAAS,CAClB,IAAI,EACJ,IAAI,EACA,GACA,EACA,GACA,GACA,GACA,EACA,GACE,GAAqB,MAAM,GAAkB,CACjD,SACA,SACA,UACF,CAAC,EACK,GAAiB,MAAM,GAA6B,CACxD,OAAQ,GACR,cAAe,MAAM,EAAM,cAC3B,SAAU,CACZ,CAAC,EACK,EAAiB,MAAM,EAC3B,IAAM,GAAW,CACf,KAAM,+BACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,+BACb,WACF,CAAC,KACE,EACH,qBAAsB,CACpB,MAAO,IAAM,GAAsB,EAAc,CACnD,EAEA,gBAAiB,EAAM,SACvB,uBAAwB,EAAM,QAC9B,mCAAoC,EAAa,iBACjD,4BAA6B,EAAa,gBAC1C,kCAAmC,EAAa,gBAChD,6BAA8B,EAAa,YAC3C,uBAAwB,EAAa,KACrC,uBAAwB,EAAa,IACvC,CACF,CAAC,EACD,SACA,GAAI,MAAO,IAAU,CACnB,IAAI,GAAM,GAAI,GAAI,EAAI,EAAI,GAAI,EAAI,EAClC,IAAM,EAAU,MAAM,EAAM,WAAW,CACrC,eAAgB,CACd,KAAM,OACN,OAAQ,EAAe,WACvB,KAAM,EACN,YAAa,CACf,KACG,GAAoB,CAAQ,EAC/B,OAAQ,GACR,kBACA,cACA,QAAS,CACX,CAAC,EACK,EAAe,CACnB,IAAK,IAAM,GAAO,EAAQ,WAAa,KAAY,OAAI,GAAK,KAAO,KAAO,GAAK,EAAY,EAC3F,WAAY,GAAM,GAAK,EAAQ,WAAa,KAAY,OAAI,GAAG,YAAc,KAAO,EAAK,EAAY,EACrG,SAAU,IAAM,EAAK,EAAQ,WAAa,KAAY,OAAI,EAAG,UAAY,KAAO,GAAK,EAAM,QAC3F,SAAU,EAAK,EAAQ,WAAa,KAAY,OAAI,EAAG,QACvD,MAAO,EAAK,EAAQ,WAAa,KAAY,OAAI,EAAG,IACtD,EACM,EAAQ,GAAmB,EAAQ,OAAO,EAC1C,GAAa,GAAwB,EAAQ,OAAO,EAC1D,GAAI,IAAe,OACjB,MAAM,IAAI,GAAuB,CAC/B,QAAS,4DACT,SAAU,EACV,MAAO,EAAQ,MACf,aAAc,EAAQ,YACxB,CAAC,EA0BH,OAxBA,EAAM,cACJ,EAA0B,CACxB,YACA,WAAY,CACV,2BAA4B,EAAQ,aACpC,qBAAsB,CAAE,OAAQ,IAAM,CAAM,EAC5C,iBAAkB,EAAa,GAC/B,oBAAqB,EAAa,QAClC,wBAAyB,EAAa,UAAU,YAAY,EAC5D,+BAAgC,KAAK,UACnC,EAAQ,gBACV,EAEA,wBAAyB,EAAQ,MAAM,YACvC,4BAA6B,EAAQ,MAAM,aAE3C,iCAAkC,CAAC,EAAQ,YAAY,EACvD,qBAAsB,EAAa,GACnC,wBAAyB,EAAa,QACtC,4BAA6B,EAAQ,MAAM,YAC3C,6BAA8B,EAAQ,MAAM,YAC9C,CACF,CAAC,CACH,EACO,IACF,EACH,WAAY,EACZ,UAAW,GACX,cACF,EAEJ,CAAC,CACH,EACA,EAAS,EAAe,WACxB,GAAe,EAAe,aAC9B,EAAQ,EAAe,MACvB,GAAW,EAAe,SAC1B,EAAyB,EAAe,iBACxC,IAAW,EAAO,EAAe,UAAY,KAAO,EAAO,CAAC,EAC5D,GAAW,EAAe,aAC1B,GAAY,EAAe,UAC3B,GAAY,EAAQ,EACpB,IAAM,GAAU,MAAM,GACpB,EACA,EACA,EACA,CACE,YACA,QACA,eACF,CACF,EAkBA,OAjBA,EAAK,cACH,EAA0B,CACxB,YACA,WAAY,CACV,2BAA4B,GAC5B,qBAAsB,CACpB,OAAQ,IAAM,KAAK,UAAU,EAAO,CACtC,EACA,+BAAgC,KAAK,UACnC,CACF,EAEA,wBAAyB,EAAM,YAC/B,4BAA6B,EAAM,YACrC,CACF,CAAC,CACH,EACO,IAAI,GAA4B,CACrC,OAAQ,GACR,aACA,gBACA,QACA,YACA,WACA,YACA,iBAAkB,CACpB,CAAC,EAEL,CAAC,EACD,MAAO,EAAO,CACd,MAAM,GAAiB,CAAK,GAGhC,IAAI,GAA8B,KAAM,CACtC,WAAW,CAAC,EAAS,CACnB,KAAK,OAAS,EAAQ,OACtB,KAAK,aAAe,EAAQ,aAC5B,KAAK,MAAQ,EAAQ,MACrB,KAAK,SAAW,EAAQ,SACxB,KAAK,iBAAmB,EAAQ,iBAChC,KAAK,SAAW,EAAQ,SACxB,KAAK,QAAU,EAAQ,QACvB,KAAK,UAAY,EAAQ,UAE3B,cAAc,CAAC,EAAM,CACnB,IAAI,EACJ,OAAO,IAAI,SAAS,KAAK,UAAU,KAAK,MAAM,EAAG,CAC/C,QAAS,EAAO,GAAQ,KAAY,OAAI,EAAK,SAAW,KAAO,EAAO,IACtE,QAAS,GAAe,GAAQ,KAAY,OAAI,EAAK,QAAS,CAC5D,eAAgB,iCAClB,CAAC,CACH,CAAC,EAEL,EAQA,SAAS,EAAgB,CAAC,EAAS,EAAS,CAC1C,GAAI,EAAQ,SAAW,EAAQ,OAC7B,MAAM,IAAI,EAAqB,CAC7B,UAAW,kBACX,MAAO,CAAE,cAAe,EAAQ,OAAQ,cAAe,EAAQ,MAAO,EACtE,QAAS,mCACX,CAAC,EAEH,IAAM,EAAI,EAAQ,OAClB,GAAI,IAAM,EACR,MAAO,GAET,IAAI,EAAoB,EACpB,EAAoB,EACpB,EAAa,EACjB,QAAS,EAAI,EAAG,EAAI,EAAG,IAAK,CAC1B,IAAM,EAAS,EAAQ,GACjB,EAAS,EAAQ,GACvB,GAAqB,EAAS,EAC9B,GAAqB,EAAS,EAC9B,GAAc,EAAS,EAEzB,OAAO,IAAsB,GAAK,IAAsB,EAAI,EAAI,GAAc,KAAK,KAAK,CAAiB,EAAI,KAAK,KAAK,CAAiB,GAI1I,SAAS,EAAkB,CAAC,EAAS,CACnC,IAAO,EAAQ,GAAiB,EAAQ,MAAM,GAAG,EAEjD,GADkB,EAAO,MAAM,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,IACjC,MAAQ,GAAiB,KACxC,MAAU,MAAM,yBAAyB,EAE3C,GAAI,CACF,OAAO,OAAO,KAAK,CAAa,EAChC,MAAO,EAAO,CACd,MAAU,MAAM,yBAAyB,GAK7C,SAAS,EAAe,CAAC,EAAM,EAAM,CACnC,GAAI,IAAS,EACX,MAAO,GACT,GAAI,GAAQ,MAAQ,GAAQ,KAC1B,MAAO,GACT,GAAI,OAAO,IAAS,UAAY,OAAO,IAAS,SAC9C,OAAO,IAAS,EAClB,GAAI,EAAK,cAAgB,EAAK,YAC5B,MAAO,GACT,GAAI,aAAgB,MAAQ,aAAgB,KAC1C,OAAO,EAAK,QAAQ,IAAM,EAAK,QAAQ,EAEzC,GAAI,MAAM,QAAQ,CAAI,EAAG,CACvB,GAAI,EAAK,SAAW,EAAK,OACvB,MAAO,GACT,QAAS,EAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,GAAI,CAAC,GAAgB,EAAK,GAAI,EAAK,EAAE,EACnC,MAAO,GAEX,MAAO,GAET,IAAM,EAAQ,OAAO,KAAK,CAAI,EACxB,EAAQ,OAAO,KAAK,CAAI,EAC9B,GAAI,EAAM,SAAW,EAAM,OACzB,MAAO,GACT,QAAW,KAAO,EAAO,CACvB,GAAI,CAAC,EAAM,SAAS,CAAG,EACrB,MAAO,GACT,GAAI,CAAC,GAAgB,EAAK,GAAM,EAAK,EAAI,EACvC,MAAO,GAEX,MAAO,GAIT,IAAI,GAAoB,KAAM,CAC5B,WAAW,EAAG,CACZ,KAAK,MAAQ,CAAC,EACd,KAAK,aAAe,QAEhB,aAAY,EAAG,CACnB,GAAI,KAAK,aACP,OAEF,KAAK,aAAe,GACpB,MAAO,KAAK,MAAM,OAAS,EACzB,MAAM,KAAK,MAAM,GAAG,EACpB,KAAK,MAAM,MAAM,EAEnB,KAAK,aAAe,QAEhB,IAAG,CAAC,EAAK,CACb,OAAO,IAAI,QAAQ,CAAC,EAAU,IAAW,CACvC,KAAK,MAAM,KAAK,SAAY,CAC1B,GAAI,CACF,MAAM,EAAI,EACV,EAAS,EACT,MAAO,EAAO,CACd,EAAO,CAAK,GAEf,EACI,KAAK,aAAa,EACxB,EAEL,EAIA,SAAS,EAAsB,EAC7B,SACA,mBAAmB,EACnB,iBAAiB,EACjB,aACC,CACD,IAAI,EACJ,IAAM,GAAU,EAAO,GAAa,KAAY,OAAI,EAAU,QAAU,KAAO,EAAO,GAClF,EAAQ,EACZ,OAAO,IAAI,eAAe,MAClB,KAAI,CAAC,EAAY,CACrB,GAAI,EAAQ,EAAO,OACjB,MAAM,EAAO,IAAU,EAAI,EAAmB,CAAc,EAC5D,EAAW,QAAQ,EAAO,IAAQ,EAElC,OAAW,MAAM,EAGvB,CAAC,EAIH,IAAI,GAAsB,GAAmB,CAAE,OAAQ,QAAS,KAAM,EAAG,CAAC,EAC1E,SAAS,EAAY,CAAC,EAAS,CAC7B,IACE,QACA,SAAS,SACT,SACA,SACA,WACA,aACA,cACA,UACA,wBAAyB,EACzB,uBAAwB,EACxB,sBAAuB,EACvB,kBACA,UAAU,EAAG,WAAY,CACvB,QAAQ,MAAM,CAAK,GAErB,WACA,WACE,WAAY,EAAc,GAC1B,cAAc,IAAsB,IAAI,KACxC,IAAK,EAAO,IACV,CAAC,KACF,GACD,EACE,EAAa,SAAU,GAAW,EAAQ,KAAO,EAAQ,KAAY,QAEzE,OAAQ,EACR,oBACA,cACE,WAAY,EAAU,EAAU,CAAC,EACrC,GAA8B,CAC5B,SACA,OAAQ,EACR,aACA,oBACA,YACF,CAAC,EACD,IAAM,EAAiB,GAAkB,CACvC,SACA,OAAQ,EACR,YACF,CAAC,EACD,OAAO,IAAI,GAA0B,CACnC,QACA,YACA,UACA,WACA,aACA,cACA,iBACA,SACA,SACA,WACA,aACA,oBACA,kBACA,aACA,UACA,WACA,SAAU,EACV,WAAY,EACZ,cACA,IAAK,CACP,CAAC,EAEH,IAAI,GAA4B,KAAM,CACpC,WAAW,EACT,MAAO,EACP,UACA,YACA,WACA,WAAY,EACZ,cACA,iBACA,SACA,SACA,WACA,aACA,oBACA,kBACA,aACA,UACA,WACA,SAAU,EACV,WAAY,EACZ,cACA,IAAK,GACJ,CACD,KAAK,QAAU,IAAI,GACnB,KAAK,OAAS,IAAI,GAClB,KAAK,kBAAoB,IAAI,GAC7B,KAAK,UAAY,IAAI,GACrB,KAAK,SAAW,IAAI,GACpB,KAAK,UAAY,IAAI,GACrB,KAAK,cAAgB,IAAI,GACzB,IAAM,EAAQ,GAAqB,CAAQ,GACnC,aAAY,SAAU,GAAe,CAC3C,WAAY,EACZ,aACF,CAAC,EACK,EAAe,GAAoB,CAAQ,EAC3C,EAA0B,GAA2B,CACzD,QACA,YACA,UACA,SAAU,IAAK,EAAc,YAAW,CAC1C,CAAC,EACK,EAAS,GAAU,CAAS,EAC5B,EAAO,KACP,EAAmB,GAAuB,EAC1C,EAAiB,IAAI,gBAAgB,CACzC,SAAS,CAAC,EAAO,EAAY,CAE3B,GADA,EAAW,QAAQ,CAAK,EACpB,EAAM,OAAS,QACjB,EAAQ,CAAE,MAAO,GAAiB,EAAM,KAAK,CAAE,CAAC,EAGtD,CAAC,EACD,KAAK,WAAa,EAAiB,OAAO,YAAY,CAAc,EACpE,GAAW,CACT,KAAM,kBACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,kBACb,WACF,CAAC,KACE,EAEH,YAAa,CACX,MAAO,IAAM,KAAK,UAAU,CAAE,SAAQ,SAAQ,UAAS,CAAC,CAC1D,EACA,YAAa,EAAe,YAAc,KAAO,CAAE,MAAO,IAAM,KAAK,UAAU,EAAe,UAAU,CAAE,EAAS,OACnH,iBAAkB,EAClB,wBAAyB,EACzB,qBAAsB,EAAe,IACvC,CACF,CAAC,EACD,SACA,YAAa,GACb,GAAI,MAAO,IAAa,CACtB,IAAM,EAAqB,MAAM,GAAkB,CACjD,SACA,SACA,UACF,CAAC,EACK,GAAc,CAClB,eAAgB,CACd,KAAM,OACN,OAAQ,EAAe,WACvB,KAAM,EACN,YAAa,CACf,KACG,GAAoB,CAAQ,EAC/B,OAAQ,MAAM,GAA6B,CACzC,OAAQ,EACR,cAAe,MAAM,EAAM,cAC3B,SAAU,CACZ,CAAC,EACD,kBACA,cACA,UACA,iBAAkB,EACpB,EACM,EAAc,CAClB,UAAW,CAAC,EAAO,IAAe,CAChC,OAAQ,EAAM,UACP,aACH,EAAW,QAAQ,EAAM,KAAK,EAC9B,UACG,wBACA,aACA,YACA,eACH,EAAW,QAAQ,CAAK,EACxB,OAGR,GAEE,QAAU,UAAQ,YAAU,YAC5B,eACA,qBACE,MAAM,EACR,IAAM,GAAW,CACf,KAAM,2BACN,WAAY,EAA0B,CACpC,YACA,WAAY,IACP,GAAsB,CACvB,YAAa,2BACb,WACF,CAAC,KACE,EACH,qBAAsB,CACpB,MAAO,IAAM,GAAsB,GAAY,MAAM,CACvD,EAEA,gBAAiB,EAAM,SACvB,uBAAwB,EAAM,QAC9B,mCAAoC,EAAa,iBACjD,4BAA6B,EAAa,gBAC1C,kCAAmC,EAAa,gBAChD,6BAA8B,EAAa,YAC3C,uBAAwB,EAAa,KACrC,uBAAwB,EAAa,IACvC,CACF,CAAC,EACD,SACA,YAAa,GACb,GAAI,MAAO,KAAmB,CAC5B,iBAAkB,EAAK,EACvB,aAAc,EACd,OAAQ,MAAM,EAAM,SAAS,EAAW,CAC1C,EACF,CAAC,CACH,EACA,EAAK,SAAS,QAAQ,IAAW,KAAO,GAAU,CAAC,CAAC,EACpD,IAAI,GACA,GAAQ,CACV,YAAkB,OAClB,aAAmB,OACnB,YAAkB,MACpB,EACI,EACA,GACA,EACA,GACA,GAAkB,GAClB,GAAY,GACZ,EAAe,CACjB,GAAI,EAAY,EAChB,UAAW,EAAY,EACvB,QAAS,EAAM,OACjB,EACI,EAAwB,OACxB,GAAoB,OACpB,EAAe,GACf,EAAe,GACb,EAAoB,GAAO,YAAY,IAAI,gBAAgB,CAAW,CAAC,EAAE,YAC7E,IAAI,gBAAgB,MACZ,UAAS,CAAC,EAAO,EAAY,CACjC,IAAI,GAAM,GAAI,EACd,GAAI,OAAO,IAAU,UAAY,EAAM,OAAS,eAAgB,CAC9D,GAAW,EAAM,SACjB,OAEF,GAAI,EAAc,CAChB,IAAM,EAAiB,EAAK,EAAI,GAChC,EAAe,GACf,EAAa,SAAS,uBAAwB,CAC5C,2BAA4B,CAC9B,CAAC,EACD,EAAa,cAAc,CACzB,2BAA4B,CAC9B,CAAC,EAEH,GAAI,OAAO,IAAU,SAAU,CAC7B,IAAmB,EACnB,IAAa,EACb,IAAQ,MAAO,EAAmB,MAAO,IAAe,MAAM,GAAiB,EAAe,EAC9F,GAAI,IAA2B,QAAK,CAAC,GAAgB,EAAkB,CAAiB,EAAG,CACzF,IAAM,EAAmB,MAAM,EAAe,sBAAsB,CAClE,MAAO,EACP,aACA,gBACA,eACA,aAAc,KAAe,kBAC/B,CAAC,EACD,GAAI,EAAiB,SAAW,CAAC,GAC/B,GACA,EAAiB,MAAM,OACzB,EACE,EAAmB,EACnB,GAAe,EAAiB,MAAM,QACtC,EAAW,QAAQ,CACjB,KAAM,SACN,OAAQ,EACV,CAAC,EACD,EAAW,QAAQ,CACjB,KAAM,aACN,UAAW,EAAiB,MAAM,SACpC,CAAC,EACD,GAAY,GACZ,EAAe,GAGnB,OAEF,OAAQ,EAAM,UACP,oBAAqB,CACxB,EAAe,CACb,IAAK,GAAO,EAAM,KAAO,KAAO,GAAO,EAAa,GACpD,WAAY,GAAK,EAAM,YAAc,KAAO,GAAK,EAAa,UAC9D,SAAU,EAAK,EAAM,UAAY,KAAO,EAAK,EAAa,OAC5D,EACA,KACF,KACK,SAAU,CACb,GAAI,KAAc,GAChB,EAAW,QAAQ,CAAE,KAAM,aAAc,YAAU,CAAC,EAEtD,EAAe,EAAM,aACrB,GAAQ,EAAM,MACd,GAAmB,EAAM,iBACzB,EAAW,QAAQ,IACd,EACH,SACA,SAAU,CACZ,CAAC,EACD,GAAY,IAAY,KAAO,GAAW,CAAC,CAAC,EAC5C,EAAK,OAAO,QAAQ,EAAK,EACzB,EAAK,kBAAkB,QAAQ,EAAgB,EAC/C,EAAK,UAAU,QAAQ,EAAQ,EAC/B,EAAK,UAAU,QAAQ,IAClB,EACH,QAAS,IAAY,KAAY,OAAI,GAAS,OAChD,CAAC,EACD,EAAK,cAAc,QAAQ,GAAgB,KAAO,EAAe,SAAS,EAC1E,GAAI,CACF,EAAU,MAAM,GACd,GACA,EACA,EACA,CACE,SAAU,EACV,SACA,cACF,CACF,EACA,EAAK,QAAQ,QAAQ,CAAO,EAC5B,MAAO,EAAG,CACV,GAAQ,EACR,EAAK,QAAQ,OAAO,CAAC,EAEvB,KACF,SACS,CACP,EAAW,QAAQ,CAAK,EACxB,KACF,SAIE,MAAK,CAAC,EAAY,CACtB,GAAI,CACF,IAAM,EAAa,IAAS,KAAO,GAAQ,CACzC,aAAc,IACd,iBAAkB,IAClB,YAAa,GACf,EACA,EAAa,cACX,EAA0B,CACxB,YACA,WAAY,CACV,2BAA4B,EAC5B,qBAAsB,CACpB,OAAQ,IAAM,KAAK,UAAU,CAAO,CACtC,EACA,iBAAkB,EAAa,GAC/B,oBAAqB,EAAa,QAClC,wBAAyB,EAAa,UAAU,YAAY,EAC5D,+BAAgC,KAAK,UAAU,EAAgB,EAC/D,uBAAwB,EAAW,YACnC,wBAAyB,EAAW,aACpC,uBAAwB,EAAW,YACnC,2BAA4B,EAAW,gBACvC,6BAA8B,EAAW,kBAEzC,iCAAkC,CAAC,CAAY,EAC/C,qBAAsB,EAAa,GACnC,wBAAyB,EAAa,QACtC,4BAA6B,EAAW,YACxC,6BAA8B,EAAW,YAC3C,CACF,CAAC,CACH,EACA,EAAa,IAAI,EACjB,EAAS,cACP,EAA0B,CACxB,YACA,WAAY,CACV,uBAAwB,EAAW,YACnC,wBAAyB,EAAW,aACpC,uBAAwB,EAAW,YACnC,2BAA4B,EAAW,gBACvC,6BAA8B,EAAW,kBACzC,qBAAsB,CACpB,OAAQ,IAAM,KAAK,UAAU,CAAO,CACtC,EACA,+BAAgC,KAAK,UAAU,EAAgB,CACjE,CACF,CAAC,CACH,EACA,MAAO,GAAY,KAAY,OAAI,EAAS,CAC1C,MAAO,EACP,OAAQ,EACR,SACA,SAAU,IACL,EACH,QAAS,IAAY,KAAY,OAAI,GAAS,OAChD,EACA,YACA,mBACF,CAAC,GACD,MAAO,EAAQ,CACf,EAAW,QAAQ,CAAE,KAAM,QAAS,MAAO,CAAO,CAAC,SACnD,CACA,EAAS,IAAI,GAGnB,CAAC,CACH,EACA,EAAiB,UAAU,CAAiB,EAEhD,CAAC,EAAE,MAAM,CAAC,IAAU,CAClB,EAAiB,UACf,IAAI,eAAe,CACjB,KAAK,CAAC,EAAY,CAChB,EAAW,QAAQ,CAAE,KAAM,QAAS,OAAM,CAAC,EAC3C,EAAW,MAAM,EAErB,CAAC,CACH,EACD,EAAE,QAAQ,IAAM,CACf,EAAiB,MAAM,EACxB,EACD,KAAK,eAAiB,KAEpB,OAAM,EAAG,CACX,OAAO,KAAK,QAAQ,WAElB,MAAK,EAAG,CACV,OAAO,KAAK,OAAO,WAEjB,iBAAgB,EAAG,CACrB,OAAO,KAAK,kBAAkB,WAE5B,SAAQ,EAAG,CACb,OAAO,KAAK,UAAU,WAEpB,QAAO,EAAG,CACZ,OAAO,KAAK,SAAS,WAEnB,SAAQ,EAAG,CACb,OAAO,KAAK,UAAU,WAEpB,aAAY,EAAG,CACjB,OAAO,KAAK,cAAc,WAExB,oBAAmB,EAAG,CACxB,OAAO,GACL,KAAK,WAAW,YACd,IAAI,gBAAgB,CAClB,SAAS,CAAC,EAAO,EAAY,CAC3B,OAAQ,EAAM,UACP,SACH,EAAW,QAAQ,EAAM,MAAM,EAC/B,UACG,iBACA,aACA,QACH,cAGA,MAAU,MAAM,2BADS,GACoC,GAIrE,CAAC,CACH,CACF,KAEE,cAAa,EAAG,CAClB,OAAO,KAAK,eAAe,oBAAoB,KAAK,UAAU,KAE5D,WAAU,EAAG,CACf,OAAO,GACL,KAAK,WAAW,YACd,IAAI,gBAAgB,CAClB,SAAS,CAAC,EAAO,EAAY,CAC3B,OAAQ,EAAM,UACP,aACH,EAAW,QAAQ,EAAM,SAAS,EAClC,UACG,aACA,aACA,QACH,cAGA,MAAU,MAAM,2BADS,GACoC,GAIrE,CAAC,CACH,CACF,KAEE,WAAU,EAAG,CACf,OAAO,GAA0B,KAAK,UAAU,EAElD,wBAAwB,CAAC,EAAU,EAAM,CACvC,GAAyB,CACvB,WACA,WAAY,KAAK,cACd,CACL,CAAC,EAEH,oBAAoB,CAAC,EAAM,CACzB,OAAO,GAAyB,CAC9B,WAAY,KAAK,cACd,CACL,CAAC,EAEL,EAMI,GAA4B,cAAc,EAAqB,CACjE,WAAW,EACT,OACA,aACC,CACD,MAAM,CAAE,OAAM,WAAU,CAAC,EACzB,IAAI,EAAS,MACb,GAAI,EAAW,CACb,IAAM,EAAiB,EAAU,MAAM,GAAG,EAC1C,GAAI,EAAe,SAAW,GAC5B,GAAI,IAAc,aAChB,EAAS,EAAe,IAI9B,GAAI,CAAC,EACH,MAAU,MACR,+DACF,EAEF,KAAK,OAAS,EAElB,EAGA,eAAe,EAAc,EAC3B,QACA,KAAM,EACN,QACA,eACA,eACA,QACA,WACA,kBAAkB,CAAC,EACnB,WAAY,EACZ,cACA,WACC,CACD,IAAI,EACJ,GAAI,EAAM,uBAAyB,KACjC,MAAM,IAAI,GAA6B,CACrC,QAAS,EAAM,qBACf,SAAU,EAAM,SAChB,QAAS,EAAM,OACjB,CAAC,EAEH,IAAM,EAAuB,EAC3B,GAAW,KAAO,EAAU,CAAC,EAC7B,MAAM,IACR,GACQ,SAAU,GAAe,CAC/B,WAAY,EACZ,aACF,CAAC,EACK,EAAS,MAAM,EACnB,IAAM,EAAM,WAAW,CACrB,KAAM,EACN,QACA,eACA,eACA,QACA,WACA,cACA,QAAS,EACT,iBACF,CAAC,CACH,EACA,GAAI,CAAC,EAAO,OAAS,EAAO,MAAM,SAAW,EAC3C,MAAM,IAAI,GAAuB,CAAE,UAAW,CAAC,EAAO,QAAQ,CAAE,CAAC,EAGnE,OADA,GAAY,EAAO,QAAQ,EACpB,IAAI,GAAoB,CAC7B,MAAO,IAAI,GAA0B,CACnC,KAAM,EAAO,MACb,WAAY,EAAO,GAAgB,CACjC,KAAM,EAAO,MACb,WAAY,EACd,CAAC,IAAM,KAAO,EAAO,WACvB,CAAC,EACD,SAAU,EAAO,SACjB,UAAW,CAAC,EAAO,QAAQ,EAC3B,iBAAkB,EAAO,gBAC3B,CAAC,EAEH,IAAI,GAAsB,KAAM,CAC9B,WAAW,CAAC,EAAS,CACnB,IAAI,EACJ,KAAK,MAAQ,EAAQ,MACrB,KAAK,SAAW,EAAQ,SACxB,KAAK,UAAY,EAAQ,UACzB,KAAK,kBAAoB,EAAO,EAAQ,mBAAqB,KAAO,EAAO,CAAC,EAEhF,EAGI,GAAiB,CAAC,EACtB,GAAS,GAAgB,CACvB,OAAQ,IAAM,GACd,KAAM,IAAM,EACd,CAAC,EAMD,IAAI,GAAO,KAAO,CAChB,KAAM,OACN,eAAgB,CAAE,KAAM,MAAO,OACzB,aAAY,EAAG,KAAM,GAAS,CAClC,MAAO,CAAE,QAAS,CAAM,QAEpB,YAAW,EAAG,KAAM,GAAS,CACjC,OAAO,EAEX,GACI,GAAS,EACX,OAAQ,KACJ,CACJ,IAAM,EAAS,GAAU,CAAW,EACpC,MAAO,CACL,KAAM,SACN,eAAgB,CACd,KAAM,OACN,OAAQ,EAAO,UACjB,OACM,aAAY,EAAG,KAAM,GAAS,CAClC,IAAM,EAAS,MAAM,GAAiB,CAAK,EAC3C,OAAQ,EAAO,WACR,mBACA,kBACH,WACG,qBACA,mBACH,MAAO,CAEL,QAAS,EAAO,KAClB,UACO,CACP,IAAM,EAAmB,EAAO,MAChC,MAAU,MAAM,4BAA4B,GAAkB,CAChE,SAGE,YAAW,EAAG,KAAM,GAAS,EAAS,CAC1C,IAAM,EAAc,MAAM,GAAe,CAAE,KAAM,CAAM,CAAC,EACxD,GAAI,CAAC,EAAY,QACf,MAAM,IAAI,GAAuB,CAC/B,QAAS,qDACT,MAAO,EAAY,MACnB,KAAM,EACN,SAAU,EAAQ,SAClB,MAAO,EAAQ,MACf,aAAc,EAAQ,YACxB,CAAC,EAEH,IAAM,EAAmB,MAAM,GAAmB,CAChD,MAAO,EAAY,MACnB,QACF,CAAC,EACD,GAAI,CAAC,EAAiB,QACpB,MAAM,IAAI,GAAuB,CAC/B,QAAS,sDACT,MAAO,EAAiB,MACxB,KAAM,EACN,SAAU,EAAQ,SAClB,MAAO,EAAQ,MACf,aAAc,EAAQ,YACxB,CAAC,EAEH,OAAO,EAAiB,MAE5B,GAIF,SAAS,EAAa,EACpB,WACA,YAAY,OACZ,YAAY,CAAC,EACb,gBAAgB,UACf,CACD,GAAI,IAAc,OAAS,IAAc,sBACvC,EAAW,EAAS,IAAI,CAAC,EAAS,IAAiB,CACjD,GAAI,EAAQ,OAAS,aAAe,OAAO,EAAQ,UAAY,UAAY,IAAc,uBAAyB,IAAiB,EAAS,OAAS,EACnJ,OAAO,EAET,MAAO,IACF,EACH,QAAS,EAAQ,QAAQ,OAAO,CAAC,IAAS,EAAK,OAAS,WAAW,CACrE,EACD,EAEH,GAAI,IAAc,OAChB,EAAY,CAAC,EACR,QAAI,IAAc,MACvB,EAAY,CAAC,CAAE,KAAM,KAAM,CAAC,EACvB,QAAI,IAAc,sBACvB,EAAY,CAAC,CAAE,KAAM,qBAAsB,CAAC,EACvC,QAAI,OAAO,IAAc,SAC9B,EAAY,CAAC,CAAE,KAAM,CAAU,CAAC,EAElC,QAAW,KAAY,EAAW,CAChC,IAAM,EAAwB,EAAS,OAAS,MAAa,OAAI,EAAS,OAAS,sBAAwB,EAAI,OAC7G,EAAS,KAAK,MAAM,EAAqB,EAAE,MAAM,EAAG,EAAmB,CACzE,EACM,EAAkC,IAAI,IACtC,EAAkC,IAAI,IAC5C,GAAI,GAAyB,MAC3B,QAAW,KAAW,EAAS,MAAM,EAAG,CAAC,CAAqB,EAC5D,IAAK,EAAQ,OAAS,aAAe,EAAQ,OAAS,SAAW,OAAO,EAAQ,UAAY,UAC1F,QAAW,KAAQ,EAAQ,QACzB,GAAI,EAAK,OAAS,aAAe,EAAK,OAAS,cAC7C,EAAgB,IAAI,EAAK,UAAU,GAM7C,EAAW,EAAS,IAAI,CAAC,EAAS,IAAiB,CACjD,GAAI,EAAQ,OAAS,aAAe,EAAQ,OAAS,QAAU,OAAO,EAAQ,UAAY,UAAY,GAAyB,GAAgB,EAAS,OAAS,EAC/J,OAAO,EAET,IAAM,EAAuB,CAAC,EAC9B,MAAO,IACF,EACH,QAAS,EAAQ,QAAQ,OAAO,CAAC,IAAS,CACxC,GAAI,EAAK,OAAS,aAAe,EAAK,OAAS,cAC7C,MAAO,GAET,GAAI,EAAK,OAAS,YAChB,EAAqB,EAAK,YAAc,EAAK,SAE/C,IAAK,EAAK,OAAS,aAAe,EAAK,OAAS,gBAAkB,EAAgB,IAAI,EAAK,UAAU,EACnG,MAAO,GAET,OAAO,EAAS,OAAS,MAAQ,CAAC,EAAS,MAAM,SAAS,EAAK,QAAQ,EACxE,CACH,EACD,EAEH,GAAI,IAAkB,SACpB,EAAW,EAAS,OAAO,CAAC,IAAY,EAAQ,QAAQ,OAAS,CAAC,EAEpE,OAAO,EAMT,IAAI,GAAmB,CACrB,KAAM,UACN,KAAM,MACR,EACA,SAAS,EAAY,EACnB,YAAY,GACZ,WAAW,OACX,WAAa,MAAO,EAAS,IAAkB,CAAC,GAC9C,CAAC,EAAG,CACN,IAAI,EACJ,GAAI,OAAO,IAAa,WACtB,EAAc,CAAC,IAAW,CACxB,IAAM,EAAQ,EAAS,CAAM,EAC7B,GAAI,GAAS,KACX,OAAO,KAET,GAAI,CAAC,EAAM,OACT,MAAU,MAAM,mDAAmD,EAErE,GAAI,CAAC,EAAO,WAAW,CAAK,EAC1B,MAAU,MACR,oFAAoF,8BAAkC,IACxH,EAEF,OAAO,GAEJ,KACL,IAAM,EAAgB,OAAO,IAAa,SAAW,GAAiB,GAAY,EAClF,GAAI,GAAiB,KACnB,MAAM,IAAI,GAAsB,CAC9B,SAAU,WACV,QAAS,4DAA4D,GACvE,CAAC,EAEH,EAAc,CAAC,IAAW,CACxB,IAAM,EAAQ,EAAc,KAAK,CAAM,EACvC,GAAI,CAAC,EACH,OAAO,KAET,OAAO,EAAO,MAAM,EAAG,EAAM,KAAK,GAAK,GAAS,KAAY,OAAI,EAAM,KAG1E,MAAO,IAAM,CACX,IAAI,EAAS,GACT,EAAK,GACT,OAAO,IAAI,gBAAgB,MACnB,UAAS,CAAC,EAAO,EAAY,CACjC,GAAI,EAAM,OAAS,aAAc,CAC/B,GAAI,EAAO,OAAS,EAClB,EAAW,QAAQ,CAAE,KAAM,aAAc,KAAM,EAAQ,IAAG,CAAC,EAC3D,EAAS,GAEX,EAAW,QAAQ,CAAK,EACxB,OAEF,GAAI,EAAM,KAAO,GAAM,EAAO,OAAS,EACrC,EAAW,QAAQ,CAAE,KAAM,aAAc,KAAM,EAAQ,IAAG,CAAC,EAC3D,EAAS,GAEX,GAAU,EAAM,KAChB,EAAK,EAAM,GACX,IAAI,EACJ,OAAQ,EAAQ,EAAY,CAAM,IAAM,KACtC,EAAW,QAAQ,CAAE,KAAM,aAAc,KAAM,EAAO,IAAG,CAAC,EAC1D,EAAS,EAAO,MAAM,EAAM,MAAM,EAClC,MAAM,EAAO,CAAS,EAG5B,CAAC,GAKL,SAAS,EAAyB,EAChC,YACC,CACD,MAAO,CACL,kBAAmB,KACnB,gBAAiB,OAAS,YAAa,CACrC,OAAO,GAAa,EAAU,CAAM,EAExC,EAIF,SAAS,EAAsB,CAAC,EAAO,EAAc,CACnD,GAAI,EAAa,SAAW,EAC1B,OAAO,KAET,IAAM,EAAc,EAAM,QAAQ,CAAY,EAC9C,GAAI,IAAgB,GAClB,OAAO,EAET,QAAS,EAAI,EAAM,OAAS,EAAG,GAAK,EAAG,IAAK,CAC1C,IAAM,EAAS,EAAM,UAAU,CAAC,EAChC,GAAI,EAAa,WAAW,CAAM,EAChC,OAAO,EAGX,OAAO,KAIT,SAAS,EAA0B,EACjC,UACA,YAAY;AAAA,EACZ,qBAAqB,IACpB,CACD,IAAM,EAAa,IAAI,KACjB,EAAa,KAAK,KACxB,MAAO,CACL,kBAAmB,KACnB,aAAc,OAAS,gBAAiB,CACtC,IAAQ,aAAY,GAAS,MAAM,EAAW,EACxC,EAAqB,CAAC,EAC5B,QAAW,KAAQ,EAAS,CAC1B,GAAI,EAAK,OAAS,OAAQ,CACxB,EAAmB,KAAK,CAAI,EAC5B,SAEF,IAAM,EAAQ,EAAqB,EAAa,EAAK,KAAO,EAAK,KAC3D,EAAS,IAAI,OAAO,GAAG,SAAkB,IAAc,IAAI,EAC3D,EAAU,MAAM,KAAK,EAAM,SAAS,CAAM,CAAC,EACjD,GAAI,CAAC,EAAQ,OAAQ,CACnB,EAAmB,KAAK,CAAI,EAC5B,SAEF,IAAM,EAAgB,EAAQ,IAAI,CAAC,IAAU,EAAM,EAAE,EAAE,KAAK,CAAS,EACjE,EAAuB,EAC3B,QAAS,EAAI,EAAQ,OAAS,EAAG,GAAK,EAAG,IAAK,CAC5C,IAAM,EAAQ,EAAQ,GAChB,EAAc,EAAqB,MAAM,EAAG,EAAM,KAAK,EACvD,EAAa,EAAqB,MACtC,EAAM,MAAQ,EAAM,GAAG,MACzB,EACA,EAAuB,GAAe,EAAY,OAAS,GAAK,EAAW,OAAS,EAAI,EAAY,IAAM,EAE5G,EAAmB,KAAK,CACtB,KAAM,YACN,KAAM,CACR,CAAC,EACD,EAAmB,KAAK,CACtB,KAAM,OACN,KAAM,CACR,CAAC,EAEH,MAAO,CAAE,QAAS,KAAuB,CAAK,GAEhD,WAAY,OAAS,cAAe,CAClC,IAAQ,YAAW,GAAS,MAAM,EAAS,EACrC,EAAuB,CAAC,EAC1B,EACJ,MAAO,CACL,OAAQ,EAAO,YACb,IAAI,gBAAgB,CAClB,UAAW,CAAC,EAAO,IAAe,CAChC,GAAI,EAAM,OAAS,aAAc,CAC/B,EAAmB,EACnB,OAEF,GAAI,EAAM,OAAS,YAAc,EAC/B,EAAW,QAAQ,CAAgB,EACnC,EAAwB,OAE1B,GAAI,EAAM,OAAS,aAAc,CAC/B,EAAW,QAAQ,CAAK,EACxB,OAEF,GAAI,EAAqB,EAAM,KAAO,KACpC,EAAqB,EAAM,IAAM,CAC/B,iBAAkB,GAClB,YAAa,GACb,YAAa,GACb,YAAa,EACb,OAAQ,GACR,UAAW,EACX,OAAQ,EAAM,EAChB,EAEF,IAAM,EAAmB,EAAqB,EAAM,IACpD,EAAiB,QAAU,EAAM,MACjC,SAAS,CAAO,CAAC,EAAO,CACtB,GAAI,EAAM,OAAS,EAAG,CACpB,IAAM,EAAS,EAAiB,cAAgB,EAAiB,YAAc,CAAC,EAAiB,iBAAmB,CAAC,EAAiB,aAAe,EAAY,GACjK,GAAI,EAAiB,cAAgB,EAAiB,aAAe,EAAiB,kBACpF,EAAW,QAAQ,CACjB,KAAM,kBACN,GAAI,aAAa,EAAiB,WACpC,CAAC,EAEH,GAAI,EAAiB,YACnB,EAAW,QAAQ,CACjB,KAAM,kBACN,MAAO,EAAS,EAChB,GAAI,aAAa,EAAiB,WACpC,CAAC,EACI,KACL,GAAI,EACF,EAAW,QAAQ,CAAgB,EACnC,EAAwB,OAE1B,EAAW,QAAQ,CACjB,KAAM,aACN,MAAO,EAAS,EAChB,GAAI,EAAiB,MACvB,CAAC,EAGH,GADA,EAAiB,YAAc,GAC3B,EAAiB,YACnB,EAAiB,iBAAmB,GAEpC,OAAiB,YAAc,IAIrC,EAAG,CACD,IAAM,EAAU,EAAiB,YAAc,EAAa,EACtD,EAAa,GACjB,EAAiB,OACjB,CACF,EACA,GAAI,GAAc,KAAM,CACtB,EAAQ,EAAiB,MAAM,EAC/B,EAAiB,OAAS,GAC1B,MAIF,GAFA,EAAQ,EAAiB,OAAO,MAAM,EAAG,CAAU,CAAC,EAC7B,EAAa,EAAQ,QAAU,EAAiB,OAAO,OAC1D,CAIlB,GAHA,EAAiB,OAAS,EAAiB,OAAO,MAChD,EAAa,EAAQ,MACvB,EACI,EAAiB,YACnB,EAAW,QAAQ,CACjB,KAAM,gBACN,GAAI,aAAa,EAAiB,aACpC,CAAC,EAEH,EAAiB,YAAc,CAAC,EAAiB,YACjD,EAAiB,YAAc,GAC1B,KACL,EAAiB,OAAS,EAAiB,OAAO,MAAM,CAAU,EAClE,aAEK,IAEb,CAAC,CACH,KACG,CACL,EAEJ,EAIF,SAAS,EAA2B,EAAG,CACrC,MAAO,CACL,kBAAmB,KACnB,WAAY,OAAS,gBAAiB,CACpC,IAAM,EAAS,MAAM,EAAW,EAC5B,EAAK,EAqDT,MAAO,CACL,OArDsB,IAAI,eAAe,CACzC,KAAK,CAAC,EAAY,CAChB,EAAW,QAAQ,CACjB,KAAM,eACN,SAAU,EAAO,QACnB,CAAC,EACD,EAAW,QAAQ,CAAE,KAAM,uBAAwB,EAAO,QAAS,CAAC,EACpE,QAAW,KAAQ,EAAO,QACxB,OAAQ,EAAK,UACN,OAAQ,CACX,GAAI,EAAK,KAAK,OAAS,EACrB,EAAW,QAAQ,CAAE,KAAM,aAAc,GAAI,OAAO,CAAE,CAAE,CAAC,EACzD,EAAW,QAAQ,CACjB,KAAM,aACN,GAAI,OAAO,CAAE,EACb,MAAO,EAAK,IACd,CAAC,EACD,EAAW,QAAQ,CAAE,KAAM,WAAY,GAAI,OAAO,CAAE,CAAE,CAAC,EACvD,IAEF,KACF,KACK,YAAa,CAChB,EAAW,QAAQ,CACjB,KAAM,kBACN,GAAI,OAAO,CAAE,EACb,iBAAkB,EAAK,gBACzB,CAAC,EACD,EAAW,QAAQ,CACjB,KAAM,kBACN,GAAI,OAAO,CAAE,EACb,MAAO,EAAK,IACd,CAAC,EACD,EAAW,QAAQ,CAAE,KAAM,gBAAiB,GAAI,OAAO,CAAE,CAAE,CAAC,EAC5D,IACA,KACF,SACS,CACP,EAAW,QAAQ,CAAI,EACvB,KACF,EAGJ,EAAW,QAAQ,CACjB,KAAM,SACN,aAAc,EAAO,aACrB,MAAO,EAAO,MACd,iBAAkB,EAAO,gBAC3B,CAAC,EACD,EAAW,MAAM,EAErB,CAAC,EAGC,QAAS,EAAO,QAChB,SAAU,EAAO,QACnB,EAEJ,EAIF,IAAI,GAAoB,EACtB,QACA,WAAY,EACZ,UACA,gBACI,CACJ,MAAO,CAAC,GAAG,GAAQ,CAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAc,IAAe,CAChF,OAAO,GAAO,CAAE,MAAO,EAAc,aAAY,UAAS,YAAW,CAAC,GACrE,CAAK,GAEN,GAAS,EACX,QACA,YACE,kBACA,eACA,aACA,mBACA,kBACA,yBAEF,UACA,gBACI,CACJ,IAAI,EAAM,EAAI,EACd,eAAe,CAAW,EACxB,SACA,QACC,CACD,OAAO,EAAkB,MAAM,EAAgB,CAAE,SAAQ,OAAM,OAAM,CAAC,EAAI,EAE5E,MAAO,CACL,qBAAsB,KACtB,UAAW,EAAO,GAAc,KAAO,EAAa,GAAoB,KAAY,OAAI,EAAiB,CAAE,OAAM,CAAC,IAAM,KAAO,EAAO,EAAM,SAC5I,SAAU,EAAK,GAAW,KAAO,EAAU,GAAmB,KAAY,OAAI,EAAgB,CAAE,OAAM,CAAC,IAAM,KAAO,EAAK,EAAM,QAC/H,eAAgB,EAAK,GAAyB,KAAY,OAAI,EAAsB,CAAE,OAAM,CAAC,IAAM,KAAO,EAAK,EAAM,mBAC/G,WAAU,CAAC,EAAQ,CACvB,IAAM,EAAoB,MAAM,EAAY,CAAE,SAAQ,KAAM,UAAW,CAAC,EAClE,EAAa,SAAY,EAAM,WAAW,CAAiB,EAEjE,OAAO,EAAe,EAAa,CACjC,aACA,SAHe,SAAY,EAAM,SAAS,CAAiB,EAI3D,OAAQ,EACR,OACF,CAAC,EAAI,EAAW,QAEZ,SAAQ,CAAC,EAAQ,CACrB,IAAM,EAAoB,MAAM,EAAY,CAAE,SAAQ,KAAM,QAAS,CAAC,EAChE,EAAa,SAAY,EAAM,WAAW,CAAiB,EAC3D,EAAW,SAAY,EAAM,SAAS,CAAiB,EAC7D,OAAO,EAAa,EAAW,CAAE,aAAY,WAAU,OAAQ,EAAmB,OAAM,CAAC,EAAI,EAAS,EAE1G,GAIF,SAAS,EAAY,EACnB,WACA,2BACC,CAeD,MAdwB,CACtB,aAAa,CAAC,EAAS,CACrB,IAAI,EAAQ,EAAS,cAAc,CAAO,EAK1C,OAJA,EAAQ,GAAkB,CACxB,QACA,WAAY,CACd,CAAC,EACM,GAET,mBAAoB,EAAS,mBAC7B,WAAY,EAAS,WACrB,mBAAoB,EAAS,mBAC7B,YAAa,EAAS,WACxB,EAQF,SAAS,EAAc,EACrB,iBACA,sBACA,cACA,sBACA,eACA,oBACC,CACD,MAAO,CACL,aAAa,CAAC,EAAS,CACrB,GAAI,GAAkB,MAAQ,KAAW,EACvC,OAAO,EAAe,GAExB,GAAI,EACF,OAAO,EAAiB,cAAc,CAAO,EAE/C,MAAM,IAAI,GAAkB,CAAE,UAAS,UAAW,eAAgB,CAAC,GAErE,kBAAkB,CAAC,EAAS,CAC1B,GAAI,GAAuB,MAAQ,KAAW,EAC5C,OAAO,EAAoB,GAE7B,GAAI,EACF,OAAO,EAAiB,mBAAmB,CAAO,EAEpD,MAAM,IAAI,GAAkB,CAAE,UAAS,UAAW,oBAAqB,CAAC,GAE1E,UAAU,CAAC,EAAS,CAClB,GAAI,GAAe,MAAQ,KAAW,EACpC,OAAO,EAAY,GAErB,GAAI,GAAoB,KAAY,OAAI,EAAiB,WACvD,OAAO,EAAiB,WAAW,CAAO,EAE5C,MAAM,IAAI,GAAkB,CAAE,UAAS,UAAW,YAAa,CAAC,GAElE,kBAAkB,CAAC,EAAS,CAC1B,GAAI,GAAuB,MAAQ,KAAW,EAC5C,OAAO,EAAoB,GAE7B,GAAI,GAAoB,KAAY,OAAI,EAAiB,mBACvD,OAAO,EAAiB,mBAAmB,CAAO,EAEpD,MAAM,IAAI,GAAkB,CAAE,UAAS,UAAW,oBAAqB,CAAC,GAE1E,WAAW,CAAC,EAAS,CACnB,GAAI,GAAgB,MAAQ,KAAW,EACrC,OAAO,EAAa,GAEtB,GAAI,GAAoB,KAAY,OAAI,EAAiB,YACvD,OAAO,EAAiB,YAAY,CAAO,EAE7C,MAAM,IAAI,GAAkB,CAAE,UAAS,UAAW,aAAc,CAAC,EAErE,EAEF,IAAI,GAA8B,GAI9B,GAAS,yBACT,GAAW,mBAAmB,KAC9B,GAAW,OAAO,IAAI,EAAQ,EAC9B,GACA,GAAsB,cAAc,EAAkB,CACxD,WAAW,EACT,UACA,YACA,aACA,qBACA,UAAU,qBAAqB,2BAAoC,EAAmB,KAAK,MAC1F,CACD,MAAM,CAAE,UAAW,GAAQ,UAAS,YAAW,SAAQ,CAAC,EACxD,KAAK,IAAQ,GACb,KAAK,WAAa,EAClB,KAAK,mBAAqB,QAErB,WAAU,CAAC,EAAO,CACvB,OAAO,EAAa,UAAU,EAAO,EAAQ,EAEjD,EACA,GAAO,GAMP,SAAS,EAAsB,CAAC,GAC9B,YAAY,IACZ,2BACE,CAAC,EAAG,CACN,IAAM,EAAW,IAAI,GAAwB,CAC3C,YACA,yBACF,CAAC,EACD,QAAY,EAAI,KAAa,OAAO,QAAQ,CAAS,EACnD,EAAS,iBAAiB,CAAE,KAAI,UAAS,CAAC,EAE5C,OAAO,EAET,IAAI,GAAsC,GACtC,GAA0B,KAAM,CAClC,WAAW,EACT,YACA,2BACC,CACD,KAAK,UAAY,CAAC,EAClB,KAAK,UAAY,EACjB,KAAK,wBAA0B,EAEjC,gBAAgB,EACd,KACA,YACC,CACD,KAAK,UAAU,GAAM,EAEvB,WAAW,CAAC,EAAI,EAAW,CACzB,IAAM,EAAW,KAAK,UAAU,GAChC,GAAI,GAAY,KACd,MAAM,IAAI,GAAoB,CAC5B,QAAS,EACT,YACA,WAAY,EACZ,mBAAoB,OAAO,KAAK,KAAK,SAAS,CAChD,CAAC,EAEH,OAAO,EAET,OAAO,CAAC,EAAI,EAAW,CACrB,IAAM,EAAQ,EAAG,QAAQ,KAAK,SAAS,EACvC,GAAI,IAAU,GACZ,MAAM,IAAI,GAAkB,CAC1B,QAAS,EACT,YACA,QAAS,WAAW,sBAA8B,uCAAwC,KAAK,oBACjG,CAAC,EAEH,MAAO,CAAC,EAAG,MAAM,EAAG,CAAK,EAAG,EAAG,MAAM,EAAQ,KAAK,UAAU,MAAM,CAAC,EAErE,aAAa,CAAC,EAAI,CAChB,IAAI,EAAM,EACV,IAAO,EAAY,GAAW,KAAK,QAAQ,EAAI,eAAe,EAC1D,GAAS,GAAM,EAAO,KAAK,YAAY,EAAY,eAAe,GAAG,gBAAkB,KAAY,OAAI,EAAG,KAC5G,EACA,CACF,EACA,GAAI,GAAS,KACX,MAAM,IAAI,GAAkB,CAAE,QAAS,EAAI,UAAW,eAAgB,CAAC,EAEzE,GAAI,KAAK,yBAA2B,KAClC,EAAQ,GAAkB,CACxB,QACA,WAAY,KAAK,uBACnB,CAAC,EAEH,OAAO,EAET,kBAAkB,CAAC,EAAI,CACrB,IAAI,EACJ,IAAO,EAAY,GAAW,KAAK,QAAQ,EAAI,oBAAoB,EAC7D,EAAW,KAAK,YAAY,EAAY,oBAAoB,EAC5D,GAAS,EAAO,EAAS,qBAAuB,KAAY,OAAI,EAAK,KAAK,EAAU,CAAO,EACjG,GAAI,GAAS,KACX,MAAM,IAAI,GAAkB,CAC1B,QAAS,EACT,UAAW,oBACb,CAAC,EAEH,OAAO,EAET,UAAU,CAAC,EAAI,CACb,IAAI,EACJ,IAAO,EAAY,GAAW,KAAK,QAAQ,EAAI,YAAY,EACrD,EAAW,KAAK,YAAY,EAAY,YAAY,EACpD,GAAS,EAAO,EAAS,aAAe,KAAY,OAAI,EAAK,KAAK,EAAU,CAAO,EACzF,GAAI,GAAS,KACX,MAAM,IAAI,GAAkB,CAAE,QAAS,EAAI,UAAW,YAAa,CAAC,EAEtE,OAAO,EAET,kBAAkB,CAAC,EAAI,CACrB,IAAI,EACJ,IAAO,EAAY,GAAW,KAAK,QAAQ,EAAI,oBAAoB,EAC7D,EAAW,KAAK,YAAY,EAAY,oBAAoB,EAC5D,GAAS,EAAO,EAAS,qBAAuB,KAAY,OAAI,EAAK,KAAK,EAAU,CAAO,EACjG,GAAI,GAAS,KACX,MAAM,IAAI,GAAkB,CAC1B,QAAS,EACT,UAAW,oBACb,CAAC,EAEH,OAAO,EAET,WAAW,CAAC,EAAI,CACd,IAAI,EACJ,IAAO,EAAY,GAAW,KAAK,QAAQ,EAAI,aAAa,EACtD,EAAW,KAAK,YAAY,EAAY,aAAa,EACrD,GAAS,EAAO,EAAS,cAAgB,KAAY,OAAI,EAAK,KAAK,EAAU,CAAO,EAC1F,GAAI,GAAS,KACX,MAAM,IAAI,GAAkB,CAAE,QAAS,EAAI,UAAW,aAAc,CAAC,EAEvE,OAAO,EAEX,EAOI,GAA6B,cAAc,CAAa,CAC1D,WAAW,CAAC,EAAS,CACnB,MAAM,CACJ,KAAM,gCACN,QAAS,0BACX,CAAC,EACD,KAAK,UAAY,EAAQ,UAE7B,EAGA,eAAe,EAAU,EACvB,QACA,QACA,kBAAkB,CAAC,EACnB,WAAY,EACZ,cACA,WACC,CACD,GAAI,EAAM,uBAAyB,KACjC,MAAM,IAAI,GAA6B,CACrC,QAAS,EAAM,qBACf,SAAU,EAAM,SAChB,QAAS,EAAM,OACjB,CAAC,EAEH,IAAQ,SAAU,GAAe,CAC/B,WAAY,EACZ,aACF,CAAC,EACK,EAAuB,EAC3B,GAAW,KAAO,EAAU,CAAC,EAC7B,MAAM,IACR,EACM,EAAY,aAAiB,KAAO,MAAM,GAAS,CAAE,IAAK,CAAM,CAAC,GAAG,KAAO,GAA+B,CAAK,EAC/G,EAAS,MAAM,EACnB,IAAM,CACJ,IAAI,EACJ,OAAO,EAAM,WAAW,CACtB,MAAO,EACP,cACA,QAAS,EACT,kBACA,WAAY,EAAO,GAAgB,CACjC,KAAM,EACN,WAAY,EACd,CAAC,IAAM,KAAO,EAAO,WACvB,CAAC,EAEL,EAEA,GADA,GAAY,EAAO,QAAQ,EACvB,CAAC,EAAO,KACV,MAAM,IAAI,GAA2B,CAAE,UAAW,CAAC,EAAO,QAAQ,CAAE,CAAC,EAEvE,OAAO,IAAI,GAA2B,CACpC,KAAM,EAAO,KACb,SAAU,EAAO,SACjB,SAAU,EAAO,SACjB,kBAAmB,EAAO,kBAC1B,SAAU,EAAO,SACjB,UAAW,CAAC,EAAO,QAAQ,EAC3B,iBAAkB,EAAO,gBAC3B,CAAC,EAEH,IAAI,GAA6B,KAAM,CACrC,WAAW,CAAC,EAAS,CACnB,IAAI,EACJ,KAAK,KAAO,EAAQ,KACpB,KAAK,SAAW,EAAQ,SACxB,KAAK,SAAW,EAAQ,SACxB,KAAK,kBAAoB,EAAQ,kBACjC,KAAK,SAAW,EAAQ,SACxB,KAAK,UAAY,EAAQ,UACzB,KAAK,kBAAoB,EAAO,EAAQ,mBAAqB,KAAO,EAAO,CAAC,EAEhF,EAUA,eAAe,EAAiB,EAC9B,SACA,cACC,CACD,IAAM,EAAS,EAAO,YAAY,IAAI,iBAAmB,EAAE,UAAU,EACrE,MAAO,GAAM,CACX,IAAQ,OAAM,SAAU,MAAM,EAAO,KAAK,EAC1C,GAAI,EACF,MAEF,MAAM,EAAW,CAAK,GAK1B,IAAI,GAAmB,IAAM,MAC7B,eAAe,EAAiB,EAC9B,MACA,SACA,cACA,UACA,OACA,iBAAiB,OACjB,gBACA,aACA,WACA,qBACA,WACA,UACA,MAAO,EAAS,GAAiB,GAChC,CACD,IAAI,EACJ,GAAI,CACF,EAAW,EAAI,EACf,EAAc,MAAC,EACf,IAAM,EAAkB,IAAI,gBAC5B,EAAmB,CAAe,EAClC,EAAc,EAAE,EAChB,IAAM,EAAW,MAAM,EAAO,EAAK,CACjC,OAAQ,OACR,KAAM,KAAK,UAAU,CACnB,YACG,CACL,CAAC,EACD,cACA,QAAS,EACP,CACE,eAAgB,sBACb,CACL,EACA,UAAU,KACV,GAAgC,CAClC,EACA,OAAQ,EAAgB,MAC1B,CAAC,EAAE,MAAM,CAAC,IAAQ,CAChB,MAAM,EACP,EACD,GAAI,CAAC,EAAS,GACZ,MAAU,OACP,EAAO,MAAM,EAAS,KAAK,IAAM,KAAO,EAAO,oCAClD,EAEF,GAAI,CAAC,EAAS,KACZ,MAAU,MAAM,6BAA6B,EAE/C,IAAI,EAAS,GACb,OAAQ,OACD,OAAQ,CACX,MAAM,GAAkB,CACtB,OAAQ,EAAS,KACjB,WAAY,CAAC,IAAU,CACrB,GAAU,EACV,EAAc,CAAM,EAExB,CAAC,EACD,KACF,KACK,OAAQ,CACX,MAAM,GAAc,CAClB,OAAQ,GAAqB,CAC3B,OAAQ,EAAS,KACjB,OAAQ,EACV,CAAC,EAAE,YACD,IAAI,gBAAgB,MACZ,UAAS,CAAC,EAAM,CACpB,GAAI,CAAC,EAAK,QACR,MAAM,EAAK,MAEb,IAAM,EAAa,EAAK,MACxB,GAAI,EAAW,OAAS,aACtB,GAAU,EAAW,MACrB,EAAc,CAAM,EACf,QAAI,EAAW,OAAS,QAC7B,MAAU,MAAM,EAAW,SAAS,EAG1C,CAAC,CACH,EACA,QAAS,CAAC,IAAU,CAClB,MAAM,EAEV,CAAC,EACD,KACF,SAGE,MAAU,MAAM,4BADQ,GACqC,EAGjE,GAAI,EACF,EAAS,EAAQ,CAAM,EAGzB,OADA,EAAmB,IAAI,EAChB,EACP,MAAO,EAAK,CACZ,GAAI,EAAI,OAAS,aAEf,OADA,EAAmB,IAAI,EAChB,KAET,GAAI,aAAe,OACjB,GAAI,EACF,EAAQ,CAAG,EAGf,EAAS,CAAG,SACZ,CACA,EAAW,EAAK,GAUpB,eAAe,EAA4B,CAAC,EAAO,CACjD,GAAI,GAAS,KACX,MAAO,CAAC,EAEV,GAAI,CAAC,WAAW,UAAY,EAAE,aAAiB,WAAW,UACxD,MAAU,MAAM,sDAAsD,EAExE,OAAO,QAAQ,IACb,MAAM,KAAK,CAAK,EAAE,IAAI,MAAO,IAAS,CACpC,IAAQ,KAAM,EAAQ,QAAS,EACzB,EAAU,MAAM,IAAI,QAAQ,CAAC,EAAU,IAAW,CACtD,IAAM,EAAS,IAAI,WACnB,EAAO,OAAS,CAAC,IAAgB,CAC/B,IAAI,EACJ,GAAU,EAAO,EAAY,SAAW,KAAY,OAAI,EAAK,MAAM,GAErE,EAAO,QAAU,CAAC,IAAU,EAAO,CAAK,EACxC,EAAO,cAAc,CAAI,EAC1B,EACD,MAAO,CACL,KAAM,OACN,UAAW,EACX,SAAU,EACV,IAAK,CACP,EACD,CACH,EAaF,IAAI,GAAoB,KAAM,CAC5B,WAAW,EACT,MAAM,YACN,cACA,UACA,OACA,MAAO,EACP,6BACA,mCACC,CACD,KAAK,IAAM,EACX,KAAK,YAAc,EACnB,KAAK,QAAU,EACf,KAAK,KAAO,EACZ,KAAK,MAAQ,EACb,KAAK,2BAA6B,EAClC,KAAK,gCAAkC,OAEnC,aAAY,EAChB,iBACG,GACF,CACD,IAAI,EAAM,EAAI,EAAI,EAAI,EACtB,IAAM,EAAe,MAAM,GAAQ,KAAK,IAAI,EACtC,EAAkB,MAAM,GAAQ,KAAK,OAAO,EAC5C,EAAsB,MAAM,GAAQ,KAAK,WAAW,EACpD,EAAc,IACf,GAAiB,CAAe,KAChC,GAAiB,EAAQ,OAAO,CACrC,EACM,EAAkB,OAAQ,EAAO,KAAK,6BAA+B,KAAY,OAAI,EAAK,KAAK,KAAM,CACzG,IAAK,KAAK,IACV,GAAI,EAAQ,OACZ,SAAU,EAAQ,SAClB,KAAM,IAAK,KAAiB,EAAQ,IAAK,EACzC,QAAS,EACT,YAAa,EACb,gBAAiB,EAAQ,SACzB,QAAS,EAAQ,QACjB,UAAW,EAAQ,SACrB,CAAC,GACK,GAAO,EAAK,GAAmB,KAAY,OAAI,EAAgB,MAAQ,KAAO,EAAK,KAAK,IACxF,GAAW,GAAmB,KAAY,OAAI,EAAgB,WAAkB,OAAI,GAAiB,EAAgB,OAAO,EAAI,EAChI,GAAQ,GAAmB,KAAY,OAAI,EAAgB,QAAe,OAAI,EAAgB,KAAO,IACtG,KACA,EAAQ,KACX,GAAI,EAAQ,OACZ,SAAU,EAAQ,SAClB,QAAS,EAAQ,QACjB,UAAW,EAAQ,SACrB,EACM,GAAe,EAAK,GAAmB,KAAY,OAAI,EAAgB,cAAgB,KAAO,EAAK,EAEnG,EAAW,OADD,EAAK,KAAK,QAAU,KAAO,EAAK,WAAW,OAC7B,EAAK,CACjC,OAAQ,OACR,QAAS,EACP,CACE,eAAgB,sBACb,CACL,EACA,UAAU,KACV,GAAgC,CAClC,EACA,KAAM,KAAK,UAAU,CAAI,EACzB,cACA,OAAQ,CACV,CAAC,EACD,GAAI,CAAC,EAAS,GACZ,MAAU,OACP,EAAK,MAAM,EAAS,KAAK,IAAM,KAAO,EAAK,oCAC9C,EAEF,GAAI,CAAC,EAAS,KACZ,MAAU,MAAM,6BAA6B,EAE/C,OAAO,KAAK,sBAAsB,EAAS,IAAI,OAE3C,kBAAiB,CAAC,EAAS,CAC/B,IAAI,EAAM,EAAI,EAAI,EAAI,EACtB,IAAM,EAAe,MAAM,GAAQ,KAAK,IAAI,EACtC,EAAkB,MAAM,GAAQ,KAAK,OAAO,EAC5C,EAAsB,MAAM,GAAQ,KAAK,WAAW,EACpD,EAAc,IACf,GAAiB,CAAe,KAChC,GAAiB,EAAQ,OAAO,CACrC,EACM,EAAkB,OAAQ,EAAO,KAAK,kCAAoC,KAAY,OAAI,EAAK,KAAK,KAAM,CAC9G,IAAK,KAAK,IACV,GAAI,EAAQ,OACZ,KAAM,IAAK,KAAiB,EAAQ,IAAK,EACzC,QAAS,EACT,YAAa,EACb,gBAAiB,EAAQ,QAC3B,CAAC,GACK,GAAO,EAAK,GAAmB,KAAY,OAAI,EAAgB,MAAQ,KAAO,EAAK,GAAG,KAAK,OAAO,EAAQ,gBAC1G,GAAW,GAAmB,KAAY,OAAI,EAAgB,WAAkB,OAAI,GAAiB,EAAgB,OAAO,EAAI,EAChI,GAAe,EAAK,GAAmB,KAAY,OAAI,EAAgB,cAAgB,KAAO,EAAK,EAEnG,EAAW,OADD,EAAK,KAAK,QAAU,KAAO,EAAK,WAAW,OAC7B,EAAK,CACjC,OAAQ,MACR,QAAS,EACP,EACA,UAAU,KACV,GAAgC,CAClC,EACA,aACF,CAAC,EACD,GAAI,EAAS,SAAW,IACtB,OAAO,KAET,GAAI,CAAC,EAAS,GACZ,MAAU,OACP,EAAK,MAAM,EAAS,KAAK,IAAM,KAAO,EAAK,oCAC9C,EAEF,GAAI,CAAC,EAAS,KACZ,MAAU,MAAM,6BAA6B,EAE/C,OAAO,KAAK,sBAAsB,EAAS,IAAI,EAEnD,EAGI,GAAuB,cAAc,EAAkB,CACzD,WAAW,CAAC,EAAU,CAAC,EAAG,CACxB,MAAM,CAAO,EAEf,qBAAqB,CAAC,EAAQ,CAC5B,OAAO,GAAsB,CAC3B,SACA,OAAQ,EACV,CAAC,EAAE,YACD,IAAI,gBAAgB,MACZ,UAAS,CAAC,EAAO,EAAY,CACjC,GAAI,CAAC,EAAM,QACT,MAAM,EAAM,MAEd,EAAW,QAAQ,EAAM,KAAK,EAElC,CAAC,CACH,EAEJ,EAGI,GAAe,KAAM,CACvB,WAAW,EACT,WAAY,EAAc,GAC1B,KAAK,EAAY,EACjB,YAAY,IAAI,GAChB,wBACA,kBACA,QACA,UACA,aACA,WACA,SACA,yBACC,CACD,KAAK,eAAsB,OAC3B,KAAK,YAAc,IAAI,GAOvB,KAAK,YAAc,MAAO,EAAS,IAAY,CAC7C,IAAI,EAAM,EAAI,EAAI,EAClB,GAAI,GAAW,KAAM,CACnB,MAAM,KAAK,YAAY,CACrB,QAAS,iBACT,WAAY,EAAO,KAAK,cAAgB,KAAY,OAAI,EAAK,MAC1D,CACL,CAAC,EACD,OAEF,IAAI,EACJ,GAAI,SAAU,GAAW,UAAW,EAElC,EAAY,CACV,MAAO,CACL,GAHc,MAAM,QAAQ,EAAQ,KAAK,EAAI,EAAQ,MAAQ,MAAM,GAA6B,EAAQ,KAAK,EAI7G,GAAG,SAAU,GAAW,EAAQ,MAAQ,KAAO,CAAC,CAAE,KAAM,OAAQ,KAAM,EAAQ,IAAK,CAAC,EAAI,CAAC,CAC3F,CACF,EAEA,OAAY,EAEd,GAAI,EAAQ,WAAa,KAAM,CAC7B,IAAM,EAAe,KAAK,MAAM,SAAS,UACvC,CAAC,IAAM,EAAE,KAAO,EAAQ,SAC1B,EACA,GAAI,IAAiB,GACnB,MAAU,MAAM,mBAAmB,EAAQ,qBAAqB,EAElE,GAAI,KAAK,MAAM,SAAS,GAAc,OAAS,OAC7C,MAAU,MACR,mBAAmB,EAAQ,iCAC7B,EAEF,KAAK,MAAM,SAAW,KAAK,MAAM,SAAS,MAAM,EAAG,EAAe,CAAC,EACnE,KAAK,MAAM,eAAe,EAAc,IACnC,EACH,GAAI,EAAQ,UACZ,MAAO,EAAK,EAAU,OAAS,KAAO,EAAK,OAC3C,SAAU,EAAQ,QACpB,CAAC,EAED,UAAK,MAAM,YAAY,IAClB,EACH,IAAK,EAAK,EAAU,KAAO,KAAO,EAAK,KAAK,WAAW,EACvD,MAAO,EAAK,EAAU,OAAS,KAAO,EAAK,OAC3C,SAAU,EAAQ,QACpB,CAAC,EAEH,MAAM,KAAK,YAAY,CACrB,QAAS,iBACT,UAAW,EAAQ,aAChB,CACL,CAAC,GAMH,KAAK,WAAa,OAChB,eACG,GACD,CAAC,IAAM,CACT,IAAM,EAAe,GAAa,KAAO,KAAK,MAAM,SAAS,OAAS,EAAI,KAAK,MAAM,SAAS,UAAU,CAAC,IAAY,EAAQ,KAAO,CAAS,EAC7I,GAAI,IAAiB,GACnB,MAAU,MAAM,WAAW,aAAqB,EAElD,KAAK,MAAM,SAAW,KAAK,MAAM,SAAS,MACxC,EAEA,KAAK,SAAS,GAAc,OAAS,YAAc,EAAe,EAAe,CACnF,EACA,MAAM,KAAK,YAAY,CACrB,QAAS,qBACT,eACG,CACL,CAAC,GAKH,KAAK,aAAe,MAAO,EAAU,CAAC,IAAM,CAC1C,MAAM,KAAK,YAAY,CAAE,QAAS,mBAAoB,CAAQ,CAAC,GAKjE,KAAK,WAAa,IAAM,CACtB,GAAI,KAAK,SAAW,QAClB,KAAK,MAAM,MAAa,OACxB,KAAK,UAAU,CAAE,OAAQ,OAAQ,CAAC,GAGtC,KAAK,cAAgB,OACnB,QAAQ,mBACR,KAAM,EACN,aACA,SACA,eACI,KAAK,YAAY,IAAI,SAAY,CACrC,IAAI,EAAM,EACV,IAAM,EAAW,KAAK,MAAM,SACtB,EAAc,EAAS,EAAS,OAAS,GAO/C,GANA,KAAK,MAAM,eAAe,EAAS,OAAS,EAAG,IAC1C,EACH,MAAO,EAAY,MAAM,IACvB,CAAC,IAAS,GAA0B,CAAI,GAAK,EAAK,aAAe,EAAa,IAAK,EAAM,QAAO,SAAQ,WAAU,EAAI,CACxH,CACF,CAAC,EACG,KAAK,eACP,KAAK,eAAe,MAAM,QAAQ,MAAQ,KAAK,eAAe,MAAM,QAAQ,MAAM,IAChF,CAAC,IAAS,GAA0B,CAAI,GAAK,EAAK,aAAe,EAAa,IACzE,EACH,QACA,SACA,WACF,EAAI,CACN,EAEF,GAAI,KAAK,SAAW,aAAe,KAAK,SAAW,eAAiB,EAAO,KAAK,wBAA0B,KAAY,OAAI,EAAK,KAAK,KAAM,CAAE,SAAU,KAAK,MAAM,QAAS,CAAC,GACzK,KAAK,YAAY,CACf,QAAS,iBACT,WAAY,EAAK,KAAK,cAAgB,KAAY,OAAI,EAAG,EAC3D,CAAC,EAEJ,EAID,KAAK,KAAO,SAAY,CACtB,IAAI,EACJ,GAAI,KAAK,SAAW,aAAe,KAAK,SAAW,YACjD,OACF,IAAK,EAAO,KAAK,iBAAmB,KAAY,OAAI,EAAK,gBACvD,KAAK,eAAe,gBAAgB,MAAM,GAG9C,KAAK,GAAK,EACV,KAAK,UAAY,EACjB,KAAK,WAAa,EAClB,KAAK,sBAAwB,EAC7B,KAAK,gBAAkB,EACvB,KAAK,MAAQ,EACb,KAAK,QAAU,EACf,KAAK,WAAa,EAClB,KAAK,SAAW,EAChB,KAAK,OAAS,EACd,KAAK,sBAAwB,KAU3B,OAAM,EAAG,CACX,OAAO,KAAK,MAAM,OAEpB,SAAS,EACP,SACA,SACC,CACD,GAAI,KAAK,SAAW,EAClB,OACF,KAAK,MAAM,OAAS,EACpB,KAAK,MAAM,MAAQ,KAEjB,MAAK,EAAG,CACV,OAAO,KAAK,MAAM,SAEhB,SAAQ,EAAG,CACb,OAAO,KAAK,MAAM,YAEhB,YAAW,EAAG,CAChB,OAAO,KAAK,MAAM,SAAS,KAAK,MAAM,SAAS,OAAS,MAEtD,SAAQ,CAAC,EAAU,CACrB,KAAK,MAAM,SAAW,OAElB,YAAW,EACf,UACA,WACA,UACA,OACA,aACC,CACD,IAAI,EAAM,EAAI,EACd,KAAK,UAAU,CAAE,OAAQ,YAAa,MAAY,MAAE,CAAC,EACrD,IAAM,EAAc,KAAK,YACrB,EAAU,GACV,EAAe,GACf,EAAU,GACd,GAAI,CACF,IAAM,EAAiB,CACrB,MAAO,GAA8B,CACnC,YAAa,KAAK,MAAM,SAAS,CAAW,EAC5C,UAAW,KAAK,WAAW,CAC7B,CAAC,EACD,gBAAiB,IAAI,eACvB,EACA,EAAe,gBAAgB,OAAO,iBAAiB,QAAS,IAAM,CACpE,EAAU,GACX,EACD,KAAK,eAAiB,EACtB,IAAI,EACJ,GAAI,IAAY,gBAAiB,CAC/B,IAAM,EAAY,MAAM,KAAK,UAAU,kBAAkB,CACvD,OAAQ,KAAK,GACb,WACA,UACA,MACF,CAAC,EACD,GAAI,GAAa,KAAM,CACrB,KAAK,UAAU,CAAE,OAAQ,OAAQ,CAAC,EAClC,OAEF,EAAS,EAET,OAAS,MAAM,KAAK,UAAU,aAAa,CACzC,OAAQ,KAAK,GACb,SAAU,KAAK,MAAM,SACrB,YAAa,EAAe,gBAAgB,OAC5C,WACA,UACA,OACA,UACA,WACF,CAAC,EAEH,IAAM,EAAsB,CAAC,IAE3B,KAAK,YAAY,IACf,IAAM,EAAI,CACR,MAAO,EAAe,MACtB,MAAO,IAAM,CACX,IAAI,EAGJ,GAFA,KAAK,UAAU,CAAE,OAAQ,WAAY,CAAC,EACX,EAAe,MAAM,QAAQ,OAAS,EAAO,KAAK,cAAgB,KAAY,OAAI,EAAK,IAEhH,KAAK,MAAM,eACT,KAAK,MAAM,SAAS,OAAS,EAC7B,EAAe,MAAM,OACvB,EAEA,UAAK,MAAM,YAAY,EAAe,MAAM,OAAO,EAGzD,CAAC,CACH,EAEF,MAAM,GAAc,CAClB,OAAQ,GAAuB,CAC7B,SACA,WAAY,KAAK,WACjB,OAAQ,KAAK,OACb,sBAAuB,KAAK,sBAC5B,gBAAiB,KAAK,gBACtB,sBACA,QAAS,CAAC,IAAU,CAClB,MAAM,EAEV,CAAC,EACD,QAAS,CAAC,IAAU,CAClB,MAAM,EAEV,CAAC,EACD,KAAK,UAAU,CAAE,OAAQ,OAAQ,CAAC,EAClC,MAAO,EAAK,CACZ,GAAI,GAAW,EAAI,OAAS,aAG1B,OAFA,EAAU,GACV,KAAK,UAAU,CAAE,OAAQ,OAAQ,CAAC,EAC3B,KAGT,GADA,EAAU,GACN,aAAe,YAAc,EAAI,QAAQ,YAAY,EAAE,SAAS,OAAO,GAAK,EAAI,QAAQ,YAAY,EAAE,SAAS,SAAS,GAC1H,EAAe,GAEjB,GAAI,KAAK,SAAW,aAAe,MACjC,KAAK,QAAQ,CAAG,EAElB,KAAK,UAAU,CAAE,OAAQ,QAAS,MAAO,CAAI,CAAC,SAC9C,CACA,GAAI,EACD,EAAO,KAAK,WAAa,MAAgB,EAAK,KAAK,KAAM,CACxD,QAAS,KAAK,eAAe,MAAM,QACnC,SAAU,KAAK,MAAM,SACrB,UACA,eACA,SACF,CAAC,EACD,MAAO,EAAK,CACZ,QAAQ,MAAM,CAAG,EAEnB,KAAK,eAAsB,OAE7B,KAAM,EAAK,KAAK,wBAA0B,KAAY,OAAI,EAAG,KAAK,KAAM,CAAE,SAAU,KAAK,MAAM,QAAS,CAAC,IAAM,CAAC,EAC9G,MAAM,KAAK,YAAY,CACrB,QAAS,iBACT,WAAY,EAAK,KAAK,cAAgB,KAAY,OAAI,EAAG,GACzD,WACA,UACA,MACF,CAAC,EAGP,EAGA,SAAS,EAA2C,EAClD,YACC,CACD,IAAM,EAAU,EAAS,EAAS,OAAS,GAC3C,GAAI,CAAC,EACH,MAAO,GAET,GAAI,EAAQ,OAAS,YACnB,MAAO,GAET,IAAM,EAAqB,EAAQ,MAAM,OAAO,CAAC,EAAW,EAAM,IAAU,CAC1E,OAAO,EAAK,OAAS,aAAe,EAAQ,GAC3C,EAAE,EACC,EAA0B,EAAQ,MAAM,MAAM,EAAqB,CAAC,EAAE,OAAO,EAAyB,EAAE,OAAO,CAAC,IAAS,CAAC,EAAK,gBAAgB,EACrJ,OAAO,EAAwB,OAAS,GAAK,EAAwB,MACnE,CAAC,IAAS,EAAK,QAAU,oBAAsB,EAAK,QAAU,cAChE,EAIF,SAAS,EAA8B,EACrC,UACC,CACD,OAAO,EAAO,YACZ,IAAI,gBAAgB,CAClB,KAAK,CAAC,EAAY,CAChB,EAAW,QAAQ,CAAE,KAAM,OAAQ,CAAC,EACpC,EAAW,QAAQ,CAAE,KAAM,YAAa,CAAC,EACzC,EAAW,QAAQ,CAAE,KAAM,aAAc,GAAI,QAAS,CAAC,QAEnD,UAAS,CAAC,EAAM,EAAY,CAChC,EAAW,QAAQ,CAAE,KAAM,aAAc,GAAI,SAAU,MAAO,CAAK,CAAC,QAEhE,MAAK,CAAC,EAAY,CACtB,EAAW,QAAQ,CAAE,KAAM,WAAY,GAAI,QAAS,CAAC,EACrD,EAAW,QAAQ,CAAE,KAAM,aAAc,CAAC,EAC1C,EAAW,QAAQ,CAAE,KAAM,QAAS,CAAC,EAEzC,CAAC,CACH,EAIF,IAAI,GAA0B,cAAc,EAAkB,CAC5D,WAAW,CAAC,EAAU,CAAC,EAAG,CACxB,MAAM,CAAO,EAEf,qBAAqB,CAAC,EAAQ,CAC5B,OAAO,GAA+B,CACpC,OAAQ,EAAO,YAAY,IAAI,iBAAmB,CACpD,CAAC,EAEL,EAUI,GAAmB,GACrB,IAAM,GACJ,EAAG,MACD,EAAG,OAAO,CACR,GAAI,EAAG,OAAO,EACd,KAAM,EAAG,KAAK,CAAC,SAAU,OAAQ,WAAW,CAAC,EAC7C,SAAU,EAAG,QAAQ,EAAE,SAAS,EAChC,MAAO,EAAG,MACR,EAAG,MAAM,CACP,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,MAAM,EACvB,KAAM,EAAG,OAAO,EAChB,MAAO,EAAG,KAAK,CAAC,YAAa,MAAM,CAAC,EAAE,SAAS,EAC/C,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,WAAW,EAC5B,KAAM,EAAG,OAAO,EAChB,MAAO,EAAG,KAAK,CAAC,YAAa,MAAM,CAAC,EAAE,SAAS,EAC/C,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,YAAY,EAC7B,SAAU,EAAG,OAAO,EACpB,IAAK,EAAG,OAAO,EACf,MAAO,EAAG,OAAO,EAAE,SAAS,EAC5B,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,iBAAiB,EAClC,SAAU,EAAG,OAAO,EACpB,UAAW,EAAG,OAAO,EACrB,MAAO,EAAG,OAAO,EACjB,SAAU,EAAG,OAAO,EAAE,SAAS,EAC/B,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,MAAM,EACvB,UAAW,EAAG,OAAO,EACrB,SAAU,EAAG,OAAO,EAAE,SAAS,EAC/B,IAAK,EAAG,OAAO,EACf,iBAAkB,EAAuB,SAAS,CACpD,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,YAAY,CAC/B,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,OAAO,EAAE,WAAW,OAAO,EACpC,GAAI,EAAG,OAAO,EAAE,SAAS,EACzB,KAAM,EAAG,QAAQ,CACnB,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,cAAc,EAC/B,SAAU,EAAG,OAAO,EACpB,WAAY,EAAG,OAAO,EACtB,MAAO,EAAG,QAAQ,iBAAiB,EACnC,MAAO,EAAG,QAAQ,EAAE,SAAS,EAC7B,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,OAAQ,EAAG,MAAM,EAAE,SAAS,EAC5B,UAAW,EAAG,MAAM,EAAE,SAAS,CACjC,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,cAAc,EAC/B,SAAU,EAAG,OAAO,EACpB,WAAY,EAAG,OAAO,EACtB,MAAO,EAAG,QAAQ,iBAAiB,EACnC,MAAO,EAAG,QAAQ,EAClB,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,OAAQ,EAAG,MAAM,EAAE,SAAS,EAC5B,UAAW,EAAG,MAAM,EAAE,SAAS,EAC/B,qBAAsB,EAAuB,SAAS,CACxD,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,cAAc,EAC/B,SAAU,EAAG,OAAO,EACpB,WAAY,EAAG,OAAO,EACtB,MAAO,EAAG,QAAQ,kBAAkB,EACpC,MAAO,EAAG,QAAQ,EAClB,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,OAAQ,EAAG,QAAQ,EACnB,UAAW,EAAG,MAAM,EAAE,SAAS,EAC/B,qBAAsB,EAAuB,SAAS,EACtD,YAAa,EAAG,QAAQ,EAAE,SAAS,CACrC,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,QAAQ,cAAc,EAC/B,SAAU,EAAG,OAAO,EACpB,WAAY,EAAG,OAAO,EACtB,MAAO,EAAG,QAAQ,cAAc,EAChC,MAAO,EAAG,QAAQ,EAClB,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,OAAQ,EAAG,MAAM,EAAE,SAAS,EAC5B,UAAW,EAAG,OAAO,EACrB,qBAAsB,EAAuB,SAAS,CACxD,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,OAAO,EAAE,WAAW,OAAO,EACpC,WAAY,EAAG,OAAO,EACtB,MAAO,EAAG,QAAQ,iBAAiB,EACnC,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,MAAO,EAAG,QAAQ,EAAE,SAAS,EAC7B,OAAQ,EAAG,MAAM,EAAE,SAAS,EAC5B,UAAW,EAAG,MAAM,EAAE,SAAS,EAC/B,SAAU,EAAG,MAAM,EAAE,SAAS,CAChC,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,OAAO,EAAE,WAAW,OAAO,EACpC,WAAY,EAAG,OAAO,EACtB,MAAO,EAAG,QAAQ,iBAAiB,EACnC,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,MAAO,EAAG,QAAQ,EAClB,OAAQ,EAAG,MAAM,EAAE,SAAS,EAC5B,UAAW,EAAG,MAAM,EAAE,SAAS,EAC/B,qBAAsB,EAAuB,SAAS,EACtD,SAAU,EAAG,MAAM,EAAE,SAAS,CAChC,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,OAAO,EAAE,WAAW,OAAO,EACpC,WAAY,EAAG,OAAO,EACtB,MAAO,EAAG,QAAQ,oBAAoB,EACtC,MAAO,EAAG,QAAQ,EAClB,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,OAAQ,EAAG,MAAM,EAAE,SAAS,EAC5B,UAAW,EAAG,MAAM,EAAE,SAAS,EAC/B,qBAAsB,EAAuB,SAAS,EACtD,SAAU,EAAG,OAAO,CAClB,GAAI,EAAG,OAAO,EACd,SAAU,EAAG,MAAM,EAAE,SAAS,EAC9B,OAAQ,EAAG,MAAM,EAAE,SAAS,CAC9B,CAAC,CACH,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,OAAO,EAAE,WAAW,OAAO,EACpC,WAAY,EAAG,OAAO,EACtB,MAAO,EAAG,QAAQ,oBAAoB,EACtC,MAAO,EAAG,QAAQ,EAClB,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,OAAQ,EAAG,MAAM,EAAE,SAAS,EAC5B,UAAW,EAAG,MAAM,EAAE,SAAS,EAC/B,qBAAsB,EAAuB,SAAS,EACtD,SAAU,EAAG,OAAO,CAClB,GAAI,EAAG,OAAO,EACd,SAAU,EAAG,QAAQ,EACrB,OAAQ,EAAG,OAAO,EAAE,SAAS,CAC/B,CAAC,CACH,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,OAAO,EAAE,WAAW,OAAO,EACpC,WAAY,EAAG,OAAO,EACtB,MAAO,EAAG,QAAQ,kBAAkB,EACpC,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,MAAO,EAAG,QAAQ,EAClB,OAAQ,EAAG,QAAQ,EACnB,UAAW,EAAG,MAAM,EAAE,SAAS,EAC/B,qBAAsB,EAAuB,SAAS,EACtD,YAAa,EAAG,QAAQ,EAAE,SAAS,EACnC,SAAU,EAAG,OAAO,CAClB,GAAI,EAAG,OAAO,EACd,SAAU,EAAG,QAAQ,EAAI,EACzB,OAAQ,EAAG,OAAO,EAAE,SAAS,CAC/B,CAAC,EAAE,SAAS,CACd,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,OAAO,EAAE,WAAW,OAAO,EACpC,WAAY,EAAG,OAAO,EACtB,MAAO,EAAG,QAAQ,cAAc,EAChC,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,MAAO,EAAG,QAAQ,EAClB,OAAQ,EAAG,MAAM,EAAE,SAAS,EAC5B,UAAW,EAAG,OAAO,EACrB,qBAAsB,EAAuB,SAAS,EACtD,SAAU,EAAG,OAAO,CAClB,GAAI,EAAG,OAAO,EACd,SAAU,EAAG,QAAQ,EAAI,EACzB,OAAQ,EAAG,OAAO,EAAE,SAAS,CAC/B,CAAC,EAAE,SAAS,CACd,CAAC,EACD,EAAG,OAAO,CACR,KAAM,EAAG,OAAO,EAAE,WAAW,OAAO,EACpC,WAAY,EAAG,OAAO,EACtB,MAAO,EAAG,QAAQ,eAAe,EACjC,iBAAkB,EAAG,QAAQ,EAAE,SAAS,EACxC,MAAO,EAAG,QAAQ,EAClB,OAAQ,EAAG,MAAM,EAAE,SAAS,EAC5B,UAAW,EAAG,MAAM,EAAE,SAAS,EAC/B,qBAAsB,EAAuB,SAAS,EACtD,SAAU,EAAG,OAAO,CAClB,GAAI,EAAG,OAAO,EACd,SAAU,EAAG,QAAQ,EAAK,EAC1B,OAAQ,EAAG,OAAO,EAAE,SAAS,CAC/B,CAAC,CACH,CAAC,CACH,CAAC,CACH,CACF,CAAC,CACH,CACF,CACF,EACA,eAAe,EAAsB,EACnC,WACA,iBACA,cACA,SACC,CACD,GAAI,CACF,GAAI,GAAY,KACd,MAAO,CACL,QAAS,GACT,MAAO,IAAI,EAAqB,CAC9B,UAAW,WACX,MAAO,EACP,QAAS,qCACX,CAAC,CACH,EAEF,IAAM,EAAoB,MAAM,GAAe,CAC7C,MAAO,EACP,OAAQ,EACV,CAAC,EACD,GAAI,EACF,QAAW,KAAW,EACpB,MAAM,GAAe,CACnB,MAAO,EAAQ,SACf,OAAQ,CACV,CAAC,EAGL,GAAI,EACF,QAAW,KAAW,EAAmB,CACvC,IAAM,EAAY,EAAQ,MAAM,OAC9B,CAAC,IAAS,EAAK,KAAK,WAAW,OAAO,CACxC,EACA,QAAW,KAAY,EAAW,CAChC,IAAM,EAAW,EAAS,KAAK,MAAM,CAAC,EAChC,EAAa,EAAY,GAC/B,GAAI,CAAC,EACH,MAAO,CACL,QAAS,GACT,MAAO,IAAI,GAAqB,CAC9B,MAAO,EAAS,KAChB,MAAO,sCAAsC,GAC/C,CAAC,CACH,EAEF,MAAM,GAAe,CACnB,MAAO,EAAS,KAChB,OAAQ,CACV,CAAC,GAIP,GAAI,EACF,QAAW,KAAW,EAAmB,CACvC,IAAM,EAAY,EAAQ,MAAM,OAC9B,CAAC,IAAS,EAAK,KAAK,WAAW,OAAO,CACxC,EACA,QAAW,KAAY,EAAW,CAChC,IAAM,EAAW,EAAS,KAAK,MAAM,CAAC,EAChC,EAAQ,EAAM,GACpB,GAAI,CAAC,EACH,MAAO,CACL,QAAS,GACT,MAAO,IAAI,GAAqB,CAC9B,MAAO,EAAS,MAChB,MAAO,sCAAsC,GAC/C,CAAC,CACH,EAEF,GAAI,EAAS,QAAU,mBAAqB,EAAS,QAAU,oBAAsB,EAAS,QAAU,eACtG,MAAM,GAAe,CACnB,MAAO,EAAS,MAChB,OAAQ,EAAM,WAChB,CAAC,EAEH,GAAI,EAAS,QAAU,oBAAsB,EAAM,aACjD,MAAM,GAAe,CACnB,MAAO,EAAS,OAChB,OAAQ,EAAM,YAChB,CAAC,GAKT,MAAO,CACL,QAAS,GACT,KAAM,CACR,EACA,MAAO,EAAO,CAEd,MAAO,CACL,QAAS,GACT,MAHU,CAIZ,GAGJ,eAAe,EAAkB,EAC/B,WACA,iBACA,cACA,SACC,CACD,IAAM,EAAW,MAAM,GAAuB,CAC5C,WACA,iBACA,cACA,OACF,CAAC,EACD,GAAI,CAAC,EAAS,QACZ,MAAM,EAAS,MACjB,OAAO,EAAS,KAQlB,SAAS,EAAqB,EAC5B,UACA,UAAU,GACV,mBACA,WACA,WAAY,EAAc,IACzB,CACD,IAAI,EACE,EAAwB,CAAC,EACzB,EAAS,IAAI,eAAe,CAChC,KAAK,CAAC,EAAe,CACnB,EAAa,EAEjB,CAAC,EACD,SAAS,CAAW,CAAC,EAAM,CACzB,GAAI,CACF,EAAW,QAAQ,CAAI,EACvB,MAAO,EAAO,GAGlB,GAAI,CACF,IAAM,EAAS,EAAQ,CACrB,OAAQ,CACN,KAAK,CAAC,EAAM,CACV,EAAY,CAAI,GAElB,KAAK,CAAC,EAAW,CACf,EAAsB,MACnB,SAAY,CACX,IAAM,EAAS,EAAU,UAAU,EACnC,MAAO,GAAM,CACX,IAAQ,OAAM,SAAU,MAAM,EAAO,KAAK,EAC1C,GAAI,EACF,MACF,EAAY,CAAK,KAElB,EAAE,MAAM,CAAC,IAAU,CACpB,EAAY,CACV,KAAM,QACN,UAAW,EAAQ,CAAK,CAC1B,CAAC,EACF,CACH,GAEF,SACF,CACF,CAAC,EACD,GAAI,EACF,EAAsB,KACpB,EAAO,MAAM,CAAC,IAAU,CACtB,EAAY,CACV,KAAM,QACN,UAAW,EAAQ,CAAK,CAC1B,CAAC,EACF,CACH,EAEF,MAAO,EAAO,CACd,EAAY,CACV,KAAM,QACN,UAAW,EAAQ,CAAK,CAC1B,CAAC,EAcH,OAZuB,IAAI,QAAQ,MAAO,IAAa,CACrD,MAAO,EAAsB,OAAS,EACpC,MAAM,EAAsB,MAAM,EAEpC,EAAS,EACV,EACc,QAAQ,IAAM,CAC3B,GAAI,CACF,EAAW,MAAM,EACjB,MAAO,EAAO,GAEjB,EACM,GAA4B,CACjC,SACA,UAAW,EAAY,EACvB,mBACA,WACA,SACF,CAAC,EAIH,SAAS,EAAmB,EAC1B,UACA,SACA,UACA,mBAAmB,IAClB,CACD,IAAI,EACJ,IAAI,EACA,EAAa,GACX,EAAe,IAAI,eAAe,CACtC,KAAK,CAAC,EAAiB,CACrB,EAAa,EAEjB,CAAC,EACK,EAAQ,GAA8B,CAC1C,WAAY,EAAO,GAAW,KAAY,OAAI,EAAQ,KAAO,KAAO,EAAO,GAC3E,YAAa,CACf,CAAC,EACK,EAAc,CAAC,IAAU,CAE7B,GADA,GAAW,MAAgB,EAAQ,CAAK,EACpC,CAAC,GAAc,EACjB,EAAa,GACb,GAAc,MAAgB,EAAW,MAAM,CAAK,GAsBxD,OAnBA,GAAc,CACZ,OAAQ,GAAuB,CAC7B,SACA,mBAAmB,CAAC,EAAK,CACvB,OAAO,EAAI,CACT,QACA,MAAO,IAAM,CACX,GAAc,MAAgB,EAAW,QAAQ,gBAAgB,EAAM,OAAO,CAAC,EAEnF,CAAC,GAEH,QAAS,CACX,CAAC,EACD,QAAS,CACX,CAAC,EAAE,QAAQ,IAAM,CACf,GAAI,CAAC,EACH,GAAc,MAAgB,EAAW,MAAM,EAElD,EACM,GAA0B,CAAY",
59
- "debugId": "D4B9E2759E05F8CA64756E2164756E21",
58
+ "mappings": "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",
59
+ "debugId": "44EB330AA6A1376C64756E2164756E21",
60
60
  "names": []
61
61
  }