@usherlabs/cex-broker 0.2.49 → 0.2.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -148,17 +148,17 @@
148
148
  "import { formatTemplate } from \"./formatTemplate.js\";\nimport { formatNumberAddZeros } from \"./formatNumberAddZeros.js\";\nimport { urlToObject } from \"./urlToObj.js\";\nimport Runtime from \"./runtime/nodejs/index.js\";\nexport * from \"./interfaces.js\";\nexport { Runtime };\nexport class BaseLogger {\n constructor(settings, logObj, stackDepthLevel = 4) {\n this.logObj = logObj;\n this.stackDepthLevel = stackDepthLevel;\n this.runtime = Runtime;\n this.settings = {\n type: settings?.type ?? \"pretty\",\n name: settings?.name,\n parentNames: settings?.parentNames,\n minLevel: settings?.minLevel ?? 0,\n argumentsArrayName: settings?.argumentsArrayName,\n hideLogPositionForProduction: settings?.hideLogPositionForProduction ?? false,\n prettyLogTemplate: settings?.prettyLogTemplate ??\n \"{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}\\t{{logLevelName}}\\t{{filePathWithLine}}{{nameWithDelimiterPrefix}}\\t\",\n prettyErrorTemplate: settings?.prettyErrorTemplate ?? \"\\n{{errorName}} {{errorMessage}}\\nerror stack:\\n{{errorStack}}\",\n prettyErrorStackTemplate: settings?.prettyErrorStackTemplate ?? \" • {{fileName}}\\t{{method}}\\n\\t{{filePathWithLine}}\",\n prettyErrorParentNamesSeparator: settings?.prettyErrorParentNamesSeparator ?? \":\",\n prettyErrorLoggerNameDelimiter: settings?.prettyErrorLoggerNameDelimiter ?? \"\\t\",\n stylePrettyLogs: settings?.stylePrettyLogs ?? true,\n prettyLogTimeZone: settings?.prettyLogTimeZone ?? \"UTC\",\n prettyLogStyles: settings?.prettyLogStyles ?? {\n logLevelName: {\n \"*\": [\"bold\", \"black\", \"bgWhiteBright\", \"dim\"],\n SILLY: [\"bold\", \"white\"],\n TRACE: [\"bold\", \"whiteBright\"],\n DEBUG: [\"bold\", \"green\"],\n INFO: [\"bold\", \"blue\"],\n WARN: [\"bold\", \"yellow\"],\n ERROR: [\"bold\", \"red\"],\n FATAL: [\"bold\", \"redBright\"],\n },\n dateIsoStr: \"white\",\n filePathWithLine: \"white\",\n name: [\"white\", \"bold\"],\n nameWithDelimiterPrefix: [\"white\", \"bold\"],\n nameWithDelimiterSuffix: [\"white\", \"bold\"],\n errorName: [\"bold\", \"bgRedBright\", \"whiteBright\"],\n fileName: [\"yellow\"],\n fileNameWithLine: \"white\",\n },\n prettyInspectOptions: settings?.prettyInspectOptions ?? {\n colors: true,\n compact: false,\n depth: Infinity,\n },\n metaProperty: settings?.metaProperty ?? \"_meta\",\n maskPlaceholder: settings?.maskPlaceholder ?? \"[***]\",\n maskValuesOfKeys: settings?.maskValuesOfKeys ?? [\"password\"],\n maskValuesOfKeysCaseInsensitive: settings?.maskValuesOfKeysCaseInsensitive ?? false,\n maskValuesRegEx: settings?.maskValuesRegEx,\n prefix: [...(settings?.prefix ?? [])],\n attachedTransports: [...(settings?.attachedTransports ?? [])],\n overwrite: {\n mask: settings?.overwrite?.mask,\n toLogObj: settings?.overwrite?.toLogObj,\n addMeta: settings?.overwrite?.addMeta,\n addPlaceholders: settings?.overwrite?.addPlaceholders,\n formatMeta: settings?.overwrite?.formatMeta,\n formatLogObj: settings?.overwrite?.formatLogObj,\n transportFormatted: settings?.overwrite?.transportFormatted,\n transportJSON: settings?.overwrite?.transportJSON,\n },\n };\n }\n log(logLevelId, logLevelName, ...args) {\n if (logLevelId < this.settings.minLevel) {\n return;\n }\n const logArgs = [...this.settings.prefix, ...args];\n const maskedArgs = this.settings.overwrite?.mask != null\n ? this.settings.overwrite?.mask(logArgs)\n : this.settings.maskValuesOfKeys != null && this.settings.maskValuesOfKeys.length > 0\n ? this._mask(logArgs)\n : logArgs;\n const thisLogObj = this.logObj != null ? this._recursiveCloneAndExecuteFunctions(this.logObj) : undefined;\n const logObj = this.settings.overwrite?.toLogObj != null ? this.settings.overwrite?.toLogObj(maskedArgs, thisLogObj) : this._toLogObj(maskedArgs, thisLogObj);\n const logObjWithMeta = this.settings.overwrite?.addMeta != null\n ? this.settings.overwrite?.addMeta(logObj, logLevelId, logLevelName)\n : this._addMetaToLogObj(logObj, logLevelId, logLevelName);\n let logMetaMarkup;\n let logArgsAndErrorsMarkup = undefined;\n if (this.settings.overwrite?.formatMeta != null) {\n logMetaMarkup = this.settings.overwrite?.formatMeta(logObjWithMeta?.[this.settings.metaProperty]);\n }\n if (this.settings.overwrite?.formatLogObj != null) {\n logArgsAndErrorsMarkup = this.settings.overwrite?.formatLogObj(maskedArgs, this.settings);\n }\n if (this.settings.type === \"pretty\") {\n logMetaMarkup = logMetaMarkup ?? this._prettyFormatLogObjMeta(logObjWithMeta?.[this.settings.metaProperty]);\n logArgsAndErrorsMarkup = logArgsAndErrorsMarkup ?? this.runtime.prettyFormatLogObj(maskedArgs, this.settings);\n }\n if (logMetaMarkup != null && logArgsAndErrorsMarkup != null) {\n this.settings.overwrite?.transportFormatted != null\n ? this.settings.overwrite?.transportFormatted(logMetaMarkup, logArgsAndErrorsMarkup.args, logArgsAndErrorsMarkup.errors, this.settings)\n : this.runtime.transportFormatted(logMetaMarkup, logArgsAndErrorsMarkup.args, logArgsAndErrorsMarkup.errors, this.settings);\n }\n else {\n this.settings.overwrite?.transportJSON != null\n ? this.settings.overwrite?.transportJSON(logObjWithMeta)\n : this.settings.type !== \"hidden\"\n ? this.runtime.transportJSON(logObjWithMeta)\n : undefined;\n }\n if (this.settings.attachedTransports != null && this.settings.attachedTransports.length > 0) {\n this.settings.attachedTransports.forEach((transportLogger) => {\n transportLogger(logObjWithMeta);\n });\n }\n return logObjWithMeta;\n }\n attachTransport(transportLogger) {\n this.settings.attachedTransports.push(transportLogger);\n }\n getSubLogger(settings, logObj) {\n const subLoggerSettings = {\n ...this.settings,\n ...settings,\n parentNames: this.settings?.parentNames != null && this.settings?.name != null\n ? [...this.settings.parentNames, this.settings.name]\n : this.settings?.name != null\n ? [this.settings.name]\n : undefined,\n prefix: [...this.settings.prefix, ...(settings?.prefix ?? [])],\n };\n const subLogger = new this.constructor(subLoggerSettings, logObj ?? this.logObj, this.stackDepthLevel);\n return subLogger;\n }\n _mask(args) {\n const maskValuesOfKeys = this.settings.maskValuesOfKeysCaseInsensitive !== true ? this.settings.maskValuesOfKeys : this.settings.maskValuesOfKeys.map((key) => key.toLowerCase());\n return args?.map((arg) => {\n return this._recursiveCloneAndMaskValuesOfKeys(arg, maskValuesOfKeys);\n });\n }\n _recursiveCloneAndMaskValuesOfKeys(source, keys, seen = []) {\n if (seen.includes(source)) {\n return { ...source };\n }\n if (typeof source === \"object\" && source !== null) {\n seen.push(source);\n }\n if (this.runtime.isError(source) || this.runtime.isBuffer(source)) {\n return source;\n }\n else if (source instanceof Map) {\n return new Map(source);\n }\n else if (source instanceof Set) {\n return new Set(source);\n }\n else if (Array.isArray(source)) {\n return source.map((item) => this._recursiveCloneAndMaskValuesOfKeys(item, keys, seen));\n }\n else if (source instanceof Date) {\n return new Date(source.getTime());\n }\n else if (source instanceof URL) {\n return urlToObject(source);\n }\n else if (source !== null && typeof source === \"object\") {\n const baseObject = this.runtime.isError(source) ? this._cloneError(source) : Object.create(Object.getPrototypeOf(source));\n return Object.getOwnPropertyNames(source).reduce((o, prop) => {\n o[prop] = keys.includes(this.settings?.maskValuesOfKeysCaseInsensitive !== true ? prop : prop.toLowerCase())\n ? this.settings.maskPlaceholder\n : (() => {\n try {\n return this._recursiveCloneAndMaskValuesOfKeys(source[prop], keys, seen);\n }\n catch (e) {\n return null;\n }\n })();\n return o;\n }, baseObject);\n }\n else {\n if (typeof source === \"string\") {\n let modifiedSource = source;\n for (const regEx of this.settings?.maskValuesRegEx || []) {\n modifiedSource = modifiedSource.replace(regEx, this.settings?.maskPlaceholder || \"\");\n }\n return modifiedSource;\n }\n return source;\n }\n }\n _recursiveCloneAndExecuteFunctions(source, seen = []) {\n if (this.isObjectOrArray(source) && seen.includes(source)) {\n return this.shallowCopy(source);\n }\n if (this.isObjectOrArray(source)) {\n seen.push(source);\n }\n if (Array.isArray(source)) {\n return source.map((item) => this._recursiveCloneAndExecuteFunctions(item, seen));\n }\n else if (source instanceof Date) {\n return new Date(source.getTime());\n }\n else if (this.isObject(source)) {\n return Object.getOwnPropertyNames(source).reduce((o, prop) => {\n const descriptor = Object.getOwnPropertyDescriptor(source, prop);\n if (descriptor) {\n Object.defineProperty(o, prop, descriptor);\n const value = source[prop];\n o[prop] = typeof value === \"function\" ? value() : this._recursiveCloneAndExecuteFunctions(value, seen);\n }\n return o;\n }, Object.create(Object.getPrototypeOf(source)));\n }\n else {\n return source;\n }\n }\n isObjectOrArray(value) {\n return typeof value === \"object\" && value !== null;\n }\n isObject(value) {\n return typeof value === \"object\" && !Array.isArray(value) && value !== null;\n }\n shallowCopy(source) {\n if (Array.isArray(source)) {\n return [...source];\n }\n else {\n return { ...source };\n }\n }\n _toLogObj(args, clonedLogObj = {}) {\n args = args?.map((arg) => (this.runtime.isError(arg) ? this._toErrorObject(arg) : arg));\n if (this.settings.argumentsArrayName == null) {\n if (args.length === 1 && !Array.isArray(args[0]) && this.runtime.isBuffer(args[0]) !== true && !(args[0] instanceof Date)) {\n clonedLogObj = typeof args[0] === \"object\" && args[0] != null ? { ...args[0], ...clonedLogObj } : { 0: args[0], ...clonedLogObj };\n }\n else {\n clonedLogObj = { ...clonedLogObj, ...args };\n }\n }\n else {\n clonedLogObj = {\n ...clonedLogObj,\n [this.settings.argumentsArrayName]: args,\n };\n }\n return clonedLogObj;\n }\n _cloneError(error) {\n const cloned = new error.constructor();\n Object.getOwnPropertyNames(error).forEach((key) => {\n cloned[key] = error[key];\n });\n return cloned;\n }\n _toErrorObject(error) {\n return {\n nativeError: error,\n name: error.name ?? \"Error\",\n message: error.message,\n stack: this.runtime.getErrorTrace(error),\n };\n }\n _addMetaToLogObj(logObj, logLevelId, logLevelName) {\n return {\n ...logObj,\n [this.settings.metaProperty]: this.runtime.getMeta(logLevelId, logLevelName, this.stackDepthLevel, this.settings.hideLogPositionForProduction, this.settings.name, this.settings.parentNames),\n };\n }\n _prettyFormatLogObjMeta(logObjMeta) {\n if (logObjMeta == null) {\n return \"\";\n }\n let template = this.settings.prettyLogTemplate;\n const placeholderValues = {};\n if (template.includes(\"{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}\")) {\n template = template.replace(\"{{yyyy}}.{{mm}}.{{dd}} {{hh}}:{{MM}}:{{ss}}:{{ms}}\", \"{{dateIsoStr}}\");\n }\n else {\n if (this.settings.prettyLogTimeZone === \"UTC\") {\n placeholderValues[\"yyyy\"] = logObjMeta?.date?.getUTCFullYear() ?? \"----\";\n placeholderValues[\"mm\"] = formatNumberAddZeros(logObjMeta?.date?.getUTCMonth(), 2, 1);\n placeholderValues[\"dd\"] = formatNumberAddZeros(logObjMeta?.date?.getUTCDate(), 2);\n placeholderValues[\"hh\"] = formatNumberAddZeros(logObjMeta?.date?.getUTCHours(), 2);\n placeholderValues[\"MM\"] = formatNumberAddZeros(logObjMeta?.date?.getUTCMinutes(), 2);\n placeholderValues[\"ss\"] = formatNumberAddZeros(logObjMeta?.date?.getUTCSeconds(), 2);\n placeholderValues[\"ms\"] = formatNumberAddZeros(logObjMeta?.date?.getUTCMilliseconds(), 3);\n }\n else {\n placeholderValues[\"yyyy\"] = logObjMeta?.date?.getFullYear() ?? \"----\";\n placeholderValues[\"mm\"] = formatNumberAddZeros(logObjMeta?.date?.getMonth(), 2, 1);\n placeholderValues[\"dd\"] = formatNumberAddZeros(logObjMeta?.date?.getDate(), 2);\n placeholderValues[\"hh\"] = formatNumberAddZeros(logObjMeta?.date?.getHours(), 2);\n placeholderValues[\"MM\"] = formatNumberAddZeros(logObjMeta?.date?.getMinutes(), 2);\n placeholderValues[\"ss\"] = formatNumberAddZeros(logObjMeta?.date?.getSeconds(), 2);\n placeholderValues[\"ms\"] = formatNumberAddZeros(logObjMeta?.date?.getMilliseconds(), 3);\n }\n }\n const dateInSettingsTimeZone = this.settings.prettyLogTimeZone === \"UTC\" ? logObjMeta?.date : new Date(logObjMeta?.date?.getTime() - logObjMeta?.date?.getTimezoneOffset() * 60000);\n placeholderValues[\"rawIsoStr\"] = dateInSettingsTimeZone?.toISOString();\n placeholderValues[\"dateIsoStr\"] = dateInSettingsTimeZone?.toISOString().replace(\"T\", \" \").replace(\"Z\", \"\");\n placeholderValues[\"logLevelName\"] = logObjMeta?.logLevelName;\n placeholderValues[\"fileNameWithLine\"] = logObjMeta?.path?.fileNameWithLine ?? \"\";\n placeholderValues[\"filePathWithLine\"] = logObjMeta?.path?.filePathWithLine ?? \"\";\n placeholderValues[\"fullFilePath\"] = logObjMeta?.path?.fullFilePath ?? \"\";\n let parentNamesString = this.settings.parentNames?.join(this.settings.prettyErrorParentNamesSeparator);\n parentNamesString = parentNamesString != null && logObjMeta?.name != null ? parentNamesString + this.settings.prettyErrorParentNamesSeparator : undefined;\n placeholderValues[\"name\"] = logObjMeta?.name != null || parentNamesString != null ? (parentNamesString ?? \"\") + logObjMeta?.name ?? \"\" : \"\";\n placeholderValues[\"nameWithDelimiterPrefix\"] =\n placeholderValues[\"name\"].length > 0 ? this.settings.prettyErrorLoggerNameDelimiter + placeholderValues[\"name\"] : \"\";\n placeholderValues[\"nameWithDelimiterSuffix\"] =\n placeholderValues[\"name\"].length > 0 ? placeholderValues[\"name\"] + this.settings.prettyErrorLoggerNameDelimiter : \"\";\n if (this.settings.overwrite?.addPlaceholders != null) {\n this.settings.overwrite?.addPlaceholders(logObjMeta, placeholderValues);\n }\n return formatTemplate(this.settings, template, placeholderValues);\n }\n}\n",
149
149
  "import { BaseLogger } from \"./BaseLogger.js\";\nexport * from \"./interfaces.js\";\nexport * from \"./BaseLogger.js\";\nexport class Logger extends BaseLogger {\n constructor(settings, logObj) {\n const isBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n const isBrowserBlinkEngine = isBrowser ? window.chrome !== undefined && window.CSS !== undefined && window.CSS.supports(\"color\", \"green\") : false;\n const isSafari = isBrowser ? /^((?!chrome|android).)*safari/i.test(navigator.userAgent) : false;\n settings = settings || {};\n settings.stylePrettyLogs = settings.stylePrettyLogs && isBrowser && !isBrowserBlinkEngine ? false : settings.stylePrettyLogs;\n super(settings, logObj, isSafari ? 4 : 5);\n }\n log(logLevelId, logLevelName, ...args) {\n return super.log(logLevelId, logLevelName, ...args);\n }\n silly(...args) {\n return super.log(0, \"SILLY\", ...args);\n }\n trace(...args) {\n return super.log(1, \"TRACE\", ...args);\n }\n debug(...args) {\n return super.log(2, \"DEBUG\", ...args);\n }\n info(...args) {\n return super.log(3, \"INFO\", ...args);\n }\n warn(...args) {\n return super.log(4, \"WARN\", ...args);\n }\n error(...args) {\n return super.log(5, \"ERROR\", ...args);\n }\n fatal(...args) {\n return super.log(6, \"FATAL\", ...args);\n }\n getSubLogger(settings, logObj) {\n return super.getSubLogger(settings, logObj);\n }\n}\n",
150
150
  "import { openTelemetryPlugin } from \"@loglayer/plugin-opentelemetry\";\nimport { OpenTelemetryTransport } from \"@loglayer/transport-opentelemetry\";\nimport { TsLogTransport } from \"@loglayer/transport-tslog\";\nimport { LogLayer } from \"loglayer\";\nimport { serializeError } from \"serialize-error\";\nimport { Logger } from \"tslog\";\n\nconst tslogLogger = new Logger({\n\ttype: process.env.NODE_ENV === \"production\" ? \"json\" : \"pretty\",\n\tstylePrettyLogs: process.env.NODE_ENV !== \"production\",\n\tminLevel: process.env.LOG_LEVEL === \"debug\" ? 0 : 3,\n});\n\nconst baseLogger = new LogLayer({\n\ttransport: [new TsLogTransport({ id: \"tslog\", logger: tslogLogger })],\n\tplugins: [openTelemetryPlugin()],\n\terrorSerializer: serializeError,\n});\n\nconst OTEL_TRANSPORT_ID = \"otel\";\n\nexport function attachOtelLogTransport(): void {\n\tbaseLogger.addTransport(\n\t\tnew OpenTelemetryTransport({\n\t\t\tid: OTEL_TRANSPORT_ID,\n\t\t\tenabled: process.env.NODE_ENV !== \"test\",\n\t\t}),\n\t);\n}\n\nexport function detachOtelLogTransport(): void {\n\tbaseLogger.removeTransport(OTEL_TRANSPORT_ID);\n}\n\nif (process.env.LOG_LEVEL !== \"debug\") {\n\tbaseLogger.setLevel(\"info\");\n}\n\n// Preserve broad call-site compatibility during migration from tslog to LogLayer.\nconst log = baseLogger as unknown as {\n\ttrace: (...args: unknown[]) => void;\n\tdebug: (...args: unknown[]) => void;\n\tinfo: (...args: unknown[]) => void;\n\twarn: (...args: unknown[]) => void;\n\terror: (...args: unknown[]) => void;\n\tfatal: (...args: unknown[]) => void;\n\twithMetadata: LogLayer[\"withMetadata\"];\n};\n\nexport { log };\n",
151
- "import Ajv2020, {\n\ttype ErrorObject,\n\ttype ValidateFunction,\n} from \"ajv/dist/2020.js\";\nimport { z } from \"zod\";\nimport { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport { assertDocumentSha256, documentSha256, jcsSha256 } from \"./identity\";\nimport {\n\tCAPABILITY_POLICY,\n\tLEGACY_CAPABILITY_POLICY,\n\tRESOURCE_POLICY,\n} from \"./manifests\";\nimport archiveSelectionSchemaJson from \"./schemas/archive-selection.schema.json\" with {\n\ttype: \"json\",\n};\nimport promotionReceiptSchemaJson from \"./schemas/promotion-receipt.schema.json\" with {\n\ttype: \"json\",\n};\nimport requestSchemaJson from \"./schemas/request.schema.json\" with {\n\ttype: \"json\",\n};\nimport requiredClockSchemaJson from \"./schemas/required-clock.schema.json\" with {\n\ttype: \"json\",\n};\nimport resultSchemaJson from \"./schemas/result.schema.json\" with {\n\ttype: \"json\",\n};\n\nexport const BACKFILL_REQUEST_SCHEMA_ID = requestSchemaJson.$id;\nexport const REQUIRED_CLOCK_SCHEMA_ID = requiredClockSchemaJson.$id;\nexport const ARCHIVE_SELECTION_SCHEMA_ID = archiveSelectionSchemaJson.$id;\nexport const PROMOTION_RECEIPT_SCHEMA_ID = promotionReceiptSchemaJson.$id;\nexport const BACKFILL_RESULT_SCHEMA_ID = resultSchemaJson.$id;\n\nexport type FixedUtcTimestamp = string;\nexport type Sha256Hex = string;\nexport type LowercaseUuid = string;\n\nexport type CanonicalScopeWire = {\n\texchange: string;\n\ttrading_pair: string;\n\tmarket_type: \"spot\" | \"swap\" | \"future\";\n\tfeed: \"ORDERBOOK\";\n};\n\nexport type CoveragePolicyWire = {\n\tpolicy_id: \"prior-asof-strict/v1\";\n\tmax_asof_lag_ms: number;\n\tfuture_rows: \"reject\";\n\tmissing_required_event: \"fail\";\n};\n\nexport type RequiredClockWire = {\n\tschema_id: typeof REQUIRED_CLOCK_SCHEMA_ID;\n\tclock_id: LowercaseUuid;\n\tclock_sha256: Sha256Hex;\n\tcreated_at: FixedUtcTimestamp;\n\ttargets: Array<{ target_id: LowercaseUuid; target_at: FixedUtcTimestamp }>;\n};\n\nexport type ArchiveSelectionWire = {\n\tschema_id: typeof ARCHIVE_SELECTION_SCHEMA_ID;\n\tselection_sha256: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\trequired_clock: {\n\t\tclock_id: LowercaseUuid;\n\t\tclock_sha256: Sha256Hex;\n\t\tevent_count: number;\n\t};\n\tcoverage_policy: CoveragePolicyWire;\n\tsource_policy: \"authoritative_window\" | \"fill_gaps\";\n\tcoverage_class: \"complete\" | \"partial\" | \"missing\";\n\trequested_intervals: Array<{\n\t\tstart_at: FixedUtcTimestamp;\n\t\tend_at: FixedUtcTimestamp;\n\t}>;\n\tselected_intervals: Array<{\n\t\tstart_at: FixedUtcTimestamp;\n\t\tend_at: FixedUtcTimestamp;\n\t\tcapture_bundle_id: Sha256Hex;\n\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t}>;\n\tprecedence: Array<\"archive\" | \"vendor\">;\n\tbundles: Array<{\n\t\tcapture_bundle_id: Sha256Hex;\n\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t\tinterval: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\t\tqualification: null | {\n\t\t\tqualification_event_id: LowercaseUuid;\n\t\t\tstate: \"qualified\";\n\t\t\treceipt_id: Sha256Hex;\n\t\t\tpromotion_identity_sha256: Sha256Hex;\n\t\t};\n\t}>;\n\tsupport_anchors: Array<{\n\t\tcapture_bundle_id: Sha256Hex;\n\t\traw_capture_id: Sha256Hex;\n\t\tsnapshot_id: Sha256Hex;\n\t\tsource_time: FixedUtcTimestamp;\n\t\tnormalized_summary_checksum: Sha256Hex;\n\t\tmetadata_ref: {\n\t\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t\t\tqualification_event_id: LowercaseUuid | null;\n\t\t\treceipt_id: Sha256Hex | null;\n\t\t};\n\t}>;\n\treceipt_ids: Sha256Hex[];\n\tqualification_event_ids: LowercaseUuid[];\n\tresolved_at: FixedUtcTimestamp;\n};\n\nexport type BackfillRequestWire = {\n\tschema_id: typeof BACKFILL_REQUEST_SCHEMA_ID;\n\trequest_id: LowercaseUuid;\n\tattempt_id: LowercaseUuid;\n\tidempotency_key: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\twindow: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\tdepth: number;\n\tconstruction_mode: \"sampled_top_n_snapshot\" | \"exact_l2_reconstruction\";\n\tsource_policy: \"authoritative_window\" | \"fill_gaps\";\n\ttarget: { environment: string; cluster: string };\n\tcoverage_policy: CoveragePolicyWire;\n\trequired_clock: {\n\t\tschema_id: typeof REQUIRED_CLOCK_SCHEMA_ID;\n\t\tclock_id: LowercaseUuid;\n\t\tfile_name: string;\n\t\tclock_sha256: Sha256Hex;\n\t\tevent_count: number;\n\t};\n\tinitial_selection: ArchiveSelectionWire;\n\texpected_canonical_schema: {\n\t\tschema_id: string;\n\t\tschema_sha256: Sha256Hex;\n\t};\n\tproduct_pins: {\n\t\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t};\n\tproduction_authorization_id: LowercaseUuid;\n};\n\nexport type PromotionReceiptWire = {\n\tschema_id: typeof PROMOTION_RECEIPT_SCHEMA_ID;\n\treceipt_id: Sha256Hex;\n\tpromotion_identity_sha256: Sha256Hex;\n\tverified_at: FixedUtcTimestamp;\n\trequest_id: LowercaseUuid;\n\tidempotency_key: Sha256Hex;\n\tsource: \"external_backfill\";\n\tcapture_origin: \"vendor_historical_backfill\";\n\tsource_mode: \"vendor_historical_backfill_v1\";\n\tprovider: string;\n\tadapter_version: string;\n\teffective_policies: {\n\t\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tadapter_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tacquisition_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t};\n\tcapture_bundle_id: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\twindow: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\tdepth: number;\n\tconstruction_mode: \"sampled_top_n_snapshot\" | \"exact_l2_reconstruction\";\n\tcanonical_schema: { schema_id: string; schema_sha256: Sha256Hex };\n\tcoverage_policy: CoveragePolicyWire;\n\tselection_sha256: Sha256Hex;\n\tvendor_semantic_digest: Sha256Hex;\n\tcanonical_semantic_digest: Sha256Hex;\n\tprefix_digest: Sha256Hex;\n\tsuffix_digest: Sha256Hex;\n\tseam_verified: true;\n\tcoverage_verified: true;\n\tdataset_objects: Array<{\n\t\tidentity: string;\n\t\tchecksum: Sha256Hex;\n\t\tbytes: number;\n\t\trows: number;\n\t}>;\n};\n\nexport const FINAL_BACKFILL_STATUSES = [\n\t\"request_invalid\",\n\t\"archive_preflight_failed\",\n\t\"already_covered\",\n\t\"promoted\",\n\t\"capability_unsupported\",\n\t\"credentials_missing\",\n\t\"vendor_fetch_failed\",\n\t\"archive_ingest_failed\",\n\t\"promotion_verification_failed\",\n] as const;\n\nexport type FinalBackfillStatus = (typeof FINAL_BACKFILL_STATUSES)[number];\n\nexport type BackfillJobResultWire = {\n\tschema_id: typeof BACKFILL_RESULT_SCHEMA_ID;\n\tresult_sha256: Sha256Hex;\n\tjob_id: LowercaseUuid;\n\trequest_file_sha256: Sha256Hex | null;\n\texecutable_sha256: Sha256Hex;\n\tschema_manifest_sha256: Sha256Hex;\n\tcex_package: {\n\t\tname: \"@usherlabs/cex-broker\";\n\t\tversion: string;\n\t\tpackage_sha256: Sha256Hex;\n\t};\n\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tbuild: { fiet_tee_commit: string; created_at: FixedUtcTimestamp };\n\tstarted_at: FixedUtcTimestamp;\n\tcompleted_at: FixedUtcTimestamp;\n\toutcome: {\n\t\tstatus: FinalBackfillStatus;\n\t\treason_code: string;\n\t\treason_subcode: string | null;\n\t\trequest_id: LowercaseUuid | null;\n\t\tidempotency_key: Sha256Hex | null;\n\t\ttarget: { environment: string; cluster: string } | null;\n\t\tselection: ArchiveSelectionWire | null;\n\t\treceipt: PromotionReceiptWire | null;\n\t\tdiagnostics: Record<string, string | number | boolean>;\n\t};\n};\n\ntype Codec<T> = {\n\tdecode(value: unknown): T;\n\tis(value: unknown): value is T;\n};\n\nfunction describeAjvErrors(errors: ErrorObject[] | null | undefined): string {\n\treturn (errors ?? [])\n\t\t.map(\n\t\t\t(error) =>\n\t\t\t\t`${error.instancePath || \"/\"} ${error.message ?? \"is invalid\"}`,\n\t\t)\n\t\t.join(\"; \");\n}\n\nfunction codec<T>(\n\tvalidate: ValidateFunction,\n\tsemantic?: (document: T) => void,\n): Codec<T> {\n\treturn {\n\t\tdecode(value: unknown): T {\n\t\t\tif (!validate(value)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`JSON Schema validation failed: ${describeAjvErrors(validate.errors)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tsemantic?.(value as T);\n\t\t\treturn value as T;\n\t\t},\n\t\tis(value: unknown): value is T {\n\t\t\tif (!validate(value)) return false;\n\t\t\ttry {\n\t\t\t\tsemantic?.(value as T);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t};\n}\n\nfunction fixedTimestampMs(value: string, field: string): number {\n\tconst parsed = Date.parse(value);\n\tif (\n\t\t!Number.isSafeInteger(parsed) ||\n\t\tnew Date(parsed).toISOString() !== value\n\t) {\n\t\tthrow new Error(`${field} is not a fixed UTC RFC3339 timestamp`);\n\t}\n\treturn parsed;\n}\n\nfunction assertIncreasingInterval(\n\tinterval: { start_at: string; end_at: string },\n\tfield: string,\n): void {\n\tif (\n\t\tfixedTimestampMs(interval.end_at, `${field}.end_at`) <=\n\t\tfixedTimestampMs(interval.start_at, `${field}.start_at`)\n\t) {\n\t\tthrow new Error(`${field} must be an increasing half-open interval`);\n\t}\n}\n\nconst ajv = new Ajv2020({ allErrors: true, strict: true });\najv.addSchema(archiveSelectionSchemaJson);\najv.addSchema(promotionReceiptSchemaJson);\nconst validateRequiredClock = ajv.compile(requiredClockSchemaJson);\nconst validateArchiveSelection = ajv.getSchema(ARCHIVE_SELECTION_SCHEMA_ID);\nconst validatePromotionReceipt = ajv.getSchema(PROMOTION_RECEIPT_SCHEMA_ID);\nconst validateBackfillRequest = ajv.compile(requestSchemaJson);\nconst validateBackfillResult = ajv.compile(resultSchemaJson);\nif (!validateArchiveSelection || !validatePromotionReceipt) {\n\tthrow new Error(\"Backfill referenced schemas were not registered\");\n}\n\nexport const requiredClockCodec = codec<RequiredClockWire>(\n\tvalidateRequiredClock,\n\t(clock) => {\n\t\tassertDocumentSha256(clock, \"clock_sha256\");\n\t\tlet previous = -1;\n\t\tconst targetIds = new Set<string>();\n\t\tfor (const [index, target] of clock.targets.entries()) {\n\t\t\tconst at = fixedTimestampMs(\n\t\t\t\ttarget.target_at,\n\t\t\t\t`targets[${index}].target_at`,\n\t\t\t);\n\t\t\tif (at <= previous)\n\t\t\t\tthrow new Error(\"required clock targets must be strictly increasing\");\n\t\t\tif (targetIds.has(target.target_id))\n\t\t\t\tthrow new Error(\"required clock target IDs must be unique\");\n\t\t\ttargetIds.add(target.target_id);\n\t\t\tprevious = at;\n\t\t}\n\t},\n);\n\nexport const archiveSelectionCodec = codec<ArchiveSelectionWire>(\n\tvalidateArchiveSelection,\n\t(selection) => {\n\t\tassertDocumentSha256(selection, \"selection_sha256\");\n\t\tselection.requested_intervals.forEach((interval, index) => {\n\t\t\tassertIncreasingInterval(interval, `requested_intervals[${index}]`);\n\t\t});\n\t\tselection.selected_intervals.forEach((interval, index) => {\n\t\t\tassertIncreasingInterval(interval, `selected_intervals[${index}]`);\n\t\t});\n\t\tselection.bundles.forEach((bundle, index) => {\n\t\t\tassertIncreasingInterval(bundle.interval, `bundles[${index}].interval`);\n\t\t});\n\t\tif (\n\t\t\tselection.coverage_class === \"missing\" &&\n\t\t\tselection.selected_intervals.length !== 0\n\t\t) {\n\t\t\tthrow new Error(\"missing selection cannot contain selected intervals\");\n\t\t}\n\t},\n);\n\nfunction promotionSemanticFields(\n\treceipt: PromotionReceiptWire,\n): Record<string, unknown> {\n\treturn Object.fromEntries(\n\t\tObject.entries(receipt).filter(\n\t\t\t([key]) =>\n\t\t\t\tkey !== \"receipt_id\" &&\n\t\t\t\tkey !== \"promotion_identity_sha256\" &&\n\t\t\t\tkey !== \"verified_at\",\n\t\t),\n\t);\n}\n\nexport function promotionIdentitySha256(\n\treceipt: Omit<\n\t\tPromotionReceiptWire,\n\t\t\"receipt_id\" | \"promotion_identity_sha256\"\n\t> &\n\t\tPartial<\n\t\t\tPick<PromotionReceiptWire, \"receipt_id\" | \"promotion_identity_sha256\">\n\t\t>,\n): string {\n\treturn jcsSha256(promotionSemanticFields(receipt as PromotionReceiptWire));\n}\n\nexport const promotionReceiptCodec = codec<PromotionReceiptWire>(\n\tvalidatePromotionReceipt,\n\t(receipt) => {\n\t\tassertIncreasingInterval(receipt.window, \"window\");\n\t\tif (\n\t\t\tpromotionIdentitySha256(receipt) !== receipt.promotion_identity_sha256\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"promotion_identity_sha256 does not match semantic receipt content\",\n\t\t\t);\n\t\t}\n\t\tassertDocumentSha256(receipt, \"receipt_id\");\n\t},\n);\n\nexport const backfillResultCodec = codec<BackfillJobResultWire>(\n\tvalidateBackfillResult,\n\t(result) => {\n\t\tassertDocumentSha256(result, \"result_sha256\");\n\t\tconst startedAt = fixedTimestampMs(result.started_at, \"started_at\");\n\t\tconst completedAt = fixedTimestampMs(result.completed_at, \"completed_at\");\n\t\tif (completedAt < startedAt)\n\t\t\tthrow new Error(\"completed_at precedes started_at\");\n\t\tif (result.outcome.selection)\n\t\t\tarchiveSelectionCodec.decode(result.outcome.selection);\n\t\tif (result.outcome.receipt)\n\t\t\tpromotionReceiptCodec.decode(result.outcome.receipt);\n\t\tif (\n\t\t\tresult.outcome.status === \"promoted\" &&\n\t\t\t(!result.outcome.selection || !result.outcome.receipt)\n\t\t) {\n\t\t\tthrow new Error(\"promoted outcome requires selection and receipt\");\n\t\t}\n\t\tif (\n\t\t\tresult.outcome.status === \"already_covered\" &&\n\t\t\t!result.outcome.selection\n\t\t) {\n\t\t\tthrow new Error(\"already_covered outcome requires selection\");\n\t\t}\n\t},\n);\n\nfunction wireIdempotencyBusinessFields(\n\trequest: Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\tidempotency_key?: string;\n\t},\n) {\n\treturn {\n\t\tscope: request.scope,\n\t\twindow: request.window,\n\t\tdepth: request.depth,\n\t\tconstruction_mode: request.construction_mode,\n\t\trequired_clock_sha256: request.required_clock.clock_sha256,\n\t\tcoverage_policy: request.coverage_policy,\n\t\tsource_policy: request.source_policy,\n\t\texpected_canonical_schema: request.expected_canonical_schema,\n\t\ttarget: request.target,\n\t};\n}\n\nexport const backfillRequestCodec = {\n\tdecode(value: unknown): { wire: BackfillRequestWire } {\n\t\tif (!validateBackfillRequest(value)) {\n\t\t\tthrow new Error(\n\t\t\t\t`JSON Schema validation failed: ${describeAjvErrors(validateBackfillRequest.errors)}`,\n\t\t\t);\n\t\t}\n\t\tconst request = value as BackfillRequestWire;\n\t\tarchiveSelectionCodec.decode(request.initial_selection);\n\t\tassertIncreasingInterval(request.window, \"window\");\n\t\tif (request.idempotency_key !== createBackfillIdempotencyKey(request)) {\n\t\t\tthrow new Error(\n\t\t\t\t\"idempotency_key does not match canonical business fields\",\n\t\t\t);\n\t\t}\n\t\tconst capabilityPolicyMatches = [\n\t\t\tCAPABILITY_POLICY,\n\t\t\tLEGACY_CAPABILITY_POLICY,\n\t\t].some(\n\t\t\t(policy) =>\n\t\t\t\trequest.product_pins.capability_policy.policy_id === policy.policy_id &&\n\t\t\t\trequest.product_pins.capability_policy.policy_sha256 ===\n\t\t\t\t\tpolicy.policy_sha256,\n\t\t);\n\t\tif (\n\t\t\t!capabilityPolicyMatches ||\n\t\t\trequest.product_pins.resource_policy.policy_id !==\n\t\t\t\tRESOURCE_POLICY.policy_id ||\n\t\t\trequest.product_pins.resource_policy.policy_sha256 !==\n\t\t\t\tRESOURCE_POLICY.policy_sha256\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"request policy pins do not match the effective package policies\",\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\trequest.required_clock.clock_id !==\n\t\t\t\trequest.initial_selection.required_clock.clock_id ||\n\t\t\trequest.required_clock.clock_sha256 !==\n\t\t\t\trequest.initial_selection.required_clock.clock_sha256 ||\n\t\t\trequest.required_clock.event_count !==\n\t\t\t\trequest.initial_selection.required_clock.event_count\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"initial selection required clock reference does not match request\",\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tjcsSha256(request.scope) !== jcsSha256(request.initial_selection.scope)\n\t\t) {\n\t\t\tthrow new Error(\"initial selection scope does not match request\");\n\t\t}\n\t\tif (\n\t\t\tjcsSha256(request.coverage_policy) !==\n\t\t\tjcsSha256(request.initial_selection.coverage_policy)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"initial selection coverage policy does not match request\",\n\t\t\t);\n\t\t}\n\t\tif (request.source_policy !== request.initial_selection.source_policy) {\n\t\t\tthrow new Error(\"initial selection source policy does not match request\");\n\t\t}\n\t\treturn { wire: request };\n\t},\n\tis(value: unknown): value is BackfillRequestWire {\n\t\ttry {\n\t\t\tthis.decode(value);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t},\n};\n\nexport function finalizeRequiredClock(\n\tclock: Omit<RequiredClockWire, \"clock_sha256\">,\n): RequiredClockWire {\n\treturn requiredClockCodec.decode({\n\t\t...clock,\n\t\tclock_sha256: documentSha256(clock, \"clock_sha256\"),\n\t});\n}\n\nexport function finalizeArchiveSelection(\n\tselection: Omit<ArchiveSelectionWire, \"selection_sha256\">,\n): ArchiveSelectionWire {\n\treturn archiveSelectionCodec.decode({\n\t\t...selection,\n\t\tselection_sha256: documentSha256(selection, \"selection_sha256\"),\n\t});\n}\n\nexport function finalizeBackfillResult(\n\tresult: Omit<BackfillJobResultWire, \"result_sha256\"> &\n\t\tPartial<Pick<BackfillJobResultWire, \"result_sha256\">>,\n): BackfillJobResultWire {\n\tconst { result_sha256: _resultSha256, ...content } = result;\n\treturn backfillResultCodec.decode({\n\t\t...content,\n\t\tresult_sha256: documentSha256(content, \"result_sha256\"),\n\t});\n}\n\nexport const BACKFILL_REQUEST_SCHEMA_VERSION =\n\t\"market-data-vendor-backfill-request/v1\" as const;\nexport const BACKFILL_RESULT_SCHEMA_VERSION =\n\t\"market-data-vendor-backfill-result/v1\" as const;\nexport const BACKFILL_PROMOTION_SCHEMA_VERSION =\n\t\"market-data-vendor-backfill-promotion-receipt/v1\" as const;\nexport const EXTERNAL_BACKFILL_SOURCE = \"external_backfill\" as const;\nexport const HISTORICAL_VENDOR_SOURCE_MODE =\n\t\"vendor_historical_backfill_v1\" as const;\nexport const VENDOR_DATASET_RAW_CAPTURE_SCOPE =\n\t\"vendor_normalized_dataset_file\" as const;\n\nconst nonEmpty = z.string().trim().min(1);\nconst sha256 = z.string().regex(/^[a-f0-9]{64}$/);\nconst timestampMs = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);\n\nexport const backfillRequestSchema = z\n\t.object({\n\t\tschemaVersion: z.literal(BACKFILL_REQUEST_SCHEMA_VERSION),\n\t\trequestId: nonEmpty,\n\t\tidempotencyKey: sha256,\n\t\tproviderPolicy: z\n\t\t\t.object({\n\t\t\t\tprovider: z.literal(\"cryptohftdata\"),\n\t\t\t\tallowedAdapterVersions: z.array(nonEmpty).min(1).max(16),\n\t\t\t})\n\t\t\t.strict(),\n\t\tscope: z\n\t\t\t.object({\n\t\t\t\texchange: nonEmpty,\n\t\t\t\ttradingPair: nonEmpty,\n\t\t\t\tsourceSymbol: nonEmpty,\n\t\t\t\tmarketType: z.enum([\"spot\", \"swap\", \"future\"]),\n\t\t\t\tfeed: z.literal(\"ORDERBOOK\"),\n\t\t\t})\n\t\t\t.strict(),\n\t\twindow: z\n\t\t\t.object({ startTimeMs: timestampMs, endTimeMs: timestampMs })\n\t\t\t.strict()\n\t\t\t.refine(({ startTimeMs, endTimeMs }) => endTimeMs > startTimeMs, {\n\t\t\t\tmessage: \"endTimeMs must be greater than startTimeMs\",\n\t\t\t}),\n\t\tdepth: z.number().int().min(1).max(500),\n\t\tconstructionMode: z.enum([\n\t\t\t\"sampled_top_n_snapshot\",\n\t\t\t\"exact_l2_reconstruction\",\n\t\t]),\n\t\trequiredClockTargetsMs: z.array(timestampMs).min(1).max(100_000),\n\t\tmaxPriorAsOfLagMs: z.number().int().nonnegative().max(86_400_000),\n\t\tsourcePolicy: z.enum([\"authoritative_window\", \"fill_gaps\"]),\n\t\tbudgets: z\n\t\t\t.object({\n\t\t\t\tmaxFiles: z.number().int().min(1).max(10_000),\n\t\t\t\tmaxBytes: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.min(1)\n\t\t\t\t\t.max(100 * 1024 * 1024 * 1024),\n\t\t\t\tmaxRows: z.number().int().min(1).max(1_000_000_000),\n\t\t\t\tmaxDurationMs: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.min(1)\n\t\t\t\t\t.max(24 * 60 * 60 * 1_000),\n\t\t\t\tmaxBoundaryLookbackMs: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.nonnegative()\n\t\t\t\t\t.max(7 * 24 * 60 * 60 * 1_000),\n\t\t\t})\n\t\t\t.strict(),\n\t\texpectedProduct: z\n\t\t\t.object({\n\t\t\t\tpackageName: z.literal(\"@usherlabs/cex-broker\"),\n\t\t\t\tpackageVersion: nonEmpty.optional(),\n\t\t\t\tcanonicalSchemaVersion: nonEmpty,\n\t\t\t\tchecksumAlgorithm: z.literal(\"sha256-canonical-json-v1\"),\n\t\t\t})\n\t\t\t.strict(),\n\t})\n\t.strict()\n\t.superRefine((request, context) => {\n\t\tconst targets = request.requiredClockTargetsMs;\n\t\tfor (let index = 0; index < targets.length; index += 1) {\n\t\t\tconst target = targets[index] as number;\n\t\t\tif (\n\t\t\t\ttarget < request.window.startTimeMs ||\n\t\t\t\ttarget >= request.window.endTimeMs\n\t\t\t) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: \"custom\",\n\t\t\t\t\tpath: [\"requiredClockTargetsMs\", index],\n\t\t\t\t\tmessage: \"clock target must be inside the half-open request window\",\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (index > 0 && target <= (targets[index - 1] as number)) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: \"custom\",\n\t\t\t\t\tpath: [\"requiredClockTargetsMs\", index],\n\t\t\t\t\tmessage: \"clock targets must be strictly increasing\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\ntype ProvisionalBackfillDomainRequest = z.infer<typeof backfillRequestSchema>;\n\nexport type MarketDataVendorBackfillRequest =\n\tProvisionalBackfillDomainRequest & {\n\t\tattemptId?: string;\n\t\ttarget?: { environment: string; cluster: string };\n\t\tcoveragePolicy?: CoveragePolicyWire;\n\t\trequiredClock?: RequiredClockWire;\n\t\tinitialSelection?: ArchiveSelectionWire;\n\t\texpectedCanonicalSchema?: BackfillRequestWire[\"expected_canonical_schema\"];\n\t\tproductPins?: BackfillRequestWire[\"product_pins\"];\n\t\tproductionAuthorizationId?: string;\n\t\twire?: BackfillRequestWire;\n\t};\n\nexport function decodeBackfillRunDocuments(input: {\n\trequest: unknown;\n\trequiredClock: unknown;\n}): MarketDataVendorBackfillRequest {\n\tconst { wire } = backfillRequestCodec.decode(input.request);\n\tconst requiredClock = requiredClockCodec.decode(input.requiredClock);\n\tif (\n\t\trequiredClock.clock_id !== wire.required_clock.clock_id ||\n\t\trequiredClock.clock_sha256 !== wire.required_clock.clock_sha256 ||\n\t\trequiredClock.targets.length !== wire.required_clock.event_count\n\t) {\n\t\tthrow new Error(\"required clock sidecar does not match request reference\");\n\t}\n\tconst startTimeMs = fixedTimestampMs(wire.window.start_at, \"window.start_at\");\n\tconst endTimeMs = fixedTimestampMs(wire.window.end_at, \"window.end_at\");\n\tconst requiredClockTargetsMs = requiredClock.targets.map((target, index) => {\n\t\tconst targetTimeMs = fixedTimestampMs(\n\t\t\ttarget.target_at,\n\t\t\t`required_clock.targets[${index}].target_at`,\n\t\t);\n\t\tif (targetTimeMs < startTimeMs || targetTimeMs >= endTimeMs) {\n\t\t\tthrow new Error(\"required clock target is outside request window\");\n\t\t}\n\t\treturn targetTimeMs;\n\t});\n\tconst capabilityProfile = CAPABILITY_POLICY.profiles.find(\n\t\t(profile) =>\n\t\t\tprofile.exchange === wire.scope.exchange &&\n\t\t\tprofile.market_type === wire.scope.market_type &&\n\t\t\tprofile.feed === wire.scope.feed &&\n\t\t\tprofile.canonical_trading_pair === wire.scope.trading_pair,\n\t);\n\treturn {\n\t\tschemaVersion: BACKFILL_REQUEST_SCHEMA_VERSION,\n\t\trequestId: wire.request_id,\n\t\tidempotencyKey: wire.idempotency_key,\n\t\tproviderPolicy: {\n\t\t\tprovider: \"cryptohftdata\",\n\t\t\tallowedAdapterVersions: [\n\t\t\t\tCAPABILITY_POLICY.adapter_policy.adapter_version,\n\t\t\t],\n\t\t},\n\t\tscope: {\n\t\t\texchange: wire.scope.exchange,\n\t\t\ttradingPair: wire.scope.trading_pair,\n\t\t\tsourceSymbol:\n\t\t\t\tcapabilityProfile?.resolved_symbol ?? wire.scope.trading_pair,\n\t\t\tmarketType: wire.scope.market_type,\n\t\t\tfeed: wire.scope.feed,\n\t\t},\n\t\twindow: { startTimeMs, endTimeMs },\n\t\tdepth: wire.depth,\n\t\tconstructionMode: wire.construction_mode,\n\t\trequiredClockTargetsMs,\n\t\tmaxPriorAsOfLagMs: wire.coverage_policy.max_asof_lag_ms,\n\t\tsourcePolicy: wire.source_policy,\n\t\tbudgets: {\n\t\t\tmaxFiles: RESOURCE_POLICY.limits.max_files,\n\t\t\tmaxBytes: RESOURCE_POLICY.limits.max_bytes,\n\t\t\tmaxRows: RESOURCE_POLICY.limits.max_rows,\n\t\t\tmaxDurationMs: RESOURCE_POLICY.limits.max_duration_ms,\n\t\t\tmaxBoundaryLookbackMs: Math.min(\n\t\t\t\tRESOURCE_POLICY.limits.max_boundary_lookback_ms,\n\t\t\t\tCAPABILITY_POLICY.acquisition_policy.initialization_lookback_ms,\n\t\t\t),\n\t\t},\n\t\texpectedProduct: {\n\t\t\tpackageName: \"@usherlabs/cex-broker\",\n\t\t\tcanonicalSchemaVersion: \"1.0.0\",\n\t\t\tchecksumAlgorithm: \"sha256-canonical-json-v1\",\n\t\t},\n\t\tattemptId: wire.attempt_id,\n\t\ttarget: wire.target,\n\t\tcoveragePolicy: wire.coverage_policy,\n\t\trequiredClock,\n\t\tinitialSelection: wire.initial_selection,\n\t\texpectedCanonicalSchema: wire.expected_canonical_schema,\n\t\tproductPins: wire.product_pins,\n\t\tproductionAuthorizationId: wire.production_authorization_id,\n\t\twire,\n\t};\n}\n\ntype IdempotencyBusinessFields = Omit<\n\tMarketDataVendorBackfillRequest,\n\t\"requestId\" | \"idempotencyKey\"\n>;\n\nexport function backfillBusinessFields(\n\trequest: Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\tidempotencyKey?: string;\n\t},\n): IdempotencyBusinessFields {\n\tconst {\n\t\trequestId: _requestId,\n\t\tidempotencyKey: _idempotencyKey,\n\t\t...business\n\t} = request;\n\treturn business;\n}\n\nexport function createBackfillIdempotencyKey(\n\trequest: Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\tidempotencyKey?: string;\n\t},\n): string;\nexport function createBackfillIdempotencyKey(\n\trequest: Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\tidempotency_key?: string;\n\t},\n): string;\nexport function createBackfillIdempotencyKey(\n\trequest: Record<string, unknown>,\n): string;\nexport function createBackfillIdempotencyKey(request: unknown): string {\n\tif (!request || typeof request !== \"object\") {\n\t\tthrow new TypeError(\"backfill request must be an object\");\n\t}\n\tif (\"schema_id\" in request) {\n\t\treturn jcsSha256(\n\t\t\twireIdempotencyBusinessFields(\n\t\t\t\trequest as Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\t\t\t\tidempotency_key?: string;\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t}\n\treturn sha256Canonical(\n\t\tbackfillBusinessFields(\n\t\t\trequest as Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\t\t\tidempotencyKey?: string;\n\t\t\t},\n\t\t),\n\t);\n}\n\nexport function parseBackfillRequest(\n\tvalue: unknown,\n): MarketDataVendorBackfillRequest {\n\tconst request = backfillRequestSchema.parse(value);\n\tif (createBackfillIdempotencyKey(request) !== request.idempotencyKey) {\n\t\tthrow new Error(\"idempotencyKey does not match canonical business fields\");\n\t}\n\treturn request;\n}\n\nexport const BACKFILL_STATUSES = [\n\t\"already_covered\",\n\t\"promoted\",\n\t\"capability_unsupported\",\n\t\"credentials_missing\",\n\t\"vendor_fetch_failed\",\n\t\"archive_ingest_failed\",\n\t\"promotion_verification_failed\",\n\t\"post_backfill_coverage_insufficient\",\n] as const;\n\nexport type BackfillStatus = (typeof BACKFILL_STATUSES)[number];\n\nexport type ProviderCapability = {\n\tprovider: \"cryptohftdata\";\n\tadapterVersion: string;\n\tproviderExchangeId: string;\n\tresolvedSymbol: string;\n};\n\nexport type ProviderObjectEvidence = {\n\tidentity: string;\n\tchecksum: string;\n\tbytes: number;\n\trows: number;\n};\n\nconst providerObjectEvidenceSchema = z\n\t.object({\n\t\tidentity: nonEmpty,\n\t\tchecksum: sha256,\n\t\tbytes: z.number().int().nonnegative(),\n\t\trows: z.number().int().nonnegative(),\n\t})\n\t.strict();\n\nexport type BackfillArchiveRow = {\n\ttable:\n\t\t| \"market_data.cex_order_book_levels\"\n\t\t| \"market_data.cex_order_book_depth_summary\"\n\t\t| \"market_data.cex_order_book_capture_promotions\"\n\t\t| \"market_data.cex_order_book_capture_qualifications\"\n\t\t| \"market_data.cex_order_book_archive_selections\";\n\trow: Record<string, unknown>;\n};\n\nexport type ForwarderBatch = {\n\tsource: typeof EXTERNAL_BACKFILL_SOURCE;\n\tdeployment_id: string;\n\tbatch_id: string;\n\trows: BackfillArchiveRow[];\n};\n\nexport type PromotionReceipt = {\n\tschemaVersion: typeof BACKFILL_PROMOTION_SCHEMA_VERSION;\n\treceiptId: string;\n\trequestId: string;\n\tidempotencyKey: string;\n\tstatus: \"passing\";\n\tsource: typeof EXTERNAL_BACKFILL_SOURCE;\n\tprovider: \"cryptohftdata\";\n\tadapterVersion: string;\n\tcaptureBundleId: string;\n\texchange: string;\n\ttradingPair: string;\n\tmarketType: \"spot\" | \"swap\" | \"future\";\n\tfeed: \"ORDERBOOK\";\n\tstartTimeMs: number;\n\tendTimeMs: number;\n\tdepth: number;\n\tconstructionMode: \"sampled_top_n_snapshot\" | \"exact_l2_reconstruction\";\n\tcanonicalSchemaVersion: string;\n\tchecksumAlgorithm: \"sha256-canonical-json-v1\";\n\tvendorSemanticDigest: string;\n\tcanonicalSemanticDigest: string;\n\tprefixDigest: string;\n\tsuffixDigest: string;\n\tseamVerified: true;\n\tcoverageVerified: true;\n\tdatasetObjects: ProviderObjectEvidence[];\n\tverificationTimeMs: number;\n};\n\nexport const promotionReceiptSchema: z.ZodType<PromotionReceipt> = z\n\t.object({\n\t\tschemaVersion: z.literal(BACKFILL_PROMOTION_SCHEMA_VERSION),\n\t\treceiptId: sha256,\n\t\trequestId: nonEmpty,\n\t\tidempotencyKey: sha256,\n\t\tstatus: z.literal(\"passing\"),\n\t\tsource: z.literal(EXTERNAL_BACKFILL_SOURCE),\n\t\tprovider: z.literal(\"cryptohftdata\"),\n\t\tadapterVersion: nonEmpty,\n\t\tcaptureBundleId: sha256,\n\t\texchange: nonEmpty,\n\t\ttradingPair: nonEmpty,\n\t\tmarketType: z.enum([\"spot\", \"swap\", \"future\"]),\n\t\tfeed: z.literal(\"ORDERBOOK\"),\n\t\tstartTimeMs: timestampMs,\n\t\tendTimeMs: timestampMs,\n\t\tdepth: z.number().int().min(1).max(500),\n\t\tconstructionMode: z.enum([\n\t\t\t\"sampled_top_n_snapshot\",\n\t\t\t\"exact_l2_reconstruction\",\n\t\t]),\n\t\tcanonicalSchemaVersion: nonEmpty,\n\t\tchecksumAlgorithm: z.literal(\"sha256-canonical-json-v1\"),\n\t\tvendorSemanticDigest: sha256,\n\t\tcanonicalSemanticDigest: sha256,\n\t\tprefixDigest: sha256,\n\t\tsuffixDigest: sha256,\n\t\tseamVerified: z.literal(true),\n\t\tcoverageVerified: z.literal(true),\n\t\tdatasetObjects: z.array(providerObjectEvidenceSchema).min(1).max(10_000),\n\t\tverificationTimeMs: timestampMs,\n\t})\n\t.strict()\n\t.refine(({ endTimeMs, startTimeMs }) => endTimeMs > startTimeMs, {\n\t\tmessage: \"promotion window must be increasing\",\n\t});\n\nexport type BackfillResult = {\n\tschemaVersion: typeof BACKFILL_RESULT_SCHEMA_VERSION;\n\trequestId: string;\n\tidempotencyKey?: string;\n\tstatus: BackfillStatus;\n\treasonCode: string;\n\treceipt?: PromotionReceipt;\n\tdiagnostics?: Record<string, string | number | boolean>;\n};\n",
151
+ "import Ajv2020, {\n\ttype ErrorObject,\n\ttype ValidateFunction,\n} from \"ajv/dist/2020.js\";\nimport { z } from \"zod\";\nimport { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport { assertDocumentSha256, documentSha256, jcsSha256 } from \"./identity\";\nimport {\n\tCAPABILITY_POLICY,\n\tLEGACY_CAPABILITY_POLICY,\n\tLEGACY_RESOURCE_POLICY,\n\tRESOURCE_POLICY,\n} from \"./manifests\";\nimport archiveSelectionSchemaJson from \"./schemas/archive-selection.schema.json\" with {\n\ttype: \"json\",\n};\nimport promotionReceiptSchemaJson from \"./schemas/promotion-receipt.schema.json\" with {\n\ttype: \"json\",\n};\nimport requestSchemaJson from \"./schemas/request.schema.json\" with {\n\ttype: \"json\",\n};\nimport requiredClockSchemaJson from \"./schemas/required-clock.schema.json\" with {\n\ttype: \"json\",\n};\nimport resultSchemaJson from \"./schemas/result.schema.json\" with {\n\ttype: \"json\",\n};\n\nexport const BACKFILL_REQUEST_SCHEMA_ID = requestSchemaJson.$id;\nexport const REQUIRED_CLOCK_SCHEMA_ID = requiredClockSchemaJson.$id;\nexport const ARCHIVE_SELECTION_SCHEMA_ID = archiveSelectionSchemaJson.$id;\nexport const PROMOTION_RECEIPT_SCHEMA_ID = promotionReceiptSchemaJson.$id;\nexport const BACKFILL_RESULT_SCHEMA_ID = resultSchemaJson.$id;\n\nexport type FixedUtcTimestamp = string;\nexport type Sha256Hex = string;\nexport type LowercaseUuid = string;\n\nexport type CanonicalScopeWire = {\n\texchange: string;\n\ttrading_pair: string;\n\tmarket_type: \"spot\" | \"swap\" | \"future\";\n\tfeed: \"ORDERBOOK\";\n};\n\nexport type CoveragePolicyWire = {\n\tpolicy_id: \"prior-asof-strict/v1\";\n\tmax_asof_lag_ms: number;\n\tfuture_rows: \"reject\";\n\tmissing_required_event: \"fail\";\n};\n\nexport type RequiredClockWire = {\n\tschema_id: typeof REQUIRED_CLOCK_SCHEMA_ID;\n\tclock_id: LowercaseUuid;\n\tclock_sha256: Sha256Hex;\n\tcreated_at: FixedUtcTimestamp;\n\ttargets: Array<{ target_id: LowercaseUuid; target_at: FixedUtcTimestamp }>;\n};\n\nexport type ArchiveSelectionWire = {\n\tschema_id: typeof ARCHIVE_SELECTION_SCHEMA_ID;\n\tselection_sha256: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\trequired_clock: {\n\t\tclock_id: LowercaseUuid;\n\t\tclock_sha256: Sha256Hex;\n\t\tevent_count: number;\n\t};\n\tcoverage_policy: CoveragePolicyWire;\n\tsource_policy: \"authoritative_window\" | \"fill_gaps\";\n\tcoverage_class: \"complete\" | \"partial\" | \"missing\";\n\trequested_intervals: Array<{\n\t\tstart_at: FixedUtcTimestamp;\n\t\tend_at: FixedUtcTimestamp;\n\t}>;\n\tselected_intervals: Array<{\n\t\tstart_at: FixedUtcTimestamp;\n\t\tend_at: FixedUtcTimestamp;\n\t\tcapture_bundle_id: Sha256Hex;\n\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t}>;\n\tprecedence: Array<\"archive\" | \"vendor\">;\n\tbundles: Array<{\n\t\tcapture_bundle_id: Sha256Hex;\n\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t\tinterval: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\t\tqualification: null | {\n\t\t\tqualification_event_id: LowercaseUuid;\n\t\t\tstate: \"qualified\";\n\t\t\treceipt_id: Sha256Hex;\n\t\t\tpromotion_identity_sha256: Sha256Hex;\n\t\t};\n\t}>;\n\tsupport_anchors: Array<{\n\t\tcapture_bundle_id: Sha256Hex;\n\t\traw_capture_id: Sha256Hex;\n\t\tsnapshot_id: Sha256Hex;\n\t\tsource_time: FixedUtcTimestamp;\n\t\tnormalized_summary_checksum: Sha256Hex;\n\t\tmetadata_ref: {\n\t\t\tcapture_origin: \"production_capture\" | \"vendor_historical_backfill\";\n\t\t\tqualification_event_id: LowercaseUuid | null;\n\t\t\treceipt_id: Sha256Hex | null;\n\t\t};\n\t}>;\n\treceipt_ids: Sha256Hex[];\n\tqualification_event_ids: LowercaseUuid[];\n\tresolved_at: FixedUtcTimestamp;\n};\n\nexport type BackfillRequestWire = {\n\tschema_id: typeof BACKFILL_REQUEST_SCHEMA_ID;\n\trequest_id: LowercaseUuid;\n\tattempt_id: LowercaseUuid;\n\tidempotency_key: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\twindow: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\tdepth: number;\n\tconstruction_mode: \"sampled_top_n_snapshot\" | \"exact_l2_reconstruction\";\n\tsource_policy: \"authoritative_window\" | \"fill_gaps\";\n\ttarget: { environment: string; cluster: string };\n\tcoverage_policy: CoveragePolicyWire;\n\trequired_clock: {\n\t\tschema_id: typeof REQUIRED_CLOCK_SCHEMA_ID;\n\t\tclock_id: LowercaseUuid;\n\t\tfile_name: string;\n\t\tclock_sha256: Sha256Hex;\n\t\tevent_count: number;\n\t};\n\tinitial_selection: ArchiveSelectionWire;\n\texpected_canonical_schema: {\n\t\tschema_id: string;\n\t\tschema_sha256: Sha256Hex;\n\t};\n\tproduct_pins: {\n\t\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t};\n\tproduction_authorization_id: LowercaseUuid;\n};\n\nexport type PromotionReceiptWire = {\n\tschema_id: typeof PROMOTION_RECEIPT_SCHEMA_ID;\n\treceipt_id: Sha256Hex;\n\tpromotion_identity_sha256: Sha256Hex;\n\tverified_at: FixedUtcTimestamp;\n\trequest_id: LowercaseUuid;\n\tidempotency_key: Sha256Hex;\n\tsource: \"external_backfill\";\n\tcapture_origin: \"vendor_historical_backfill\";\n\tsource_mode: \"vendor_historical_backfill_v1\";\n\tprovider: string;\n\tadapter_version: string;\n\teffective_policies: {\n\t\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tadapter_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t\tacquisition_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\t};\n\tcapture_bundle_id: Sha256Hex;\n\tscope: CanonicalScopeWire;\n\twindow: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\tdepth: number;\n\tconstruction_mode: \"sampled_top_n_snapshot\" | \"exact_l2_reconstruction\";\n\tcanonical_schema: { schema_id: string; schema_sha256: Sha256Hex };\n\tcoverage_policy: CoveragePolicyWire;\n\tselection_sha256: Sha256Hex;\n\tvendor_semantic_digest: Sha256Hex;\n\tcanonical_semantic_digest: Sha256Hex;\n\tprefix_digest: Sha256Hex;\n\tsuffix_digest: Sha256Hex;\n\tseam_verified: true;\n\tcoverage_verified: true;\n\tdataset_objects: Array<{\n\t\tidentity: string;\n\t\tchecksum: Sha256Hex;\n\t\tbytes: number;\n\t\trows: number;\n\t}>;\n};\n\nexport const FINAL_BACKFILL_STATUSES = [\n\t\"request_invalid\",\n\t\"archive_preflight_failed\",\n\t\"already_covered\",\n\t\"promoted\",\n\t\"capability_unsupported\",\n\t\"credentials_missing\",\n\t\"vendor_fetch_failed\",\n\t\"archive_ingest_failed\",\n\t\"promotion_verification_failed\",\n] as const;\n\nexport type FinalBackfillStatus = (typeof FINAL_BACKFILL_STATUSES)[number];\n\nexport type BackfillJobResultWire = {\n\tschema_id: typeof BACKFILL_RESULT_SCHEMA_ID;\n\tresult_sha256: Sha256Hex;\n\tjob_id: LowercaseUuid;\n\trequest_file_sha256: Sha256Hex | null;\n\texecutable_sha256: Sha256Hex;\n\tschema_manifest_sha256: Sha256Hex;\n\tcex_package: {\n\t\tname: \"@usherlabs/cex-broker\";\n\t\tversion: string;\n\t\tpackage_sha256: Sha256Hex;\n\t};\n\tcapability_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tresource_policy: { policy_id: string; policy_sha256: Sha256Hex };\n\tbuild: { fiet_tee_commit: string; created_at: FixedUtcTimestamp };\n\tstarted_at: FixedUtcTimestamp;\n\tcompleted_at: FixedUtcTimestamp;\n\toutcome: {\n\t\tstatus: FinalBackfillStatus;\n\t\treason_code: string;\n\t\treason_subcode: string | null;\n\t\trequest_id: LowercaseUuid | null;\n\t\tidempotency_key: Sha256Hex | null;\n\t\ttarget: { environment: string; cluster: string } | null;\n\t\tselection: ArchiveSelectionWire | null;\n\t\treceipt: PromotionReceiptWire | null;\n\t\tdiagnostics: Record<string, string | number | boolean>;\n\t};\n};\n\ntype Codec<T> = {\n\tdecode(value: unknown): T;\n\tis(value: unknown): value is T;\n};\n\nfunction describeAjvErrors(errors: ErrorObject[] | null | undefined): string {\n\treturn (errors ?? [])\n\t\t.map(\n\t\t\t(error) =>\n\t\t\t\t`${error.instancePath || \"/\"} ${error.message ?? \"is invalid\"}`,\n\t\t)\n\t\t.join(\"; \");\n}\n\nfunction codec<T>(\n\tvalidate: ValidateFunction,\n\tsemantic?: (document: T) => void,\n): Codec<T> {\n\treturn {\n\t\tdecode(value: unknown): T {\n\t\t\tif (!validate(value)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`JSON Schema validation failed: ${describeAjvErrors(validate.errors)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tsemantic?.(value as T);\n\t\t\treturn value as T;\n\t\t},\n\t\tis(value: unknown): value is T {\n\t\t\tif (!validate(value)) return false;\n\t\t\ttry {\n\t\t\t\tsemantic?.(value as T);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t};\n}\n\nfunction fixedTimestampMs(value: string, field: string): number {\n\tconst parsed = Date.parse(value);\n\tif (\n\t\t!Number.isSafeInteger(parsed) ||\n\t\tnew Date(parsed).toISOString() !== value\n\t) {\n\t\tthrow new Error(`${field} is not a fixed UTC RFC3339 timestamp`);\n\t}\n\treturn parsed;\n}\n\nfunction assertIncreasingInterval(\n\tinterval: { start_at: string; end_at: string },\n\tfield: string,\n): void {\n\tif (\n\t\tfixedTimestampMs(interval.end_at, `${field}.end_at`) <=\n\t\tfixedTimestampMs(interval.start_at, `${field}.start_at`)\n\t) {\n\t\tthrow new Error(`${field} must be an increasing half-open interval`);\n\t}\n}\n\nconst ajv = new Ajv2020({ allErrors: true, strict: true });\najv.addSchema(archiveSelectionSchemaJson);\najv.addSchema(promotionReceiptSchemaJson);\nconst validateRequiredClock = ajv.compile(requiredClockSchemaJson);\nconst validateArchiveSelection = ajv.getSchema(ARCHIVE_SELECTION_SCHEMA_ID);\nconst validatePromotionReceipt = ajv.getSchema(PROMOTION_RECEIPT_SCHEMA_ID);\nconst validateBackfillRequest = ajv.compile(requestSchemaJson);\nconst validateBackfillResult = ajv.compile(resultSchemaJson);\nif (!validateArchiveSelection || !validatePromotionReceipt) {\n\tthrow new Error(\"Backfill referenced schemas were not registered\");\n}\n\nexport const requiredClockCodec = codec<RequiredClockWire>(\n\tvalidateRequiredClock,\n\t(clock) => {\n\t\tassertDocumentSha256(clock, \"clock_sha256\");\n\t\tlet previous = -1;\n\t\tconst targetIds = new Set<string>();\n\t\tfor (const [index, target] of clock.targets.entries()) {\n\t\t\tconst at = fixedTimestampMs(\n\t\t\t\ttarget.target_at,\n\t\t\t\t`targets[${index}].target_at`,\n\t\t\t);\n\t\t\tif (at <= previous)\n\t\t\t\tthrow new Error(\"required clock targets must be strictly increasing\");\n\t\t\tif (targetIds.has(target.target_id))\n\t\t\t\tthrow new Error(\"required clock target IDs must be unique\");\n\t\t\ttargetIds.add(target.target_id);\n\t\t\tprevious = at;\n\t\t}\n\t},\n);\n\nexport const archiveSelectionCodec = codec<ArchiveSelectionWire>(\n\tvalidateArchiveSelection,\n\t(selection) => {\n\t\tassertDocumentSha256(selection, \"selection_sha256\");\n\t\tselection.requested_intervals.forEach((interval, index) => {\n\t\t\tassertIncreasingInterval(interval, `requested_intervals[${index}]`);\n\t\t});\n\t\tselection.selected_intervals.forEach((interval, index) => {\n\t\t\tassertIncreasingInterval(interval, `selected_intervals[${index}]`);\n\t\t});\n\t\tselection.bundles.forEach((bundle, index) => {\n\t\t\tassertIncreasingInterval(bundle.interval, `bundles[${index}].interval`);\n\t\t});\n\t\tif (\n\t\t\tselection.coverage_class === \"missing\" &&\n\t\t\tselection.selected_intervals.length !== 0\n\t\t) {\n\t\t\tthrow new Error(\"missing selection cannot contain selected intervals\");\n\t\t}\n\t},\n);\n\nfunction promotionSemanticFields(\n\treceipt: PromotionReceiptWire,\n): Record<string, unknown> {\n\treturn Object.fromEntries(\n\t\tObject.entries(receipt).filter(\n\t\t\t([key]) =>\n\t\t\t\tkey !== \"receipt_id\" &&\n\t\t\t\tkey !== \"promotion_identity_sha256\" &&\n\t\t\t\tkey !== \"verified_at\",\n\t\t),\n\t);\n}\n\nexport function promotionIdentitySha256(\n\treceipt: Omit<\n\t\tPromotionReceiptWire,\n\t\t\"receipt_id\" | \"promotion_identity_sha256\"\n\t> &\n\t\tPartial<\n\t\t\tPick<PromotionReceiptWire, \"receipt_id\" | \"promotion_identity_sha256\">\n\t\t>,\n): string {\n\treturn jcsSha256(promotionSemanticFields(receipt as PromotionReceiptWire));\n}\n\nexport const promotionReceiptCodec = codec<PromotionReceiptWire>(\n\tvalidatePromotionReceipt,\n\t(receipt) => {\n\t\tassertIncreasingInterval(receipt.window, \"window\");\n\t\tif (\n\t\t\tpromotionIdentitySha256(receipt) !== receipt.promotion_identity_sha256\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"promotion_identity_sha256 does not match semantic receipt content\",\n\t\t\t);\n\t\t}\n\t\tassertDocumentSha256(receipt, \"receipt_id\");\n\t},\n);\n\nexport const backfillResultCodec = codec<BackfillJobResultWire>(\n\tvalidateBackfillResult,\n\t(result) => {\n\t\tassertDocumentSha256(result, \"result_sha256\");\n\t\tconst startedAt = fixedTimestampMs(result.started_at, \"started_at\");\n\t\tconst completedAt = fixedTimestampMs(result.completed_at, \"completed_at\");\n\t\tif (completedAt < startedAt)\n\t\t\tthrow new Error(\"completed_at precedes started_at\");\n\t\tif (result.outcome.selection)\n\t\t\tarchiveSelectionCodec.decode(result.outcome.selection);\n\t\tif (result.outcome.receipt)\n\t\t\tpromotionReceiptCodec.decode(result.outcome.receipt);\n\t\tif (\n\t\t\tresult.outcome.status === \"promoted\" &&\n\t\t\t(!result.outcome.selection || !result.outcome.receipt)\n\t\t) {\n\t\t\tthrow new Error(\"promoted outcome requires selection and receipt\");\n\t\t}\n\t\tif (\n\t\t\tresult.outcome.status === \"already_covered\" &&\n\t\t\t!result.outcome.selection\n\t\t) {\n\t\t\tthrow new Error(\"already_covered outcome requires selection\");\n\t\t}\n\t},\n);\n\nfunction wireIdempotencyBusinessFields(\n\trequest: Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\tidempotency_key?: string;\n\t},\n) {\n\treturn {\n\t\tscope: request.scope,\n\t\twindow: request.window,\n\t\tdepth: request.depth,\n\t\tconstruction_mode: request.construction_mode,\n\t\trequired_clock_sha256: request.required_clock.clock_sha256,\n\t\tcoverage_policy: request.coverage_policy,\n\t\tsource_policy: request.source_policy,\n\t\texpected_canonical_schema: request.expected_canonical_schema,\n\t\ttarget: request.target,\n\t};\n}\n\nexport const backfillRequestCodec = {\n\tdecode(value: unknown): { wire: BackfillRequestWire } {\n\t\tif (!validateBackfillRequest(value)) {\n\t\t\tthrow new Error(\n\t\t\t\t`JSON Schema validation failed: ${describeAjvErrors(validateBackfillRequest.errors)}`,\n\t\t\t);\n\t\t}\n\t\tconst request = value as BackfillRequestWire;\n\t\tarchiveSelectionCodec.decode(request.initial_selection);\n\t\tassertIncreasingInterval(request.window, \"window\");\n\t\tif (request.idempotency_key !== createBackfillIdempotencyKey(request)) {\n\t\t\tthrow new Error(\n\t\t\t\t\"idempotency_key does not match canonical business fields\",\n\t\t\t);\n\t\t}\n\t\tconst capabilityPolicyMatches = [\n\t\t\tCAPABILITY_POLICY,\n\t\t\tLEGACY_CAPABILITY_POLICY,\n\t\t].some(\n\t\t\t(policy) =>\n\t\t\t\trequest.product_pins.capability_policy.policy_id === policy.policy_id &&\n\t\t\t\trequest.product_pins.capability_policy.policy_sha256 ===\n\t\t\t\t\tpolicy.policy_sha256,\n\t\t);\n\t\tconst resourcePolicyMatches = [\n\t\t\tRESOURCE_POLICY,\n\t\t\tLEGACY_RESOURCE_POLICY,\n\t\t].some(\n\t\t\t(policy) =>\n\t\t\t\trequest.product_pins.resource_policy.policy_id === policy.policy_id &&\n\t\t\t\trequest.product_pins.resource_policy.policy_sha256 ===\n\t\t\t\t\tpolicy.policy_sha256,\n\t\t);\n\t\tif (!capabilityPolicyMatches || !resourcePolicyMatches) {\n\t\t\tthrow new Error(\n\t\t\t\t\"request policy pins do not match the effective package policies\",\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\trequest.required_clock.clock_id !==\n\t\t\t\trequest.initial_selection.required_clock.clock_id ||\n\t\t\trequest.required_clock.clock_sha256 !==\n\t\t\t\trequest.initial_selection.required_clock.clock_sha256 ||\n\t\t\trequest.required_clock.event_count !==\n\t\t\t\trequest.initial_selection.required_clock.event_count\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"initial selection required clock reference does not match request\",\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tjcsSha256(request.scope) !== jcsSha256(request.initial_selection.scope)\n\t\t) {\n\t\t\tthrow new Error(\"initial selection scope does not match request\");\n\t\t}\n\t\tif (\n\t\t\tjcsSha256(request.coverage_policy) !==\n\t\t\tjcsSha256(request.initial_selection.coverage_policy)\n\t\t) {\n\t\t\tthrow new Error(\n\t\t\t\t\"initial selection coverage policy does not match request\",\n\t\t\t);\n\t\t}\n\t\tif (request.source_policy !== request.initial_selection.source_policy) {\n\t\t\tthrow new Error(\"initial selection source policy does not match request\");\n\t\t}\n\t\treturn { wire: request };\n\t},\n\tis(value: unknown): value is BackfillRequestWire {\n\t\ttry {\n\t\t\tthis.decode(value);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t},\n};\n\nexport function finalizeRequiredClock(\n\tclock: Omit<RequiredClockWire, \"clock_sha256\">,\n): RequiredClockWire {\n\treturn requiredClockCodec.decode({\n\t\t...clock,\n\t\tclock_sha256: documentSha256(clock, \"clock_sha256\"),\n\t});\n}\n\nexport function finalizeArchiveSelection(\n\tselection: Omit<ArchiveSelectionWire, \"selection_sha256\">,\n): ArchiveSelectionWire {\n\treturn archiveSelectionCodec.decode({\n\t\t...selection,\n\t\tselection_sha256: documentSha256(selection, \"selection_sha256\"),\n\t});\n}\n\nexport function finalizeBackfillResult(\n\tresult: Omit<BackfillJobResultWire, \"result_sha256\"> &\n\t\tPartial<Pick<BackfillJobResultWire, \"result_sha256\">>,\n): BackfillJobResultWire {\n\tconst { result_sha256: _resultSha256, ...content } = result;\n\treturn backfillResultCodec.decode({\n\t\t...content,\n\t\tresult_sha256: documentSha256(content, \"result_sha256\"),\n\t});\n}\n\nexport const BACKFILL_REQUEST_SCHEMA_VERSION =\n\t\"market-data-vendor-backfill-request/v1\" as const;\nexport const BACKFILL_RESULT_SCHEMA_VERSION =\n\t\"market-data-vendor-backfill-result/v1\" as const;\nexport const BACKFILL_PROMOTION_SCHEMA_VERSION =\n\t\"market-data-vendor-backfill-promotion-receipt/v1\" as const;\nexport const EXTERNAL_BACKFILL_SOURCE = \"external_backfill\" as const;\nexport const HISTORICAL_VENDOR_SOURCE_MODE =\n\t\"vendor_historical_backfill_v1\" as const;\nexport const VENDOR_DATASET_RAW_CAPTURE_SCOPE =\n\t\"vendor_normalized_dataset_file\" as const;\n\nconst nonEmpty = z.string().trim().min(1);\nconst sha256 = z.string().regex(/^[a-f0-9]{64}$/);\nconst timestampMs = z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);\n\nexport const backfillRequestSchema = z\n\t.object({\n\t\tschemaVersion: z.literal(BACKFILL_REQUEST_SCHEMA_VERSION),\n\t\trequestId: nonEmpty,\n\t\tidempotencyKey: sha256,\n\t\tproviderPolicy: z\n\t\t\t.object({\n\t\t\t\tprovider: z.literal(\"cryptohftdata\"),\n\t\t\t\tallowedAdapterVersions: z.array(nonEmpty).min(1).max(16),\n\t\t\t})\n\t\t\t.strict(),\n\t\tscope: z\n\t\t\t.object({\n\t\t\t\texchange: nonEmpty,\n\t\t\t\ttradingPair: nonEmpty,\n\t\t\t\tsourceSymbol: nonEmpty,\n\t\t\t\tmarketType: z.enum([\"spot\", \"swap\", \"future\"]),\n\t\t\t\tfeed: z.literal(\"ORDERBOOK\"),\n\t\t\t})\n\t\t\t.strict(),\n\t\twindow: z\n\t\t\t.object({ startTimeMs: timestampMs, endTimeMs: timestampMs })\n\t\t\t.strict()\n\t\t\t.refine(({ startTimeMs, endTimeMs }) => endTimeMs > startTimeMs, {\n\t\t\t\tmessage: \"endTimeMs must be greater than startTimeMs\",\n\t\t\t}),\n\t\tdepth: z.number().int().min(1).max(500),\n\t\tconstructionMode: z.enum([\n\t\t\t\"sampled_top_n_snapshot\",\n\t\t\t\"exact_l2_reconstruction\",\n\t\t]),\n\t\trequiredClockTargetsMs: z.array(timestampMs).min(1).max(100_000),\n\t\tmaxPriorAsOfLagMs: z.number().int().nonnegative().max(86_400_000),\n\t\tsourcePolicy: z.enum([\"authoritative_window\", \"fill_gaps\"]),\n\t\tbudgets: z\n\t\t\t.object({\n\t\t\t\tmaxFiles: z.number().int().min(1).max(10_000),\n\t\t\t\tmaxBytes: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.min(1)\n\t\t\t\t\t.max(100 * 1024 * 1024 * 1024),\n\t\t\t\tmaxRows: z.number().int().min(1).max(1_000_000_000),\n\t\t\t\tmaxDurationMs: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.min(1)\n\t\t\t\t\t.max(24 * 60 * 60 * 1_000),\n\t\t\t\tmaxBoundaryLookbackMs: z\n\t\t\t\t\t.number()\n\t\t\t\t\t.int()\n\t\t\t\t\t.nonnegative()\n\t\t\t\t\t.max(7 * 24 * 60 * 60 * 1_000),\n\t\t\t})\n\t\t\t.strict(),\n\t\texpectedProduct: z\n\t\t\t.object({\n\t\t\t\tpackageName: z.literal(\"@usherlabs/cex-broker\"),\n\t\t\t\tpackageVersion: nonEmpty.optional(),\n\t\t\t\tcanonicalSchemaVersion: nonEmpty,\n\t\t\t\tchecksumAlgorithm: z.literal(\"sha256-canonical-json-v1\"),\n\t\t\t})\n\t\t\t.strict(),\n\t})\n\t.strict()\n\t.superRefine((request, context) => {\n\t\tconst targets = request.requiredClockTargetsMs;\n\t\tfor (let index = 0; index < targets.length; index += 1) {\n\t\t\tconst target = targets[index] as number;\n\t\t\tif (\n\t\t\t\ttarget < request.window.startTimeMs ||\n\t\t\t\ttarget >= request.window.endTimeMs\n\t\t\t) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: \"custom\",\n\t\t\t\t\tpath: [\"requiredClockTargetsMs\", index],\n\t\t\t\t\tmessage: \"clock target must be inside the half-open request window\",\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (index > 0 && target <= (targets[index - 1] as number)) {\n\t\t\t\tcontext.addIssue({\n\t\t\t\t\tcode: \"custom\",\n\t\t\t\t\tpath: [\"requiredClockTargetsMs\", index],\n\t\t\t\t\tmessage: \"clock targets must be strictly increasing\",\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\ntype ProvisionalBackfillDomainRequest = z.infer<typeof backfillRequestSchema>;\n\nexport type MarketDataVendorBackfillRequest =\n\tProvisionalBackfillDomainRequest & {\n\t\tattemptId?: string;\n\t\ttarget?: { environment: string; cluster: string };\n\t\tcoveragePolicy?: CoveragePolicyWire;\n\t\trequiredClock?: RequiredClockWire;\n\t\tinitialSelection?: ArchiveSelectionWire;\n\t\texpectedCanonicalSchema?: BackfillRequestWire[\"expected_canonical_schema\"];\n\t\tproductPins?: BackfillRequestWire[\"product_pins\"];\n\t\tproductionAuthorizationId?: string;\n\t\twire?: BackfillRequestWire;\n\t};\n\nexport function decodeBackfillRunDocuments(input: {\n\trequest: unknown;\n\trequiredClock: unknown;\n}): MarketDataVendorBackfillRequest {\n\tconst { wire } = backfillRequestCodec.decode(input.request);\n\tconst requiredClock = requiredClockCodec.decode(input.requiredClock);\n\tif (\n\t\trequiredClock.clock_id !== wire.required_clock.clock_id ||\n\t\trequiredClock.clock_sha256 !== wire.required_clock.clock_sha256 ||\n\t\trequiredClock.targets.length !== wire.required_clock.event_count\n\t) {\n\t\tthrow new Error(\"required clock sidecar does not match request reference\");\n\t}\n\tconst startTimeMs = fixedTimestampMs(wire.window.start_at, \"window.start_at\");\n\tconst endTimeMs = fixedTimestampMs(wire.window.end_at, \"window.end_at\");\n\tconst requiredClockTargetsMs = requiredClock.targets.map((target, index) => {\n\t\tconst targetTimeMs = fixedTimestampMs(\n\t\t\ttarget.target_at,\n\t\t\t`required_clock.targets[${index}].target_at`,\n\t\t);\n\t\tif (targetTimeMs < startTimeMs || targetTimeMs >= endTimeMs) {\n\t\t\tthrow new Error(\"required clock target is outside request window\");\n\t\t}\n\t\treturn targetTimeMs;\n\t});\n\tconst capabilityProfile = CAPABILITY_POLICY.profiles.find(\n\t\t(profile) =>\n\t\t\tprofile.exchange === wire.scope.exchange &&\n\t\t\tprofile.market_type === wire.scope.market_type &&\n\t\t\tprofile.feed === wire.scope.feed &&\n\t\t\tprofile.canonical_trading_pair === wire.scope.trading_pair,\n\t);\n\tconst resourcePolicy = [RESOURCE_POLICY, LEGACY_RESOURCE_POLICY].find(\n\t\t(policy) =>\n\t\t\twire.product_pins.resource_policy.policy_id === policy.policy_id &&\n\t\t\twire.product_pins.resource_policy.policy_sha256 === policy.policy_sha256,\n\t);\n\tif (!resourcePolicy) {\n\t\tthrow new Error(\"request resource policy pin is unsupported\");\n\t}\n\treturn {\n\t\tschemaVersion: BACKFILL_REQUEST_SCHEMA_VERSION,\n\t\trequestId: wire.request_id,\n\t\tidempotencyKey: wire.idempotency_key,\n\t\tproviderPolicy: {\n\t\t\tprovider: \"cryptohftdata\",\n\t\t\tallowedAdapterVersions: [\n\t\t\t\tCAPABILITY_POLICY.adapter_policy.adapter_version,\n\t\t\t],\n\t\t},\n\t\tscope: {\n\t\t\texchange: wire.scope.exchange,\n\t\t\ttradingPair: wire.scope.trading_pair,\n\t\t\tsourceSymbol:\n\t\t\t\tcapabilityProfile?.resolved_symbol ?? wire.scope.trading_pair,\n\t\t\tmarketType: wire.scope.market_type,\n\t\t\tfeed: wire.scope.feed,\n\t\t},\n\t\twindow: { startTimeMs, endTimeMs },\n\t\tdepth: wire.depth,\n\t\tconstructionMode: wire.construction_mode,\n\t\trequiredClockTargetsMs,\n\t\tmaxPriorAsOfLagMs: wire.coverage_policy.max_asof_lag_ms,\n\t\tsourcePolicy: wire.source_policy,\n\t\tbudgets: {\n\t\t\tmaxFiles: resourcePolicy.limits.max_files,\n\t\t\tmaxBytes: resourcePolicy.limits.max_bytes,\n\t\t\tmaxRows: resourcePolicy.limits.max_rows,\n\t\t\tmaxDurationMs: resourcePolicy.limits.max_duration_ms,\n\t\t\tmaxBoundaryLookbackMs: Math.min(\n\t\t\t\tresourcePolicy.limits.max_boundary_lookback_ms,\n\t\t\t\tCAPABILITY_POLICY.acquisition_policy.initialization_lookback_ms,\n\t\t\t),\n\t\t},\n\t\texpectedProduct: {\n\t\t\tpackageName: \"@usherlabs/cex-broker\",\n\t\t\tcanonicalSchemaVersion: \"1.0.0\",\n\t\t\tchecksumAlgorithm: \"sha256-canonical-json-v1\",\n\t\t},\n\t\tattemptId: wire.attempt_id,\n\t\ttarget: wire.target,\n\t\tcoveragePolicy: wire.coverage_policy,\n\t\trequiredClock,\n\t\tinitialSelection: wire.initial_selection,\n\t\texpectedCanonicalSchema: wire.expected_canonical_schema,\n\t\tproductPins: wire.product_pins,\n\t\tproductionAuthorizationId: wire.production_authorization_id,\n\t\twire,\n\t};\n}\n\ntype IdempotencyBusinessFields = Omit<\n\tMarketDataVendorBackfillRequest,\n\t\"requestId\" | \"idempotencyKey\"\n>;\n\nexport function backfillBusinessFields(\n\trequest: Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\tidempotencyKey?: string;\n\t},\n): IdempotencyBusinessFields {\n\tconst {\n\t\trequestId: _requestId,\n\t\tidempotencyKey: _idempotencyKey,\n\t\t...business\n\t} = request;\n\treturn business;\n}\n\nexport function createBackfillIdempotencyKey(\n\trequest: Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\tidempotencyKey?: string;\n\t},\n): string;\nexport function createBackfillIdempotencyKey(\n\trequest: Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\tidempotency_key?: string;\n\t},\n): string;\nexport function createBackfillIdempotencyKey(\n\trequest: Record<string, unknown>,\n): string;\nexport function createBackfillIdempotencyKey(request: unknown): string {\n\tif (!request || typeof request !== \"object\") {\n\t\tthrow new TypeError(\"backfill request must be an object\");\n\t}\n\tif (\"schema_id\" in request) {\n\t\treturn jcsSha256(\n\t\t\twireIdempotencyBusinessFields(\n\t\t\t\trequest as Omit<BackfillRequestWire, \"idempotency_key\"> & {\n\t\t\t\t\tidempotency_key?: string;\n\t\t\t\t},\n\t\t\t),\n\t\t);\n\t}\n\treturn sha256Canonical(\n\t\tbackfillBusinessFields(\n\t\t\trequest as Omit<MarketDataVendorBackfillRequest, \"idempotencyKey\"> & {\n\t\t\t\tidempotencyKey?: string;\n\t\t\t},\n\t\t),\n\t);\n}\n\nexport function parseBackfillRequest(\n\tvalue: unknown,\n): MarketDataVendorBackfillRequest {\n\tconst request = backfillRequestSchema.parse(value);\n\tif (createBackfillIdempotencyKey(request) !== request.idempotencyKey) {\n\t\tthrow new Error(\"idempotencyKey does not match canonical business fields\");\n\t}\n\treturn request;\n}\n\nexport const BACKFILL_STATUSES = [\n\t\"already_covered\",\n\t\"promoted\",\n\t\"capability_unsupported\",\n\t\"credentials_missing\",\n\t\"vendor_fetch_failed\",\n\t\"archive_ingest_failed\",\n\t\"promotion_verification_failed\",\n\t\"post_backfill_coverage_insufficient\",\n] as const;\n\nexport type BackfillStatus = (typeof BACKFILL_STATUSES)[number];\n\nexport type ProviderCapability = {\n\tprovider: \"cryptohftdata\";\n\tadapterVersion: string;\n\tproviderExchangeId: string;\n\tresolvedSymbol: string;\n};\n\nexport type ProviderObjectEvidence = {\n\tidentity: string;\n\tchecksum: string;\n\tbytes: number;\n\trows: number;\n};\n\nconst providerObjectEvidenceSchema = z\n\t.object({\n\t\tidentity: nonEmpty,\n\t\tchecksum: sha256,\n\t\tbytes: z.number().int().nonnegative(),\n\t\trows: z.number().int().nonnegative(),\n\t})\n\t.strict();\n\nexport type BackfillArchiveRow = {\n\ttable:\n\t\t| \"market_data.cex_order_book_levels\"\n\t\t| \"market_data.cex_order_book_depth_summary\"\n\t\t| \"market_data.cex_order_book_capture_promotions\"\n\t\t| \"market_data.cex_order_book_capture_qualifications\"\n\t\t| \"market_data.cex_order_book_archive_selections\";\n\trow: Record<string, unknown>;\n};\n\nexport type ForwarderBatch = {\n\tsource: typeof EXTERNAL_BACKFILL_SOURCE;\n\tdeployment_id: string;\n\tbatch_id: string;\n\trows: BackfillArchiveRow[];\n};\n\nexport type PromotionReceipt = {\n\tschemaVersion: typeof BACKFILL_PROMOTION_SCHEMA_VERSION;\n\treceiptId: string;\n\trequestId: string;\n\tidempotencyKey: string;\n\tstatus: \"passing\";\n\tsource: typeof EXTERNAL_BACKFILL_SOURCE;\n\tprovider: \"cryptohftdata\";\n\tadapterVersion: string;\n\tcaptureBundleId: string;\n\texchange: string;\n\ttradingPair: string;\n\tmarketType: \"spot\" | \"swap\" | \"future\";\n\tfeed: \"ORDERBOOK\";\n\tstartTimeMs: number;\n\tendTimeMs: number;\n\tdepth: number;\n\tconstructionMode: \"sampled_top_n_snapshot\" | \"exact_l2_reconstruction\";\n\tcanonicalSchemaVersion: string;\n\tchecksumAlgorithm: \"sha256-canonical-json-v1\";\n\tvendorSemanticDigest: string;\n\tcanonicalSemanticDigest: string;\n\tprefixDigest: string;\n\tsuffixDigest: string;\n\tseamVerified: true;\n\tcoverageVerified: true;\n\tdatasetObjects: ProviderObjectEvidence[];\n\tverificationTimeMs: number;\n};\n\nexport const promotionReceiptSchema: z.ZodType<PromotionReceipt> = z\n\t.object({\n\t\tschemaVersion: z.literal(BACKFILL_PROMOTION_SCHEMA_VERSION),\n\t\treceiptId: sha256,\n\t\trequestId: nonEmpty,\n\t\tidempotencyKey: sha256,\n\t\tstatus: z.literal(\"passing\"),\n\t\tsource: z.literal(EXTERNAL_BACKFILL_SOURCE),\n\t\tprovider: z.literal(\"cryptohftdata\"),\n\t\tadapterVersion: nonEmpty,\n\t\tcaptureBundleId: sha256,\n\t\texchange: nonEmpty,\n\t\ttradingPair: nonEmpty,\n\t\tmarketType: z.enum([\"spot\", \"swap\", \"future\"]),\n\t\tfeed: z.literal(\"ORDERBOOK\"),\n\t\tstartTimeMs: timestampMs,\n\t\tendTimeMs: timestampMs,\n\t\tdepth: z.number().int().min(1).max(500),\n\t\tconstructionMode: z.enum([\n\t\t\t\"sampled_top_n_snapshot\",\n\t\t\t\"exact_l2_reconstruction\",\n\t\t]),\n\t\tcanonicalSchemaVersion: nonEmpty,\n\t\tchecksumAlgorithm: z.literal(\"sha256-canonical-json-v1\"),\n\t\tvendorSemanticDigest: sha256,\n\t\tcanonicalSemanticDigest: sha256,\n\t\tprefixDigest: sha256,\n\t\tsuffixDigest: sha256,\n\t\tseamVerified: z.literal(true),\n\t\tcoverageVerified: z.literal(true),\n\t\tdatasetObjects: z.array(providerObjectEvidenceSchema).min(1).max(10_000),\n\t\tverificationTimeMs: timestampMs,\n\t})\n\t.strict()\n\t.refine(({ endTimeMs, startTimeMs }) => endTimeMs > startTimeMs, {\n\t\tmessage: \"promotion window must be increasing\",\n\t});\n\nexport type BackfillResult = {\n\tschemaVersion: typeof BACKFILL_RESULT_SCHEMA_VERSION;\n\trequestId: string;\n\tidempotencyKey?: string;\n\tstatus: BackfillStatus;\n\treasonCode: string;\n\treceipt?: PromotionReceipt;\n\tdiagnostics?: Record<string, string | number | boolean>;\n};\n",
152
152
  "import { createHash } from \"node:crypto\";\nimport canonicalize from \"canonicalize\";\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonValue =\n\t| JsonPrimitive\n\t| JsonValue[]\n\t| { [key: string]: JsonValue };\n\nexport function jcsCanonicalize(value: unknown): string {\n\tconst rendered = canonicalize(value);\n\tif (rendered === undefined) {\n\t\tthrow new TypeError(\"Value is not representable as RFC 8785 JSON\");\n\t}\n\treturn rendered;\n}\n\nexport function jcsSha256(value: unknown): string {\n\treturn createHash(\"sha256\")\n\t\t.update(jcsCanonicalize(value), \"utf8\")\n\t\t.digest(\"hex\");\n}\n\nexport function withoutOwnDigest<T extends Record<string, unknown>>(\n\tdocument: T,\n\tdigestField: keyof T | string,\n): Omit<T, keyof T> & Record<string, unknown> {\n\treturn Object.fromEntries(\n\t\tObject.entries(document).filter(([key]) => key !== digestField),\n\t) as Omit<T, keyof T> & Record<string, unknown>;\n}\n\n/** Hashes a wire document while excluding only its own top-level digest field. */\nexport function documentSha256<T extends Record<string, unknown>>(\n\tdocument: T,\n\tdigestField: keyof T | string,\n): string {\n\treturn jcsSha256(withoutOwnDigest(document, digestField));\n}\n\nexport function assertDocumentSha256<T extends Record<string, unknown>>(\n\tdocument: T,\n\tdigestField: keyof T | string,\n): void {\n\tconst supplied = document[String(digestField)];\n\tif (\n\t\ttypeof supplied !== \"string\" ||\n\t\tsupplied !== documentSha256(document, digestField)\n\t) {\n\t\tthrow new Error(\n\t\t\t`${String(digestField)} does not match RFC 8785 document content`,\n\t\t);\n\t}\n}\n",
153
153
  "function hasLoneSurrogate (value) {\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n\n if (code >= 0xD800 && code <= 0xDBFF) {\n if (i === value.length - 1) {\n return true;\n }\n const next = value.charCodeAt(i + 1);\n if (!(next >= 0xDC00 && next <= 0xDFFF)) {\n return true;\n }\n i++;\n } else if (code >= 0xDC00 && code <= 0xDFFF) {\n return true;\n }\n }\n\n return false;\n}\n\nexport default function canonicalize (object, seen = new Set()) {\n if (typeof object === 'number' && isNaN(object)) {\n throw new Error('NaN is not allowed');\n }\n\n if (typeof object === 'number' && !isFinite(object)) {\n throw new Error('Infinity is not allowed');\n }\n\n if (typeof object === 'string' && hasLoneSurrogate(object)) {\n throw new Error('Lone surrogate is not allowed');\n }\n\n if (object === null || typeof object !== 'object') {\n return JSON.stringify(object);\n }\n\n if (typeof object.toJSON === 'function') {\n if (seen.has(object)) {\n throw new Error('Circular reference detected');\n }\n seen.add(object);\n const result = canonicalize(object.toJSON(), seen);\n seen.delete(object);\n return result;\n }\n\n if (seen.has(object)) {\n throw new Error('Circular reference detected');\n }\n seen.add(object);\n\n let result;\n if (Array.isArray(object)) {\n const values = object.map((cv) => {\n const value = cv === undefined || typeof cv === 'symbol' ? null : cv;\n return canonicalize(value, seen);\n });\n result = `[${values.join(',')}]`;\n } else {\n const parts = [];\n for (const key of Object.keys(object).sort()) {\n if (object[key] === undefined || typeof object[key] === 'symbol') {\n continue;\n }\n parts.push(`${canonicalize(key)}:${canonicalize(object[key], seen)}`);\n }\n result = `{${parts.join(',')}}`;\n }\n\n seen.delete(object);\n return result;\n}\n",
154
- "import { documentSha256, jcsSha256 } from \"./identity\";\nimport archiveSelectionSchema from \"./schemas/archive-selection.schema.json\" with {\n\ttype: \"json\",\n};\nimport promotionReceiptSchema from \"./schemas/promotion-receipt.schema.json\" with {\n\ttype: \"json\",\n};\nimport requestSchema from \"./schemas/request.schema.json\" with { type: \"json\" };\nimport requiredClockSchema from \"./schemas/required-clock.schema.json\" with {\n\ttype: \"json\",\n};\nimport resultSchema from \"./schemas/result.schema.json\" with { type: \"json\" };\n\nexport const LEGACY_CAPABILITY_POLICY_ID =\n\t\"market-data-vendor-backfill-capabilities/v1\" as const;\nexport const CAPABILITY_POLICY_ID =\n\t\"market-data-vendor-backfill-capabilities/v2\" as const;\nexport const RESOURCE_POLICY_ID =\n\t\"market-data-vendor-backfill-resources/v1\" as const;\nexport const ADAPTER_POLICY_ID = \"cryptohftdata-orderbook-adapter/v1\" as const;\nexport const ACQUISITION_POLICY_ID =\n\t\"cryptohftdata-hourly-acquisition/v1\" as const;\n\nconst legacyCapabilityPolicyContent = {\n\tpolicy_id: LEGACY_CAPABILITY_POLICY_ID,\n\tprovider: \"cryptohftdata\",\n\tadapter_policy: {\n\t\tpolicy_id: ADAPTER_POLICY_ID,\n\t\tadapter_version: \"cryptohftdata-orderbook/v2\",\n\t},\n\tacquisition_policy: {\n\t\tpolicy_id: ACQUISITION_POLICY_ID,\n\t\tobject_granularity: \"utc_hour\",\n\t\tauthentication: \"bearer\",\n\t\tinitialization_lookback_ms: 0,\n\t},\n\tprofiles: [\n\t\t{\n\t\t\texchange: \"okx\",\n\t\t\tmarket_type: \"spot\",\n\t\t\tfeed: \"ORDERBOOK\",\n\t\t\tcanonical_trading_pair: \"ARB-USDT\",\n\t\t\tprovider_exchange_id: \"okx_spot\",\n\t\t\tresolved_symbol: \"ARB-USDT\",\n\t\t\tconstruction_modes: [\"sampled_top_n_snapshot\"],\n\t\t\tsource_policies: [\"authoritative_window\"],\n\t\t\tmax_depth: 400,\n\t\t},\n\t],\n} as const;\n\nexport const LEGACY_CAPABILITY_POLICY = Object.freeze({\n\t...legacyCapabilityPolicyContent,\n\tpolicy_sha256: jcsSha256(legacyCapabilityPolicyContent),\n});\n\nconst capabilityPolicyContent = {\n\t...legacyCapabilityPolicyContent,\n\tpolicy_id: CAPABILITY_POLICY_ID,\n\tprofiles: legacyCapabilityPolicyContent.profiles.map((profile) => ({\n\t\t...profile,\n\t\tsource_policies: [\"authoritative_window\", \"fill_gaps\"] as const,\n\t})),\n} as const;\n\nexport const CAPABILITY_POLICY = Object.freeze({\n\t...capabilityPolicyContent,\n\tpolicy_sha256: jcsSha256(capabilityPolicyContent),\n});\n\nconst resourcePolicyContent = {\n\tpolicy_id: RESOURCE_POLICY_ID,\n\tlimits: {\n\t\tmax_files: 10_000,\n\t\tmax_bytes: 100 * 1024 * 1024 * 1024,\n\t\tmax_rows: 1_000_000_000,\n\t\tmax_duration_ms: 24 * 60 * 60 * 1_000,\n\t\tmax_boundary_lookback_ms: 7 * 24 * 60 * 60 * 1_000,\n\t},\n\trequest_bounds: {\n\t\tmax_depth: 500,\n\t\tmax_window_ms: 7 * 24 * 60 * 60 * 1_000,\n\t\tmax_required_events: 100_000,\n\t},\n} as const;\n\nexport const RESOURCE_POLICY = Object.freeze({\n\t...resourcePolicyContent,\n\tpolicy_sha256: jcsSha256(resourcePolicyContent),\n});\n\nexport const EFFECTIVE_ADAPTER_POLICY_PIN = Object.freeze({\n\tpolicy_id: ADAPTER_POLICY_ID,\n\tpolicy_sha256: jcsSha256(legacyCapabilityPolicyContent.adapter_policy),\n});\n\nexport const EFFECTIVE_ACQUISITION_POLICY_PIN = Object.freeze({\n\tpolicy_id: ACQUISITION_POLICY_ID,\n\tpolicy_sha256: jcsSha256(legacyCapabilityPolicyContent.acquisition_policy),\n});\n\nconst schemaArtifacts = [\n\t[\"schemas/request.schema.json\", requestSchema],\n\t[\"schemas/result.schema.json\", resultSchema],\n\t[\"schemas/required-clock.schema.json\", requiredClockSchema],\n\t[\"schemas/archive-selection.schema.json\", archiveSelectionSchema],\n\t[\"schemas/promotion-receipt.schema.json\", promotionReceiptSchema],\n] as const;\n\nexport const SCHEMA_ARTIFACTS = Object.freeze(\n\tschemaArtifacts.map(([path, schema]) =>\n\t\tObject.freeze({\n\t\t\tschema_id: schema.$id,\n\t\t\tpath,\n\t\t\tschema_sha256: jcsSha256(schema),\n\t\t\tschema,\n\t\t}),\n\t),\n);\n\nconst schemaManifestContent = {\n\tschema_id:\n\t\t\"https://schemas.usher.so/market-data-vendor-backfill-schema-manifest/v1\",\n\tartifacts: SCHEMA_ARTIFACTS.map(({ schema_id, path, schema_sha256 }) => ({\n\t\tschema_id,\n\t\tpath,\n\t\tschema_sha256,\n\t})),\n};\n\nexport const SCHEMA_MANIFEST = Object.freeze({\n\t...schemaManifestContent,\n\tmanifest_sha256: jcsSha256(schemaManifestContent),\n});\n\nexport type PolicyPin = {\n\tpolicy_id: string;\n\tpolicy_sha256: string;\n};\n\nexport function assertPolicyDocumentIdentity(\n\tpolicy: Record<string, unknown> & { policy_sha256: string },\n): void {\n\tif (documentSha256(policy, \"policy_sha256\") !== policy.policy_sha256) {\n\t\tthrow new Error(\"policy_sha256 does not match RFC 8785 policy content\");\n\t}\n}\n",
154
+ "import { documentSha256, jcsSha256 } from \"./identity\";\nimport archiveSelectionSchema from \"./schemas/archive-selection.schema.json\" with {\n\ttype: \"json\",\n};\nimport promotionReceiptSchema from \"./schemas/promotion-receipt.schema.json\" with {\n\ttype: \"json\",\n};\nimport requestSchema from \"./schemas/request.schema.json\" with { type: \"json\" };\nimport requiredClockSchema from \"./schemas/required-clock.schema.json\" with {\n\ttype: \"json\",\n};\nimport resultSchema from \"./schemas/result.schema.json\" with { type: \"json\" };\n\nexport const LEGACY_CAPABILITY_POLICY_ID =\n\t\"market-data-vendor-backfill-capabilities/v1\" as const;\nexport const CAPABILITY_POLICY_ID =\n\t\"market-data-vendor-backfill-capabilities/v2\" as const;\nexport const LEGACY_RESOURCE_POLICY_ID =\n\t\"market-data-vendor-backfill-resources/v1\" as const;\nexport const RESOURCE_POLICY_ID =\n\t\"market-data-vendor-backfill-resources/v2\" as const;\nexport const ADAPTER_POLICY_ID = \"cryptohftdata-orderbook-adapter/v1\" as const;\nexport const ACQUISITION_POLICY_ID =\n\t\"cryptohftdata-hourly-acquisition/v1\" as const;\n\nconst legacyCapabilityPolicyContent = {\n\tpolicy_id: LEGACY_CAPABILITY_POLICY_ID,\n\tprovider: \"cryptohftdata\",\n\tadapter_policy: {\n\t\tpolicy_id: ADAPTER_POLICY_ID,\n\t\tadapter_version: \"cryptohftdata-orderbook/v2\",\n\t},\n\tacquisition_policy: {\n\t\tpolicy_id: ACQUISITION_POLICY_ID,\n\t\tobject_granularity: \"utc_hour\",\n\t\tauthentication: \"bearer\",\n\t\tinitialization_lookback_ms: 0,\n\t},\n\tprofiles: [\n\t\t{\n\t\t\texchange: \"okx\",\n\t\t\tmarket_type: \"spot\",\n\t\t\tfeed: \"ORDERBOOK\",\n\t\t\tcanonical_trading_pair: \"ARB-USDT\",\n\t\t\tprovider_exchange_id: \"okx_spot\",\n\t\t\tresolved_symbol: \"ARB-USDT\",\n\t\t\tconstruction_modes: [\"sampled_top_n_snapshot\"],\n\t\t\tsource_policies: [\"authoritative_window\"],\n\t\t\tmax_depth: 400,\n\t\t},\n\t],\n} as const;\n\nexport const LEGACY_CAPABILITY_POLICY = Object.freeze({\n\t...legacyCapabilityPolicyContent,\n\tpolicy_sha256: jcsSha256(legacyCapabilityPolicyContent),\n});\n\nconst capabilityPolicyContent = {\n\t...legacyCapabilityPolicyContent,\n\tpolicy_id: CAPABILITY_POLICY_ID,\n\tprofiles: [\n\t\t...legacyCapabilityPolicyContent.profiles.map((profile) => ({\n\t\t\t...profile,\n\t\t\tsource_policies: [\"authoritative_window\", \"fill_gaps\"] as const,\n\t\t})),\n\t\t{\n\t\t\texchange: \"okx\",\n\t\t\tmarket_type: \"spot\",\n\t\t\tfeed: \"ORDERBOOK\",\n\t\t\tcanonical_trading_pair: \"ARB-USDC\",\n\t\t\tprovider_exchange_id: \"okx_spot\",\n\t\t\tresolved_symbol: \"ARB-USDC\",\n\t\t\tconstruction_modes: [\"sampled_top_n_snapshot\"],\n\t\t\tsource_policies: [\"authoritative_window\", \"fill_gaps\"],\n\t\t\tmax_depth: 400,\n\t\t},\n\t],\n} as const;\n\nexport const CAPABILITY_POLICY = Object.freeze({\n\t...capabilityPolicyContent,\n\tpolicy_sha256: jcsSha256(capabilityPolicyContent),\n});\n\nconst legacyResourcePolicyContent = {\n\tpolicy_id: LEGACY_RESOURCE_POLICY_ID,\n\tlimits: {\n\t\tmax_files: 10_000,\n\t\tmax_bytes: 100 * 1024 * 1024 * 1024,\n\t\tmax_rows: 1_000_000_000,\n\t\tmax_duration_ms: 24 * 60 * 60 * 1_000,\n\t\tmax_boundary_lookback_ms: 7 * 24 * 60 * 60 * 1_000,\n\t},\n\trequest_bounds: {\n\t\tmax_depth: 500,\n\t\tmax_window_ms: 7 * 24 * 60 * 60 * 1_000,\n\t\tmax_required_events: 100_000,\n\t},\n} as const;\n\nexport const LEGACY_RESOURCE_POLICY = Object.freeze({\n\t...legacyResourcePolicyContent,\n\tpolicy_sha256: jcsSha256(legacyResourcePolicyContent),\n});\n\nconst resourcePolicyContent = {\n\t...legacyResourcePolicyContent,\n\tpolicy_id: RESOURCE_POLICY_ID,\n\trequest_bounds: {\n\t\t...legacyResourcePolicyContent.request_bounds,\n\t\tmax_window_ms: 31 * 24 * 60 * 60 * 1_000,\n\t},\n} as const;\n\nexport const RESOURCE_POLICY = Object.freeze({\n\t...resourcePolicyContent,\n\tpolicy_sha256: jcsSha256(resourcePolicyContent),\n});\n\nexport const EFFECTIVE_ADAPTER_POLICY_PIN = Object.freeze({\n\tpolicy_id: ADAPTER_POLICY_ID,\n\tpolicy_sha256: jcsSha256(legacyCapabilityPolicyContent.adapter_policy),\n});\n\nexport const EFFECTIVE_ACQUISITION_POLICY_PIN = Object.freeze({\n\tpolicy_id: ACQUISITION_POLICY_ID,\n\tpolicy_sha256: jcsSha256(legacyCapabilityPolicyContent.acquisition_policy),\n});\n\nconst schemaArtifacts = [\n\t[\"schemas/request.schema.json\", requestSchema],\n\t[\"schemas/result.schema.json\", resultSchema],\n\t[\"schemas/required-clock.schema.json\", requiredClockSchema],\n\t[\"schemas/archive-selection.schema.json\", archiveSelectionSchema],\n\t[\"schemas/promotion-receipt.schema.json\", promotionReceiptSchema],\n] as const;\n\nexport const SCHEMA_ARTIFACTS = Object.freeze(\n\tschemaArtifacts.map(([path, schema]) =>\n\t\tObject.freeze({\n\t\t\tschema_id: schema.$id,\n\t\t\tpath,\n\t\t\tschema_sha256: jcsSha256(schema),\n\t\t\tschema,\n\t\t}),\n\t),\n);\n\nconst schemaManifestContent = {\n\tschema_id:\n\t\t\"https://schemas.usher.so/market-data-vendor-backfill-schema-manifest/v1\",\n\tartifacts: SCHEMA_ARTIFACTS.map(({ schema_id, path, schema_sha256 }) => ({\n\t\tschema_id,\n\t\tpath,\n\t\tschema_sha256,\n\t})),\n};\n\nexport const SCHEMA_MANIFEST = Object.freeze({\n\t...schemaManifestContent,\n\tmanifest_sha256: jcsSha256(schemaManifestContent),\n});\n\nexport type PolicyPin = {\n\tpolicy_id: string;\n\tpolicy_sha256: string;\n};\n\nexport function assertPolicyDocumentIdentity(\n\tpolicy: Record<string, unknown> & { policy_sha256: string },\n): void {\n\tif (documentSha256(policy, \"policy_sha256\") !== policy.policy_sha256) {\n\t\tthrow new Error(\"policy_sha256 does not match RFC 8785 policy content\");\n\t}\n}\n",
155
155
  "import { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport {\n\ttype BackfillArchiveRow,\n\ttype PromotionReceipt,\n\ttype PromotionReceiptWire,\n\tpromotionIdentitySha256,\n\tpromotionReceiptCodec,\n\tpromotionReceiptSchema,\n} from \"./contracts\";\nimport { documentSha256, jcsCanonicalize } from \"./identity\";\n\nexport type StablePromotionReceipt = Omit<\n\tPromotionReceipt,\n\t\"receiptId\" | \"verificationTimeMs\"\n>;\n\nexport function promotionReceiptId(receipt: StablePromotionReceipt): string {\n\treturn sha256Canonical(receipt);\n}\n\nfunction finalizeLegacyPromotionReceipt(\n\tstable: StablePromotionReceipt,\n\tverificationTimeMs: number,\n): PromotionReceipt {\n\treturn promotionReceiptSchema.parse({\n\t\t...stable,\n\t\treceiptId: promotionReceiptId(stable),\n\t\tverificationTimeMs,\n\t});\n}\n\ntype UnfinalizedPromotionReceiptWire = Omit<\n\tPromotionReceiptWire,\n\t\"receipt_id\" | \"promotion_identity_sha256\"\n> &\n\tPartial<\n\t\tPick<PromotionReceiptWire, \"receipt_id\" | \"promotion_identity_sha256\">\n\t>;\n\nexport function finalizePromotionReceipt(\n\treceipt: UnfinalizedPromotionReceiptWire,\n): PromotionReceiptWire;\nexport function finalizePromotionReceipt(\n\treceipt: StablePromotionReceipt,\n\tverificationTimeMs: number,\n): PromotionReceipt;\nexport function finalizePromotionReceipt(\n\treceipt: UnfinalizedPromotionReceiptWire | StablePromotionReceipt,\n\tverificationTimeMs?: number,\n): PromotionReceiptWire | PromotionReceipt {\n\tif (\"schema_id\" in receipt) {\n\t\tconst {\n\t\t\treceipt_id: _receiptId,\n\t\t\tpromotion_identity_sha256: _promotionIdentity,\n\t\t\t...semanticAndTimestamp\n\t\t} = receipt;\n\t\tconst promotion_identity_sha256 =\n\t\t\tpromotionIdentitySha256(semanticAndTimestamp);\n\t\tconst content = { ...semanticAndTimestamp, promotion_identity_sha256 };\n\t\treturn promotionReceiptCodec.decode({\n\t\t\t...content,\n\t\t\treceipt_id: documentSha256(content, \"receipt_id\"),\n\t\t});\n\t}\n\tif (verificationTimeMs === undefined) {\n\t\tthrow new TypeError(\"legacy promotion receipt requires verificationTimeMs\");\n\t}\n\treturn finalizeLegacyPromotionReceipt(receipt, verificationTimeMs);\n}\n\nexport function promotionReceiptToArchiveRow(\n\treceiptInput: PromotionReceipt | PromotionReceiptWire,\n): BackfillArchiveRow {\n\tif (\"schema_id\" in receiptInput) {\n\t\tconst receipt = promotionReceiptCodec.decode(receiptInput);\n\t\treturn {\n\t\t\ttable: \"market_data.cex_order_book_capture_promotions\",\n\t\t\trow: {\n\t\t\t\tsource: receipt.source,\n\t\t\t\tcapture_origin: receipt.capture_origin,\n\t\t\t\tsource_mode: receipt.source_mode,\n\t\t\t\tdeployment_id: \"market-data-vendor-backfill\",\n\t\t\t\treceipt_schema_version: receipt.schema_id,\n\t\t\t\treceipt_id: receipt.receipt_id,\n\t\t\t\tpromotion_identity_sha256: receipt.promotion_identity_sha256,\n\t\t\t\trequest_id: receipt.request_id,\n\t\t\t\tidempotency_key: receipt.idempotency_key,\n\t\t\t\tstatus: \"passing\",\n\t\t\t\tcapture_bundle_id: receipt.capture_bundle_id,\n\t\t\t\tprovider: receipt.provider,\n\t\t\t\tadapter_version: receipt.adapter_version,\n\t\t\t\texchange: receipt.scope.exchange,\n\t\t\t\ttrading_pair: receipt.scope.trading_pair,\n\t\t\t\tasset_type: receipt.scope.market_type,\n\t\t\t\tfeed: receipt.scope.feed,\n\t\t\t\twindow_start_ms: Date.parse(receipt.window.start_at),\n\t\t\t\twindow_end_ms: Date.parse(receipt.window.end_at),\n\t\t\t\tdepth_limit: receipt.depth,\n\t\t\t\tconstruction_mode: receipt.construction_mode,\n\t\t\t\tschema_version: \"1.0.0\",\n\t\t\t\tcanonical_schema_sha256: receipt.canonical_schema.schema_sha256,\n\t\t\t\tchecksum_algorithm: \"sha256-canonical-json-v1\",\n\t\t\t\tcoverage_policy_json: jcsCanonicalize(receipt.coverage_policy),\n\t\t\t\tselection_sha256: receipt.selection_sha256,\n\t\t\t\tcapability_policy_id:\n\t\t\t\t\treceipt.effective_policies.capability_policy.policy_id,\n\t\t\t\tcapability_policy_sha256:\n\t\t\t\t\treceipt.effective_policies.capability_policy.policy_sha256,\n\t\t\t\tresource_policy_id:\n\t\t\t\t\treceipt.effective_policies.resource_policy.policy_id,\n\t\t\t\tresource_policy_sha256:\n\t\t\t\t\treceipt.effective_policies.resource_policy.policy_sha256,\n\t\t\t\tadapter_policy_id: receipt.effective_policies.adapter_policy.policy_id,\n\t\t\t\tadapter_policy_sha256:\n\t\t\t\t\treceipt.effective_policies.adapter_policy.policy_sha256,\n\t\t\t\tacquisition_policy_id:\n\t\t\t\t\treceipt.effective_policies.acquisition_policy.policy_id,\n\t\t\t\tacquisition_policy_sha256:\n\t\t\t\t\treceipt.effective_policies.acquisition_policy.policy_sha256,\n\t\t\t\tvendor_semantic_digest: receipt.vendor_semantic_digest,\n\t\t\t\tcanonical_semantic_digest: receipt.canonical_semantic_digest,\n\t\t\t\tprefix_digest: receipt.prefix_digest,\n\t\t\t\tsuffix_digest: receipt.suffix_digest,\n\t\t\t\tseam_verified: 1,\n\t\t\t\tcoverage_verified: 1,\n\t\t\t\tdataset_objects_json: jcsCanonicalize(receipt.dataset_objects),\n\t\t\t\treceipt_json: jcsCanonicalize(receipt),\n\t\t\t\tverification_time_ms: Date.parse(receipt.verified_at),\n\t\t\t},\n\t\t};\n\t}\n\tconst receipt = promotionReceiptSchema.parse(receiptInput);\n\tif (\n\t\tpromotionReceiptId(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries(receipt).filter(\n\t\t\t\t\t([key]) => key !== \"receiptId\" && key !== \"verificationTimeMs\",\n\t\t\t\t),\n\t\t\t) as StablePromotionReceipt,\n\t\t) !== receipt.receiptId\n\t) {\n\t\tthrow new Error(\"promotion receipt identity mismatch\");\n\t}\n\treturn {\n\t\ttable: \"market_data.cex_order_book_capture_promotions\",\n\t\trow: {\n\t\t\tsource: receipt.source,\n\t\t\tdeployment_id: \"market-data-vendor-backfill\",\n\t\t\treceipt_schema_version: receipt.schemaVersion,\n\t\t\treceipt_id: receipt.receiptId,\n\t\t\trequest_id: receipt.requestId,\n\t\t\tidempotency_key: receipt.idempotencyKey,\n\t\t\tstatus: receipt.status,\n\t\t\tcapture_bundle_id: receipt.captureBundleId,\n\t\t\tprovider: receipt.provider,\n\t\t\tadapter_version: receipt.adapterVersion,\n\t\t\texchange: receipt.exchange,\n\t\t\ttrading_pair: receipt.tradingPair,\n\t\t\tasset_type: receipt.marketType,\n\t\t\tfeed: receipt.feed,\n\t\t\twindow_start_ms: receipt.startTimeMs,\n\t\t\twindow_end_ms: receipt.endTimeMs,\n\t\t\tdepth_limit: receipt.depth,\n\t\t\tconstruction_mode: receipt.constructionMode,\n\t\t\tschema_version: receipt.canonicalSchemaVersion,\n\t\t\tchecksum_algorithm: receipt.checksumAlgorithm,\n\t\t\tvendor_semantic_digest: receipt.vendorSemanticDigest,\n\t\t\tcanonical_semantic_digest: receipt.canonicalSemanticDigest,\n\t\t\tprefix_digest: receipt.prefixDigest,\n\t\t\tsuffix_digest: receipt.suffixDigest,\n\t\t\tseam_verified: 1,\n\t\t\tcoverage_verified: 1,\n\t\t\tdataset_objects_json: JSON.stringify(receipt.datasetObjects),\n\t\t\tverification_time_ms: receipt.verificationTimeMs,\n\t\t},\n\t};\n}\n\nexport function promotionReceiptFromArchiveRow(\n\trow: Record<string, unknown>,\n): PromotionReceipt | PromotionReceiptWire {\n\tif (typeof row.receipt_json === \"string\" && row.receipt_json.length > 0) {\n\t\tlet parsed: unknown;\n\t\ttry {\n\t\t\tparsed = JSON.parse(row.receipt_json);\n\t\t} catch {\n\t\t\tthrow new Error(\"promotion receipt_json is invalid\");\n\t\t}\n\t\tconst receipt = promotionReceiptCodec.decode(parsed);\n\t\tif (\n\t\t\treceipt.receipt_id !== row.receipt_id ||\n\t\t\treceipt.promotion_identity_sha256 !== row.promotion_identity_sha256\n\t\t) {\n\t\t\tthrow new Error(\"promotion receipt archive identity mismatch\");\n\t\t}\n\t\treturn receipt;\n\t}\n\tlet datasetObjects: unknown;\n\ttry {\n\t\tdatasetObjects = JSON.parse(String(row.dataset_objects_json));\n\t} catch {\n\t\tthrow new Error(\"promotion dataset_objects_json is invalid\");\n\t}\n\tconst receipt = promotionReceiptSchema.parse({\n\t\tschemaVersion: row.receipt_schema_version,\n\t\treceiptId: row.receipt_id,\n\t\trequestId: row.request_id,\n\t\tidempotencyKey: row.idempotency_key,\n\t\tstatus: row.status,\n\t\tsource: row.source,\n\t\tprovider: row.provider,\n\t\tadapterVersion: row.adapter_version,\n\t\tcaptureBundleId: row.capture_bundle_id,\n\t\texchange: row.exchange,\n\t\ttradingPair: row.trading_pair,\n\t\tmarketType: row.asset_type,\n\t\tfeed: row.feed,\n\t\tstartTimeMs: row.window_start_ms,\n\t\tendTimeMs: row.window_end_ms,\n\t\tdepth: row.depth_limit,\n\t\tconstructionMode: row.construction_mode,\n\t\tcanonicalSchemaVersion: row.schema_version,\n\t\tchecksumAlgorithm: row.checksum_algorithm,\n\t\tvendorSemanticDigest: row.vendor_semantic_digest,\n\t\tcanonicalSemanticDigest: row.canonical_semantic_digest,\n\t\tprefixDigest: row.prefix_digest,\n\t\tsuffixDigest: row.suffix_digest,\n\t\tseamVerified: row.seam_verified === 1,\n\t\tcoverageVerified: row.coverage_verified === 1,\n\t\tdatasetObjects,\n\t\tverificationTimeMs: row.verification_time_ms,\n\t});\n\tconst {\n\t\treceiptId,\n\t\tverificationTimeMs: _verificationTimeMs,\n\t\t...stable\n\t} = receipt;\n\tif (promotionReceiptId(stable) !== receiptId) {\n\t\tthrow new Error(\"promotion receipt identity mismatch\");\n\t}\n\treturn receipt;\n}\n",
156
156
  "import {\n\tARCHIVE_SELECTION_SCHEMA_ID,\n\ttype ArchiveSelectionWire,\n\tarchiveSelectionCodec,\n\ttype BackfillArchiveRow,\n\ttype BackfillRequestWire,\n\tbackfillRequestCodec,\n\tfinalizeArchiveSelection,\n\ttype MarketDataVendorBackfillRequest,\n} from \"./contracts\";\nimport { jcsCanonicalize, jcsSha256 } from \"./identity\";\n\nexport type ArchiveQualificationEvidence = {\n\tqualificationEventId: string;\n\tstate: \"qualified\" | \"quarantined\" | \"revoked\";\n\treceiptId: string;\n\tpromotionIdentitySha256: string;\n};\n\nexport type ArchiveSupportAnchorEvidence = {\n\tcaptureBundleId: string;\n\trawCaptureId: string;\n\tsnapshotId: string;\n\tsourceTimeMs: number;\n\tnormalizedSummaryChecksum: string;\n};\n\nexport type ArchiveBundleEvidence = {\n\tcaptureBundleId: string;\n\tcaptureOrigin: \"production_capture\" | \"vendor_historical_backfill\";\n\tstartTimeMs: number;\n\tendTimeMs: number;\n\tqualification: ArchiveQualificationEvidence | null;\n\tsupportAnchors: ArchiveSupportAnchorEvidence[];\n};\n\nfunction fixedTimestamp(timestampMs: number, field: string): string {\n\tif (!Number.isSafeInteger(timestampMs) || timestampMs < 0) {\n\t\tthrow new Error(`${field} must be a non-negative safe integer`);\n\t}\n\treturn new Date(timestampMs).toISOString();\n}\n\nfunction assertStoredSelectionMatchesRequest(\n\trequest: MarketDataVendorBackfillRequest,\n\tselection: ArchiveSelectionWire,\n): void {\n\tif (!request.requiredClock || !request.coveragePolicy) {\n\t\tthrow new Error(\"decoded request is missing final-v1 selection context\");\n\t}\n\tconst expectedScope = {\n\t\texchange: request.scope.exchange,\n\t\ttrading_pair: request.scope.tradingPair,\n\t\tmarket_type: request.scope.marketType,\n\t\tfeed: request.scope.feed,\n\t};\n\tif (\n\t\tjcsSha256(selection.scope) !== jcsSha256(expectedScope) ||\n\t\tselection.required_clock.clock_id !== request.requiredClock.clock_id ||\n\t\tselection.required_clock.clock_sha256 !==\n\t\t\trequest.requiredClock.clock_sha256 ||\n\t\tselection.required_clock.event_count !==\n\t\t\trequest.requiredClock.targets.length ||\n\t\tjcsSha256(selection.coverage_policy) !==\n\t\t\tjcsSha256(request.coveragePolicy) ||\n\t\tselection.source_policy !== request.sourcePolicy\n\t) {\n\t\tthrow new Error(\"stored archive selection conflicts with request content\");\n\t}\n}\n\nfunction eligibleBundles(\n\trequest: MarketDataVendorBackfillRequest,\n\tbundles: readonly ArchiveBundleEvidence[],\n): ArchiveBundleEvidence[] {\n\tconst qualifiedVendorBundles = bundles.filter(\n\t\t(bundle) =>\n\t\t\tbundle.captureOrigin === \"vendor_historical_backfill\" &&\n\t\t\tbundle.qualification?.state === \"qualified\",\n\t);\n\tconst productionBundles = bundles.filter(\n\t\t(bundle) => bundle.captureOrigin === \"production_capture\",\n\t);\n\tif (request.sourcePolicy === \"authoritative_window\") {\n\t\tconst vendorSupport = chooseSupport(request, qualifiedVendorBundles);\n\t\treturn vendorSupport.length === request.requiredClockTargetsMs.length\n\t\t\t? qualifiedVendorBundles\n\t\t\t: productionBundles;\n\t}\n\treturn [...productionBundles, ...qualifiedVendorBundles];\n}\n\nfunction originPriority(\n\trequest: MarketDataVendorBackfillRequest,\n\torigin: ArchiveBundleEvidence[\"captureOrigin\"],\n): number {\n\tif (request.sourcePolicy === \"fill_gaps\") {\n\t\treturn origin === \"production_capture\" ? 0 : 1;\n\t}\n\treturn 0;\n}\n\nfunction chooseSupport(\n\trequest: MarketDataVendorBackfillRequest,\n\tbundles: readonly ArchiveBundleEvidence[],\n): Array<{\n\tbundle: ArchiveBundleEvidence;\n\tanchor: ArchiveSupportAnchorEvidence;\n}> {\n\treturn request.requiredClockTargetsMs.flatMap((targetTimeMs) => {\n\t\tconst candidates = bundles.flatMap((bundle) =>\n\t\t\tbundle.supportAnchors\n\t\t\t\t.filter(\n\t\t\t\t\t(anchor) =>\n\t\t\t\t\t\tanchor.captureBundleId === bundle.captureBundleId &&\n\t\t\t\t\t\tanchor.sourceTimeMs <= targetTimeMs &&\n\t\t\t\t\t\ttargetTimeMs - anchor.sourceTimeMs <= request.maxPriorAsOfLagMs,\n\t\t\t\t)\n\t\t\t\t.map((anchor) => ({ bundle, anchor })),\n\t\t);\n\t\tcandidates.sort((left, right) => {\n\t\t\tconst origin =\n\t\t\t\toriginPriority(request, left.bundle.captureOrigin) -\n\t\t\t\toriginPriority(request, right.bundle.captureOrigin);\n\t\t\tif (origin !== 0) return origin;\n\t\t\tif (left.anchor.sourceTimeMs !== right.anchor.sourceTimeMs) {\n\t\t\t\treturn right.anchor.sourceTimeMs - left.anchor.sourceTimeMs;\n\t\t\t}\n\t\t\treturn left.bundle.captureBundleId.localeCompare(\n\t\t\t\tright.bundle.captureBundleId,\n\t\t\t);\n\t\t});\n\t\treturn candidates[0] ? [candidates[0]] : [];\n\t});\n}\n\nexport function resolveArchiveSelection(input: {\n\trequest: MarketDataVendorBackfillRequest;\n\tbundles: readonly ArchiveBundleEvidence[];\n\tresolvedAtMs: number;\n\tstoredSelection?: unknown;\n}): ArchiveSelectionWire {\n\tif (input.storedSelection !== undefined) {\n\t\tconst stored = archiveSelectionCodec.decode(input.storedSelection);\n\t\tassertStoredSelectionMatchesRequest(input.request, stored);\n\t\treturn stored;\n\t}\n\tconst { request } = input;\n\tif (!request.requiredClock || !request.coveragePolicy) {\n\t\tthrow new Error(\"decoded request is missing final-v1 selection context\");\n\t}\n\tconst eligible = eligibleBundles(request, input.bundles);\n\tconst chosenSupport = chooseSupport(request, eligible);\n\tconst selectedBundleIds = new Set(\n\t\tchosenSupport.map(({ bundle }) => bundle.captureBundleId),\n\t);\n\tconst selectedBundles = eligible\n\t\t.filter((bundle) => selectedBundleIds.has(bundle.captureBundleId))\n\t\t.sort((left, right) => {\n\t\t\tconst origin =\n\t\t\t\toriginPriority(request, left.captureOrigin) -\n\t\t\t\toriginPriority(request, right.captureOrigin);\n\t\t\treturn (\n\t\t\t\torigin || left.captureBundleId.localeCompare(right.captureBundleId)\n\t\t\t);\n\t\t});\n\tconst supportByIdentity = new Map<string, (typeof chosenSupport)[number]>();\n\tfor (const support of chosenSupport) {\n\t\tconst identity = `${support.bundle.captureBundleId}:${support.anchor.rawCaptureId}:${support.anchor.snapshotId}:${support.anchor.sourceTimeMs}`;\n\t\tsupportByIdentity.set(identity, support);\n\t}\n\tconst supportAnchors = [...supportByIdentity.values()]\n\t\t.sort(\n\t\t\t(left, right) =>\n\t\t\t\tleft.anchor.sourceTimeMs - right.anchor.sourceTimeMs ||\n\t\t\t\tleft.bundle.captureBundleId.localeCompare(right.bundle.captureBundleId),\n\t\t)\n\t\t.map(({ bundle, anchor }) => ({\n\t\t\tcapture_bundle_id: bundle.captureBundleId,\n\t\t\traw_capture_id: anchor.rawCaptureId,\n\t\t\tsnapshot_id: anchor.snapshotId,\n\t\t\tsource_time: fixedTimestamp(anchor.sourceTimeMs, \"support anchor time\"),\n\t\t\tnormalized_summary_checksum: anchor.normalizedSummaryChecksum,\n\t\t\tmetadata_ref: {\n\t\t\t\tcapture_origin: bundle.captureOrigin,\n\t\t\t\tqualification_event_id:\n\t\t\t\t\tbundle.qualification?.qualificationEventId ?? null,\n\t\t\t\treceipt_id: bundle.qualification?.receiptId ?? null,\n\t\t\t},\n\t\t}));\n\tconst coverageClass =\n\t\tchosenSupport.length === request.requiredClockTargetsMs.length\n\t\t\t? \"complete\"\n\t\t\t: eligible.length === 0\n\t\t\t\t? \"missing\"\n\t\t\t\t: \"partial\";\n\tconst requestStart = request.window.startTimeMs;\n\tconst requestEnd = request.window.endTimeMs;\n\treturn finalizeArchiveSelection({\n\t\tschema_id: ARCHIVE_SELECTION_SCHEMA_ID,\n\t\tscope: {\n\t\t\texchange: request.scope.exchange,\n\t\t\ttrading_pair: request.scope.tradingPair,\n\t\t\tmarket_type: request.scope.marketType,\n\t\t\tfeed: request.scope.feed,\n\t\t},\n\t\trequired_clock: {\n\t\t\tclock_id: request.requiredClock.clock_id,\n\t\t\tclock_sha256: request.requiredClock.clock_sha256,\n\t\t\tevent_count: request.requiredClock.targets.length,\n\t\t},\n\t\tcoverage_policy: request.coveragePolicy,\n\t\tsource_policy: request.sourcePolicy,\n\t\tcoverage_class: coverageClass,\n\t\trequested_intervals: [\n\t\t\t{\n\t\t\t\tstart_at: fixedTimestamp(requestStart, \"window start\"),\n\t\t\t\tend_at: fixedTimestamp(requestEnd, \"window end\"),\n\t\t\t},\n\t\t],\n\t\tselected_intervals: selectedBundles.map((bundle) => ({\n\t\t\tstart_at: fixedTimestamp(\n\t\t\t\tMath.max(requestStart, bundle.startTimeMs),\n\t\t\t\t\"selected interval start\",\n\t\t\t),\n\t\t\tend_at: fixedTimestamp(\n\t\t\t\tMath.min(requestEnd, bundle.endTimeMs),\n\t\t\t\t\"selected interval end\",\n\t\t\t),\n\t\t\tcapture_bundle_id: bundle.captureBundleId,\n\t\t\tcapture_origin: bundle.captureOrigin,\n\t\t})),\n\t\tprecedence:\n\t\t\trequest.sourcePolicy === \"fill_gaps\" ? [\"archive\", \"vendor\"] : [\"vendor\"],\n\t\tbundles: selectedBundles.map((bundle) => ({\n\t\t\tcapture_bundle_id: bundle.captureBundleId,\n\t\t\tcapture_origin: bundle.captureOrigin,\n\t\t\tinterval: {\n\t\t\t\tstart_at: fixedTimestamp(bundle.startTimeMs, \"bundle interval start\"),\n\t\t\t\tend_at: fixedTimestamp(bundle.endTimeMs, \"bundle interval end\"),\n\t\t\t},\n\t\t\tqualification: bundle.qualification\n\t\t\t\t? {\n\t\t\t\t\t\tqualification_event_id: bundle.qualification.qualificationEventId,\n\t\t\t\t\t\tstate: \"qualified\" as const,\n\t\t\t\t\t\treceipt_id: bundle.qualification.receiptId,\n\t\t\t\t\t\tpromotion_identity_sha256:\n\t\t\t\t\t\t\tbundle.qualification.promotionIdentitySha256,\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t})),\n\t\tsupport_anchors: supportAnchors,\n\t\treceipt_ids: [\n\t\t\t...new Set(\n\t\t\t\tselectedBundles.flatMap((bundle) =>\n\t\t\t\t\tbundle.qualification ? [bundle.qualification.receiptId] : [],\n\t\t\t\t),\n\t\t\t),\n\t\t].sort(),\n\t\tqualification_event_ids: [\n\t\t\t...new Set(\n\t\t\t\tselectedBundles.flatMap((bundle) =>\n\t\t\t\t\tbundle.qualification\n\t\t\t\t\t\t? [bundle.qualification.qualificationEventId]\n\t\t\t\t\t\t: [],\n\t\t\t\t),\n\t\t\t),\n\t\t].sort(),\n\t\tresolved_at: fixedTimestamp(input.resolvedAtMs, \"resolved_at\"),\n\t});\n}\n\nexport function archiveSelectionToArchiveRow(\n\trequest: BackfillRequestWire,\n\tselectionInput: ArchiveSelectionWire,\n): BackfillArchiveRow {\n\tconst selection = archiveSelectionCodec.decode(selectionInput);\n\tif (\n\t\tselection.required_clock.clock_sha256 !==\n\t\t\trequest.required_clock.clock_sha256 ||\n\t\tselection.source_policy !== request.source_policy ||\n\t\tjcsSha256(selection.scope) !== jcsSha256(request.scope) ||\n\t\tjcsSha256(selection.coverage_policy) !== jcsSha256(request.coverage_policy)\n\t) {\n\t\tthrow new Error(\"archive selection does not match request\");\n\t}\n\treturn {\n\t\ttable: \"market_data.cex_order_book_archive_selections\",\n\t\trow: {\n\t\t\tsource: \"external_backfill\",\n\t\t\tdeployment_id: \"market-data-vendor-backfill\",\n\t\t\trequest_id: request.request_id,\n\t\t\tidempotency_key: request.idempotency_key,\n\t\t\tselection_sha256: selection.selection_sha256,\n\t\t\tcoverage_class: selection.coverage_class,\n\t\t\treceipt_ids: selection.receipt_ids,\n\t\t\trequest_json: jcsCanonicalize(request),\n\t\t\tselection_json: jcsCanonicalize(selection),\n\t\t\tresolved_at_ms: Date.parse(selection.resolved_at),\n\t\t},\n\t};\n}\n\nexport function archiveSelectionFromArchiveRow(\n\trow: Record<string, unknown>,\n): ArchiveSelectionWire {\n\tlet parsed: unknown;\n\tlet parsedRequest: unknown;\n\ttry {\n\t\tparsed = JSON.parse(String(row.selection_json));\n\t\tparsedRequest = JSON.parse(String(row.request_json));\n\t} catch {\n\t\tthrow new Error(\"archive selection or request JSON is invalid\");\n\t}\n\tconst selection = archiveSelectionCodec.decode(parsed);\n\tconst request = backfillRequestCodec.decode(parsedRequest).wire;\n\tarchiveSelectionToArchiveRow(request, selection);\n\tif (\n\t\trow.source !== \"external_backfill\" ||\n\t\trow.deployment_id !== \"market-data-vendor-backfill\" ||\n\t\trow.request_id !== request.request_id ||\n\t\trow.idempotency_key !== request.idempotency_key ||\n\t\trow.selection_sha256 !== selection.selection_sha256 ||\n\t\trow.coverage_class !== selection.coverage_class ||\n\t\tjcsCanonicalize(row.receipt_ids) !==\n\t\t\tjcsCanonicalize(selection.receipt_ids) ||\n\t\trow.resolved_at_ms !== Date.parse(selection.resolved_at)\n\t) {\n\t\tthrow new Error(\"archive selection row does not match selection JSON\");\n\t}\n\treturn selection;\n}\n",
157
157
  "import { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport type {\n\tBackfillArchiveRow,\n\tMarketDataVendorBackfillRequest,\n} from \"./contracts\";\n\nconst LOGICAL_KEYS = {\n\t\"market_data.cex_order_book_levels\": [\n\t\t\"capture_bundle_id\",\n\t\t\"exchange\",\n\t\t\"trading_pair\",\n\t\t\"raw_capture_id\",\n\t\t\"snapshot_id\",\n\t\t\"schema_version\",\n\t\t\"side\",\n\t\t\"level_index\",\n\t],\n\t\"market_data.cex_order_book_depth_summary\": [\n\t\t\"capture_bundle_id\",\n\t\t\"exchange\",\n\t\t\"trading_pair\",\n\t\t\"raw_capture_id\",\n\t\t\"snapshot_id\",\n\t\t\"schema_version\",\n\t],\n} as const;\n\nfunction logicalIdentity(row: BackfillArchiveRow): {\n\tkey: string;\n\tchecksum: string;\n} {\n\tif (\n\t\trow.table !== \"market_data.cex_order_book_levels\" &&\n\t\trow.table !== \"market_data.cex_order_book_depth_summary\"\n\t) {\n\t\tthrow new Error(\n\t\t\t\"archive evidence rows are not candidate semantic evidence\",\n\t\t);\n\t}\n\tconst keys = LOGICAL_KEYS[row.table];\n\tconst checksum = row.row.normalized_row_checksum;\n\tif (typeof checksum !== \"string\" || !/^[a-f0-9]{64}$/.test(checksum)) {\n\t\tthrow new Error(\"candidate normalized checksum is invalid\");\n\t}\n\tconst values = keys.map((key) => row.row[key]);\n\tif (\n\t\tvalues.some(\n\t\t\t(value) =>\n\t\t\t\ttypeof value !== \"string\" &&\n\t\t\t\ttypeof value !== \"number\" &&\n\t\t\t\tvalue !== null,\n\t\t)\n\t) {\n\t\tthrow new Error(\"candidate logical identity is incomplete\");\n\t}\n\treturn {\n\t\tkey: `${row.table}\\u0000${JSON.stringify(values)}`,\n\t\tchecksum,\n\t};\n}\n\nexport function semanticDigest(rows: readonly BackfillArchiveRow[]): string {\n\tconst identities = rows\n\t\t.map(logicalIdentity)\n\t\t.sort((left, right) =>\n\t\t\tleft.key === right.key\n\t\t\t\t? left.checksum.localeCompare(right.checksum)\n\t\t\t\t: left.key.localeCompare(right.key),\n\t\t);\n\treturn sha256Canonical(identities);\n}\n\nfunction exactCandidateMatch(\n\texpected: readonly BackfillArchiveRow[],\n\tactual: readonly BackfillArchiveRow[],\n): boolean {\n\tif (expected.length !== actual.length) return false;\n\tconst expectedIdentities = expected\n\t\t.map(logicalIdentity)\n\t\t.map(({ key, checksum }) => `${key}\\u0000${checksum}`)\n\t\t.sort();\n\tconst actualIdentities = actual\n\t\t.map(logicalIdentity)\n\t\t.map(({ key, checksum }) => `${key}\\u0000${checksum}`)\n\t\t.sort();\n\treturn expectedIdentities.every(\n\t\t(identity, index) => identity === actualIdentities[index],\n\t);\n}\n\nfunction requestedShapeMatches(\n\trequest: MarketDataVendorBackfillRequest,\n\trows: readonly BackfillArchiveRow[],\n): boolean {\n\treturn rows.every(\n\t\t({ row }) =>\n\t\t\trow.depth_limit === request.depth &&\n\t\t\trow.construction_mode === request.constructionMode &&\n\t\t\trow.schema_version === request.expectedProduct.canonicalSchemaVersion,\n\t);\n}\n\nfunction requiredClockCoverage(\n\trequest: MarketDataVendorBackfillRequest,\n\trows: readonly BackfillArchiveRow[],\n\tcoverageSourceTimesMs?: readonly number[],\n): boolean {\n\tconst summaryTimes = (\n\t\tcoverageSourceTimesMs ??\n\t\trows\n\t\t\t.filter(\n\t\t\t\t({ table }) => table === \"market_data.cex_order_book_depth_summary\",\n\t\t\t)\n\t\t\t.map(({ row }) => row.source_time_ms)\n\t)\n\t\t.map((value) => {\n\t\t\tif (\n\t\t\t\ttypeof value !== \"number\" &&\n\t\t\t\t(typeof value !== \"string\" || !/^\\d+$/.test(value))\n\t\t\t) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tconst parsed = Number(value);\n\t\t\treturn Number.isSafeInteger(parsed) && parsed >= 0 ? parsed : undefined;\n\t\t})\n\t\t.filter((value): value is number => value !== undefined)\n\t\t.sort((left, right) => left - right);\n\treturn request.requiredClockTargetsMs.every((target) => {\n\t\tlet prior: number | undefined;\n\t\tfor (const sourceTime of summaryTimes) {\n\t\t\tif (sourceTime > target) break;\n\t\t\tprior = sourceTime;\n\t\t}\n\t\treturn (\n\t\t\tprior !== undefined &&\n\t\t\ttarget - prior >= 0 &&\n\t\t\ttarget - prior <= request.maxPriorAsOfLagMs\n\t\t);\n\t});\n}\n\nexport type SemanticPromotionEvidence = {\n\trequest: MarketDataVendorBackfillRequest;\n\tnormalizedRows: readonly BackfillArchiveRow[];\n\tcandidateRows: readonly BackfillArchiveRow[];\n\tconflictCount: number;\n\tprefixDigestBefore: string;\n\tprefixDigestAfter: string;\n\tsuffixDigestBefore: string;\n\tsuffixDigestAfter: string;\n\tseamVerified: boolean;\n\texporterCompatible: boolean;\n\tcoverageSourceTimesMs?: readonly number[];\n};\n\nexport type SemanticPromotionResult = {\n\tpassed: boolean;\n\treasonCode: string;\n\tcanonicalSemanticDigest: string;\n\tprefixDigest: string;\n\tsuffixDigest: string;\n\tseamVerified: boolean;\n\tcoverageVerified: boolean;\n};\n\nexport function verifySemanticPromotion(\n\tevidence: SemanticPromotionEvidence,\n): SemanticPromotionResult {\n\tconst canonicalSemanticDigest = semanticDigest(evidence.candidateRows);\n\tconst base = {\n\t\tcanonicalSemanticDigest,\n\t\tprefixDigest: evidence.prefixDigestAfter,\n\t\tsuffixDigest: evidence.suffixDigestAfter,\n\t\tseamVerified: evidence.seamVerified,\n\t};\n\tif (!exactCandidateMatch(evidence.normalizedRows, evidence.candidateRows)) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"candidate_semantic_mismatch\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tif (evidence.conflictCount !== 0) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"candidate_checksum_conflict\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tif (\n\t\tevidence.prefixDigestBefore !== evidence.prefixDigestAfter ||\n\t\tevidence.suffixDigestBefore !== evidence.suffixDigestAfter\n\t) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"qualified_timeline_changed\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tif (!evidence.seamVerified) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"timeline_seam_invalid\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tif (!requestedShapeMatches(evidence.request, evidence.candidateRows)) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"candidate_shape_mismatch\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tif (!evidence.exporterCompatible) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"canonical_export_incompatible\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\tconst coverageVerified = requiredClockCoverage(\n\t\tevidence.request,\n\t\tevidence.candidateRows,\n\t\tevidence.coverageSourceTimesMs,\n\t);\n\tif (!coverageVerified) {\n\t\treturn {\n\t\t\t...base,\n\t\t\tpassed: false,\n\t\t\treasonCode: \"required_clock_coverage_insufficient\",\n\t\t\tcoverageVerified: false,\n\t\t};\n\t}\n\treturn {\n\t\t...base,\n\t\tpassed: true,\n\t\treasonCode: \"semantic_promotion_verified\",\n\t\tcoverageVerified: true,\n\t};\n}\n",
158
158
  "import { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport type {\n\tBackfillArchiveRow,\n\tMarketDataVendorBackfillRequest,\n\tPromotionReceiptWire,\n} from \"./contracts\";\nimport { archiveSelectionCodec } from \"./contracts\";\nimport type {\n\tArchivePreflightResolution,\n\tCandidateVerification,\n\tNormalizedBackfill,\n\tQualifiedCoverage,\n} from \"./core\";\nimport { jcsCanonicalize } from \"./identity\";\nimport { promotionReceiptFromArchiveRow } from \"./promotion\";\nimport {\n\ttype ArchiveBundleEvidence,\n\tresolveArchiveSelection,\n} from \"./selection\";\nimport { verifySemanticPromotion } from \"./semantic-verification\";\n\nexport type ArchiveQueryValue = string | number | readonly string[];\nexport type ArchiveQueryClient = {\n\tquery(\n\t\tsql: string,\n\t\tparameters?: Readonly<Record<string, ArchiveQueryValue>>,\n\t): Promise<Record<string, unknown>[]>;\n};\n\nexport type QualifiedArchiveReaderOptions = { nowMs?: () => number };\n\nconst QUALIFIED_SUMMARY =\n\t\"market_data.cex_order_book_depth_summary_replay_qualified\";\nconst QUALIFIED_LEVELS = \"market_data.cex_order_book_levels_replay_qualified\";\nconst CANDIDATE_SUMMARY = \"market_data.cex_order_book_depth_summary_canonical\";\nconst CANDIDATE_LEVELS = \"market_data.cex_order_book_levels_canonical\";\n\nclass ArchiveReaderError extends Error {\n\tconstructor(readonly reason: string) {\n\t\tsuper(reason);\n\t\tthis.name = \"ArchiveReaderError\";\n\t}\n}\n\nasync function archiveQuery(\n\tclient: ArchiveQueryClient,\n\treason: string,\n\tsql: string,\n\tparameters?: Readonly<Record<string, ArchiveQueryValue>>,\n): Promise<Record<string, unknown>[]> {\n\ttry {\n\t\treturn await client.query(sql, parameters);\n\t} catch {\n\t\tthrow new ArchiveReaderError(reason);\n\t}\n}\n\nfunction queryParameters(request: MarketDataVendorBackfillRequest) {\n\treturn {\n\t\texchange: request.scope.exchange,\n\t\ttrading_pair: request.scope.tradingPair,\n\t\tstart_time_ms: request.window.startTimeMs,\n\t\tend_time_ms: request.window.endTimeMs,\n\t\tdepth_limit: request.depth,\n\t\tconstruction_mode: request.constructionMode,\n\t\tschema_version: request.expectedProduct.canonicalSchemaVersion,\n\t};\n}\n\nfunction scopeFilter(alias = \"\") {\n\tconst prefix = alias ? `${alias}.` : \"\";\n\treturn `\n${prefix}exchange = {exchange:String}\nAND ${prefix}trading_pair = {trading_pair:String}\nAND ${prefix}depth_limit = {depth_limit:UInt16}\nAND ${prefix}construction_mode = {construction_mode:String}\nAND ${prefix}schema_version = {schema_version:String}`;\n}\n\nfunction numberField(row: Record<string, unknown>, field: string): number {\n\tconst value = row[field];\n\tconst parsed = typeof value === \"number\" ? value : Number(value);\n\tif (!Number.isSafeInteger(parsed) || parsed < 0) {\n\t\tthrow new Error(`Archive field ${field} is not a safe unsigned integer`);\n\t}\n\treturn parsed;\n}\n\nfunction uint64Field(\n\trow: Record<string, unknown>,\n\tfield: string,\n): bigint | undefined {\n\tconst value = row[field];\n\tif (value === null || value === undefined) return undefined;\n\tif (typeof value === \"number\") {\n\t\treturn Number.isSafeInteger(value) && value >= 0\n\t\t\t? BigInt(value)\n\t\t\t: undefined;\n\t}\n\tif (typeof value !== \"string\" || !/^\\d+$/.test(value)) return undefined;\n\tconst parsed = BigInt(value);\n\treturn parsed <= 18_446_744_073_709_551_615n ? parsed : undefined;\n}\n\nfunction timelineDigest(rows: readonly Record<string, unknown>[]): string {\n\treturn sha256Canonical(\n\t\trows\n\t\t\t.map((row) => ({\n\t\t\t\ttable: String(row.table ?? \"summary\"),\n\t\t\t\tsnapshot_id: String(row.snapshot_id ?? \"\"),\n\t\t\t\tsource_time_ms: numberField(row, \"source_time_ms\"),\n\t\t\t\tnormalized_row_checksum: String(row.normalized_row_checksum ?? \"\"),\n\t\t\t}))\n\t\t\t.sort((left, right) =>\n\t\t\t\tleft.source_time_ms === right.source_time_ms\n\t\t\t\t\t? left.normalized_row_checksum.localeCompare(\n\t\t\t\t\t\t\tright.normalized_row_checksum,\n\t\t\t\t\t\t)\n\t\t\t\t\t: left.source_time_ms - right.source_time_ms,\n\t\t\t),\n\t);\n}\n\nfunction clocksCovered(\n\trequest: MarketDataVendorBackfillRequest,\n\trows: readonly Record<string, unknown>[],\n): boolean {\n\tconst times = rows\n\t\t.map((row) => numberField(row, \"source_time_ms\"))\n\t\t.sort((left, right) => left - right);\n\treturn request.requiredClockTargetsMs.every((target) => {\n\t\tlet prior: number | undefined;\n\t\tfor (const sourceTime of times) {\n\t\t\tif (sourceTime > target) break;\n\t\t\tprior = sourceTime;\n\t\t}\n\t\treturn prior !== undefined && target - prior <= request.maxPriorAsOfLagMs;\n\t});\n}\n\nfunction candidateRows(\n\ttable:\n\t\t| \"market_data.cex_order_book_levels\"\n\t\t| \"market_data.cex_order_book_depth_summary\",\n\trows: Record<string, unknown>[],\n): BackfillArchiveRow[] {\n\treturn rows.map((row) => ({ table, row }));\n}\n\nexport class QualifiedOrderBookArchiveReader {\n\tconstructor(\n\t\tprivate readonly client: ArchiveQueryClient,\n\t\tprivate readonly options?: QualifiedArchiveReaderOptions,\n\t) {}\n\n\tasync resolveSelection(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t): Promise<ArchivePreflightResolution> {\n\t\tconst identityRows = await archiveQuery(\n\t\t\tthis.client,\n\t\t\t\"archive_cluster_identity_query_failed\",\n\t\t\t`SELECT environment, cluster\n\t\t\t FROM market_data.cex_archive_cluster_identity FINAL\n\t\t\t WHERE singleton_key = 'archive'\n\t\t\t LIMIT 2`,\n\t\t);\n\t\tif (identityRows.length !== 1) {\n\t\t\tthrow new Error(\n\t\t\t\t\"archive cluster identity singleton is missing or conflicting\",\n\t\t\t);\n\t\t}\n\t\tconst readerIdentity = {\n\t\t\tenvironment: String(identityRows[0]?.environment ?? \"\"),\n\t\t\tcluster: String(identityRows[0]?.cluster ?? \"\"),\n\t\t};\n\t\tconst conflictRows = await archiveQuery(\n\t\t\tthis.client,\n\t\t\t\"archive_selection_conflict_query_failed\",\n\t\t\t`SELECT count() AS conflicts\n\t\t\t FROM\n\t\t\t (\n\t\t\t SELECT conflict.capture_bundle_id, conflict.snapshot_id\n\t\t\t FROM market_data.cex_order_book_levels_conflicts AS conflict\n\t\t\t INNER JOIN\n\t\t\t (\n\t\t\t SELECT DISTINCT capture_bundle_id, snapshot_id\n\t\t\t FROM market_data.cex_order_book_depth_summary\n\t\t\t WHERE ${scopeFilter()}\n\t\t\t AND source_time_ms >= {start_time_ms:UInt64}\n\t\t\t AND source_time_ms < {end_time_ms:UInt64}\n\t\t\t ) AS selected USING (capture_bundle_id, snapshot_id)\n\t\t\t UNION ALL\n\t\t\t SELECT conflict.capture_bundle_id, conflict.snapshot_id\n\t\t\t FROM market_data.cex_order_book_depth_summary_conflicts AS conflict\n\t\t\t INNER JOIN\n\t\t\t (\n\t\t\t SELECT DISTINCT capture_bundle_id, snapshot_id\n\t\t\t FROM market_data.cex_order_book_depth_summary\n\t\t\t WHERE ${scopeFilter()}\n\t\t\t AND source_time_ms >= {start_time_ms:UInt64}\n\t\t\t AND source_time_ms < {end_time_ms:UInt64}\n\t\t\t ) AS selected USING (capture_bundle_id, snapshot_id)\n\t\t\t )`,\n\t\t\tqueryParameters(request),\n\t\t);\n\t\tif (\n\t\t\tconflictRows.length !== 1 ||\n\t\t\t!Number.isSafeInteger(Number(conflictRows[0]?.conflicts)) ||\n\t\t\tNumber(conflictRows[0]?.conflicts) < 0\n\t\t) {\n\t\t\tthrow new ArchiveReaderError(\"archive_selection_conflict_query_invalid\");\n\t\t}\n\t\tif (Number(conflictRows[0]?.conflicts) > 0) {\n\t\t\tthrow new ArchiveReaderError(\"archive_selection_checksum_conflict\");\n\t\t}\n\t\tconst storedRows = await archiveQuery(\n\t\t\tthis.client,\n\t\t\t\"archive_stored_selection_query_failed\",\n\t\t\t`SELECT selection_sha256, selection_json\n\t\t\t FROM market_data.cex_order_book_archive_selections\n\t\t\t WHERE idempotency_key = {idempotency_key:String}\n\t\t\t ORDER BY resolved_at_ms, selection_sha256`,\n\t\t\t{ idempotency_key: request.idempotencyKey },\n\t\t);\n\t\tif (storedRows.length > 0) {\n\t\t\tconst selections = storedRows.map((row) => {\n\t\t\t\tlet parsed: unknown;\n\t\t\t\ttry {\n\t\t\t\t\tparsed = JSON.parse(String(row.selection_json));\n\t\t\t\t} catch {\n\t\t\t\t\tthrow new Error(\"stored archive selection JSON is invalid\");\n\t\t\t\t}\n\t\t\t\tconst selection = archiveSelectionCodec.decode(parsed);\n\t\t\t\tif (selection.selection_sha256 !== row.selection_sha256) {\n\t\t\t\t\tthrow new Error(\"stored archive selection row identity mismatch\");\n\t\t\t\t}\n\t\t\t\treturn selection;\n\t\t\t});\n\t\t\tconst canonical = new Set(selections.map(jcsCanonicalize));\n\t\t\tif (canonical.size !== 1) {\n\t\t\t\tthrow new Error(\"stored archive selection content conflicts\");\n\t\t\t}\n\t\t\tconst selection = resolveArchiveSelection({\n\t\t\t\trequest,\n\t\t\t\tbundles: [],\n\t\t\t\tresolvedAtMs: this.options?.nowMs?.() ?? Date.now(),\n\t\t\t\tstoredSelection: selections[0],\n\t\t\t});\n\t\t\tconst receipts = await this.readReceipts(selection.receipt_ids);\n\t\t\treturn {\n\t\t\t\tselection,\n\t\t\t\treceipts,\n\t\t\t\treaderIdentity,\n\t\t\t};\n\t\t}\n\n\t\tconst parameters = {\n\t\t\t...queryParameters(request),\n\t\t\tcoverage_start_ms: Math.max(\n\t\t\t\t0,\n\t\t\t\trequest.window.startTimeMs - request.maxPriorAsOfLagMs,\n\t\t\t),\n\t\t};\n\t\tconst summaries = await archiveQuery(\n\t\t\tthis.client,\n\t\t\t\"archive_qualified_summary_query_failed\",\n\t\t\t`SELECT capture_bundle_id, raw_capture_id, snapshot_id,\n\t\t\t source_time_ms, normalized_row_checksum, source\n\t\t\t FROM ${QUALIFIED_SUMMARY}\n\t\t\t WHERE ${scopeFilter()}\n\t\t\t AND source_time_ms >= {coverage_start_ms:UInt64}\n\t\t\t AND source_time_ms < {end_time_ms:UInt64}\n\t\t\t ORDER BY source_time_ms, capture_bundle_id, snapshot_id`,\n\t\t\tparameters,\n\t\t);\n\t\tconst bundleIds = [\n\t\t\t...new Set(summaries.map((row) => String(row.capture_bundle_id))),\n\t\t].filter(Boolean);\n\t\tconst qualificationRows = await archiveQuery(\n\t\t\tthis.client,\n\t\t\t\"archive_qualification_query_failed\",\n\t\t\t`SELECT capture_bundle_id, qualification_event_id, state, receipt_id,\n\t\t\t promotion_identity_sha256, window_start_ms, window_end_ms\n\t\t\t FROM market_data.cex_order_book_capture_qualifications\n\t\t\t WHERE capture_bundle_id IN {capture_bundle_ids:Array(String)}\n\t\t\t ORDER BY event_at_ms DESC\n\t\t\t LIMIT 1 BY capture_bundle_id`,\n\t\t\t{ capture_bundle_ids: bundleIds },\n\t\t);\n\t\tconst qualificationByBundle = new Map(\n\t\t\tqualificationRows.map((row) => [String(row.capture_bundle_id), row]),\n\t\t);\n\t\tconst receiptIds = qualificationRows\n\t\t\t.map((row) => String(row.receipt_id ?? \"\"))\n\t\t\t.filter(Boolean);\n\t\tconst receipts = await this.readReceipts(receiptIds);\n\t\tconst receiptIdsSet = new Set(\n\t\t\treceipts.map((receipt) => receipt.receipt_id),\n\t\t);\n\t\tconst grouped = new Map<string, ArchiveBundleEvidence>();\n\t\tfor (const row of summaries) {\n\t\t\tconst captureBundleId = String(row.capture_bundle_id);\n\t\t\tconst captureOrigin =\n\t\t\t\tString(row.source) === \"external_backfill\"\n\t\t\t\t\t? \"vendor_historical_backfill\"\n\t\t\t\t\t: \"production_capture\";\n\t\t\tconst qualificationRow = qualificationByBundle.get(captureBundleId);\n\t\t\tconst receiptId = String(qualificationRow?.receipt_id ?? \"\");\n\t\t\tconst qualification =\n\t\t\t\tcaptureOrigin === \"vendor_historical_backfill\" && qualificationRow\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tqualificationEventId: String(\n\t\t\t\t\t\t\t\tqualificationRow.qualification_event_id,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tstate: String(qualificationRow.state) as\n\t\t\t\t\t\t\t\t| \"qualified\"\n\t\t\t\t\t\t\t\t| \"quarantined\"\n\t\t\t\t\t\t\t\t| \"revoked\",\n\t\t\t\t\t\t\treceiptId,\n\t\t\t\t\t\t\tpromotionIdentitySha256: String(\n\t\t\t\t\t\t\t\tqualificationRow.promotion_identity_sha256,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t: null;\n\t\t\tif (\n\t\t\t\tcaptureOrigin === \"vendor_historical_backfill\" &&\n\t\t\t\t(!qualification || !receiptIdsSet.has(receiptId))\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst sourceTimeMs = numberField(row, \"source_time_ms\");\n\t\t\tconst startTimeMs = qualificationRow\n\t\t\t\t? numberField(qualificationRow, \"window_start_ms\")\n\t\t\t\t: sourceTimeMs;\n\t\t\tconst endTimeMs = qualificationRow\n\t\t\t\t? numberField(qualificationRow, \"window_end_ms\")\n\t\t\t\t: sourceTimeMs + 1;\n\t\t\tconst existing = grouped.get(captureBundleId) ?? {\n\t\t\t\tcaptureBundleId,\n\t\t\t\tcaptureOrigin,\n\t\t\t\tstartTimeMs,\n\t\t\t\tendTimeMs,\n\t\t\t\tqualification,\n\t\t\t\tsupportAnchors: [],\n\t\t\t};\n\t\t\texisting.startTimeMs = Math.min(existing.startTimeMs, startTimeMs);\n\t\t\texisting.endTimeMs = Math.max(existing.endTimeMs, endTimeMs);\n\t\t\texisting.supportAnchors.push({\n\t\t\t\tcaptureBundleId,\n\t\t\t\trawCaptureId: String(row.raw_capture_id),\n\t\t\t\tsnapshotId: String(row.snapshot_id),\n\t\t\t\tsourceTimeMs,\n\t\t\t\tnormalizedSummaryChecksum: String(row.normalized_row_checksum),\n\t\t\t});\n\t\t\tgrouped.set(captureBundleId, existing);\n\t\t}\n\t\tconst [prefix, suffix] = await Promise.all([\n\t\t\tthis.boundaryRows(request, \"prefix\"),\n\t\t\tthis.boundaryRows(request, \"suffix\"),\n\t\t]);\n\t\tconst selection = resolveArchiveSelection({\n\t\t\trequest,\n\t\t\tbundles: [...grouped.values()],\n\t\t\tresolvedAtMs: this.options?.nowMs?.() ?? Date.now(),\n\t\t});\n\t\treturn {\n\t\t\tselection,\n\t\t\treceipts,\n\t\t\treaderIdentity,\n\t\t\tverificationBaseline: {\n\t\t\t\tprefixDigest: timelineDigest(prefix),\n\t\t\t\tsuffixDigest: timelineDigest(suffix),\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate async readReceipts(\n\t\treceiptIds: readonly string[],\n\t): Promise<PromotionReceiptWire[]> {\n\t\tif (receiptIds.length === 0) return [];\n\t\tconst rows = await archiveQuery(\n\t\t\tthis.client,\n\t\t\t\"archive_receipt_query_failed\",\n\t\t\t`SELECT receipt_id, promotion_identity_sha256, receipt_json\n\t\t\t FROM market_data.cex_order_book_capture_promotions\n\t\t\t WHERE receipt_id IN {receipt_ids:Array(String)}\n\t\t\t ORDER BY receipt_id`,\n\t\t\t{ receipt_ids: [...new Set(receiptIds)].sort() },\n\t\t);\n\t\tlet receipts: Array<PromotionReceiptWire | object>;\n\t\ttry {\n\t\t\treceipts = rows.map((row) => promotionReceiptFromArchiveRow(row));\n\t\t} catch {\n\t\t\tthrow new ArchiveReaderError(\"archive_receipt_invalid\");\n\t\t}\n\t\tif (receipts.some((receipt) => !(\"schema_id\" in receipt))) {\n\t\t\tthrow new Error(\n\t\t\t\t\"provisional promotion receipt cannot qualify final-v1 data\",\n\t\t\t);\n\t\t}\n\t\treturn receipts as PromotionReceiptWire[];\n\t}\n\n\tasync coverage(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t): Promise<QualifiedCoverage> {\n\t\tconst parameters = queryParameters(request);\n\t\tconst summaries = await this.client.query(\n\t\t\t`SELECT snapshot_id, source_time_ms, normalized_row_checksum\n\t\t\t FROM ${QUALIFIED_SUMMARY}\n\t\t\t WHERE ${scopeFilter()}\n\t\t\t AND source_time_ms >= {coverage_start_ms:UInt64}\n\t\t\t AND source_time_ms < {end_time_ms:UInt64}\n\t\t\t ORDER BY source_time_ms, snapshot_id`,\n\t\t\t{\n\t\t\t\t...parameters,\n\t\t\t\tcoverage_start_ms: Math.max(\n\t\t\t\t\t0,\n\t\t\t\t\trequest.window.startTimeMs - request.maxPriorAsOfLagMs,\n\t\t\t\t),\n\t\t\t},\n\t\t);\n\t\tconst [prefix, suffix] = await Promise.all([\n\t\t\tthis.boundaryRows(request, \"prefix\"),\n\t\t\tthis.boundaryRows(request, \"suffix\"),\n\t\t]);\n\t\treturn {\n\t\t\tcomplete: clocksCovered(request, summaries),\n\t\t\tcoverageDigest: timelineDigest(summaries),\n\t\t\tprefixDigest: timelineDigest(prefix),\n\t\t\tsuffixDigest: timelineDigest(suffix),\n\t\t};\n\t}\n\n\tprivate boundaryRows(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t\tside: \"prefix\" | \"suffix\",\n\t): Promise<Record<string, unknown>[]> {\n\t\tconst boundary =\n\t\t\tside === \"prefix\" ? request.window.startTimeMs : request.window.endTimeMs;\n\t\tconst span = Math.max(\n\t\t\trequest.maxPriorAsOfLagMs,\n\t\t\trequest.budgets.maxBoundaryLookbackMs,\n\t\t);\n\t\tconst boundaryStart =\n\t\t\tside === \"prefix\" ? Math.max(0, boundary - span) : boundary;\n\t\tconst boundaryEnd =\n\t\t\tside === \"prefix\"\n\t\t\t\t? boundary\n\t\t\t\t: Math.min(Number.MAX_SAFE_INTEGER, boundary + span);\n\t\treturn archiveQuery(\n\t\t\tthis.client,\n\t\t\t\"archive_boundary_query_failed\",\n\t\t\t`SELECT 'level' AS table, snapshot_id, source_time_ms, sequence,\n\t\t\t normalized_row_checksum\n\t\t\t FROM ${QUALIFIED_LEVELS}\n\t\t\t WHERE ${scopeFilter()}\n\t\t\t AND source_time_ms >= {boundary_start_ms:UInt64}\n\t\t\t AND source_time_ms < {boundary_end_ms:UInt64}\n\t\t\t UNION ALL\n\t\t\t SELECT 'summary' AS table, snapshot_id, source_time_ms, sequence,\n\t\t\t normalized_row_checksum\n\t\t\t FROM ${QUALIFIED_SUMMARY}\n\t\t\t WHERE ${scopeFilter()}\n\t\t\t AND source_time_ms >= {boundary_start_ms:UInt64}\n\t\t\t AND source_time_ms < {boundary_end_ms:UInt64}\n\t\t\t ORDER BY source_time_ms, table, snapshot_id, normalized_row_checksum`,\n\t\t\t{\n\t\t\t\t...queryParameters(request),\n\t\t\t\tboundary_start_ms: boundaryStart,\n\t\t\t\tboundary_end_ms: boundaryEnd,\n\t\t\t},\n\t\t);\n\t}\n\n\tasync verifyCandidate(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t\tnormalized: NormalizedBackfill,\n\t\tcaptureBundleId: string,\n\t\tbaseline: ArchivePreflightResolution,\n\t): Promise<CandidateVerification> {\n\t\tif (!baseline.verificationBaseline) {\n\t\t\tthrow new Error(\"qualified verification baseline is missing\");\n\t\t}\n\t\tconst parameters = {\n\t\t\t...queryParameters(request),\n\t\t\tcapture_bundle_id: captureBundleId,\n\t\t};\n\t\tconst [levels, summaries, conflicts, prefix, suffix] = await Promise.all([\n\t\t\tthis.client.query(\n\t\t\t\t`SELECT * FROM ${CANDIDATE_LEVELS}\n\t\t\t\t WHERE capture_bundle_id = {capture_bundle_id:String}\n\t\t\t\t AND ${scopeFilter()}\n\t\t\t\t AND source_time_ms >= {start_time_ms:UInt64}\n\t\t\t\t AND source_time_ms < {end_time_ms:UInt64}`,\n\t\t\t\tparameters,\n\t\t\t),\n\t\t\tthis.client.query(\n\t\t\t\t`SELECT * FROM ${CANDIDATE_SUMMARY}\n\t\t\t\t WHERE capture_bundle_id = {capture_bundle_id:String}\n\t\t\t\t AND ${scopeFilter()}\n\t\t\t\t AND source_time_ms >= {start_time_ms:UInt64}\n\t\t\t\t AND source_time_ms < {end_time_ms:UInt64}`,\n\t\t\t\tparameters,\n\t\t\t),\n\t\t\tthis.client.query(\n\t\t\t\t`SELECT count() AS conflicts FROM\n\t\t\t\t (\n\t\t\t\t SELECT snapshot_id FROM market_data.cex_order_book_levels_conflicts\n\t\t\t\t WHERE capture_bundle_id = {capture_bundle_id:String}\n\t\t\t\t UNION ALL\n\t\t\t\t SELECT snapshot_id FROM market_data.cex_order_book_depth_summary_conflicts\n\t\t\t\t WHERE capture_bundle_id = {capture_bundle_id:String}\n\t\t\t\t )`,\n\t\t\t\tparameters,\n\t\t\t),\n\t\t\tthis.boundaryRows(request, \"prefix\"),\n\t\t\tthis.boundaryRows(request, \"suffix\"),\n\t\t]);\n\t\tconst queriedRows = [\n\t\t\t...candidateRows(\"market_data.cex_order_book_levels\", levels),\n\t\t\t...candidateRows(\"market_data.cex_order_book_depth_summary\", summaries),\n\t\t];\n\t\tconst semantic = verifySemanticPromotion({\n\t\t\trequest,\n\t\t\tnormalizedRows: normalized.rows,\n\t\t\tcandidateRows: queriedRows,\n\t\t\tconflictCount: Number(conflicts[0]?.conflicts ?? 0),\n\t\t\tprefixDigestBefore: baseline.verificationBaseline.prefixDigest,\n\t\t\tprefixDigestAfter: timelineDigest(prefix),\n\t\t\tsuffixDigestBefore: baseline.verificationBaseline.suffixDigest,\n\t\t\tsuffixDigestAfter: timelineDigest(suffix),\n\t\t\tseamVerified: this.seamIsOrdered(queriedRows),\n\t\t\texporterCompatible: queriedRows.every(\n\t\t\t\t({ row }) =>\n\t\t\t\t\ttypeof row.capture_bundle_id === \"string\" &&\n\t\t\t\t\ttypeof row.normalized_row_checksum === \"string\",\n\t\t\t),\n\t\t\t...(request.sourcePolicy === \"fill_gaps\"\n\t\t\t\t? {\n\t\t\t\t\t\tcoverageSourceTimesMs: [\n\t\t\t\t\t\t\t...baseline.selection.support_anchors.map((anchor) =>\n\t\t\t\t\t\t\t\tDate.parse(anchor.source_time),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...summaries.map((row) => numberField(row, \"source_time_ms\")),\n\t\t\t\t\t\t],\n\t\t\t\t\t}\n\t\t\t\t: {}),\n\t\t});\n\t\treturn { ...semantic, captureBundleId };\n\t}\n\n\tprivate seamIsOrdered(rows: readonly BackfillArchiveRow[]): boolean {\n\t\tconst summaries = rows\n\t\t\t.filter(({ table }) => table.endsWith(\"depth_summary\"))\n\t\t\t.map(({ row }) => ({\n\t\t\t\ttime: numberField(row, \"source_time_ms\"),\n\t\t\t\tsequence: uint64Field(row, \"sequence\"),\n\t\t\t}))\n\t\t\t.sort((left, right) => left.time - right.time);\n\t\tfor (let index = 1; index < summaries.length; index += 1) {\n\t\t\tconst previous = summaries[index - 1];\n\t\t\tconst current = summaries[index];\n\t\t\tif (!previous || !current || current.time < previous.time) return false;\n\t\t\tif (\n\t\t\t\tprevious.sequence !== undefined &&\n\t\t\t\tcurrent.sequence !== undefined &&\n\t\t\t\tcurrent.sequence < previous.sequence\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn summaries.length > 0;\n\t}\n}\n\nexport function createClickHouseArchiveQueryClient(input: {\n\turl: string;\n\tusername?: string;\n\tpassword?: string;\n\tfetch?: typeof fetch;\n}): ArchiveQueryClient {\n\tconst request = input.fetch ?? fetch;\n\tconst parameterValue = (value: ArchiveQueryValue): string => {\n\t\tif (!Array.isArray(value)) return String(value);\n\t\treturn `[${value\n\t\t\t.map((entry) => {\n\t\t\t\tconst jsonString = JSON.stringify(entry);\n\t\t\t\treturn `'${jsonString.slice(1, -1).replaceAll(\"'\", \"\\\\'\")}'`;\n\t\t\t})\n\t\t\t.join(\",\")}]`;\n\t};\n\treturn {\n\t\tasync query(sql, parameters = {}) {\n\t\t\tconst endpoint = new URL(input.url);\n\t\t\tconst embeddedUsername = decodeURIComponent(endpoint.username);\n\t\t\tconst embeddedPassword = decodeURIComponent(endpoint.password);\n\t\t\tendpoint.username = \"\";\n\t\t\tendpoint.password = \"\";\n\t\t\tendpoint.searchParams.set(\"database\", \"market_data\");\n\t\t\tfor (const [key, value] of Object.entries(parameters)) {\n\t\t\t\tendpoint.searchParams.set(`param_${key}`, parameterValue(value));\n\t\t\t}\n\t\t\tconst response = await request(endpoint, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: {\n\t\t\t\t\t\"X-ClickHouse-User\": input.username || embeddedUsername || \"default\",\n\t\t\t\t\t\"X-ClickHouse-Key\": input.password ?? embeddedPassword,\n\t\t\t\t},\n\t\t\t\tbody: `${sql.trim()}\\nFORMAT JSONEachRow`,\n\t\t\t});\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(`qualified_archive_query_failed:${response.status}`);\n\t\t\t}\n\t\t\tconst text = (await response.text()).trim();\n\t\t\treturn text\n\t\t\t\t? text\n\t\t\t\t\t\t.split(\"\\n\")\n\t\t\t\t\t\t.map((line) => JSON.parse(line) as Record<string, unknown>)\n\t\t\t\t: [];\n\t\t},\n\t};\n}\n",
159
159
  "import { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport {\n\ttype BackfillArchiveRow,\n\tEXTERNAL_BACKFILL_SOURCE,\n\ttype ForwarderBatch,\n} from \"./contracts\";\n\nexport const BACKFILL_MAX_BATCH_ROWS = 1_000;\nexport const BACKFILL_MAX_BATCH_BYTES = 5 * 1024 * 1024;\n\nfunction serializedBytes(value: unknown): number {\n\treturn new TextEncoder().encode(JSON.stringify(value)).byteLength;\n}\n\nexport function buildForwarderBatches(input: {\n\tcaptureBundleId: string;\n\tdeploymentId: string;\n\trows: readonly BackfillArchiveRow[];\n\tmaxRows?: number;\n\tmaxBytes?: number;\n}): ForwarderBatch[] {\n\tconst maxRows = input.maxRows ?? BACKFILL_MAX_BATCH_ROWS;\n\tconst maxBytes = input.maxBytes ?? BACKFILL_MAX_BATCH_BYTES;\n\tconst tables = new Map<string, BackfillArchiveRow[]>();\n\tfor (const row of input.rows) {\n\t\tconst group = tables.get(row.table) ?? [];\n\t\tgroup.push(row);\n\t\ttables.set(row.table, group);\n\t}\n\tconst batches: ForwarderBatch[] = [];\n\tfor (const table of [...tables.keys()].sort()) {\n\t\tconst rows = tables.get(table) as BackfillArchiveRow[];\n\t\tlet chunk: BackfillArchiveRow[] = [];\n\t\tlet chunkBytes = 0;\n\t\tlet ordinal = 0;\n\t\tconst flush = () => {\n\t\t\tif (chunk.length === 0) return;\n\t\t\tconst batchId = sha256Canonical({\n\t\t\t\tcapture_bundle_id: input.captureBundleId,\n\t\t\t\ttable,\n\t\t\t\tchunk_ordinal: ordinal,\n\t\t\t\trows: chunk,\n\t\t\t});\n\t\t\tbatches.push({\n\t\t\t\tsource: EXTERNAL_BACKFILL_SOURCE,\n\t\t\t\tdeployment_id: input.deploymentId,\n\t\t\t\tbatch_id: batchId,\n\t\t\t\trows: chunk,\n\t\t\t});\n\t\t\tordinal += 1;\n\t\t\tchunk = [];\n\t\t\tchunkBytes = 0;\n\t\t};\n\t\tfor (const row of rows) {\n\t\t\tconst bytes = serializedBytes(row);\n\t\t\tif (bytes > maxBytes) {\n\t\t\t\tthrow new Error(`archive_row_exceeds_byte_budget:${table}`);\n\t\t\t}\n\t\t\tif (chunk.length >= maxRows || chunkBytes + bytes > maxBytes) flush();\n\t\t\tchunk.push(row);\n\t\t\tchunkBytes += bytes;\n\t\t}\n\t\tflush();\n\t}\n\treturn batches;\n}\n",
160
- "import {\n\tARCHIVE_SELECTION_SCHEMA_ID,\n\tBACKFILL_REQUEST_SCHEMA_ID,\n\tBACKFILL_RESULT_SCHEMA_ID,\n\tcreateBackfillIdempotencyKey,\n\tfinalizeArchiveSelection,\n\tfinalizeBackfillResult,\n\tfinalizeRequiredClock,\n\tPROMOTION_RECEIPT_SCHEMA_ID,\n\tREQUIRED_CLOCK_SCHEMA_ID,\n} from \"./contracts\";\nimport { jcsSha256 } from \"./identity\";\nimport {\n\tEFFECTIVE_ACQUISITION_POLICY_PIN,\n\tEFFECTIVE_ADAPTER_POLICY_PIN,\n\tLEGACY_CAPABILITY_POLICY,\n\tRESOURCE_POLICY,\n\tSCHEMA_MANIFEST,\n} from \"./manifests\";\nimport { finalizePromotionReceipt } from \"./promotion\";\n\nconst requestId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f100\";\nconst attemptId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f101\";\nconst clockId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f102\";\nconst authorizationId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f103\";\nconst qualificationEventId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f104\";\nconst targetId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f105\";\nconst captureBundleId = \"d\".repeat(64);\nconst scope = {\n\texchange: \"okx\",\n\ttrading_pair: \"ARB-USDT\",\n\tmarket_type: \"spot\" as const,\n\tfeed: \"ORDERBOOK\" as const,\n};\nconst window = {\n\tstart_at: \"2026-08-18T09:27:15.000Z\",\n\tend_at: \"2026-08-18T09:27:17.000Z\",\n};\nconst coveragePolicy = {\n\tpolicy_id: \"prior-asof-strict/v1\" as const,\n\tmax_asof_lag_ms: 5_000,\n\tfuture_rows: \"reject\" as const,\n\tmissing_required_event: \"fail\" as const,\n};\n\nconst requiredClock = finalizeRequiredClock({\n\tschema_id: REQUIRED_CLOCK_SCHEMA_ID,\n\tclock_id: clockId,\n\tcreated_at: \"2026-08-20T12:00:00.000Z\",\n\ttargets: [{ target_id: targetId, target_at: \"2026-08-18T09:27:16.000Z\" }],\n});\n\nconst initialSelection = finalizeArchiveSelection({\n\tschema_id: ARCHIVE_SELECTION_SCHEMA_ID,\n\tscope,\n\trequired_clock: {\n\t\tclock_id: requiredClock.clock_id,\n\t\tclock_sha256: requiredClock.clock_sha256,\n\t\tevent_count: requiredClock.targets.length,\n\t},\n\tcoverage_policy: coveragePolicy,\n\tsource_policy: \"authoritative_window\",\n\tcoverage_class: \"missing\",\n\trequested_intervals: [window],\n\tselected_intervals: [],\n\tprecedence: [\"vendor\"],\n\tbundles: [],\n\tsupport_anchors: [],\n\treceipt_ids: [],\n\tqualification_event_ids: [],\n\tresolved_at: \"2026-08-20T12:00:00.000Z\",\n});\n\nconst requestContent = {\n\tschema_id: BACKFILL_REQUEST_SCHEMA_ID,\n\trequest_id: requestId,\n\tattempt_id: attemptId,\n\tscope,\n\twindow,\n\tdepth: 20,\n\tconstruction_mode: \"sampled_top_n_snapshot\" as const,\n\tsource_policy: \"authoritative_window\" as const,\n\ttarget: { environment: \"production\", cluster: \"cex-archive-primary\" },\n\tcoverage_policy: coveragePolicy,\n\trequired_clock: {\n\t\tschema_id: REQUIRED_CLOCK_SCHEMA_ID,\n\t\tclock_id: requiredClock.clock_id,\n\t\tfile_name: \"required-clock.json\",\n\t\tclock_sha256: requiredClock.clock_sha256,\n\t\tevent_count: requiredClock.targets.length,\n\t},\n\tinitial_selection: initialSelection,\n\texpected_canonical_schema: {\n\t\tschema_id: \"cex-order-book-canonical/v1\",\n\t\tschema_sha256: \"a\".repeat(64),\n\t},\n\tproduct_pins: {\n\t\tcapability_policy: {\n\t\t\tpolicy_id: LEGACY_CAPABILITY_POLICY.policy_id,\n\t\t\tpolicy_sha256: LEGACY_CAPABILITY_POLICY.policy_sha256,\n\t\t},\n\t\tresource_policy: {\n\t\t\tpolicy_id: RESOURCE_POLICY.policy_id,\n\t\t\tpolicy_sha256: RESOURCE_POLICY.policy_sha256,\n\t\t},\n\t},\n\tproduction_authorization_id: authorizationId,\n};\n\nconst request = {\n\t...requestContent,\n\tidempotency_key: createBackfillIdempotencyKey(requestContent),\n};\n\nconst promotionReceipt = finalizePromotionReceipt({\n\tschema_id: PROMOTION_RECEIPT_SCHEMA_ID,\n\tverified_at: \"2026-08-20T12:00:02.000Z\",\n\trequest_id: request.request_id,\n\tidempotency_key: request.idempotency_key,\n\tsource: \"external_backfill\",\n\tcapture_origin: \"vendor_historical_backfill\",\n\tsource_mode: \"vendor_historical_backfill_v1\",\n\tprovider: \"cryptohftdata\",\n\tadapter_version: \"cryptohftdata-orderbook/v2\",\n\teffective_policies: {\n\t\tcapability_policy: request.product_pins.capability_policy,\n\t\tresource_policy: request.product_pins.resource_policy,\n\t\tadapter_policy: EFFECTIVE_ADAPTER_POLICY_PIN,\n\t\tacquisition_policy: EFFECTIVE_ACQUISITION_POLICY_PIN,\n\t},\n\tcapture_bundle_id: captureBundleId,\n\tscope,\n\twindow,\n\tdepth: request.depth,\n\tconstruction_mode: request.construction_mode,\n\tcanonical_schema: request.expected_canonical_schema,\n\tcoverage_policy: coveragePolicy,\n\tselection_sha256: initialSelection.selection_sha256,\n\tvendor_semantic_digest: \"e\".repeat(64),\n\tcanonical_semantic_digest: \"f\".repeat(64),\n\tprefix_digest: \"1\".repeat(64),\n\tsuffix_digest: \"2\".repeat(64),\n\tseam_verified: true,\n\tcoverage_verified: true,\n\tdataset_objects: [\n\t\t{\n\t\t\tidentity: \"okx/spot/orderbook/hour/arb-usdt/2026-08-18t09\",\n\t\t\tchecksum: \"3\".repeat(64),\n\t\t\tbytes: 1_000,\n\t\t\trows: 50,\n\t\t},\n\t],\n});\n\nconst resolvedSelection = finalizeArchiveSelection({\n\tschema_id: ARCHIVE_SELECTION_SCHEMA_ID,\n\tscope,\n\trequired_clock: initialSelection.required_clock,\n\tcoverage_policy: coveragePolicy,\n\tsource_policy: \"authoritative_window\",\n\tcoverage_class: \"complete\",\n\trequested_intervals: [window],\n\tselected_intervals: [\n\t\t{\n\t\t\t...window,\n\t\t\tcapture_bundle_id: captureBundleId,\n\t\t\tcapture_origin: \"vendor_historical_backfill\",\n\t\t},\n\t],\n\tprecedence: [\"vendor\"],\n\tbundles: [\n\t\t{\n\t\t\tcapture_bundle_id: captureBundleId,\n\t\t\tcapture_origin: \"vendor_historical_backfill\",\n\t\t\tinterval: window,\n\t\t\tqualification: {\n\t\t\t\tqualification_event_id: qualificationEventId,\n\t\t\t\tstate: \"qualified\",\n\t\t\t\treceipt_id: promotionReceipt.receipt_id,\n\t\t\t\tpromotion_identity_sha256: promotionReceipt.promotion_identity_sha256,\n\t\t\t},\n\t\t},\n\t],\n\tsupport_anchors: [\n\t\t{\n\t\t\tcapture_bundle_id: captureBundleId,\n\t\t\traw_capture_id: \"4\".repeat(64),\n\t\t\tsnapshot_id: \"5\".repeat(64),\n\t\t\tsource_time: \"2026-08-18T09:27:15.308Z\",\n\t\t\tnormalized_summary_checksum: \"6\".repeat(64),\n\t\t\tmetadata_ref: {\n\t\t\t\tcapture_origin: \"vendor_historical_backfill\",\n\t\t\t\tqualification_event_id: qualificationEventId,\n\t\t\t\treceipt_id: promotionReceipt.receipt_id,\n\t\t\t},\n\t\t},\n\t],\n\treceipt_ids: [promotionReceipt.receipt_id],\n\tqualification_event_ids: [qualificationEventId],\n\tresolved_at: \"2026-08-20T12:00:02.000Z\",\n});\n\nconst result = finalizeBackfillResult({\n\tschema_id: BACKFILL_RESULT_SCHEMA_ID,\n\tjob_id: \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f120\",\n\trequest_file_sha256: \"7\".repeat(64),\n\texecutable_sha256: \"8\".repeat(64),\n\tschema_manifest_sha256: SCHEMA_MANIFEST.manifest_sha256,\n\tcex_package: {\n\t\tname: \"@usherlabs/cex-broker\",\n\t\tversion: \"0.2.46\",\n\t\tpackage_sha256: \"9\".repeat(64),\n\t},\n\tcapability_policy: request.product_pins.capability_policy,\n\tresource_policy: request.product_pins.resource_policy,\n\tbuild: {\n\t\tfiet_tee_commit: \"a\".repeat(40),\n\t\tcreated_at: \"2026-08-20T12:00:00.000Z\",\n\t},\n\tstarted_at: \"2026-08-20T12:00:01.000Z\",\n\tcompleted_at: \"2026-08-20T12:00:03.000Z\",\n\toutcome: {\n\t\tstatus: \"promoted\",\n\t\treason_code: \"promotion_qualified\",\n\t\treason_subcode: null,\n\t\trequest_id: request.request_id,\n\t\tidempotency_key: request.idempotency_key,\n\t\ttarget: request.target,\n\t\tselection: resolvedSelection,\n\t\treceipt: promotionReceipt,\n\t\tdiagnostics: { promoted_rows: 50 },\n\t},\n});\n\nconst jcsEdgeVector = {\n\tliterals: [null, true, false],\n\tnumbers: [Number(\"333333333.33333329\"), 1e30, 4.5, 0.002],\n\tstring: '€$\\u000f\\nA\\'B\"\\\\\"/',\n};\n\nexport const CONFORMANCE_FIXTURES = Object.freeze({\n\tfixture_id: \"market-data-vendor-backfill-conformance/v1\",\n\tdocuments: {\n\t\trequired_clock: requiredClock,\n\t\tarchive_selection: resolvedSelection,\n\t\trequest,\n\t\tpromotion_receipt: promotionReceipt,\n\t\tresult,\n\t},\n\tidentities: {\n\t\tidempotency_key: request.idempotency_key,\n\t\tclock_sha256: requiredClock.clock_sha256,\n\t\tinitial_selection_sha256: initialSelection.selection_sha256,\n\t\tselection_sha256: resolvedSelection.selection_sha256,\n\t\tpromotion_identity_sha256: promotionReceipt.promotion_identity_sha256,\n\t\treceipt_id: promotionReceipt.receipt_id,\n\t\tresult_sha256: result.result_sha256,\n\t\tcapability_policy_sha256: LEGACY_CAPABILITY_POLICY.policy_sha256,\n\t\tresource_policy_sha256: RESOURCE_POLICY.policy_sha256,\n\t},\n\tjcs_edge_vector: jcsEdgeVector,\n\thashes: { jcs_edge_vector_sha256: jcsSha256(jcsEdgeVector) },\n});\n",
161
- "import { createHash } from \"node:crypto\";\nimport { decompress } from \"fzstd\";\nimport { parquetReadObjects } from \"hyparquet\";\nimport { buildCanonicalOrderBookRows } from \"../market-data-archive/canonical-orderbook\";\nimport {\n\tCHECKSUM_ALGORITHM,\n\tMARKET_CAPTURE_SCHEMA_VERSION,\n\tsha256Canonical,\n} from \"../market-data-archive/capture-contract\";\nimport type {\n\tMarketCaptureContext,\n\tRawCapture,\n} from \"../market-data-archive/types\";\nimport {\n\ttype BackfillArchiveRow,\n\tEXTERNAL_BACKFILL_SOURCE,\n\tHISTORICAL_VENDOR_SOURCE_MODE,\n\ttype MarketDataVendorBackfillRequest,\n\ttype ProviderCapability,\n\ttype ProviderObjectEvidence,\n\tVENDOR_DATASET_RAW_CAPTURE_SCOPE,\n} from \"./contracts\";\nimport type { NormalizedBackfill, ProviderDataset } from \"./core\";\nimport { semanticDigest } from \"./semantic-verification\";\n\nexport const CRYPTOHFTDATA_ADAPTER_VERSION =\n\t\"cryptohftdata-orderbook/v2\" as const;\nexport const CRYPTOHFTDATA_API_URL = \"https://api.cryptohftdata.com\" as const;\nconst CRYPTOHFTDATA_HISTORY_START_MS = Date.UTC(2025, 5, 28);\nconst HOUR_MS = 60 * 60 * 1_000;\n\nexport type CryptoHftDataCapabilityProfile = Readonly<{\n\tprofileId: string;\n\texchange: string;\n\ttradingPair: string;\n\tsourceSymbol: string;\n\tmarketType: \"spot\" | \"swap\" | \"future\";\n\tproviderExchangeId: string;\n\thistoryStartMs: number;\n\tmaxDepth: number;\n\teventTimeUnit: \"milliseconds\";\n\treceivedTimeUnit: \"nanoseconds\";\n\tsnapshotGrouping:\n\t\t| \"event_time_last_update_id_object\"\n\t\t| \"event_time_final_update_id_object\";\n\tsequenceSemantics: \"binance_u_U_pu\" | \"okx_seq_id_prev_seq_id\";\n\tconstructionModes: readonly [\"sampled_top_n_snapshot\"];\n\tsourcePolicies: readonly (\"authoritative_window\" | \"fill_gaps\")[];\n}>;\n\n// This profile is exported for explicit enablement by a conformance-tested\n// consumer. The adapter's default registry is deliberately empty: possession\n// of a provider credential must never advertise an unverified data profile.\nexport const CRYPTOHFTDATA_BINANCE_SPOT_BTCUSDT_PROFILE: CryptoHftDataCapabilityProfile =\n\tObject.freeze({\n\t\tprofileId: \"cryptohftdata/binance_spot/BTCUSDT/v1\",\n\t\texchange: \"binance\",\n\t\ttradingPair: \"BTC-USDT\",\n\t\tsourceSymbol: \"BTCUSDT\",\n\t\tmarketType: \"spot\",\n\t\tproviderExchangeId: \"binance_spot\",\n\t\thistoryStartMs: CRYPTOHFTDATA_HISTORY_START_MS,\n\t\tmaxDepth: 500,\n\t\teventTimeUnit: \"milliseconds\",\n\t\treceivedTimeUnit: \"nanoseconds\",\n\t\tsnapshotGrouping: \"event_time_last_update_id_object\",\n\t\tsequenceSemantics: \"binance_u_U_pu\",\n\t\tconstructionModes: [\"sampled_top_n_snapshot\"] as const,\n\t\tsourcePolicies: [\"authoritative_window\"] as const,\n\t});\n\n// This profile is pinned to a live-proven object containing a complete OKX\n// snapshot followed by a contiguous seqId/prevSeqId update chain.\nexport const CRYPTOHFTDATA_OKX_SPOT_ARBUSDT_PROFILE: CryptoHftDataCapabilityProfile =\n\tObject.freeze({\n\t\tprofileId: \"cryptohftdata/okx_spot/ARB-USDT/v1\",\n\t\texchange: \"okx\",\n\t\ttradingPair: \"ARB-USDT\",\n\t\tsourceSymbol: \"ARB-USDT\",\n\t\tmarketType: \"spot\",\n\t\tproviderExchangeId: \"okx_spot\",\n\t\thistoryStartMs: CRYPTOHFTDATA_HISTORY_START_MS,\n\t\tmaxDepth: 400,\n\t\teventTimeUnit: \"milliseconds\",\n\t\treceivedTimeUnit: \"nanoseconds\",\n\t\tsnapshotGrouping: \"event_time_final_update_id_object\",\n\t\tsequenceSemantics: \"okx_seq_id_prev_seq_id\",\n\t\tconstructionModes: [\"sampled_top_n_snapshot\"] as const,\n\t\tsourcePolicies: [\"authoritative_window\", \"fill_gaps\"] as const,\n\t});\n\nexport class CryptoHftDataError extends Error {\n\tconstructor(readonly reason: string) {\n\t\tsuper(`CryptoHFTData backfill failed: ${reason}`);\n\t\tthis.name = \"CryptoHftDataError\";\n\t}\n}\n\nexport type CryptoHftDataOrderBookRow = {\n\treceived_time: string | number | bigint;\n\tevent_time: string | number | bigint;\n\ttransaction_time?: string | number | bigint | null;\n\tsymbol: string;\n\tevent_type: \"snapshot\" | \"update\";\n\tfirst_update_id?: string | number | bigint | null;\n\tfinal_update_id?: string | number | bigint | null;\n\tprev_final_update_id?: string | number | bigint | null;\n\tlast_update_id?: string | number | bigint | null;\n\tside: \"bid\" | \"ask\";\n\tprice: string;\n\tquantity: string;\n\torder_count?: string | number | bigint | null;\n\tdataset_object_identity: string;\n\tdataset_object_checksum: string;\n};\n\nexport type ReconstructedCryptoHftBook = {\n\ttargetTimeMs: number;\n\tsourceTimeMs: number;\n\treceivedTimeMs: number;\n\tsequence: string;\n\tbids: number[][];\n\tasks: number[][];\n\tdatasetObjectIdentity: string;\n\tdatasetObjectChecksum: string;\n};\n\nexport function cryptoHftDataCapabilityFor(\n\trequest: MarketDataVendorBackfillRequest,\n\tprofiles: readonly CryptoHftDataCapabilityProfile[] = [],\n): ProviderCapability | undefined {\n\tif (\n\t\trequest.providerPolicy.provider !== \"cryptohftdata\" ||\n\t\trequest.scope.feed !== \"ORDERBOOK\" ||\n\t\trequest.scope.exchange.trim().toLowerCase() === \"mexc\"\n\t) {\n\t\treturn undefined;\n\t}\n\tconst profile = profiles.find(\n\t\t(candidate) =>\n\t\t\tcandidate.exchange === request.scope.exchange.trim().toLowerCase() &&\n\t\t\tcandidate.tradingPair === request.scope.tradingPair &&\n\t\t\tcandidate.sourceSymbol === request.scope.sourceSymbol &&\n\t\t\tcandidate.marketType === request.scope.marketType &&\n\t\t\tcandidate.constructionModes.includes(request.constructionMode as never) &&\n\t\t\tcandidate.sourcePolicies.includes(request.sourcePolicy as never) &&\n\t\t\trequest.window.startTimeMs >= candidate.historyStartMs &&\n\t\t\trequest.depth <= candidate.maxDepth,\n\t);\n\tif (!profile) return undefined;\n\treturn {\n\t\tprovider: \"cryptohftdata\",\n\t\tadapterVersion: CRYPTOHFTDATA_ADAPTER_VERSION,\n\t\tproviderExchangeId: profile.providerExchangeId,\n\t\tresolvedSymbol: profile.sourceSymbol,\n\t};\n}\n\nfunction utcHourPath(hourMs: number): { date: string; hour: string } {\n\tconst date = new Date(hourMs);\n\treturn {\n\t\tdate: `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, \"0\")}-${String(date.getUTCDate()).padStart(2, \"0\")}`,\n\t\thour: String(date.getUTCHours()).padStart(2, \"0\"),\n\t};\n}\n\nexport function enumerateCryptoHftDataObjects(\n\trequest: MarketDataVendorBackfillRequest,\n\tproviderExchangeId: string,\n\tresolvedSymbol: string,\n): string[] {\n\tif (request.sourcePolicy === \"fill_gaps\") {\n\t\tconst hours = new Set<number>();\n\t\tfor (const targetTimeMs of request.requiredClockTargetsMs) {\n\t\t\tconst firstHour =\n\t\t\t\tMath.floor(\n\t\t\t\t\tMath.max(0, targetTimeMs - request.budgets.maxBoundaryLookbackMs) /\n\t\t\t\t\t\tHOUR_MS,\n\t\t\t\t) * HOUR_MS;\n\t\t\tconst lastHour = Math.floor(targetTimeMs / HOUR_MS) * HOUR_MS;\n\t\t\tfor (let hourMs = firstHour; hourMs <= lastHour; hourMs += HOUR_MS) {\n\t\t\t\thours.add(hourMs);\n\t\t\t}\n\t\t}\n\t\treturn [...hours]\n\t\t\t.sort((left, right) => left - right)\n\t\t\t.map((hourMs) => {\n\t\t\t\tconst utc = utcHourPath(hourMs);\n\t\t\t\treturn `${providerExchangeId}/${utc.date}/${utc.hour}/${resolvedSymbol}_orderbook.parquet.zst`;\n\t\t\t});\n\t}\n\tconst firstHour =\n\t\tMath.floor(\n\t\t\t(request.window.startTimeMs - request.budgets.maxBoundaryLookbackMs) /\n\t\t\t\tHOUR_MS,\n\t\t) * HOUR_MS;\n\tconst objects: string[] = [];\n\tfor (\n\t\tlet hourMs = Math.max(0, firstHour);\n\t\thourMs < request.window.endTimeMs;\n\t\thourMs += HOUR_MS\n\t) {\n\t\tconst utc = utcHourPath(hourMs);\n\t\tobjects.push(\n\t\t\t`${providerExchangeId}/${utc.date}/${utc.hour}/${resolvedSymbol}_orderbook.parquet.zst`,\n\t\t);\n\t}\n\treturn objects;\n}\n\nfunction initialArchiveCoversTarget(\n\trequest: MarketDataVendorBackfillRequest,\n\ttargetTimeMs: number,\n): boolean {\n\treturn (request.initialSelection?.support_anchors ?? []).some((anchor) => {\n\t\tconst sourceTimeMs = Date.parse(anchor.source_time);\n\t\treturn (\n\t\t\tNumber.isSafeInteger(sourceTimeMs) &&\n\t\t\tsourceTimeMs <= targetTimeMs &&\n\t\t\ttargetTimeMs - sourceTimeMs <= request.maxPriorAsOfLagMs\n\t\t);\n\t});\n}\n\nexport function providerAcquisitionRequest(\n\trequest: MarketDataVendorBackfillRequest,\n): MarketDataVendorBackfillRequest {\n\tif (request.sourcePolicy !== \"fill_gaps\") return request;\n\tconst requiredClockTargetsMs = request.requiredClockTargetsMs.filter(\n\t\t(targetTimeMs) => !initialArchiveCoversTarget(request, targetTimeMs),\n\t);\n\tif (requiredClockTargetsMs.length === 0) {\n\t\tthrow new CryptoHftDataError(\"fill_gaps_has_no_uncovered_clock_targets\");\n\t}\n\treturn { ...request, requiredClockTargetsMs };\n}\n\nfunction unsignedString(\n\tvalue: string | number | bigint | null | undefined,\n\tfield: string,\n\trequired = false,\n): string | undefined {\n\tif (value === null || value === undefined) {\n\t\tif (required) throw new CryptoHftDataError(`schema_${field}_missing`);\n\t\treturn undefined;\n\t}\n\tconst rendered = String(value);\n\tif (!/^\\d+$/.test(rendered)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\tconst parsed = BigInt(rendered);\n\tif (parsed > 18_446_744_073_709_551_615n) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_exceeds_uint64`);\n\t}\n\treturn parsed.toString(10);\n}\n\nfunction timestampMs(\n\tvalue: string | number | bigint,\n\tfield: \"received_time\" | \"event_time\",\n): number {\n\tconst rendered = String(value);\n\tif (!/^\\d+$/.test(rendered)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\tconst raw = BigInt(rendered);\n\tconst milliseconds = field === \"received_time\" ? raw / 1_000_000n : raw;\n\tif (milliseconds > BigInt(Number.MAX_SAFE_INTEGER)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_unsafe`);\n\t}\n\treturn Number(milliseconds);\n}\n\nfunction decimal(value: string, field: string, allowZero: boolean): number {\n\tif (!/^(?:0|[1-9]\\d*)(?:\\.\\d+)?$/.test(value)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\tconst parsed = Number(value);\n\tif (!Number.isFinite(parsed) || (allowZero ? parsed < 0 : parsed <= 0)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\treturn parsed;\n}\n\nfunction validatedRow(\n\trequest: MarketDataVendorBackfillRequest,\n\trow: CryptoHftDataOrderBookRow,\n): CryptoHftDataOrderBookRow & {\n\teventTimeMs: number;\n\treceivedTimeMs: number;\n} {\n\tif (row.symbol !== request.scope.sourceSymbol) {\n\t\tthrow new CryptoHftDataError(\"schema_symbol_mismatch\");\n\t}\n\tif (row.event_type !== \"snapshot\" && row.event_type !== \"update\") {\n\t\tthrow new CryptoHftDataError(\"schema_event_type_invalid\");\n\t}\n\tif (row.side !== \"bid\" && row.side !== \"ask\") {\n\t\tthrow new CryptoHftDataError(\"schema_side_invalid\");\n\t}\n\tdecimal(row.price, \"price\", false);\n\tdecimal(row.quantity, \"quantity\", true);\n\tif (!/^[a-f0-9]{64}$/.test(row.dataset_object_checksum)) {\n\t\tthrow new CryptoHftDataError(\"schema_object_checksum_invalid\");\n\t}\n\tconst eventTimeMs = timestampMs(row.event_time, \"event_time\");\n\tconst receivedTimeMs = timestampMs(row.received_time, \"received_time\");\n\tif (receivedTimeMs < eventTimeMs) {\n\t\tthrow new CryptoHftDataError(\"received_time_precedes_event_time\");\n\t}\n\treturn { ...row, eventTimeMs, receivedTimeMs };\n}\n\nfunction groupKey(\n\trow: ReturnType<typeof validatedRow>,\n\tprofile: CryptoHftDataCapabilityProfile,\n): string {\n\tconst sequence =\n\t\trow.event_type === \"snapshot\"\n\t\t\t? profile.snapshotGrouping === \"event_time_final_update_id_object\"\n\t\t\t\t? unsignedString(row.final_update_id, \"final_update_id\", true)\n\t\t\t\t: unsignedString(row.last_update_id, \"last_update_id\", true)\n\t\t\t: unsignedString(row.final_update_id, \"final_update_id\", true);\n\treturn [\n\t\trow.event_type,\n\t\trow.eventTimeMs,\n\t\tsequence,\n\t\trow.dataset_object_identity,\n\t].join(\"\\u0000\");\n}\n\nfunction absent(value: string | number | bigint | null | undefined): boolean {\n\treturn value === null || value === undefined;\n}\n\nfunction snapshotSequence(\n\trow: ReturnType<typeof validatedRow>,\n\tprofile: CryptoHftDataCapabilityProfile,\n): string {\n\tif (profile.sequenceSemantics === \"okx_seq_id_prev_seq_id\") {\n\t\tif (String(row.last_update_id) !== \"-1\") {\n\t\t\tthrow new CryptoHftDataError(\"schema_last_update_id_snapshot_sentinel\");\n\t\t}\n\t\tif (!absent(row.first_update_id) || !absent(row.prev_final_update_id)) {\n\t\t\tthrow new CryptoHftDataError(\"ambiguous_snapshot_group\");\n\t\t}\n\t\treturn unsignedString(\n\t\t\trow.final_update_id,\n\t\t\t\"final_update_id\",\n\t\t\ttrue,\n\t\t) as string;\n\t}\n\treturn unsignedString(row.last_update_id, \"last_update_id\", true) as string;\n}\n\ntype BookState = {\n\tbids: Map<string, number>;\n\tasks: Map<string, number>;\n\tsequence: string;\n\tsourceTimeMs: number;\n\treceivedTimeMs: number;\n\tdatasetObjectIdentity: string;\n\tdatasetObjectChecksum: string;\n};\n\nfunction sortedSide(\n\tlevels: ReadonlyMap<string, number>,\n\tside: \"bid\" | \"ask\",\n): number[][] {\n\treturn [...levels.entries()]\n\t\t.map(([price, quantity]) => [Number(price), quantity])\n\t\t.sort((left, right) =>\n\t\t\tside === \"bid\"\n\t\t\t\t? (right[0] as number) - (left[0] as number)\n\t\t\t\t: (left[0] as number) - (right[0] as number),\n\t\t);\n}\n\nfunction applyRows(\n\tstate: BookState,\n\trows: ReturnType<typeof validatedRow>[],\n): void {\n\tfor (const row of rows) {\n\t\tconst levels = row.side === \"bid\" ? state.bids : state.asks;\n\t\tconst quantity = decimal(row.quantity, \"quantity\", true);\n\t\tif (quantity === 0) levels.delete(row.price);\n\t\telse levels.set(row.price, quantity);\n\t}\n}\n\nexport function reconstructCryptoHftDataOrderBooks(\n\trequest: MarketDataVendorBackfillRequest,\n\tinputRows: readonly CryptoHftDataOrderBookRow[],\n\tprofile: CryptoHftDataCapabilityProfile = CRYPTOHFTDATA_BINANCE_SPOT_BTCUSDT_PROFILE,\n): ReconstructedCryptoHftBook[] {\n\tconst rows = inputRows\n\t\t.map((row, index) => ({\n\t\t\t...validatedRow(request, row),\n\t\t\toriginalIndex: index,\n\t\t}))\n\t\t.sort(\n\t\t\t(left, right) =>\n\t\t\t\tleft.eventTimeMs - right.eventTimeMs ||\n\t\t\t\tleft.originalIndex - right.originalIndex,\n\t\t);\n\tconst groups: Array<ReturnType<typeof validatedRow>[]> = [];\n\tfor (const row of rows) {\n\t\tconst current = groups.at(-1);\n\t\tif (\n\t\t\t!current ||\n\t\t\tgroupKey(current[0] as ReturnType<typeof validatedRow>, profile) !==\n\t\t\t\tgroupKey(row, profile)\n\t\t) {\n\t\t\tgroups.push([row]);\n\t\t} else {\n\t\t\tcurrent.push(row);\n\t\t}\n\t}\n\n\tconst earliestTargetTimeMs = Math.min(...request.requiredClockTargetsMs);\n\tconst latestTargetTimeMs = Math.max(...request.requiredClockTargetsMs);\n\tconst anchorIndex = groups.findIndex((group) => {\n\t\tconst first = group[0] as ReturnType<typeof validatedRow>;\n\t\treturn (\n\t\t\tfirst.event_type === \"snapshot\" &&\n\t\t\tfirst.eventTimeMs <= earliestTargetTimeMs\n\t\t);\n\t});\n\tif (anchorIndex < 0) {\n\t\tthrow new CryptoHftDataError(\"update_before_snapshot\");\n\t}\n\n\tlet state: BookState | undefined;\n\tlet previousFinalUpdateId: bigint | undefined;\n\tconst states: BookState[] = [];\n\tfor (const group of groups.slice(anchorIndex)) {\n\t\tconst first = group[0] as ReturnType<typeof validatedRow>;\n\t\tif (first.eventTimeMs > latestTargetTimeMs) break;\n\t\tif (first.event_type === \"snapshot\") {\n\t\t\tconst sequence = snapshotSequence(first, profile);\n\t\t\tfor (const row of group) {\n\t\t\t\tif (snapshotSequence(row, profile) !== sequence) {\n\t\t\t\t\tthrow new CryptoHftDataError(\"ambiguous_snapshot_group\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (\n\t\t\t\tprofile.sequenceSemantics === \"binance_u_U_pu\" &&\n\t\t\t\tpreviousFinalUpdateId !== undefined &&\n\t\t\t\tBigInt(sequence) < previousFinalUpdateId\n\t\t\t) {\n\t\t\t\tthrow new CryptoHftDataError(\"snapshot_sequence_regression\");\n\t\t\t}\n\t\t\tstate = {\n\t\t\t\tbids: new Map(),\n\t\t\t\tasks: new Map(),\n\t\t\t\tsequence,\n\t\t\t\tsourceTimeMs: first.eventTimeMs,\n\t\t\t\treceivedTimeMs: Math.max(\n\t\t\t\t\t...group.map(({ receivedTimeMs }) => receivedTimeMs),\n\t\t\t\t),\n\t\t\t\tdatasetObjectIdentity: first.dataset_object_identity,\n\t\t\t\tdatasetObjectChecksum: first.dataset_object_checksum,\n\t\t\t};\n\t\t\tapplyRows(state, group);\n\t\t\tpreviousFinalUpdateId = BigInt(sequence);\n\t\t} else {\n\t\t\tif (!state || previousFinalUpdateId === undefined) {\n\t\t\t\tthrow new CryptoHftDataError(\"update_before_snapshot\");\n\t\t\t}\n\t\t\tconst finalUpdate = BigInt(\n\t\t\t\tunsignedString(\n\t\t\t\t\tfirst.final_update_id,\n\t\t\t\t\t\"final_update_id\",\n\t\t\t\t\ttrue,\n\t\t\t\t) as string,\n\t\t\t);\n\t\t\tif (profile.sequenceSemantics === \"okx_seq_id_prev_seq_id\") {\n\t\t\t\tif (\n\t\t\t\t\t!absent(first.first_update_id) ||\n\t\t\t\t\t!absent(first.prev_final_update_id)\n\t\t\t\t) {\n\t\t\t\t\tthrow new CryptoHftDataError(\"ambiguous_update_group\");\n\t\t\t\t}\n\t\t\t\tconst previous = unsignedString(\n\t\t\t\t\tfirst.last_update_id,\n\t\t\t\t\t\"last_update_id\",\n\t\t\t\t\ttrue,\n\t\t\t\t) as string;\n\t\t\t\tfor (const row of group) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!absent(row.first_update_id) ||\n\t\t\t\t\t\t!absent(row.prev_final_update_id) ||\n\t\t\t\t\t\tunsignedString(row.final_update_id, \"final_update_id\", true) !==\n\t\t\t\t\t\t\tfinalUpdate.toString() ||\n\t\t\t\t\t\tunsignedString(row.last_update_id, \"last_update_id\", true) !==\n\t\t\t\t\t\t\tprevious\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow new CryptoHftDataError(\"ambiguous_update_group\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (BigInt(previous) !== previousFinalUpdateId) {\n\t\t\t\t\tthrow new CryptoHftDataError(\"update_chain_gap\");\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst firstUpdate = BigInt(\n\t\t\t\t\tunsignedString(\n\t\t\t\t\t\tfirst.first_update_id,\n\t\t\t\t\t\t\"first_update_id\",\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t) as string,\n\t\t\t\t);\n\t\t\t\tconst previous = unsignedString(\n\t\t\t\t\tfirst.prev_final_update_id,\n\t\t\t\t\t\"prev_final_update_id\",\n\t\t\t\t);\n\t\t\t\tfor (const row of group) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tunsignedString(row.first_update_id, \"first_update_id\", true) !==\n\t\t\t\t\t\t\tfirstUpdate.toString() ||\n\t\t\t\t\t\tunsignedString(row.final_update_id, \"final_update_id\", true) !==\n\t\t\t\t\t\t\tfinalUpdate.toString() ||\n\t\t\t\t\t\tunsignedString(row.prev_final_update_id, \"prev_final_update_id\") !==\n\t\t\t\t\t\t\tprevious\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow new CryptoHftDataError(\"ambiguous_update_group\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst expected = previousFinalUpdateId + 1n;\n\t\t\t\tif (\n\t\t\t\t\tfirstUpdate > expected ||\n\t\t\t\t\tfinalUpdate < expected ||\n\t\t\t\t\t(previous !== undefined && BigInt(previous) !== previousFinalUpdateId)\n\t\t\t\t) {\n\t\t\t\t\tthrow new CryptoHftDataError(\"update_chain_gap\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tapplyRows(state, group);\n\t\t\tstate.sequence = finalUpdate.toString();\n\t\t\tstate.sourceTimeMs = first.eventTimeMs;\n\t\t\tstate.receivedTimeMs = Math.max(\n\t\t\t\t...group.map(({ receivedTimeMs }) => receivedTimeMs),\n\t\t\t);\n\t\t\tstate.datasetObjectIdentity = first.dataset_object_identity;\n\t\t\tstate.datasetObjectChecksum = first.dataset_object_checksum;\n\t\t\tpreviousFinalUpdateId = finalUpdate;\n\t\t}\n\t\tif (state) {\n\t\t\tstates.push({\n\t\t\t\t...state,\n\t\t\t\tbids: new Map(state.bids),\n\t\t\t\tasks: new Map(state.asks),\n\t\t\t});\n\t\t}\n\t}\n\n\tconst samples: ReconstructedCryptoHftBook[] = [];\n\tfor (const targetTimeMs of request.requiredClockTargetsMs) {\n\t\tlet prior: BookState | undefined;\n\t\tfor (const candidate of states) {\n\t\t\tif (candidate.sourceTimeMs > targetTimeMs) break;\n\t\t\tprior = candidate;\n\t\t}\n\t\tif (\n\t\t\t!prior ||\n\t\t\ttargetTimeMs - prior.sourceTimeMs > request.maxPriorAsOfLagMs\n\t\t) {\n\t\t\tthrow new CryptoHftDataError(\"required_clock_coverage_insufficient\");\n\t\t}\n\t\tconst bids = sortedSide(prior.bids, \"bid\").slice(0, request.depth);\n\t\tconst asks = sortedSide(prior.asks, \"ask\").slice(0, request.depth);\n\t\tif (bids.length === 0 || asks.length === 0) {\n\t\t\tthrow new CryptoHftDataError(\"book_side_missing\");\n\t\t}\n\t\tif ((bids[0]?.[0] as number) >= (asks[0]?.[0] as number)) {\n\t\t\tthrow new CryptoHftDataError(\"book_crossed_or_locked\");\n\t\t}\n\t\tsamples.push({\n\t\t\ttargetTimeMs,\n\t\t\tsourceTimeMs: prior.sourceTimeMs,\n\t\t\treceivedTimeMs: prior.receivedTimeMs,\n\t\t\tsequence: prior.sequence,\n\t\t\tbids,\n\t\t\tasks,\n\t\t\tdatasetObjectIdentity: prior.datasetObjectIdentity,\n\t\t\tdatasetObjectChecksum: prior.datasetObjectChecksum,\n\t\t});\n\t}\n\treturn samples;\n}\n\nfunction sha256Bytes(bytes: Uint8Array): string {\n\treturn createHash(\"sha256\").update(bytes).digest(\"hex\");\n}\n\nexport async function decodeCryptoHftParquetZstd(\n\tbytes: Uint8Array,\n): Promise<Record<string, unknown>[]> {\n\tconst parquet = decompress(bytes);\n\tconst buffer = parquet.buffer.slice(\n\t\tparquet.byteOffset,\n\t\tparquet.byteOffset + parquet.byteLength,\n\t) as ArrayBuffer;\n\treturn parquetReadObjects({ file: buffer });\n}\n\ntype CryptoHftDataAdapterOptions = {\n\tbaseUrl?: string;\n\tfetch?: typeof fetch;\n\tnowMs?: () => number;\n\tdecode?: (bytes: Uint8Array) => Promise<Record<string, unknown>[]>;\n\tprofiles?: readonly CryptoHftDataCapabilityProfile[];\n};\n\nfunction parsedDatasetRow(\n\tvalue: Record<string, unknown>,\n\tobject: ProviderObjectEvidence,\n): CryptoHftDataOrderBookRow {\n\treturn {\n\t\treceived_time: value.received_time as string | number | bigint,\n\t\tevent_time: value.event_time as string | number | bigint,\n\t\ttransaction_time: value.transaction_time as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tsymbol: value.symbol as string,\n\t\tevent_type: value.event_type as \"snapshot\" | \"update\",\n\t\tfirst_update_id: value.first_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tfinal_update_id: value.final_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tprev_final_update_id: value.prev_final_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tlast_update_id: value.last_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tside: value.side as \"bid\" | \"ask\",\n\t\tprice: value.price as string,\n\t\tquantity: value.quantity as string,\n\t\torder_count: value.order_count as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tdataset_object_identity: object.identity,\n\t\tdataset_object_checksum: object.checksum,\n\t};\n}\n\nasync function readBoundedObject(\n\tresponse: Response,\n\tremainingBytes: number,\n): Promise<Uint8Array> {\n\tif (!response.body) return new Uint8Array();\n\tconst reader = response.body.getReader();\n\tconst chunks: Uint8Array[] = [];\n\tlet total = 0;\n\twhile (true) {\n\t\tconst { done, value } = await reader.read();\n\t\tif (done) break;\n\t\ttotal += value.byteLength;\n\t\tif (total > remainingBytes) {\n\t\t\tawait reader.cancel();\n\t\t\tthrow new CryptoHftDataError(\"budget_max_bytes_exceeded\");\n\t\t}\n\t\tchunks.push(value);\n\t}\n\tconst bytes = new Uint8Array(total);\n\tlet offset = 0;\n\tfor (const chunk of chunks) {\n\t\tbytes.set(chunk, offset);\n\t\toffset += chunk.byteLength;\n\t}\n\treturn bytes;\n}\n\nexport class CryptoHftDataAdapter {\n\tprivate readonly baseUrl: string;\n\tprivate readonly request: typeof fetch;\n\tprivate readonly nowMs: () => number;\n\tprivate readonly decode: (\n\t\tbytes: Uint8Array,\n\t) => Promise<Record<string, unknown>[]>;\n\tprivate readonly profiles: readonly CryptoHftDataCapabilityProfile[];\n\n\tconstructor(options: CryptoHftDataAdapterOptions = {}) {\n\t\tthis.baseUrl = options.baseUrl ?? CRYPTOHFTDATA_API_URL;\n\t\tthis.request = options.fetch ?? fetch;\n\t\tthis.nowMs = options.nowMs ?? Date.now;\n\t\tthis.decode = options.decode ?? decodeCryptoHftParquetZstd;\n\t\tthis.profiles = options.profiles ?? [];\n\t}\n\n\tcapabilityFor(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t): ProviderCapability | undefined {\n\t\treturn cryptoHftDataCapabilityFor(request, this.profiles);\n\t}\n\n\tasync discoverSymbols(providerExchangeId: string): Promise<string[]> {\n\t\tif (!/^[a-z0-9_]+$/.test(providerExchangeId)) {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_exchange_invalid\");\n\t\t}\n\t\tconst endpoint = new URL(\"/symbols\", this.baseUrl);\n\t\tendpoint.searchParams.set(\"exchange\", providerExchangeId);\n\t\tendpoint.searchParams.set(\"data_type\", \"orderbook\");\n\t\tlet response: Response;\n\t\ttry {\n\t\t\tresponse = await this.request(endpoint);\n\t\t} catch {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_failed\");\n\t\t}\n\t\tif (!response.ok) {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_failed\");\n\t\t}\n\t\tlet body: unknown;\n\t\ttry {\n\t\t\tbody = await response.json();\n\t\t} catch {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_response_invalid\");\n\t\t}\n\t\tconst record = body as Record<string, unknown>;\n\t\tif (\n\t\t\t!body ||\n\t\t\ttypeof body !== \"object\" ||\n\t\t\tArray.isArray(body) ||\n\t\t\tString(record.exchange).toLowerCase() !== providerExchangeId ||\n\t\t\tString(record.data_type).toLowerCase() !== \"orderbook\" ||\n\t\t\t!Array.isArray(record.symbols) ||\n\t\t\t!record.symbols.every(\n\t\t\t\t(symbol) => typeof symbol === \"string\" && /^[A-Z0-9_-]+$/.test(symbol),\n\t\t\t)\n\t\t) {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_response_invalid\");\n\t\t}\n\t\treturn [...new Set(record.symbols as string[])].sort();\n\t}\n\n\tasync acquire(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t\tcapability: ProviderCapability,\n\t\tcredential: unknown,\n\t): Promise<ProviderDataset<CryptoHftDataOrderBookRow>> {\n\t\tconst apiKey =\n\t\t\tcredential && typeof credential === \"object\"\n\t\t\t\t? (credential as { apiKey?: unknown }).apiKey\n\t\t\t\t: undefined;\n\t\tif (typeof apiKey !== \"string\" || apiKey.length === 0) {\n\t\t\tthrow new CryptoHftDataError(\"credentials_invalid\");\n\t\t}\n\t\tconst paths = enumerateCryptoHftDataObjects(\n\t\t\trequest,\n\t\t\tcapability.providerExchangeId,\n\t\t\tcapability.resolvedSymbol,\n\t\t);\n\t\tif (paths.length > request.budgets.maxFiles) {\n\t\t\tthrow new CryptoHftDataError(\"budget_max_files_exceeded\");\n\t\t}\n\t\tconst started = this.nowMs();\n\t\tconst tokenResponse = await this.request(`${this.baseUrl}/jwt-token`, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"content-type\": \"application/json\", \"X-API-Key\": apiKey },\n\t\t});\n\t\tif (!tokenResponse.ok) throw new CryptoHftDataError(\"jwt_issuance_failed\");\n\t\tconst tokenBody = (await tokenResponse.json()) as { jwt_token?: unknown };\n\t\tif (typeof tokenBody.jwt_token !== \"string\" || !tokenBody.jwt_token) {\n\t\t\tthrow new CryptoHftDataError(\"jwt_response_invalid\");\n\t\t}\n\n\t\tlet totalBytes = 0;\n\t\tlet totalRows = 0;\n\t\tconst objects: ProviderObjectEvidence[] = [];\n\t\tconst rows: CryptoHftDataOrderBookRow[] = [];\n\t\tfor (const path of paths) {\n\t\t\tif (this.nowMs() - started > request.budgets.maxDurationMs) {\n\t\t\t\tthrow new CryptoHftDataError(\"budget_max_duration_exceeded\");\n\t\t\t}\n\t\t\tconst endpoint = new URL(\"/download\", this.baseUrl);\n\t\t\tendpoint.searchParams.set(\"file\", path);\n\t\t\tconst response = await this.request(endpoint, {\n\t\t\t\theaders: { Authorization: `Bearer ${tokenBody.jwt_token}` },\n\t\t\t});\n\t\t\tif (!response.ok) throw new CryptoHftDataError(\"object_download_failed\");\n\t\t\tconst declaredBytes = Number(response.headers.get(\"content-length\"));\n\t\t\tif (\n\t\t\t\tNumber.isFinite(declaredBytes) &&\n\t\t\t\ttotalBytes + declaredBytes > request.budgets.maxBytes\n\t\t\t) {\n\t\t\t\tthrow new CryptoHftDataError(\"budget_max_bytes_exceeded\");\n\t\t\t}\n\t\t\tconst bytes = await readBoundedObject(\n\t\t\t\tresponse,\n\t\t\t\trequest.budgets.maxBytes - totalBytes,\n\t\t\t);\n\t\t\ttotalBytes += bytes.byteLength;\n\t\t\tif (totalBytes > request.budgets.maxBytes) {\n\t\t\t\tthrow new CryptoHftDataError(\"budget_max_bytes_exceeded\");\n\t\t\t}\n\t\t\tconst decoded = await this.decode(bytes);\n\t\t\ttotalRows += decoded.length;\n\t\t\tif (totalRows > request.budgets.maxRows) {\n\t\t\t\tthrow new CryptoHftDataError(\"budget_max_rows_exceeded\");\n\t\t\t}\n\t\t\tconst object = {\n\t\t\t\tidentity: path,\n\t\t\t\tchecksum: sha256Bytes(bytes),\n\t\t\t\tbytes: bytes.byteLength,\n\t\t\t\trows: decoded.length,\n\t\t\t};\n\t\t\tobjects.push(object);\n\t\t\tfor (const decodedRow of decoded) {\n\t\t\t\tconst parsed = parsedDatasetRow(decodedRow, object);\n\t\t\t\tvalidatedRow(request, parsed);\n\t\t\t\trows.push(parsed);\n\t\t\t}\n\t\t}\n\t\tif (this.nowMs() - started > request.budgets.maxDurationMs) {\n\t\t\tthrow new CryptoHftDataError(\"budget_max_duration_exceeded\");\n\t\t}\n\t\treturn {\n\t\t\tobjects,\n\t\t\trows,\n\t\t\tvendorSemanticDigest: sha256Canonical(rows),\n\t\t};\n\t}\n\n\tasync normalize(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t\tcapability: ProviderCapability,\n\t\tdataset: ProviderDataset,\n\t\tcaptureBundleId: string,\n\t): Promise<NormalizedBackfill> {\n\t\tconst profile = this.profiles.find(\n\t\t\t(candidate) =>\n\t\t\t\tcandidate.exchange === request.scope.exchange.trim().toLowerCase() &&\n\t\t\t\tcandidate.tradingPair === request.scope.tradingPair &&\n\t\t\t\tcandidate.sourceSymbol === request.scope.sourceSymbol &&\n\t\t\t\tcandidate.marketType === request.scope.marketType &&\n\t\t\t\tcandidate.providerExchangeId === capability.providerExchangeId,\n\t\t);\n\t\tif (!profile) {\n\t\t\tthrow new CryptoHftDataError(\"profile_semantics_unavailable\");\n\t\t}\n\t\tconst samples = reconstructCryptoHftDataOrderBooks(\n\t\t\trequest,\n\t\t\tdataset.rows as CryptoHftDataOrderBookRow[],\n\t\t\tprofile,\n\t\t);\n\t\tconst context: MarketCaptureContext = {\n\t\t\tsource: EXTERNAL_BACKFILL_SOURCE,\n\t\t\tdeploymentId: \"market-data-vendor-backfill\",\n\t\t\tcaptureBundleId,\n\t\t\texchange: request.scope.exchange,\n\t\t\tsymbol: request.scope.tradingPair,\n\t\t\ttradingPair: request.scope.tradingPair,\n\t\t\tsourceSymbol: request.scope.sourceSymbol,\n\t\t\tassetType: request.scope.marketType,\n\t\t\tfeed: \"ORDERBOOK\",\n\t\t\tprovider: \"cryptohftdata\",\n\t\t\tsourceMode: HISTORICAL_VENDOR_SOURCE_MODE,\n\t\t\tschemaVersion: MARKET_CAPTURE_SCHEMA_VERSION,\n\t\t\tchecksumAlgorithm: CHECKSUM_ALGORITHM,\n\t\t\tprovenanceComplete: true,\n\t\t};\n\t\tconst rows = samples.flatMap((sample) => {\n\t\t\tconst rawCapture: RawCapture = {\n\t\t\t\trawCaptureId: sha256Canonical({\n\t\t\t\t\tcapture_bundle_id: captureBundleId,\n\t\t\t\t\tdataset_object_identity: sample.datasetObjectIdentity,\n\t\t\t\t\tdataset_object_checksum: sample.datasetObjectChecksum,\n\t\t\t\t\tsource_time_ms: sample.sourceTimeMs,\n\t\t\t\t\ttarget_time_ms: sample.targetTimeMs,\n\t\t\t\t}),\n\t\t\t\trawCaptureScope: VENDOR_DATASET_RAW_CAPTURE_SCOPE,\n\t\t\t\trawChecksum: sample.datasetObjectChecksum,\n\t\t\t\tredactedPayload: {\n\t\t\t\t\tdataset_object_identity: sample.datasetObjectIdentity,\n\t\t\t\t\tdataset_object_checksum: sample.datasetObjectChecksum,\n\t\t\t\t},\n\t\t\t\teventTimeMs: sample.sourceTimeMs,\n\t\t\t\treceivedTimeMs: sample.receivedTimeMs,\n\t\t\t\tchecksumAlgorithm: CHECKSUM_ALGORITHM,\n\t\t\t};\n\t\t\tconst canonical = buildCanonicalOrderBookRows({\n\t\t\t\tcontext,\n\t\t\t\trawCapture,\n\t\t\t\tdepthLimit: request.depth,\n\t\t\t\tconstructionMode: request.constructionMode,\n\t\t\t\tsnapshot: {\n\t\t\t\t\tbids: sample.bids,\n\t\t\t\t\tasks: sample.asks,\n\t\t\t\t\ttimestamp: sample.sourceTimeMs,\n\t\t\t\t\treceivedTimestamp: sample.receivedTimeMs,\n\t\t\t\t\texchange: request.scope.exchange,\n\t\t\t\t\tsymbol: request.scope.tradingPair,\n\t\t\t\t\tdepthLimit: request.depth,\n\t\t\t\t\tsequence: sample.sequence,\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn [...canonical.levels, canonical.summary];\n\t\t}) as BackfillArchiveRow[];\n\t\treturn {\n\t\t\tcaptureBundleId,\n\t\t\tobjects: dataset.objects,\n\t\t\trows,\n\t\t\tvendorSemanticDigest: dataset.vendorSemanticDigest,\n\t\t\tcanonicalSemanticDigest: semanticDigest(rows),\n\t\t};\n\t}\n}\n",
160
+ "import {\n\tARCHIVE_SELECTION_SCHEMA_ID,\n\tBACKFILL_REQUEST_SCHEMA_ID,\n\tBACKFILL_RESULT_SCHEMA_ID,\n\tcreateBackfillIdempotencyKey,\n\tfinalizeArchiveSelection,\n\tfinalizeBackfillResult,\n\tfinalizeRequiredClock,\n\tPROMOTION_RECEIPT_SCHEMA_ID,\n\tREQUIRED_CLOCK_SCHEMA_ID,\n} from \"./contracts\";\nimport { jcsSha256 } from \"./identity\";\nimport {\n\tEFFECTIVE_ACQUISITION_POLICY_PIN,\n\tEFFECTIVE_ADAPTER_POLICY_PIN,\n\tLEGACY_CAPABILITY_POLICY,\n\tLEGACY_RESOURCE_POLICY,\n\tSCHEMA_MANIFEST,\n} from \"./manifests\";\nimport { finalizePromotionReceipt } from \"./promotion\";\n\nconst requestId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f100\";\nconst attemptId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f101\";\nconst clockId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f102\";\nconst authorizationId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f103\";\nconst qualificationEventId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f104\";\nconst targetId = \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f105\";\nconst captureBundleId = \"d\".repeat(64);\nconst scope = {\n\texchange: \"okx\",\n\ttrading_pair: \"ARB-USDT\",\n\tmarket_type: \"spot\" as const,\n\tfeed: \"ORDERBOOK\" as const,\n};\nconst window = {\n\tstart_at: \"2026-08-18T09:27:15.000Z\",\n\tend_at: \"2026-08-18T09:27:17.000Z\",\n};\nconst coveragePolicy = {\n\tpolicy_id: \"prior-asof-strict/v1\" as const,\n\tmax_asof_lag_ms: 5_000,\n\tfuture_rows: \"reject\" as const,\n\tmissing_required_event: \"fail\" as const,\n};\n\nconst requiredClock = finalizeRequiredClock({\n\tschema_id: REQUIRED_CLOCK_SCHEMA_ID,\n\tclock_id: clockId,\n\tcreated_at: \"2026-08-20T12:00:00.000Z\",\n\ttargets: [{ target_id: targetId, target_at: \"2026-08-18T09:27:16.000Z\" }],\n});\n\nconst initialSelection = finalizeArchiveSelection({\n\tschema_id: ARCHIVE_SELECTION_SCHEMA_ID,\n\tscope,\n\trequired_clock: {\n\t\tclock_id: requiredClock.clock_id,\n\t\tclock_sha256: requiredClock.clock_sha256,\n\t\tevent_count: requiredClock.targets.length,\n\t},\n\tcoverage_policy: coveragePolicy,\n\tsource_policy: \"authoritative_window\",\n\tcoverage_class: \"missing\",\n\trequested_intervals: [window],\n\tselected_intervals: [],\n\tprecedence: [\"vendor\"],\n\tbundles: [],\n\tsupport_anchors: [],\n\treceipt_ids: [],\n\tqualification_event_ids: [],\n\tresolved_at: \"2026-08-20T12:00:00.000Z\",\n});\n\nconst requestContent = {\n\tschema_id: BACKFILL_REQUEST_SCHEMA_ID,\n\trequest_id: requestId,\n\tattempt_id: attemptId,\n\tscope,\n\twindow,\n\tdepth: 20,\n\tconstruction_mode: \"sampled_top_n_snapshot\" as const,\n\tsource_policy: \"authoritative_window\" as const,\n\ttarget: { environment: \"production\", cluster: \"cex-archive-primary\" },\n\tcoverage_policy: coveragePolicy,\n\trequired_clock: {\n\t\tschema_id: REQUIRED_CLOCK_SCHEMA_ID,\n\t\tclock_id: requiredClock.clock_id,\n\t\tfile_name: \"required-clock.json\",\n\t\tclock_sha256: requiredClock.clock_sha256,\n\t\tevent_count: requiredClock.targets.length,\n\t},\n\tinitial_selection: initialSelection,\n\texpected_canonical_schema: {\n\t\tschema_id: \"cex-order-book-canonical/v1\",\n\t\tschema_sha256: \"a\".repeat(64),\n\t},\n\tproduct_pins: {\n\t\tcapability_policy: {\n\t\t\tpolicy_id: LEGACY_CAPABILITY_POLICY.policy_id,\n\t\t\tpolicy_sha256: LEGACY_CAPABILITY_POLICY.policy_sha256,\n\t\t},\n\t\tresource_policy: {\n\t\t\tpolicy_id: LEGACY_RESOURCE_POLICY.policy_id,\n\t\t\tpolicy_sha256: LEGACY_RESOURCE_POLICY.policy_sha256,\n\t\t},\n\t},\n\tproduction_authorization_id: authorizationId,\n};\n\nconst request = {\n\t...requestContent,\n\tidempotency_key: createBackfillIdempotencyKey(requestContent),\n};\n\nconst promotionReceipt = finalizePromotionReceipt({\n\tschema_id: PROMOTION_RECEIPT_SCHEMA_ID,\n\tverified_at: \"2026-08-20T12:00:02.000Z\",\n\trequest_id: request.request_id,\n\tidempotency_key: request.idempotency_key,\n\tsource: \"external_backfill\",\n\tcapture_origin: \"vendor_historical_backfill\",\n\tsource_mode: \"vendor_historical_backfill_v1\",\n\tprovider: \"cryptohftdata\",\n\tadapter_version: \"cryptohftdata-orderbook/v2\",\n\teffective_policies: {\n\t\tcapability_policy: request.product_pins.capability_policy,\n\t\tresource_policy: request.product_pins.resource_policy,\n\t\tadapter_policy: EFFECTIVE_ADAPTER_POLICY_PIN,\n\t\tacquisition_policy: EFFECTIVE_ACQUISITION_POLICY_PIN,\n\t},\n\tcapture_bundle_id: captureBundleId,\n\tscope,\n\twindow,\n\tdepth: request.depth,\n\tconstruction_mode: request.construction_mode,\n\tcanonical_schema: request.expected_canonical_schema,\n\tcoverage_policy: coveragePolicy,\n\tselection_sha256: initialSelection.selection_sha256,\n\tvendor_semantic_digest: \"e\".repeat(64),\n\tcanonical_semantic_digest: \"f\".repeat(64),\n\tprefix_digest: \"1\".repeat(64),\n\tsuffix_digest: \"2\".repeat(64),\n\tseam_verified: true,\n\tcoverage_verified: true,\n\tdataset_objects: [\n\t\t{\n\t\t\tidentity: \"okx/spot/orderbook/hour/arb-usdt/2026-08-18t09\",\n\t\t\tchecksum: \"3\".repeat(64),\n\t\t\tbytes: 1_000,\n\t\t\trows: 50,\n\t\t},\n\t],\n});\n\nconst resolvedSelection = finalizeArchiveSelection({\n\tschema_id: ARCHIVE_SELECTION_SCHEMA_ID,\n\tscope,\n\trequired_clock: initialSelection.required_clock,\n\tcoverage_policy: coveragePolicy,\n\tsource_policy: \"authoritative_window\",\n\tcoverage_class: \"complete\",\n\trequested_intervals: [window],\n\tselected_intervals: [\n\t\t{\n\t\t\t...window,\n\t\t\tcapture_bundle_id: captureBundleId,\n\t\t\tcapture_origin: \"vendor_historical_backfill\",\n\t\t},\n\t],\n\tprecedence: [\"vendor\"],\n\tbundles: [\n\t\t{\n\t\t\tcapture_bundle_id: captureBundleId,\n\t\t\tcapture_origin: \"vendor_historical_backfill\",\n\t\t\tinterval: window,\n\t\t\tqualification: {\n\t\t\t\tqualification_event_id: qualificationEventId,\n\t\t\t\tstate: \"qualified\",\n\t\t\t\treceipt_id: promotionReceipt.receipt_id,\n\t\t\t\tpromotion_identity_sha256: promotionReceipt.promotion_identity_sha256,\n\t\t\t},\n\t\t},\n\t],\n\tsupport_anchors: [\n\t\t{\n\t\t\tcapture_bundle_id: captureBundleId,\n\t\t\traw_capture_id: \"4\".repeat(64),\n\t\t\tsnapshot_id: \"5\".repeat(64),\n\t\t\tsource_time: \"2026-08-18T09:27:15.308Z\",\n\t\t\tnormalized_summary_checksum: \"6\".repeat(64),\n\t\t\tmetadata_ref: {\n\t\t\t\tcapture_origin: \"vendor_historical_backfill\",\n\t\t\t\tqualification_event_id: qualificationEventId,\n\t\t\t\treceipt_id: promotionReceipt.receipt_id,\n\t\t\t},\n\t\t},\n\t],\n\treceipt_ids: [promotionReceipt.receipt_id],\n\tqualification_event_ids: [qualificationEventId],\n\tresolved_at: \"2026-08-20T12:00:02.000Z\",\n});\n\nconst result = finalizeBackfillResult({\n\tschema_id: BACKFILL_RESULT_SCHEMA_ID,\n\tjob_id: \"018f0f4d-7b32-7a30-8f4d-1d2a6e40f120\",\n\trequest_file_sha256: \"7\".repeat(64),\n\texecutable_sha256: \"8\".repeat(64),\n\tschema_manifest_sha256: SCHEMA_MANIFEST.manifest_sha256,\n\tcex_package: {\n\t\tname: \"@usherlabs/cex-broker\",\n\t\tversion: \"0.2.46\",\n\t\tpackage_sha256: \"9\".repeat(64),\n\t},\n\tcapability_policy: request.product_pins.capability_policy,\n\tresource_policy: request.product_pins.resource_policy,\n\tbuild: {\n\t\tfiet_tee_commit: \"a\".repeat(40),\n\t\tcreated_at: \"2026-08-20T12:00:00.000Z\",\n\t},\n\tstarted_at: \"2026-08-20T12:00:01.000Z\",\n\tcompleted_at: \"2026-08-20T12:00:03.000Z\",\n\toutcome: {\n\t\tstatus: \"promoted\",\n\t\treason_code: \"promotion_qualified\",\n\t\treason_subcode: null,\n\t\trequest_id: request.request_id,\n\t\tidempotency_key: request.idempotency_key,\n\t\ttarget: request.target,\n\t\tselection: resolvedSelection,\n\t\treceipt: promotionReceipt,\n\t\tdiagnostics: { promoted_rows: 50 },\n\t},\n});\n\nconst jcsEdgeVector = {\n\tliterals: [null, true, false],\n\tnumbers: [Number(\"333333333.33333329\"), 1e30, 4.5, 0.002],\n\tstring: '€$\\u000f\\nA\\'B\"\\\\\"/',\n};\n\nexport const CONFORMANCE_FIXTURES = Object.freeze({\n\tfixture_id: \"market-data-vendor-backfill-conformance/v1\",\n\tdocuments: {\n\t\trequired_clock: requiredClock,\n\t\tarchive_selection: resolvedSelection,\n\t\trequest,\n\t\tpromotion_receipt: promotionReceipt,\n\t\tresult,\n\t},\n\tidentities: {\n\t\tidempotency_key: request.idempotency_key,\n\t\tclock_sha256: requiredClock.clock_sha256,\n\t\tinitial_selection_sha256: initialSelection.selection_sha256,\n\t\tselection_sha256: resolvedSelection.selection_sha256,\n\t\tpromotion_identity_sha256: promotionReceipt.promotion_identity_sha256,\n\t\treceipt_id: promotionReceipt.receipt_id,\n\t\tresult_sha256: result.result_sha256,\n\t\tcapability_policy_sha256: LEGACY_CAPABILITY_POLICY.policy_sha256,\n\t\tresource_policy_sha256: LEGACY_RESOURCE_POLICY.policy_sha256,\n\t},\n\tjcs_edge_vector: jcsEdgeVector,\n\thashes: { jcs_edge_vector_sha256: jcsSha256(jcsEdgeVector) },\n});\n",
161
+ "import { createHash } from \"node:crypto\";\nimport { decompress } from \"fzstd\";\nimport { parquetReadObjects } from \"hyparquet\";\nimport { buildCanonicalOrderBookRows } from \"../market-data-archive/canonical-orderbook\";\nimport {\n\tCHECKSUM_ALGORITHM,\n\tMARKET_CAPTURE_SCHEMA_VERSION,\n\tsha256Canonical,\n} from \"../market-data-archive/capture-contract\";\nimport type {\n\tMarketCaptureContext,\n\tRawCapture,\n} from \"../market-data-archive/types\";\nimport {\n\ttype BackfillArchiveRow,\n\tEXTERNAL_BACKFILL_SOURCE,\n\tHISTORICAL_VENDOR_SOURCE_MODE,\n\ttype MarketDataVendorBackfillRequest,\n\ttype ProviderCapability,\n\ttype ProviderObjectEvidence,\n\tVENDOR_DATASET_RAW_CAPTURE_SCOPE,\n} from \"./contracts\";\nimport type { NormalizedBackfill, ProviderDataset } from \"./core\";\nimport { semanticDigest } from \"./semantic-verification\";\n\nexport const CRYPTOHFTDATA_ADAPTER_VERSION =\n\t\"cryptohftdata-orderbook/v2\" as const;\nexport const CRYPTOHFTDATA_API_URL = \"https://api.cryptohftdata.com\" as const;\nconst CRYPTOHFTDATA_HISTORY_START_MS = Date.UTC(2025, 5, 28);\nconst HOUR_MS = 60 * 60 * 1_000;\n\nexport type CryptoHftDataCapabilityProfile = Readonly<{\n\tprofileId: string;\n\texchange: string;\n\ttradingPair: string;\n\tsourceSymbol: string;\n\tmarketType: \"spot\" | \"swap\" | \"future\";\n\tproviderExchangeId: string;\n\thistoryStartMs: number;\n\tmaxDepth: number;\n\teventTimeUnit: \"milliseconds\";\n\treceivedTimeUnit: \"nanoseconds\";\n\tsnapshotGrouping:\n\t\t| \"event_time_last_update_id_object\"\n\t\t| \"event_time_final_update_id_object\";\n\tsequenceSemantics: \"binance_u_U_pu\" | \"okx_seq_id_prev_seq_id\";\n\tconstructionModes: readonly [\"sampled_top_n_snapshot\"];\n\tsourcePolicies: readonly (\"authoritative_window\" | \"fill_gaps\")[];\n}>;\n\n// This profile is exported for explicit enablement by a conformance-tested\n// consumer. The adapter's default registry is deliberately empty: possession\n// of a provider credential must never advertise an unverified data profile.\nexport const CRYPTOHFTDATA_BINANCE_SPOT_BTCUSDT_PROFILE: CryptoHftDataCapabilityProfile =\n\tObject.freeze({\n\t\tprofileId: \"cryptohftdata/binance_spot/BTCUSDT/v1\",\n\t\texchange: \"binance\",\n\t\ttradingPair: \"BTC-USDT\",\n\t\tsourceSymbol: \"BTCUSDT\",\n\t\tmarketType: \"spot\",\n\t\tproviderExchangeId: \"binance_spot\",\n\t\thistoryStartMs: CRYPTOHFTDATA_HISTORY_START_MS,\n\t\tmaxDepth: 500,\n\t\teventTimeUnit: \"milliseconds\",\n\t\treceivedTimeUnit: \"nanoseconds\",\n\t\tsnapshotGrouping: \"event_time_last_update_id_object\",\n\t\tsequenceSemantics: \"binance_u_U_pu\",\n\t\tconstructionModes: [\"sampled_top_n_snapshot\"] as const,\n\t\tsourcePolicies: [\"authoritative_window\"] as const,\n\t});\n\n// This profile is pinned to a live-proven object containing a complete OKX\n// snapshot followed by a contiguous seqId/prevSeqId update chain.\nexport const CRYPTOHFTDATA_OKX_SPOT_ARBUSDT_PROFILE: CryptoHftDataCapabilityProfile =\n\tObject.freeze({\n\t\tprofileId: \"cryptohftdata/okx_spot/ARB-USDT/v1\",\n\t\texchange: \"okx\",\n\t\ttradingPair: \"ARB-USDT\",\n\t\tsourceSymbol: \"ARB-USDT\",\n\t\tmarketType: \"spot\",\n\t\tproviderExchangeId: \"okx_spot\",\n\t\thistoryStartMs: CRYPTOHFTDATA_HISTORY_START_MS,\n\t\tmaxDepth: 400,\n\t\teventTimeUnit: \"milliseconds\",\n\t\treceivedTimeUnit: \"nanoseconds\",\n\t\tsnapshotGrouping: \"event_time_final_update_id_object\",\n\t\tsequenceSemantics: \"okx_seq_id_prev_seq_id\",\n\t\tconstructionModes: [\"sampled_top_n_snapshot\"] as const,\n\t\tsourcePolicies: [\"authoritative_window\", \"fill_gaps\"] as const,\n\t});\n\n// This profile uses the same live-proven OKX sequence and timestamp semantics\n// as ARB-USDT. Provider discovery and conformance evidence pin ARB-USDC as a\n// distinct source symbol; venue identity must never imply quote substitution.\nexport const CRYPTOHFTDATA_OKX_SPOT_ARBUSDC_PROFILE: CryptoHftDataCapabilityProfile =\n\tObject.freeze({\n\t\tprofileId: \"cryptohftdata/okx_spot/ARB-USDC/v1\",\n\t\texchange: \"okx\",\n\t\ttradingPair: \"ARB-USDC\",\n\t\tsourceSymbol: \"ARB-USDC\",\n\t\tmarketType: \"spot\",\n\t\tproviderExchangeId: \"okx_spot\",\n\t\thistoryStartMs: CRYPTOHFTDATA_HISTORY_START_MS,\n\t\tmaxDepth: 400,\n\t\teventTimeUnit: \"milliseconds\",\n\t\treceivedTimeUnit: \"nanoseconds\",\n\t\tsnapshotGrouping: \"event_time_final_update_id_object\",\n\t\tsequenceSemantics: \"okx_seq_id_prev_seq_id\",\n\t\tconstructionModes: [\"sampled_top_n_snapshot\"] as const,\n\t\tsourcePolicies: [\"authoritative_window\", \"fill_gaps\"] as const,\n\t});\n\nexport class CryptoHftDataError extends Error {\n\tconstructor(readonly reason: string) {\n\t\tsuper(`CryptoHFTData backfill failed: ${reason}`);\n\t\tthis.name = \"CryptoHftDataError\";\n\t}\n}\n\nexport type CryptoHftDataOrderBookRow = {\n\treceived_time: string | number | bigint;\n\tevent_time: string | number | bigint;\n\ttransaction_time?: string | number | bigint | null;\n\tsymbol: string;\n\tevent_type: \"snapshot\" | \"update\";\n\tfirst_update_id?: string | number | bigint | null;\n\tfinal_update_id?: string | number | bigint | null;\n\tprev_final_update_id?: string | number | bigint | null;\n\tlast_update_id?: string | number | bigint | null;\n\tside: \"bid\" | \"ask\";\n\tprice: string;\n\tquantity: string;\n\torder_count?: string | number | bigint | null;\n\tdataset_object_identity: string;\n\tdataset_object_checksum: string;\n};\n\nexport type ReconstructedCryptoHftBook = {\n\ttargetTimeMs: number;\n\tsourceTimeMs: number;\n\treceivedTimeMs: number;\n\tsequence: string;\n\tbids: number[][];\n\tasks: number[][];\n\tdatasetObjectIdentity: string;\n\tdatasetObjectChecksum: string;\n};\n\nexport function cryptoHftDataCapabilityFor(\n\trequest: MarketDataVendorBackfillRequest,\n\tprofiles: readonly CryptoHftDataCapabilityProfile[] = [],\n): ProviderCapability | undefined {\n\tif (\n\t\trequest.providerPolicy.provider !== \"cryptohftdata\" ||\n\t\trequest.scope.feed !== \"ORDERBOOK\" ||\n\t\trequest.scope.exchange.trim().toLowerCase() === \"mexc\"\n\t) {\n\t\treturn undefined;\n\t}\n\tconst profile = profiles.find(\n\t\t(candidate) =>\n\t\t\tcandidate.exchange === request.scope.exchange.trim().toLowerCase() &&\n\t\t\tcandidate.tradingPair === request.scope.tradingPair &&\n\t\t\tcandidate.sourceSymbol === request.scope.sourceSymbol &&\n\t\t\tcandidate.marketType === request.scope.marketType &&\n\t\t\tcandidate.constructionModes.includes(request.constructionMode as never) &&\n\t\t\tcandidate.sourcePolicies.includes(request.sourcePolicy as never) &&\n\t\t\trequest.window.startTimeMs >= candidate.historyStartMs &&\n\t\t\trequest.depth <= candidate.maxDepth,\n\t);\n\tif (!profile) return undefined;\n\treturn {\n\t\tprovider: \"cryptohftdata\",\n\t\tadapterVersion: CRYPTOHFTDATA_ADAPTER_VERSION,\n\t\tproviderExchangeId: profile.providerExchangeId,\n\t\tresolvedSymbol: profile.sourceSymbol,\n\t};\n}\n\nfunction utcHourPath(hourMs: number): { date: string; hour: string } {\n\tconst date = new Date(hourMs);\n\treturn {\n\t\tdate: `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, \"0\")}-${String(date.getUTCDate()).padStart(2, \"0\")}`,\n\t\thour: String(date.getUTCHours()).padStart(2, \"0\"),\n\t};\n}\n\nexport function enumerateCryptoHftDataObjects(\n\trequest: MarketDataVendorBackfillRequest,\n\tproviderExchangeId: string,\n\tresolvedSymbol: string,\n): string[] {\n\tif (request.sourcePolicy === \"fill_gaps\") {\n\t\tconst hours = new Set<number>();\n\t\tfor (const targetTimeMs of request.requiredClockTargetsMs) {\n\t\t\tconst firstHour =\n\t\t\t\tMath.floor(\n\t\t\t\t\tMath.max(0, targetTimeMs - request.budgets.maxBoundaryLookbackMs) /\n\t\t\t\t\t\tHOUR_MS,\n\t\t\t\t) * HOUR_MS;\n\t\t\tconst lastHour = Math.floor(targetTimeMs / HOUR_MS) * HOUR_MS;\n\t\t\tfor (let hourMs = firstHour; hourMs <= lastHour; hourMs += HOUR_MS) {\n\t\t\t\thours.add(hourMs);\n\t\t\t}\n\t\t}\n\t\treturn [...hours]\n\t\t\t.sort((left, right) => left - right)\n\t\t\t.map((hourMs) => {\n\t\t\t\tconst utc = utcHourPath(hourMs);\n\t\t\t\treturn `${providerExchangeId}/${utc.date}/${utc.hour}/${resolvedSymbol}_orderbook.parquet.zst`;\n\t\t\t});\n\t}\n\tconst firstHour =\n\t\tMath.floor(\n\t\t\t(request.window.startTimeMs - request.budgets.maxBoundaryLookbackMs) /\n\t\t\t\tHOUR_MS,\n\t\t) * HOUR_MS;\n\tconst objects: string[] = [];\n\tfor (\n\t\tlet hourMs = Math.max(0, firstHour);\n\t\thourMs < request.window.endTimeMs;\n\t\thourMs += HOUR_MS\n\t) {\n\t\tconst utc = utcHourPath(hourMs);\n\t\tobjects.push(\n\t\t\t`${providerExchangeId}/${utc.date}/${utc.hour}/${resolvedSymbol}_orderbook.parquet.zst`,\n\t\t);\n\t}\n\treturn objects;\n}\n\nfunction initialArchiveCoversTarget(\n\trequest: MarketDataVendorBackfillRequest,\n\ttargetTimeMs: number,\n): boolean {\n\treturn (request.initialSelection?.support_anchors ?? []).some((anchor) => {\n\t\tconst sourceTimeMs = Date.parse(anchor.source_time);\n\t\treturn (\n\t\t\tNumber.isSafeInteger(sourceTimeMs) &&\n\t\t\tsourceTimeMs <= targetTimeMs &&\n\t\t\ttargetTimeMs - sourceTimeMs <= request.maxPriorAsOfLagMs\n\t\t);\n\t});\n}\n\nexport function providerAcquisitionRequest(\n\trequest: MarketDataVendorBackfillRequest,\n): MarketDataVendorBackfillRequest {\n\tif (request.sourcePolicy !== \"fill_gaps\") return request;\n\tconst requiredClockTargetsMs = request.requiredClockTargetsMs.filter(\n\t\t(targetTimeMs) => !initialArchiveCoversTarget(request, targetTimeMs),\n\t);\n\tif (requiredClockTargetsMs.length === 0) {\n\t\tthrow new CryptoHftDataError(\"fill_gaps_has_no_uncovered_clock_targets\");\n\t}\n\treturn { ...request, requiredClockTargetsMs };\n}\n\nfunction unsignedString(\n\tvalue: string | number | bigint | null | undefined,\n\tfield: string,\n\trequired = false,\n): string | undefined {\n\tif (value === null || value === undefined) {\n\t\tif (required) throw new CryptoHftDataError(`schema_${field}_missing`);\n\t\treturn undefined;\n\t}\n\tconst rendered = String(value);\n\tif (!/^\\d+$/.test(rendered)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\tconst parsed = BigInt(rendered);\n\tif (parsed > 18_446_744_073_709_551_615n) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_exceeds_uint64`);\n\t}\n\treturn parsed.toString(10);\n}\n\nfunction timestampMs(\n\tvalue: string | number | bigint,\n\tfield: \"received_time\" | \"event_time\",\n): number {\n\tconst rendered = String(value);\n\tif (!/^\\d+$/.test(rendered)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\tconst raw = BigInt(rendered);\n\tconst milliseconds = field === \"received_time\" ? raw / 1_000_000n : raw;\n\tif (milliseconds > BigInt(Number.MAX_SAFE_INTEGER)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_unsafe`);\n\t}\n\treturn Number(milliseconds);\n}\n\nfunction decimal(value: string, field: string, allowZero: boolean): number {\n\tif (!/^(?:0|[1-9]\\d*)(?:\\.\\d+)?$/.test(value)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\tconst parsed = Number(value);\n\tif (!Number.isFinite(parsed) || (allowZero ? parsed < 0 : parsed <= 0)) {\n\t\tthrow new CryptoHftDataError(`schema_${field}_invalid`);\n\t}\n\treturn parsed;\n}\n\nfunction validatedRow(\n\trequest: MarketDataVendorBackfillRequest,\n\trow: CryptoHftDataOrderBookRow,\n): CryptoHftDataOrderBookRow & {\n\teventTimeMs: number;\n\treceivedTimeMs: number;\n} {\n\tif (row.symbol !== request.scope.sourceSymbol) {\n\t\tthrow new CryptoHftDataError(\"schema_symbol_mismatch\");\n\t}\n\tif (row.event_type !== \"snapshot\" && row.event_type !== \"update\") {\n\t\tthrow new CryptoHftDataError(\"schema_event_type_invalid\");\n\t}\n\tif (row.side !== \"bid\" && row.side !== \"ask\") {\n\t\tthrow new CryptoHftDataError(\"schema_side_invalid\");\n\t}\n\tdecimal(row.price, \"price\", false);\n\tdecimal(row.quantity, \"quantity\", true);\n\tif (!/^[a-f0-9]{64}$/.test(row.dataset_object_checksum)) {\n\t\tthrow new CryptoHftDataError(\"schema_object_checksum_invalid\");\n\t}\n\tconst eventTimeMs = timestampMs(row.event_time, \"event_time\");\n\tconst receivedTimeMs = timestampMs(row.received_time, \"received_time\");\n\tif (receivedTimeMs < eventTimeMs) {\n\t\tthrow new CryptoHftDataError(\"received_time_precedes_event_time\");\n\t}\n\treturn { ...row, eventTimeMs, receivedTimeMs };\n}\n\nfunction groupKey(\n\trow: ReturnType<typeof validatedRow>,\n\tprofile: CryptoHftDataCapabilityProfile,\n): string {\n\tconst sequence =\n\t\trow.event_type === \"snapshot\"\n\t\t\t? profile.snapshotGrouping === \"event_time_final_update_id_object\"\n\t\t\t\t? unsignedString(row.final_update_id, \"final_update_id\", true)\n\t\t\t\t: unsignedString(row.last_update_id, \"last_update_id\", true)\n\t\t\t: unsignedString(row.final_update_id, \"final_update_id\", true);\n\treturn [\n\t\trow.event_type,\n\t\trow.eventTimeMs,\n\t\tsequence,\n\t\trow.dataset_object_identity,\n\t].join(\"\\u0000\");\n}\n\nfunction absent(value: string | number | bigint | null | undefined): boolean {\n\treturn value === null || value === undefined;\n}\n\nfunction snapshotSequence(\n\trow: ReturnType<typeof validatedRow>,\n\tprofile: CryptoHftDataCapabilityProfile,\n): string {\n\tif (profile.sequenceSemantics === \"okx_seq_id_prev_seq_id\") {\n\t\tif (String(row.last_update_id) !== \"-1\") {\n\t\t\tthrow new CryptoHftDataError(\"schema_last_update_id_snapshot_sentinel\");\n\t\t}\n\t\tif (!absent(row.first_update_id) || !absent(row.prev_final_update_id)) {\n\t\t\tthrow new CryptoHftDataError(\"ambiguous_snapshot_group\");\n\t\t}\n\t\treturn unsignedString(\n\t\t\trow.final_update_id,\n\t\t\t\"final_update_id\",\n\t\t\ttrue,\n\t\t) as string;\n\t}\n\treturn unsignedString(row.last_update_id, \"last_update_id\", true) as string;\n}\n\ntype BookState = {\n\tbids: Map<string, number>;\n\tasks: Map<string, number>;\n\tsequence: string;\n\tsourceTimeMs: number;\n\treceivedTimeMs: number;\n\tdatasetObjectIdentity: string;\n\tdatasetObjectChecksum: string;\n};\n\nfunction sortedSide(\n\tlevels: ReadonlyMap<string, number>,\n\tside: \"bid\" | \"ask\",\n): number[][] {\n\treturn [...levels.entries()]\n\t\t.map(([price, quantity]) => [Number(price), quantity])\n\t\t.sort((left, right) =>\n\t\t\tside === \"bid\"\n\t\t\t\t? (right[0] as number) - (left[0] as number)\n\t\t\t\t: (left[0] as number) - (right[0] as number),\n\t\t);\n}\n\nfunction applyRows(\n\tstate: BookState,\n\trows: ReturnType<typeof validatedRow>[],\n): void {\n\tfor (const row of rows) {\n\t\tconst levels = row.side === \"bid\" ? state.bids : state.asks;\n\t\tconst quantity = decimal(row.quantity, \"quantity\", true);\n\t\tif (quantity === 0) levels.delete(row.price);\n\t\telse levels.set(row.price, quantity);\n\t}\n}\n\nexport function reconstructCryptoHftDataOrderBooks(\n\trequest: MarketDataVendorBackfillRequest,\n\tinputRows: readonly CryptoHftDataOrderBookRow[],\n\tprofile: CryptoHftDataCapabilityProfile = CRYPTOHFTDATA_BINANCE_SPOT_BTCUSDT_PROFILE,\n): ReconstructedCryptoHftBook[] {\n\tconst rows = inputRows\n\t\t.map((row, index) => ({\n\t\t\t...validatedRow(request, row),\n\t\t\toriginalIndex: index,\n\t\t}))\n\t\t.sort(\n\t\t\t(left, right) =>\n\t\t\t\tleft.eventTimeMs - right.eventTimeMs ||\n\t\t\t\tleft.originalIndex - right.originalIndex,\n\t\t);\n\tconst groups: Array<ReturnType<typeof validatedRow>[]> = [];\n\tfor (const row of rows) {\n\t\tconst current = groups.at(-1);\n\t\tif (\n\t\t\t!current ||\n\t\t\tgroupKey(current[0] as ReturnType<typeof validatedRow>, profile) !==\n\t\t\t\tgroupKey(row, profile)\n\t\t) {\n\t\t\tgroups.push([row]);\n\t\t} else {\n\t\t\tcurrent.push(row);\n\t\t}\n\t}\n\n\tconst earliestTargetTimeMs = Math.min(...request.requiredClockTargetsMs);\n\tconst latestTargetTimeMs = Math.max(...request.requiredClockTargetsMs);\n\tconst anchorIndex = groups.findIndex((group) => {\n\t\tconst first = group[0] as ReturnType<typeof validatedRow>;\n\t\treturn (\n\t\t\tfirst.event_type === \"snapshot\" &&\n\t\t\tfirst.eventTimeMs <= earliestTargetTimeMs\n\t\t);\n\t});\n\tif (anchorIndex < 0) {\n\t\tthrow new CryptoHftDataError(\"update_before_snapshot\");\n\t}\n\n\tlet state: BookState | undefined;\n\tlet previousFinalUpdateId: bigint | undefined;\n\tconst states: BookState[] = [];\n\tfor (const group of groups.slice(anchorIndex)) {\n\t\tconst first = group[0] as ReturnType<typeof validatedRow>;\n\t\tif (first.eventTimeMs > latestTargetTimeMs) break;\n\t\tif (first.event_type === \"snapshot\") {\n\t\t\tconst sequence = snapshotSequence(first, profile);\n\t\t\tfor (const row of group) {\n\t\t\t\tif (snapshotSequence(row, profile) !== sequence) {\n\t\t\t\t\tthrow new CryptoHftDataError(\"ambiguous_snapshot_group\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (\n\t\t\t\tprofile.sequenceSemantics === \"binance_u_U_pu\" &&\n\t\t\t\tpreviousFinalUpdateId !== undefined &&\n\t\t\t\tBigInt(sequence) < previousFinalUpdateId\n\t\t\t) {\n\t\t\t\tthrow new CryptoHftDataError(\"snapshot_sequence_regression\");\n\t\t\t}\n\t\t\tstate = {\n\t\t\t\tbids: new Map(),\n\t\t\t\tasks: new Map(),\n\t\t\t\tsequence,\n\t\t\t\tsourceTimeMs: first.eventTimeMs,\n\t\t\t\treceivedTimeMs: Math.max(\n\t\t\t\t\t...group.map(({ receivedTimeMs }) => receivedTimeMs),\n\t\t\t\t),\n\t\t\t\tdatasetObjectIdentity: first.dataset_object_identity,\n\t\t\t\tdatasetObjectChecksum: first.dataset_object_checksum,\n\t\t\t};\n\t\t\tapplyRows(state, group);\n\t\t\tpreviousFinalUpdateId = BigInt(sequence);\n\t\t} else {\n\t\t\tif (!state || previousFinalUpdateId === undefined) {\n\t\t\t\tthrow new CryptoHftDataError(\"update_before_snapshot\");\n\t\t\t}\n\t\t\tconst finalUpdate = BigInt(\n\t\t\t\tunsignedString(\n\t\t\t\t\tfirst.final_update_id,\n\t\t\t\t\t\"final_update_id\",\n\t\t\t\t\ttrue,\n\t\t\t\t) as string,\n\t\t\t);\n\t\t\tif (profile.sequenceSemantics === \"okx_seq_id_prev_seq_id\") {\n\t\t\t\tif (\n\t\t\t\t\t!absent(first.first_update_id) ||\n\t\t\t\t\t!absent(first.prev_final_update_id)\n\t\t\t\t) {\n\t\t\t\t\tthrow new CryptoHftDataError(\"ambiguous_update_group\");\n\t\t\t\t}\n\t\t\t\tconst previous = unsignedString(\n\t\t\t\t\tfirst.last_update_id,\n\t\t\t\t\t\"last_update_id\",\n\t\t\t\t\ttrue,\n\t\t\t\t) as string;\n\t\t\t\tfor (const row of group) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!absent(row.first_update_id) ||\n\t\t\t\t\t\t!absent(row.prev_final_update_id) ||\n\t\t\t\t\t\tunsignedString(row.final_update_id, \"final_update_id\", true) !==\n\t\t\t\t\t\t\tfinalUpdate.toString() ||\n\t\t\t\t\t\tunsignedString(row.last_update_id, \"last_update_id\", true) !==\n\t\t\t\t\t\t\tprevious\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow new CryptoHftDataError(\"ambiguous_update_group\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (BigInt(previous) !== previousFinalUpdateId) {\n\t\t\t\t\tthrow new CryptoHftDataError(\"update_chain_gap\");\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst firstUpdate = BigInt(\n\t\t\t\t\tunsignedString(\n\t\t\t\t\t\tfirst.first_update_id,\n\t\t\t\t\t\t\"first_update_id\",\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t) as string,\n\t\t\t\t);\n\t\t\t\tconst previous = unsignedString(\n\t\t\t\t\tfirst.prev_final_update_id,\n\t\t\t\t\t\"prev_final_update_id\",\n\t\t\t\t);\n\t\t\t\tfor (const row of group) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tunsignedString(row.first_update_id, \"first_update_id\", true) !==\n\t\t\t\t\t\t\tfirstUpdate.toString() ||\n\t\t\t\t\t\tunsignedString(row.final_update_id, \"final_update_id\", true) !==\n\t\t\t\t\t\t\tfinalUpdate.toString() ||\n\t\t\t\t\t\tunsignedString(row.prev_final_update_id, \"prev_final_update_id\") !==\n\t\t\t\t\t\t\tprevious\n\t\t\t\t\t) {\n\t\t\t\t\t\tthrow new CryptoHftDataError(\"ambiguous_update_group\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst expected = previousFinalUpdateId + 1n;\n\t\t\t\tif (\n\t\t\t\t\tfirstUpdate > expected ||\n\t\t\t\t\tfinalUpdate < expected ||\n\t\t\t\t\t(previous !== undefined && BigInt(previous) !== previousFinalUpdateId)\n\t\t\t\t) {\n\t\t\t\t\tthrow new CryptoHftDataError(\"update_chain_gap\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tapplyRows(state, group);\n\t\t\tstate.sequence = finalUpdate.toString();\n\t\t\tstate.sourceTimeMs = first.eventTimeMs;\n\t\t\tstate.receivedTimeMs = Math.max(\n\t\t\t\t...group.map(({ receivedTimeMs }) => receivedTimeMs),\n\t\t\t);\n\t\t\tstate.datasetObjectIdentity = first.dataset_object_identity;\n\t\t\tstate.datasetObjectChecksum = first.dataset_object_checksum;\n\t\t\tpreviousFinalUpdateId = finalUpdate;\n\t\t}\n\t\tif (state) {\n\t\t\tstates.push({\n\t\t\t\t...state,\n\t\t\t\tbids: new Map(state.bids),\n\t\t\t\tasks: new Map(state.asks),\n\t\t\t});\n\t\t}\n\t}\n\n\tconst samples: ReconstructedCryptoHftBook[] = [];\n\tfor (const targetTimeMs of request.requiredClockTargetsMs) {\n\t\tlet prior: BookState | undefined;\n\t\tfor (const candidate of states) {\n\t\t\tif (candidate.sourceTimeMs > targetTimeMs) break;\n\t\t\tprior = candidate;\n\t\t}\n\t\tif (\n\t\t\t!prior ||\n\t\t\ttargetTimeMs - prior.sourceTimeMs > request.maxPriorAsOfLagMs\n\t\t) {\n\t\t\tthrow new CryptoHftDataError(\"required_clock_coverage_insufficient\");\n\t\t}\n\t\tconst bids = sortedSide(prior.bids, \"bid\").slice(0, request.depth);\n\t\tconst asks = sortedSide(prior.asks, \"ask\").slice(0, request.depth);\n\t\tif (bids.length === 0 || asks.length === 0) {\n\t\t\tthrow new CryptoHftDataError(\"book_side_missing\");\n\t\t}\n\t\tif ((bids[0]?.[0] as number) >= (asks[0]?.[0] as number)) {\n\t\t\tthrow new CryptoHftDataError(\"book_crossed_or_locked\");\n\t\t}\n\t\tsamples.push({\n\t\t\ttargetTimeMs,\n\t\t\tsourceTimeMs: prior.sourceTimeMs,\n\t\t\treceivedTimeMs: prior.receivedTimeMs,\n\t\t\tsequence: prior.sequence,\n\t\t\tbids,\n\t\t\tasks,\n\t\t\tdatasetObjectIdentity: prior.datasetObjectIdentity,\n\t\t\tdatasetObjectChecksum: prior.datasetObjectChecksum,\n\t\t});\n\t}\n\treturn samples;\n}\n\nfunction sha256Bytes(bytes: Uint8Array): string {\n\treturn createHash(\"sha256\").update(bytes).digest(\"hex\");\n}\n\nexport async function decodeCryptoHftParquetZstd(\n\tbytes: Uint8Array,\n): Promise<Record<string, unknown>[]> {\n\tconst parquet = decompress(bytes);\n\tconst buffer = parquet.buffer.slice(\n\t\tparquet.byteOffset,\n\t\tparquet.byteOffset + parquet.byteLength,\n\t) as ArrayBuffer;\n\treturn parquetReadObjects({ file: buffer });\n}\n\ntype CryptoHftDataAdapterOptions = {\n\tbaseUrl?: string;\n\tfetch?: typeof fetch;\n\tnowMs?: () => number;\n\tdecode?: (bytes: Uint8Array) => Promise<Record<string, unknown>[]>;\n\tprofiles?: readonly CryptoHftDataCapabilityProfile[];\n};\n\nfunction parsedDatasetRow(\n\tvalue: Record<string, unknown>,\n\tobject: ProviderObjectEvidence,\n): CryptoHftDataOrderBookRow {\n\treturn {\n\t\treceived_time: value.received_time as string | number | bigint,\n\t\tevent_time: value.event_time as string | number | bigint,\n\t\ttransaction_time: value.transaction_time as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tsymbol: value.symbol as string,\n\t\tevent_type: value.event_type as \"snapshot\" | \"update\",\n\t\tfirst_update_id: value.first_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tfinal_update_id: value.final_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tprev_final_update_id: value.prev_final_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tlast_update_id: value.last_update_id as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tside: value.side as \"bid\" | \"ask\",\n\t\tprice: value.price as string,\n\t\tquantity: value.quantity as string,\n\t\torder_count: value.order_count as\n\t\t\t| string\n\t\t\t| number\n\t\t\t| bigint\n\t\t\t| null\n\t\t\t| undefined,\n\t\tdataset_object_identity: object.identity,\n\t\tdataset_object_checksum: object.checksum,\n\t};\n}\n\nasync function readBoundedObject(\n\tresponse: Response,\n\tremainingBytes: number,\n): Promise<Uint8Array> {\n\tif (!response.body) return new Uint8Array();\n\tconst reader = response.body.getReader();\n\tconst chunks: Uint8Array[] = [];\n\tlet total = 0;\n\twhile (true) {\n\t\tconst { done, value } = await reader.read();\n\t\tif (done) break;\n\t\ttotal += value.byteLength;\n\t\tif (total > remainingBytes) {\n\t\t\tawait reader.cancel();\n\t\t\tthrow new CryptoHftDataError(\"budget_max_bytes_exceeded\");\n\t\t}\n\t\tchunks.push(value);\n\t}\n\tconst bytes = new Uint8Array(total);\n\tlet offset = 0;\n\tfor (const chunk of chunks) {\n\t\tbytes.set(chunk, offset);\n\t\toffset += chunk.byteLength;\n\t}\n\treturn bytes;\n}\n\nexport class CryptoHftDataAdapter {\n\tprivate readonly baseUrl: string;\n\tprivate readonly request: typeof fetch;\n\tprivate readonly nowMs: () => number;\n\tprivate readonly decode: (\n\t\tbytes: Uint8Array,\n\t) => Promise<Record<string, unknown>[]>;\n\tprivate readonly profiles: readonly CryptoHftDataCapabilityProfile[];\n\n\tconstructor(options: CryptoHftDataAdapterOptions = {}) {\n\t\tthis.baseUrl = options.baseUrl ?? CRYPTOHFTDATA_API_URL;\n\t\tthis.request = options.fetch ?? fetch;\n\t\tthis.nowMs = options.nowMs ?? Date.now;\n\t\tthis.decode = options.decode ?? decodeCryptoHftParquetZstd;\n\t\tthis.profiles = options.profiles ?? [];\n\t}\n\n\tcapabilityFor(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t): ProviderCapability | undefined {\n\t\treturn cryptoHftDataCapabilityFor(request, this.profiles);\n\t}\n\n\tasync discoverSymbols(providerExchangeId: string): Promise<string[]> {\n\t\tif (!/^[a-z0-9_]+$/.test(providerExchangeId)) {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_exchange_invalid\");\n\t\t}\n\t\tconst endpoint = new URL(\"/symbols\", this.baseUrl);\n\t\tendpoint.searchParams.set(\"exchange\", providerExchangeId);\n\t\tendpoint.searchParams.set(\"data_type\", \"orderbook\");\n\t\tlet response: Response;\n\t\ttry {\n\t\t\tresponse = await this.request(endpoint);\n\t\t} catch {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_failed\");\n\t\t}\n\t\tif (!response.ok) {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_failed\");\n\t\t}\n\t\tlet body: unknown;\n\t\ttry {\n\t\t\tbody = await response.json();\n\t\t} catch {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_response_invalid\");\n\t\t}\n\t\tconst record = body as Record<string, unknown>;\n\t\tif (\n\t\t\t!body ||\n\t\t\ttypeof body !== \"object\" ||\n\t\t\tArray.isArray(body) ||\n\t\t\tString(record.exchange).toLowerCase() !== providerExchangeId ||\n\t\t\tString(record.data_type).toLowerCase() !== \"orderbook\" ||\n\t\t\t!Array.isArray(record.symbols) ||\n\t\t\t!record.symbols.every(\n\t\t\t\t(symbol) => typeof symbol === \"string\" && /^[A-Z0-9_-]+$/.test(symbol),\n\t\t\t)\n\t\t) {\n\t\t\tthrow new CryptoHftDataError(\"symbol_discovery_response_invalid\");\n\t\t}\n\t\treturn [...new Set(record.symbols as string[])].sort();\n\t}\n\n\tasync acquire(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t\tcapability: ProviderCapability,\n\t\tcredential: unknown,\n\t): Promise<ProviderDataset<CryptoHftDataOrderBookRow>> {\n\t\tconst apiKey =\n\t\t\tcredential && typeof credential === \"object\"\n\t\t\t\t? (credential as { apiKey?: unknown }).apiKey\n\t\t\t\t: undefined;\n\t\tif (typeof apiKey !== \"string\" || apiKey.length === 0) {\n\t\t\tthrow new CryptoHftDataError(\"credentials_invalid\");\n\t\t}\n\t\tconst paths = enumerateCryptoHftDataObjects(\n\t\t\trequest,\n\t\t\tcapability.providerExchangeId,\n\t\t\tcapability.resolvedSymbol,\n\t\t);\n\t\tif (paths.length > request.budgets.maxFiles) {\n\t\t\tthrow new CryptoHftDataError(\"budget_max_files_exceeded\");\n\t\t}\n\t\tconst started = this.nowMs();\n\t\tconst tokenResponse = await this.request(`${this.baseUrl}/jwt-token`, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { \"content-type\": \"application/json\", \"X-API-Key\": apiKey },\n\t\t});\n\t\tif (!tokenResponse.ok) throw new CryptoHftDataError(\"jwt_issuance_failed\");\n\t\tconst tokenBody = (await tokenResponse.json()) as { jwt_token?: unknown };\n\t\tif (typeof tokenBody.jwt_token !== \"string\" || !tokenBody.jwt_token) {\n\t\t\tthrow new CryptoHftDataError(\"jwt_response_invalid\");\n\t\t}\n\n\t\tlet totalBytes = 0;\n\t\tlet totalRows = 0;\n\t\tconst objects: ProviderObjectEvidence[] = [];\n\t\tconst rows: CryptoHftDataOrderBookRow[] = [];\n\t\tfor (const path of paths) {\n\t\t\tif (this.nowMs() - started > request.budgets.maxDurationMs) {\n\t\t\t\tthrow new CryptoHftDataError(\"budget_max_duration_exceeded\");\n\t\t\t}\n\t\t\tconst endpoint = new URL(\"/download\", this.baseUrl);\n\t\t\tendpoint.searchParams.set(\"file\", path);\n\t\t\tconst response = await this.request(endpoint, {\n\t\t\t\theaders: { Authorization: `Bearer ${tokenBody.jwt_token}` },\n\t\t\t});\n\t\t\tif (!response.ok) throw new CryptoHftDataError(\"object_download_failed\");\n\t\t\tconst declaredBytes = Number(response.headers.get(\"content-length\"));\n\t\t\tif (\n\t\t\t\tNumber.isFinite(declaredBytes) &&\n\t\t\t\ttotalBytes + declaredBytes > request.budgets.maxBytes\n\t\t\t) {\n\t\t\t\tthrow new CryptoHftDataError(\"budget_max_bytes_exceeded\");\n\t\t\t}\n\t\t\tconst bytes = await readBoundedObject(\n\t\t\t\tresponse,\n\t\t\t\trequest.budgets.maxBytes - totalBytes,\n\t\t\t);\n\t\t\ttotalBytes += bytes.byteLength;\n\t\t\tif (totalBytes > request.budgets.maxBytes) {\n\t\t\t\tthrow new CryptoHftDataError(\"budget_max_bytes_exceeded\");\n\t\t\t}\n\t\t\tconst decoded = await this.decode(bytes);\n\t\t\ttotalRows += decoded.length;\n\t\t\tif (totalRows > request.budgets.maxRows) {\n\t\t\t\tthrow new CryptoHftDataError(\"budget_max_rows_exceeded\");\n\t\t\t}\n\t\t\tconst object = {\n\t\t\t\tidentity: path,\n\t\t\t\tchecksum: sha256Bytes(bytes),\n\t\t\t\tbytes: bytes.byteLength,\n\t\t\t\trows: decoded.length,\n\t\t\t};\n\t\t\tobjects.push(object);\n\t\t\tfor (const decodedRow of decoded) {\n\t\t\t\tconst parsed = parsedDatasetRow(decodedRow, object);\n\t\t\t\tvalidatedRow(request, parsed);\n\t\t\t\trows.push(parsed);\n\t\t\t}\n\t\t}\n\t\tif (this.nowMs() - started > request.budgets.maxDurationMs) {\n\t\t\tthrow new CryptoHftDataError(\"budget_max_duration_exceeded\");\n\t\t}\n\t\treturn {\n\t\t\tobjects,\n\t\t\trows,\n\t\t\tvendorSemanticDigest: sha256Canonical(rows),\n\t\t};\n\t}\n\n\tasync normalize(\n\t\trequest: MarketDataVendorBackfillRequest,\n\t\tcapability: ProviderCapability,\n\t\tdataset: ProviderDataset,\n\t\tcaptureBundleId: string,\n\t): Promise<NormalizedBackfill> {\n\t\tconst profile = this.profiles.find(\n\t\t\t(candidate) =>\n\t\t\t\tcandidate.exchange === request.scope.exchange.trim().toLowerCase() &&\n\t\t\t\tcandidate.tradingPair === request.scope.tradingPair &&\n\t\t\t\tcandidate.sourceSymbol === request.scope.sourceSymbol &&\n\t\t\t\tcandidate.marketType === request.scope.marketType &&\n\t\t\t\tcandidate.providerExchangeId === capability.providerExchangeId,\n\t\t);\n\t\tif (!profile) {\n\t\t\tthrow new CryptoHftDataError(\"profile_semantics_unavailable\");\n\t\t}\n\t\tconst samples = reconstructCryptoHftDataOrderBooks(\n\t\t\trequest,\n\t\t\tdataset.rows as CryptoHftDataOrderBookRow[],\n\t\t\tprofile,\n\t\t);\n\t\tconst context: MarketCaptureContext = {\n\t\t\tsource: EXTERNAL_BACKFILL_SOURCE,\n\t\t\tdeploymentId: \"market-data-vendor-backfill\",\n\t\t\tcaptureBundleId,\n\t\t\texchange: request.scope.exchange,\n\t\t\tsymbol: request.scope.tradingPair,\n\t\t\ttradingPair: request.scope.tradingPair,\n\t\t\tsourceSymbol: request.scope.sourceSymbol,\n\t\t\tassetType: request.scope.marketType,\n\t\t\tfeed: \"ORDERBOOK\",\n\t\t\tprovider: \"cryptohftdata\",\n\t\t\tsourceMode: HISTORICAL_VENDOR_SOURCE_MODE,\n\t\t\tschemaVersion: MARKET_CAPTURE_SCHEMA_VERSION,\n\t\t\tchecksumAlgorithm: CHECKSUM_ALGORITHM,\n\t\t\tprovenanceComplete: true,\n\t\t};\n\t\tconst rows = samples.flatMap((sample) => {\n\t\t\tconst rawCapture: RawCapture = {\n\t\t\t\trawCaptureId: sha256Canonical({\n\t\t\t\t\tcapture_bundle_id: captureBundleId,\n\t\t\t\t\tdataset_object_identity: sample.datasetObjectIdentity,\n\t\t\t\t\tdataset_object_checksum: sample.datasetObjectChecksum,\n\t\t\t\t\tsource_time_ms: sample.sourceTimeMs,\n\t\t\t\t\ttarget_time_ms: sample.targetTimeMs,\n\t\t\t\t}),\n\t\t\t\trawCaptureScope: VENDOR_DATASET_RAW_CAPTURE_SCOPE,\n\t\t\t\trawChecksum: sample.datasetObjectChecksum,\n\t\t\t\tredactedPayload: {\n\t\t\t\t\tdataset_object_identity: sample.datasetObjectIdentity,\n\t\t\t\t\tdataset_object_checksum: sample.datasetObjectChecksum,\n\t\t\t\t},\n\t\t\t\teventTimeMs: sample.sourceTimeMs,\n\t\t\t\treceivedTimeMs: sample.receivedTimeMs,\n\t\t\t\tchecksumAlgorithm: CHECKSUM_ALGORITHM,\n\t\t\t};\n\t\t\tconst canonical = buildCanonicalOrderBookRows({\n\t\t\t\tcontext,\n\t\t\t\trawCapture,\n\t\t\t\tdepthLimit: request.depth,\n\t\t\t\tconstructionMode: request.constructionMode,\n\t\t\t\tsnapshot: {\n\t\t\t\t\tbids: sample.bids,\n\t\t\t\t\tasks: sample.asks,\n\t\t\t\t\ttimestamp: sample.sourceTimeMs,\n\t\t\t\t\treceivedTimestamp: sample.receivedTimeMs,\n\t\t\t\t\texchange: request.scope.exchange,\n\t\t\t\t\tsymbol: request.scope.tradingPair,\n\t\t\t\t\tdepthLimit: request.depth,\n\t\t\t\t\tsequence: sample.sequence,\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn [...canonical.levels, canonical.summary];\n\t\t}) as BackfillArchiveRow[];\n\t\treturn {\n\t\t\tcaptureBundleId,\n\t\t\tobjects: dataset.objects,\n\t\t\trows,\n\t\t\tvendorSemanticDigest: dataset.vendorSemanticDigest,\n\t\t\tcanonicalSemanticDigest: semanticDigest(rows),\n\t\t};\n\t}\n}\n",
162
162
  "// Some numerical data is initialized as -1 even when it doesn't need initialization to help the JIT infer types\n// aliases for shorter compressed code (most minifers don't do this)\nvar ab = ArrayBuffer, u8 = Uint8Array, u16 = Uint16Array, i16 = Int16Array, u32 = Uint32Array, i32 = Int32Array;\nvar slc = function (v, s, e) {\n if (u8.prototype.slice)\n return u8.prototype.slice.call(v, s, e);\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n var n = new u8(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\nvar fill = function (v, n, s, e) {\n if (u8.prototype.fill)\n return u8.prototype.fill.call(v, n, s, e);\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n for (; s < e; ++s)\n v[s] = n;\n return v;\n};\nvar cpw = function (v, t, s, e) {\n if (u8.prototype.copyWithin)\n return u8.prototype.copyWithin.call(v, t, s, e);\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n while (s < e) {\n v[t++] = v[s++];\n }\n};\n/**\n * Codes for errors generated within this library\n */\nexport var ZstdErrorCode = {\n InvalidData: 0,\n WindowSizeTooLarge: 1,\n InvalidBlockType: 2,\n FSEAccuracyTooHigh: 3,\n DistanceTooFarBack: 4,\n UnexpectedEOF: 5\n};\n// error codes\nvar ec = [\n 'invalid zstd data',\n 'window size too large (>2046MB)',\n 'invalid block type',\n 'FSE accuracy too high',\n 'match distance too far back',\n 'unexpected EOF'\n];\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\nvar rb = function (d, b, n) {\n var i = 0, o = 0;\n for (; i < n; ++i)\n o |= d[b++] << (i << 3);\n return o;\n};\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\n// read Zstandard frame header\nvar rzfh = function (dat, w) {\n var n3 = dat[0] | (dat[1] << 8) | (dat[2] << 16);\n if (n3 == 0x2FB528 && dat[3] == 253) {\n // Zstandard\n var flg = dat[4];\n // single segment checksum dict flag frame content flag\n var ss = (flg >> 5) & 1, cc = (flg >> 2) & 1, df = flg & 3, fcf = flg >> 6;\n if (flg & 8)\n err(0);\n // byte\n var bt = 6 - ss;\n // dict bytes\n var db = df == 3 ? 4 : df;\n // dictionary id\n var di = rb(dat, bt, db);\n bt += db;\n // frame size bytes\n var fsb = fcf ? (1 << fcf) : ss;\n // frame source size\n var fss = rb(dat, bt, fsb) + ((fcf == 1) && 256);\n // window size\n var ws = fss;\n if (!ss) {\n // window descriptor\n var wb = 1 << (10 + (dat[5] >> 3));\n ws = wb + (wb >> 3) * (dat[5] & 7);\n }\n if (ws > 2145386496)\n err(1);\n var buf = new u8((w == 1 ? (fss || ws) : w ? 0 : ws) + 12);\n buf[0] = 1, buf[4] = 4, buf[8] = 8;\n return {\n b: bt + fsb,\n y: 0,\n l: 0,\n d: di,\n w: (w && w != 1) ? w : buf.subarray(12),\n e: ws,\n o: new i32(buf.buffer, 0, 3),\n u: fss,\n c: cc,\n m: Math.min(131072, ws)\n };\n }\n else if (((n3 >> 4) | (dat[3] << 20)) == 0x184D2A5) {\n // skippable\n return b4(dat, 4) + 8;\n }\n err(0);\n};\n// most significant bit for nonzero\nvar msb = function (val) {\n var bits = 0;\n for (; (1 << bits) <= val; ++bits)\n ;\n return bits - 1;\n};\n// read finite state entropy\nvar rfse = function (dat, bt, mal) {\n // table pos\n var tpos = (bt << 3) + 4;\n // accuracy log\n var al = (dat[bt] & 15) + 5;\n if (al > mal)\n err(3);\n // size\n var sz = 1 << al;\n // probabilities symbols repeat index high threshold\n var probs = sz, sym = -1, re = -1, i = -1, ht = sz;\n // optimization: single allocation is much faster\n var buf = new ab(512 + (sz << 2));\n var freq = new i16(buf, 0, 256);\n // same view as freq\n var dstate = new u16(buf, 0, 256);\n var nstate = new u16(buf, 512, sz);\n var bb1 = 512 + (sz << 1);\n var syms = new u8(buf, bb1, sz);\n var nbits = new u8(buf, bb1 + sz);\n while (sym < 255 && probs > 0) {\n var bits = msb(probs + 1);\n var cbt = tpos >> 3;\n // mask\n var msk = (1 << (bits + 1)) - 1;\n var val = ((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (tpos & 7)) & msk;\n // mask (1 fewer bit)\n var msk1fb = (1 << bits) - 1;\n // max small value\n var msv = msk - probs - 1;\n // small value\n var sval = val & msk1fb;\n if (sval < msv)\n tpos += bits, val = sval;\n else {\n tpos += bits + 1;\n if (val > msk1fb)\n val -= msv;\n }\n freq[++sym] = --val;\n if (val == -1) {\n probs += val;\n syms[--ht] = sym;\n }\n else\n probs -= val;\n if (!val) {\n do {\n // repeat byte\n var rbt = tpos >> 3;\n re = ((dat[rbt] | (dat[rbt + 1] << 8)) >> (tpos & 7)) & 3;\n tpos += 2;\n sym += re;\n } while (re == 3);\n }\n }\n if (sym > 255 || probs)\n err(0);\n var sympos = 0;\n // sym step (coprime with sz - formula from zstd source)\n var sstep = (sz >> 1) + (sz >> 3) + 3;\n // sym mask\n var smask = sz - 1;\n for (var s = 0; s <= sym; ++s) {\n var sf = freq[s];\n if (sf < 1) {\n dstate[s] = -sf;\n continue;\n }\n // This is split into two loops in zstd to avoid branching, but as JS is higher-level that is unnecessary\n for (i = 0; i < sf; ++i) {\n syms[sympos] = s;\n do {\n sympos = (sympos + sstep) & smask;\n } while (sympos >= ht);\n }\n }\n // After spreading symbols, should be zero again\n if (sympos)\n err(0);\n for (i = 0; i < sz; ++i) {\n // next state\n var ns = dstate[syms[i]]++;\n // num bits\n var nb = nbits[i] = al - msb(ns);\n nstate[i] = (ns << nb) - sz;\n }\n return [(tpos + 7) >> 3, {\n b: al,\n s: syms,\n n: nbits,\n t: nstate\n }];\n};\n// read huffman\nvar rhu = function (dat, bt) {\n // index weight count\n var i = 0, wc = -1;\n // buffer header byte\n var buf = new u8(292), hb = dat[bt];\n // huffman weights\n var hw = buf.subarray(0, 256);\n // rank count\n var rc = buf.subarray(256, 268);\n // rank index\n var ri = new u16(buf.buffer, 268);\n // NOTE: at this point bt is 1 less than expected\n if (hb < 128) {\n // end byte, fse decode table\n var _a = rfse(dat, bt + 1, 6), ebt = _a[0], fdt = _a[1];\n bt += hb;\n var epos = ebt << 3;\n // last byte\n var lb = dat[bt];\n if (!lb)\n err(0);\n // state1 state2 state1 bits state2 bits\n var st1 = 0, st2 = 0, btr1 = fdt.b, btr2 = btr1;\n // fse pos\n // pre-increment to account for original deficit of 1\n var fpos = (++bt << 3) - 8 + msb(lb);\n for (;;) {\n fpos -= btr1;\n if (fpos < epos)\n break;\n var cbt = fpos >> 3;\n st1 += ((dat[cbt] | (dat[cbt + 1] << 8)) >> (fpos & 7)) & ((1 << btr1) - 1);\n hw[++wc] = fdt.s[st1];\n fpos -= btr2;\n if (fpos < epos)\n break;\n cbt = fpos >> 3;\n st2 += ((dat[cbt] | (dat[cbt + 1] << 8)) >> (fpos & 7)) & ((1 << btr2) - 1);\n hw[++wc] = fdt.s[st2];\n btr1 = fdt.n[st1];\n st1 = fdt.t[st1];\n btr2 = fdt.n[st2];\n st2 = fdt.t[st2];\n }\n if (++wc > 255)\n err(0);\n }\n else {\n wc = hb - 127;\n for (; i < wc; i += 2) {\n var byte = dat[++bt];\n hw[i] = byte >> 4;\n hw[i + 1] = byte & 15;\n }\n ++bt;\n }\n // weight exponential sum\n var wes = 0;\n for (i = 0; i < wc; ++i) {\n var wt = hw[i];\n // bits must be at most 11, same as weight\n if (wt > 11)\n err(0);\n wes += wt && (1 << (wt - 1));\n }\n // max bits\n var mb = msb(wes) + 1;\n // table size\n var ts = 1 << mb;\n // remaining sum\n var rem = ts - wes;\n // must be power of 2\n if (rem & (rem - 1))\n err(0);\n hw[wc++] = msb(rem) + 1;\n for (i = 0; i < wc; ++i) {\n var wt = hw[i];\n ++rc[hw[i] = wt && (mb + 1 - wt)];\n }\n // huf buf\n var hbuf = new u8(ts << 1);\n // symbols num bits\n var syms = hbuf.subarray(0, ts), nb = hbuf.subarray(ts);\n ri[mb] = 0;\n for (i = mb; i > 0; --i) {\n var pv = ri[i];\n fill(nb, i, pv, ri[i - 1] = pv + rc[i] * (1 << (mb - i)));\n }\n if (ri[0] != ts)\n err(0);\n for (i = 0; i < wc; ++i) {\n var bits = hw[i];\n if (bits) {\n var code = ri[bits];\n fill(syms, i, code, ri[bits] = code + (1 << (mb - bits)));\n }\n }\n return [bt, {\n n: nb,\n b: mb,\n s: syms\n }];\n};\n// Tables generated using this:\n// https://gist.github.com/101arrowz/a979452d4355992cbf8f257cbffc9edd\n// default literal length table\nvar dllt = /*#__PURE__*/ rfse(/*#__PURE__*/ new u8([\n 81, 16, 99, 140, 49, 198, 24, 99, 12, 33, 196, 24, 99, 102, 102, 134, 70, 146, 4\n]), 0, 6)[1];\n// default match length table\nvar dmlt = /*#__PURE__*/ rfse(/*#__PURE__*/ new u8([\n 33, 20, 196, 24, 99, 140, 33, 132, 16, 66, 8, 33, 132, 16, 66, 8, 33, 68, 68, 68, 68, 68, 68, 68, 68, 36, 9\n]), 0, 6)[1];\n// default offset code table\nvar doct = /*#__PURE__ */ rfse(/*#__PURE__*/ new u8([\n 32, 132, 16, 66, 102, 70, 68, 68, 68, 68, 36, 73, 2\n]), 0, 5)[1];\n// bits to baseline\nvar b2bl = function (b, s) {\n var len = b.length, bl = new i32(len);\n for (var i = 0; i < len; ++i) {\n bl[i] = s;\n s += 1 << b[i];\n }\n return bl;\n};\n// literal length bits\nvar llb = /*#__PURE__ */ new u8(( /*#__PURE__ */new i32([\n 0, 0, 0, 0, 16843009, 50528770, 134678020, 202050057, 269422093\n])).buffer, 0, 36);\n// literal length baseline\nvar llbl = /*#__PURE__ */ b2bl(llb, 0);\n// match length bits\nvar mlb = /*#__PURE__ */ new u8(( /*#__PURE__ */new i32([\n 0, 0, 0, 0, 0, 0, 0, 0, 16843009, 50528770, 117769220, 185207048, 252579084, 16\n])).buffer, 0, 53);\n// match length baseline\nvar mlbl = /*#__PURE__ */ b2bl(mlb, 3);\n// decode huffman stream\nvar dhu = function (dat, out, hu) {\n var len = dat.length, ss = out.length, lb = dat[len - 1], msk = (1 << hu.b) - 1, eb = -hu.b;\n if (!lb)\n err(0);\n var st = 0, btr = hu.b, pos = (len << 3) - 8 + msb(lb) - btr, i = -1;\n for (; pos > eb && i < ss;) {\n var cbt = pos >> 3;\n var val = (dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (pos & 7);\n st = ((st << btr) | val) & msk;\n out[++i] = hu.s[st];\n pos -= (btr = hu.n[st]);\n }\n if (pos != eb || i + 1 != ss)\n err(0);\n};\n// decode huffman stream 4x\n// TODO: use workers to parallelize\nvar dhu4 = function (dat, out, hu) {\n var bt = 6;\n var ss = out.length, sz1 = (ss + 3) >> 2, sz2 = sz1 << 1, sz3 = sz1 + sz2;\n dhu(dat.subarray(bt, bt += dat[0] | (dat[1] << 8)), out.subarray(0, sz1), hu);\n dhu(dat.subarray(bt, bt += dat[2] | (dat[3] << 8)), out.subarray(sz1, sz2), hu);\n dhu(dat.subarray(bt, bt += dat[4] | (dat[5] << 8)), out.subarray(sz2, sz3), hu);\n dhu(dat.subarray(bt), out.subarray(sz3), hu);\n};\n// read Zstandard block\nvar rzb = function (dat, st, out) {\n var _a;\n var bt = st.b;\n // byte 0 block type\n var b0 = dat[bt], btype = (b0 >> 1) & 3;\n st.l = b0 & 1;\n var sz = (b0 >> 3) | (dat[bt + 1] << 5) | (dat[bt + 2] << 13);\n // end byte for block\n var ebt = (bt += 3) + sz;\n if (btype == 1) {\n if (bt >= dat.length)\n return;\n st.b = bt + 1;\n if (out) {\n fill(out, dat[bt], st.y, st.y += sz);\n return out;\n }\n return fill(new u8(sz), dat[bt]);\n }\n if (ebt > dat.length)\n return;\n if (btype == 0) {\n st.b = ebt;\n if (out) {\n out.set(dat.subarray(bt, ebt), st.y);\n st.y += sz;\n return out;\n }\n return slc(dat, bt, ebt);\n }\n if (btype == 2) {\n // byte 3 lit btype size format\n var b3 = dat[bt], lbt = b3 & 3, sf = (b3 >> 2) & 3;\n // lit src size lit cmp sz 4 streams\n var lss = b3 >> 4, lcs = 0, s4 = 0;\n if (lbt < 2) {\n if (sf & 1)\n lss |= (dat[++bt] << 4) | ((sf & 2) && (dat[++bt] << 12));\n else\n lss = b3 >> 3;\n }\n else {\n s4 = sf;\n if (sf < 2)\n lss |= ((dat[++bt] & 63) << 4), lcs = (dat[bt] >> 6) | (dat[++bt] << 2);\n else if (sf == 2)\n lss |= (dat[++bt] << 4) | ((dat[++bt] & 3) << 12), lcs = (dat[bt] >> 2) | (dat[++bt] << 6);\n else\n lss |= (dat[++bt] << 4) | ((dat[++bt] & 63) << 12), lcs = (dat[bt] >> 6) | (dat[++bt] << 2) | (dat[++bt] << 10);\n }\n ++bt;\n // add literals to end - can never overlap with backreferences because unused literals always appended\n var buf = out ? out.subarray(st.y, st.y + st.m) : new u8(st.m);\n // starting point for literals\n var spl = buf.length - lss;\n if (lbt == 0)\n buf.set(dat.subarray(bt, bt += lss), spl);\n else if (lbt == 1)\n fill(buf, dat[bt++], spl);\n else {\n // huffman table\n var hu = st.h;\n if (lbt == 2) {\n var hud = rhu(dat, bt);\n // subtract description length\n lcs += bt - (bt = hud[0]);\n st.h = hu = hud[1];\n }\n else if (!hu)\n err(0);\n (s4 ? dhu4 : dhu)(dat.subarray(bt, bt += lcs), buf.subarray(spl), hu);\n }\n // num sequences\n var ns = dat[bt++];\n if (ns) {\n if (ns == 255)\n ns = (dat[bt++] | (dat[bt++] << 8)) + 0x7F00;\n else if (ns > 127)\n ns = ((ns - 128) << 8) | dat[bt++];\n // symbol compression modes\n var scm = dat[bt++];\n if (scm & 3)\n err(0);\n var dts = [dmlt, doct, dllt];\n for (var i = 2; i > -1; --i) {\n var md = (scm >> ((i << 1) + 2)) & 3;\n if (md == 1) {\n // rle buf\n var rbuf = new u8([0, 0, dat[bt++]]);\n dts[i] = {\n s: rbuf.subarray(2, 3),\n n: rbuf.subarray(0, 1),\n t: new u16(rbuf.buffer, 0, 1),\n b: 0\n };\n }\n else if (md == 2) {\n // accuracy log 8 for offsets, 9 for others\n _a = rfse(dat, bt, 9 - (i & 1)), bt = _a[0], dts[i] = _a[1];\n }\n else if (md == 3) {\n if (!st.t)\n err(0);\n dts[i] = st.t[i];\n }\n }\n var _b = st.t = dts, mlt = _b[0], oct = _b[1], llt = _b[2];\n var lb = dat[ebt - 1];\n if (!lb)\n err(0);\n var spos = (ebt << 3) - 8 + msb(lb) - llt.b, cbt = spos >> 3, oubt = 0;\n var lst = ((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << llt.b) - 1);\n cbt = (spos -= oct.b) >> 3;\n var ost = ((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << oct.b) - 1);\n cbt = (spos -= mlt.b) >> 3;\n var mst = ((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << mlt.b) - 1);\n for (++ns; --ns;) {\n var llc = llt.s[lst];\n var lbtr = llt.n[lst];\n var mlc = mlt.s[mst];\n var mbtr = mlt.n[mst];\n var ofc = oct.s[ost];\n var obtr = oct.n[ost];\n cbt = (spos -= ofc) >> 3;\n var ofp = 1 << ofc;\n var off = ofp + (((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16) | (dat[cbt + 3] << 24)) >>> (spos & 7)) & (ofp - 1));\n cbt = (spos -= mlb[mlc]) >> 3;\n var ml = mlbl[mlc] + (((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (spos & 7)) & ((1 << mlb[mlc]) - 1));\n cbt = (spos -= llb[llc]) >> 3;\n var ll = llbl[llc] + (((dat[cbt] | (dat[cbt + 1] << 8) | (dat[cbt + 2] << 16)) >> (spos & 7)) & ((1 << llb[llc]) - 1));\n cbt = (spos -= lbtr) >> 3;\n lst = llt.t[lst] + (((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << lbtr) - 1));\n cbt = (spos -= mbtr) >> 3;\n mst = mlt.t[mst] + (((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << mbtr) - 1));\n cbt = (spos -= obtr) >> 3;\n ost = oct.t[ost] + (((dat[cbt] | (dat[cbt + 1] << 8)) >> (spos & 7)) & ((1 << obtr) - 1));\n if (off > 3) {\n st.o[2] = st.o[1];\n st.o[1] = st.o[0];\n st.o[0] = off -= 3;\n }\n else {\n var idx = off - (ll != 0);\n if (idx) {\n off = idx == 3 ? st.o[0] - 1 : st.o[idx];\n if (idx > 1)\n st.o[2] = st.o[1];\n st.o[1] = st.o[0];\n st.o[0] = off;\n }\n else\n off = st.o[0];\n }\n for (var i = 0; i < ll; ++i) {\n buf[oubt + i] = buf[spl + i];\n }\n oubt += ll, spl += ll;\n var stin = oubt - off;\n if (stin < 0) {\n var len = -stin;\n var bs = st.e + stin;\n if (len > ml)\n len = ml;\n for (var i = 0; i < len; ++i) {\n buf[oubt + i] = st.w[bs + i];\n }\n oubt += len, ml -= len, stin = 0;\n }\n for (var i = 0; i < ml; ++i) {\n buf[oubt + i] = buf[stin + i];\n }\n oubt += ml;\n }\n if (oubt != spl) {\n while (spl < buf.length) {\n buf[oubt++] = buf[spl++];\n }\n }\n else\n oubt = buf.length;\n if (out)\n st.y += oubt;\n else\n buf = slc(buf, 0, oubt);\n }\n else if (out) {\n st.y += lss;\n if (spl) {\n for (var i = 0; i < lss; ++i) {\n buf[i] = buf[spl + i];\n }\n }\n }\n else if (spl)\n buf = slc(buf, spl);\n st.b = ebt;\n return buf;\n }\n err(2);\n};\n// concat\nvar cct = function (bufs, ol) {\n if (bufs.length == 1)\n return bufs[0];\n var buf = new u8(ol);\n for (var i = 0, b = 0; i < bufs.length; ++i) {\n var chk = bufs[i];\n buf.set(chk, b);\n b += chk.length;\n }\n return buf;\n};\n/**\n * Decompresses Zstandard data\n * @param dat The input data\n * @param buf The output buffer. If unspecified, the function will allocate\n * exactly enough memory to fit the decompressed data. If your\n * data has multiple frames and you know the output size, specifying\n * it will yield better performance.\n * @returns The decompressed data\n */\nexport function decompress(dat, buf) {\n var bufs = [], nb = +!buf;\n var bt = 0, ol = 0;\n for (; dat.length;) {\n var st = rzfh(dat, nb || buf);\n if (typeof st == 'object') {\n if (nb) {\n buf = null;\n if (st.w.length == st.u) {\n bufs.push(buf = st.w);\n ol += st.u;\n }\n }\n else {\n bufs.push(buf);\n st.e = 0;\n }\n for (; !st.l;) {\n var blk = rzb(dat, st, buf);\n if (!blk)\n err(5);\n if (buf)\n st.e = st.y;\n else {\n bufs.push(blk);\n ol += blk.length;\n cpw(st.w, 0, blk.length);\n st.w.set(blk, st.w.length - blk.length);\n }\n }\n bt = st.b + (st.c * 4);\n }\n else\n bt = st;\n dat = dat.subarray(bt);\n }\n return cct(bufs, ol);\n}\n/**\n * Decompressor for Zstandard streamed data\n */\nvar Decompress = /*#__PURE__*/ (function () {\n /**\n * Creates a Zstandard decompressor\n * @param ondata The handler for stream data\n */\n function Decompress(ondata) {\n this.ondata = ondata;\n this.c = [];\n this.l = 0;\n this.z = 0;\n }\n /**\n * Pushes data to be decompressed\n * @param chunk The chunk of data to push\n * @param final Whether or not this is the last chunk in the stream\n */\n Decompress.prototype.push = function (chunk, final) {\n if (typeof this.s == 'number') {\n var sub = Math.min(chunk.length, this.s);\n chunk = chunk.subarray(sub);\n this.s -= sub;\n }\n var sl = chunk.length;\n var ncs = sl + this.l;\n if (!this.s) {\n if (final) {\n if (!ncs) {\n this.ondata(new u8(0), true);\n return;\n }\n // min for frame + one block\n if (ncs < 5)\n err(5);\n }\n else if (ncs < 18) {\n this.c.push(chunk);\n this.l = ncs;\n return;\n }\n if (this.l) {\n this.c.push(chunk);\n chunk = cct(this.c, ncs);\n this.c = [];\n this.l = 0;\n }\n if (typeof (this.s = rzfh(chunk)) == 'number')\n return this.push(chunk, final);\n }\n if (typeof this.s != 'number') {\n if (ncs < (this.z || 3)) {\n if (final)\n err(5);\n this.c.push(chunk);\n this.l = ncs;\n return;\n }\n if (this.l) {\n this.c.push(chunk);\n chunk = cct(this.c, ncs);\n this.c = [];\n this.l = 0;\n }\n if (!this.z && ncs < (this.z = (chunk[this.s.b] & 2) ? 4 : 3 + ((chunk[this.s.b] >> 3) | (chunk[this.s.b + 1] << 5) | (chunk[this.s.b + 2] << 13)))) {\n if (final)\n err(5);\n this.c.push(chunk);\n this.l = ncs;\n return;\n }\n else\n this.z = 0;\n for (;;) {\n var blk = rzb(chunk, this.s);\n if (!blk) {\n if (final)\n err(5);\n var adc = chunk.subarray(this.s.b);\n this.s.b = 0;\n this.c.push(adc), this.l += adc.length;\n return;\n }\n else {\n this.ondata(blk, false);\n cpw(this.s.w, 0, blk.length);\n this.s.w.set(blk, this.s.w.length - blk.length);\n }\n if (this.s.l) {\n var rest = chunk.subarray(this.s.b);\n this.s = this.s.c * 4;\n this.push(rest, final);\n return;\n }\n }\n }\n else if (final)\n err(5);\n };\n return Decompress;\n}());\nexport { Decompress };\n",
163
163
  "\n/** @type {import('../src/types.d.ts').ParquetType[]} */\nexport const ParquetTypes = [\n 'BOOLEAN',\n 'INT32',\n 'INT64',\n 'INT96', // deprecated\n 'FLOAT',\n 'DOUBLE',\n 'BYTE_ARRAY',\n 'FIXED_LEN_BYTE_ARRAY',\n]\n\n/** @type {import('../src/types.d.ts').Encoding[]} */\nexport const Encodings = [\n 'PLAIN',\n 'GROUP_VAR_INT', // deprecated\n 'PLAIN_DICTIONARY',\n 'RLE',\n 'BIT_PACKED', // deprecated\n 'DELTA_BINARY_PACKED',\n 'DELTA_LENGTH_BYTE_ARRAY',\n 'DELTA_BYTE_ARRAY',\n 'RLE_DICTIONARY',\n 'BYTE_STREAM_SPLIT',\n]\n\n/** @type {import('../src/types.d.ts').FieldRepetitionType[]} */\nexport const FieldRepetitionTypes = [\n 'REQUIRED',\n 'OPTIONAL',\n 'REPEATED',\n]\n\n/** @type {import('../src/types.d.ts').ConvertedType[]} */\nexport const ConvertedTypes = [\n 'UTF8',\n 'MAP',\n 'MAP_KEY_VALUE',\n 'LIST',\n 'ENUM',\n 'DECIMAL',\n 'DATE',\n 'TIME_MILLIS',\n 'TIME_MICROS',\n 'TIMESTAMP_MILLIS',\n 'TIMESTAMP_MICROS',\n 'UINT_8',\n 'UINT_16',\n 'UINT_32',\n 'UINT_64',\n 'INT_8',\n 'INT_16',\n 'INT_32',\n 'INT_64',\n 'JSON',\n 'BSON',\n 'INTERVAL',\n]\n\n/** @type {import('../src/types.d.ts').CompressionCodec[]} */\nexport const CompressionCodecs = [\n 'UNCOMPRESSED',\n 'SNAPPY',\n 'GZIP',\n 'LZO',\n 'BROTLI',\n 'LZ4',\n 'ZSTD',\n 'LZ4_RAW',\n]\n\n/** @type {import('../src/types.d.ts').PageType[]} */\nexport const PageTypes = [\n 'DATA_PAGE',\n 'INDEX_PAGE',\n 'DICTIONARY_PAGE',\n 'DATA_PAGE_V2',\n]\n\n/** @type {import('../src/types.d.ts').BoundaryOrder[]} */\nexport const BoundaryOrders = [\n 'UNORDERED',\n 'ASCENDING',\n 'DESCENDING',\n]\n\n/** @type {import('../src/types.d.ts').EdgeInterpolationAlgorithm[]} */\nexport const EdgeInterpolationAlgorithms = [\n 'SPHERICAL',\n 'VINCENTY',\n 'THOMAS',\n 'ANDOYER',\n 'KARNEY',\n]\n",
164
164
  "/**\n * WKB (Well-Known Binary) decoder for geometry objects.\n *\n * @param {DataReader} reader\n * @returns {Geometry} geometry object\n */\nexport function wkbToGeojson(reader) {\n const flags = getFlags(reader)\n\n if (flags.type === 1) { // Point\n return { type: 'Point', coordinates: readPosition(reader, flags) }\n } else if (flags.type === 2) { // LineString\n return { type: 'LineString', coordinates: readLine(reader, flags) }\n } else if (flags.type === 3) { // Polygon\n return { type: 'Polygon', coordinates: readPolygon(reader, flags) }\n } else if (flags.type === 4) { // MultiPoint\n const points = []\n for (let i = 0; i < flags.count; i++) {\n points.push(readPosition(reader, getFlags(reader)))\n }\n return { type: 'MultiPoint', coordinates: points }\n } else if (flags.type === 5) { // MultiLineString\n const lines = []\n for (let i = 0; i < flags.count; i++) {\n lines.push(readLine(reader, getFlags(reader)))\n }\n return { type: 'MultiLineString', coordinates: lines }\n } else if (flags.type === 6) { // MultiPolygon\n const polygons = []\n for (let i = 0; i < flags.count; i++) {\n polygons.push(readPolygon(reader, getFlags(reader)))\n }\n return { type: 'MultiPolygon', coordinates: polygons }\n } else if (flags.type === 7) { // GeometryCollection\n const geometries = []\n for (let i = 0; i < flags.count; i++) {\n geometries.push(wkbToGeojson(reader))\n }\n return { type: 'GeometryCollection', geometries }\n } else {\n throw new Error(`Unsupported geometry type: ${flags.type}`)\n }\n}\n\n/**\n * Extract ISO WKB flags and base geometry type.\n *\n * @param {DataReader} reader\n * @returns {WkbFlags}\n */\nfunction getFlags(reader) {\n const { view } = reader\n const littleEndian = view.getUint8(reader.offset++) === 1\n const rawType = view.getUint32(reader.offset, littleEndian)\n reader.offset += 4\n\n const type = rawType % 1000\n const flags = Math.floor(rawType / 1000)\n\n let count = 0\n if (type > 1 && type <= 7) {\n count = view.getUint32(reader.offset, littleEndian)\n reader.offset += 4\n }\n\n // XY, XYZ, XYM, XYZM\n let dim = 2\n if (flags) dim++\n if (flags === 3) dim++\n\n return { littleEndian, type, dim, count }\n}\n\n/**\n * @param {DataReader} reader\n * @param {WkbFlags} flags\n * @returns {number[]}\n */\nfunction readPosition(reader, flags) {\n const points = []\n for (let i = 0; i < flags.dim; i++) {\n const coord = reader.view.getFloat64(reader.offset, flags.littleEndian)\n reader.offset += 8\n points.push(coord)\n }\n return points\n}\n\n/**\n * @param {DataReader} reader\n * @param {WkbFlags} flags\n * @returns {number[][]}\n */\nfunction readLine(reader, flags) {\n const points = []\n for (let i = 0; i < flags.count; i++) {\n points.push(readPosition(reader, flags))\n }\n return points\n}\n\n/**\n * @param {DataReader} reader\n * @param {WkbFlags} flags\n * @returns {number[][][]}\n */\nfunction readPolygon(reader, flags) {\n const { view } = reader\n const rings = []\n for (let r = 0; r < flags.count; r++) {\n const count = view.getUint32(reader.offset, flags.littleEndian)\n reader.offset += 4\n rings.push(readLine(reader, { ...flags, count }))\n }\n return rings\n}\n\n/**\n * @typedef {object} WkbFlags\n * @property {boolean} littleEndian\n * @property {number} type\n * @property {number} dim\n * @property {number} count\n */\n\n/**\n * @import {DataReader, Geometry} from '../src/types.js'\n */\n",
@@ -185,10 +185,10 @@
185
185
  "/**\n * @import {AsyncRowGroup, BaseParquetReadOptions, DecodedArray, ParquetReadOptions, SchemaElement} from '../src/types.js'\n */\n\nimport { columnsNeededForFilter, matchFilter } from './filter.js'\nimport { parquetMetadataAsync, parquetSchema } from './metadata.js'\nimport { parquetPlan, prefetchAsyncBuffer, prefetchBloomFilters, prefetchPageIndexes } from './plan.js'\nimport { assembleAsync, asyncGroupToRows, readRowGroup } from './rowgroup.js'\nimport { concat } from './utils.js'\n\n/**\n * Read parquet data rows from a file-like object.\n * Reads the minimal number of row groups and columns to satisfy the request.\n *\n * Returns a void promise when complete.\n * Errors are thrown on the returned promise.\n * Data is returned in callbacks onComplete, onChunk, onPage, NOT the return promise.\n * See parquetReadObjects for a more convenient API.\n *\n * @param {ParquetReadOptions} options read options\n * @returns {Promise<void>} resolves when all requested rows and columns are parsed, all errors are thrown here\n */\nexport async function parquetRead(options) {\n // load metadata if not provided\n options.metadata ??= await parquetMetadataAsync(options.file, options)\n\n const { rowStart = 0, rowEnd, columns, onChunk, onComplete, rowFormat, filter, filterStrict = true } = options\n\n // Filter requires object format to match column names\n if (filter && rowFormat !== 'object') {\n throw new Error('parquet filter requires rowFormat: \"object\"')\n }\n\n // Include filter columns in the read plan\n const filterColumns = columnsNeededForFilter(filter)\n if (filterColumns.length) {\n const schemaColumns = parquetSchema(options.metadata).children.map(c => c.element.name)\n const missingColumns = filterColumns.filter(c => !schemaColumns.includes(c))\n if (missingColumns.length) {\n throw new Error(`parquet filter columns not found: ${missingColumns.join(', ')}`)\n }\n }\n let readColumns = columns\n let requiresProjection = false\n if (columns && filter) {\n const missingFilterColumns = filterColumns.filter(c => !columns.includes(c))\n if (missingFilterColumns.length) {\n readColumns = [...columns, ...missingFilterColumns]\n requiresProjection = true\n }\n }\n\n // read row groups with expanded columns\n let readOptions = readColumns !== columns ? { ...options, columns: readColumns } : options\n readOptions = await withBloomFilters(readOptions)\n readOptions = await withPageIndexes(readOptions)\n const asyncGroups = parquetReadAsync(readOptions)\n\n // skip assembly if no onComplete or onChunk, but wait for reading to finish\n if (!onComplete && !onChunk) {\n await awaitAllColumns(asyncGroups)\n return\n }\n\n // assemble struct columns\n const schemaTree = parquetSchema(options.metadata)\n const assembled = asyncGroups.map(arg => assembleAsync(arg, schemaTree, options.parsers))\n\n // onChunk emit all chunks (don't await). Rejection is surfaced by awaitAllColumns below.\n if (onChunk) {\n for (const asyncGroup of assembled) {\n for (const asyncColumn of asyncGroup.asyncColumns) {\n asyncColumn.data.then(({ data, skipped }) => {\n let rowStart = asyncGroup.groupStart + skipped\n for (const columnData of data) {\n onChunk({\n columnName: asyncColumn.pathInSchema[0],\n columnData,\n rowStart,\n rowEnd: rowStart + columnData.length,\n })\n rowStart += columnData.length\n }\n }, () => {})\n }\n }\n }\n\n // onComplete transpose column chunks to rows\n if (onComplete) {\n // wait for all reads to settle so a sibling rejection cannot leak\n await awaitAllColumns(assembled)\n // loosen the types to avoid duplicate code\n /** @type {any[]} */\n const rows = []\n for (const asyncGroup of assembled) {\n // filter to rows in range (the plan may have narrowed the selection to\n // a sub-range of the group via page index pushdown)\n const selectStart = asyncGroup.selectStart ?? Math.max(rowStart - asyncGroup.groupStart, 0)\n const selectEnd = asyncGroup.selectEnd ?? Math.min((rowEnd ?? Infinity) - asyncGroup.groupStart, asyncGroup.groupRows)\n // transpose column chunks to rows in output\n const groupData = rowFormat === 'object' ?\n await asyncGroupToRows(asyncGroup, selectStart, selectEnd, readColumns, 'object') :\n await asyncGroupToRows(asyncGroup, selectStart, selectEnd, columns, 'array')\n\n // Apply filter and projection\n if (filter) {\n // eslint-disable-next-line no-extra-parens\n for (const row of /** @type {Record<string, any>[]} */ (groupData)) {\n if (matchFilter(row, filter, filterStrict)) {\n if (requiresProjection && columns) {\n for (const col of filterColumns) {\n if (!columns.includes(col)) delete row[col]\n }\n }\n rows.push(row)\n }\n }\n } else {\n concat(rows, groupData)\n }\n }\n onComplete(rows)\n } else {\n // wait for all async groups to finish (complete takes care of this)\n await awaitAllColumns(assembled)\n }\n}\n\n/**\n * Await every column promise across the given row groups via Promise.allSettled\n * so no rejection escapes as an unhandledRejection. Throws the first rejection.\n *\n * @param {AsyncRowGroup[]} asyncGroups\n * @returns {Promise<void>}\n */\nasync function awaitAllColumns(asyncGroups) {\n const all = asyncGroups.flatMap(g => g.asyncColumns.map(c => c.data))\n const results = await Promise.allSettled(all)\n const failed = results.find(r => r.status === 'rejected')\n if (failed) throw failed.reason\n}\n\n/**\n * @param {ParquetReadOptions} options read options\n * @returns {AsyncRowGroup[]}\n */\nexport function parquetReadAsync(options) {\n if (!options.metadata) throw new Error('parquet requires metadata')\n // TODO: validate options (start, end, columns, etc)\n\n // prefetch byte ranges\n const plan = parquetPlan(options)\n options.file = prefetchAsyncBuffer(options.file, plan)\n\n // read row groups\n return plan.groups.map(groupPlan => readRowGroup(options, plan, groupPlan))\n}\n\n/**\n * Reads a single column from a parquet file.\n *\n * @param {BaseParquetReadOptions} options\n * @returns {Promise<DecodedArray>}\n */\nexport async function parquetReadColumn(options) {\n if (options.columns?.length !== 1) {\n throw new Error('parquetReadColumn expected columns: [columnName]')\n }\n options.metadata ??= await parquetMetadataAsync(options.file, options)\n const asyncGroups = parquetReadAsync(await withBloomFilters(options))\n\n // assemble struct columns\n const schemaTree = parquetSchema(options.metadata)\n const assembled = asyncGroups.map(arg => assembleAsync(arg, schemaTree, options.parsers))\n\n // wait for all reads to settle so a sibling rejection cannot leak\n await awaitAllColumns(assembled)\n\n /** @type {DecodedArray} */\n const columnData = []\n for (const rg of assembled) {\n const { data } = await rg.asyncColumns[0].data\n for (const chunk of data) {\n concat(columnData, chunk)\n }\n }\n return columnData\n}\n\n/**\n * Conditionally fetch bloom filters and attach them (and the per-column schema\n * elements they require) to options so parquetPlan can use them for row-group\n * pruning. Returns options unchanged when there's no filter or the user has\n * disabled bloom pushdown.\n *\n * @param {BaseParquetReadOptions} options\n * @returns {Promise<BaseParquetReadOptions>}\n */\nasync function withBloomFilters(options) {\n if (!options.useBloomFilters) return options\n if (!options.filter || !options.metadata) return options\n const schemaTree = parquetSchema(options.metadata)\n /** @type {Record<string, SchemaElement>} */\n const schemaElements = {}\n for (const child of schemaTree.children) schemaElements[child.element.name] = child.element\n const bloomFiltersByGroup = await prefetchBloomFilters({\n file: options.file,\n metadata: options.metadata,\n filter: options.filter,\n filterStrict: options.filterStrict,\n })\n // eslint-disable-next-line no-extra-parens\n return /** @type {BaseParquetReadOptions} */ ({ ...options, bloomFiltersByGroup, schemaElements })\n}\n\n/**\n * Conditionally fetch page indexes (column index + offset index) for filter\n * columns and attach per-group candidate row ranges and page locations to\n * options so parquetPlan can skip pages that cannot match the filter.\n * Returns options unchanged when there's no filter or the user has not\n * enabled page index pushdown.\n *\n * @param {BaseParquetReadOptions} options\n * @returns {Promise<BaseParquetReadOptions>}\n */\nasync function withPageIndexes(options) {\n if (!options.usePageIndex) return options\n if (!options.filter || !options.metadata) return options\n const { pageRangesByGroup, pageLocationsByGroup } = await prefetchPageIndexes({\n file: options.file,\n metadata: options.metadata,\n filter: options.filter,\n filterStrict: options.filterStrict,\n rowStart: options.rowStart,\n rowEnd: options.rowEnd,\n columns: options.columns,\n // @ts-expect-error bloomFiltersByGroup/schemaElements are attached by withBloomFilters\n bloomFiltersByGroup: options.bloomFiltersByGroup,\n // @ts-expect-error bloomFiltersByGroup/schemaElements are attached by withBloomFilters\n schemaElements: options.schemaElements,\n parsers: options.parsers,\n })\n const readOptions = { ...options, pageRangesByGroup, pageLocationsByGroup }\n return readOptions\n}\n\n/**\n * This is a helper function to read parquet row data as a promise.\n * It is a wrapper around the more configurable parquetRead function.\n *\n * @param {Omit<ParquetReadOptions, 'onComplete'>} options\n * @returns {Promise<Record<string, any>[]>} resolves when all requested rows and columns are parsed\n */\nexport function parquetReadObjects(options) {\n return new Promise((onComplete, reject) => {\n parquetRead({\n ...options,\n rowFormat: 'object', // force object output\n onComplete,\n }).catch(reject)\n })\n}\n",
186
186
  "import type { BrokerArchiveRow } from \"../broker-execution-archive/types\";\nimport type {\n\tNormalizedOrderBookSnapshot,\n\tOrderBookConstructionMode,\n} from \"../order-book\";\nimport {\n\tcaptureCoreFields,\n\tnormalizeTimestampMs,\n\tsha256Canonical,\n} from \"./capture-contract\";\nimport type { MarketCaptureContext, RawCapture } from \"./types\";\n\nexport class OrderBookValidationError extends Error {\n\treadonly reason: string;\n\n\tconstructor(reason: string) {\n\t\tsuper(`Invalid order-book evidence: ${reason}`);\n\t\tthis.name = \"OrderBookValidationError\";\n\t\tthis.reason = reason;\n\t}\n}\n\ntype ValidLevel = { price: number; amount: number };\n\nexport type CanonicalOrderBookRows = {\n\tsnapshotId: string;\n\tlevels: BrokerArchiveRow[];\n\tsummary: BrokerArchiveRow;\n};\n\nfunction parseSequence(\n\tvalue: NormalizedOrderBookSnapshot[\"sequence\"],\n): number | string | undefined {\n\tif (value === undefined) return undefined;\n\tif (typeof value === \"number\") {\n\t\tif (Number.isSafeInteger(value) && value >= 0) return value;\n\t\tthrow new OrderBookValidationError(\n\t\t\t\"sequence must be a non-negative integer\",\n\t\t);\n\t}\n\tif (typeof value !== \"string\" || !/^\\d+$/.test(value)) {\n\t\tthrow new OrderBookValidationError(\n\t\t\t\"sequence must be a non-negative integer\",\n\t\t);\n\t}\n\tconst parsed = BigInt(value);\n\tif (parsed > 18_446_744_073_709_551_615n) {\n\t\tthrow new OrderBookValidationError(\"sequence exceeds UInt64\");\n\t}\n\treturn parsed.toString(10);\n}\n\nfunction validateSide(\n\tside: \"bid\" | \"ask\",\n\tlevels: number[][],\n\tdepthLimit: number,\n): ValidLevel[] {\n\tif (levels.length === 0) {\n\t\tthrow new OrderBookValidationError(`${side} side is missing`);\n\t}\n\tconst retained = levels.slice(0, depthLimit);\n\tfor (let index = 0; index < retained.length; index += 1) {\n\t\tconst entry = retained[index];\n\t\tconst price = entry?.[0];\n\t\tconst amount = entry?.[1];\n\t\tif (\n\t\t\t!Array.isArray(entry) ||\n\t\t\tentry.length < 2 ||\n\t\t\tprice === undefined ||\n\t\t\tamount === undefined ||\n\t\t\t!Number.isFinite(price) ||\n\t\t\t!Number.isFinite(amount) ||\n\t\t\tprice <= 0 ||\n\t\t\tamount <= 0\n\t\t) {\n\t\t\tthrow new OrderBookValidationError(\n\t\t\t\t`${side} level ${index} has a non-positive or non-finite price/amount`,\n\t\t\t);\n\t\t}\n\t\tif (index > 0) {\n\t\t\tconst previous = retained[index - 1]?.[0];\n\t\t\tif (\n\t\t\t\tprevious === undefined ||\n\t\t\t\t(side === \"bid\" ? price >= previous : price <= previous)\n\t\t\t) {\n\t\t\t\tthrow new OrderBookValidationError(\n\t\t\t\t\t`${side} levels are not strictly ${side === \"bid\" ? \"descending\" : \"ascending\"}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\treturn retained.map(([price, amount]) => ({\n\t\tprice: price as number,\n\t\tamount: amount as number,\n\t}));\n}\n\nfunction normalizedBands(input: readonly number[] | undefined): number[] {\n\tconst bands = input ?? [10, 25, 50, 100];\n\tfor (const band of bands) {\n\t\tif (!Number.isFinite(band) || band <= 0 || !Number.isInteger(band)) {\n\t\t\tthrow new OrderBookValidationError(\n\t\t\t\t\"measurement bands must be positive integer basis points\",\n\t\t\t);\n\t\t}\n\t}\n\treturn [...new Set(bands)].sort((left, right) => left - right);\n}\n\nfunction checksumRow(row: Record<string, unknown>): Record<string, unknown> {\n\treturn { ...row, normalized_row_checksum: sha256Canonical(row) };\n}\n\nfunction commonEvidenceFields(\n\tcontext: MarketCaptureContext,\n\trawCapture: RawCapture,\n\tinput: {\n\t\tsnapshotId: string;\n\t\tsequence?: number | string;\n\t\tdepthLimit: number;\n\t\teventTimeMs: number;\n\t\treceivedTimeMs: number;\n\t},\n): Record<string, unknown> {\n\treturn {\n\t\t...captureCoreFields(context, rawCapture),\n\t\tsource_time_ms: input.eventTimeMs,\n\t\treceived_time_ms: input.receivedTimeMs,\n\t\tsnapshot_id: input.snapshotId,\n\t\tconstruction_mode: \"sampled_top_n_snapshot\",\n\t\tgap_policy: \"record_gap\",\n\t\tdepth_limit: input.depthLimit,\n\t\tsequence: input.sequence,\n\t\texact_l2_reconstruction_complete: 0,\n\t};\n}\n\nexport function buildCanonicalOrderBookRows(input: {\n\tcontext: MarketCaptureContext;\n\tsnapshot: NormalizedOrderBookSnapshot;\n\trawCapture: RawCapture;\n\tdepthLimit: number;\n\tmeasurementBandsBps?: readonly number[];\n\tconstructionMode?: OrderBookConstructionMode;\n}): CanonicalOrderBookRows {\n\tif (\n\t\t!Number.isSafeInteger(input.depthLimit) ||\n\t\tinput.depthLimit <= 0 ||\n\t\tinput.depthLimit > 500\n\t) {\n\t\tthrow new OrderBookValidationError(\n\t\t\t\"depth limit must be an integer between 1 and 500\",\n\t\t);\n\t}\n\tif (input.context.feed !== \"ORDERBOOK\") {\n\t\tthrow new OrderBookValidationError(\"capture context feed is not ORDERBOOK\");\n\t}\n\tif (input.constructionMode === \"exact_l2_reconstruction\") {\n\t\tthrow new OrderBookValidationError(\n\t\t\t\"exact L2 requires a complete continuity proof and is unsupported\",\n\t\t);\n\t}\n\n\tlet eventTimeMs: number;\n\tlet receivedTimeMs: number;\n\ttry {\n\t\teventTimeMs = normalizeTimestampMs(\n\t\t\tinput.snapshot.timestamp,\n\t\t\t\"source_time_ms\",\n\t\t);\n\t\treceivedTimeMs = normalizeTimestampMs(\n\t\t\tinput.snapshot.receivedTimestamp,\n\t\t\t\"received_time_ms\",\n\t\t);\n\t} catch (error) {\n\t\tthrow new OrderBookValidationError(\n\t\t\terror instanceof Error ? error.message : \"invalid timestamp\",\n\t\t);\n\t}\n\tif (receivedTimeMs < eventTimeMs) {\n\t\tthrow new OrderBookValidationError(\n\t\t\t\"received timestamp precedes source timestamp\",\n\t\t);\n\t}\n\n\tconst bids = validateSide(\"bid\", input.snapshot.bids, input.depthLimit);\n\tconst asks = validateSide(\"ask\", input.snapshot.asks, input.depthLimit);\n\tconst bestBid = bids[0] as ValidLevel;\n\tconst bestAsk = asks[0] as ValidLevel;\n\tif (bestBid.price >= bestAsk.price) {\n\t\tthrow new OrderBookValidationError(\"book is crossed or locked\");\n\t}\n\tconst sequence = parseSequence(input.snapshot.sequence);\n\tconst midPrice = (bestBid.price + bestAsk.price) / 2;\n\tconst spread = bestAsk.price - bestBid.price;\n\tconst spreadBps = (spread / midPrice) * 10_000;\n\tconst snapshotId = sha256Canonical({\n\t\texchange: input.context.exchange.trim().toLowerCase(),\n\t\ttrading_pair: input.context.symbol.trim().replace(\"/\", \"-\"),\n\t\tsource_time_ms: eventTimeMs,\n\t\tsequence,\n\t\tdepth_limit: input.depthLimit,\n\t\tbids,\n\t\tasks,\n\t\tschema_version: input.context.schemaVersion,\n\t});\n\tconst common = commonEvidenceFields(input.context, input.rawCapture, {\n\t\tsnapshotId,\n\t\tsequence,\n\t\tdepthLimit: input.depthLimit,\n\t\teventTimeMs,\n\t\treceivedTimeMs,\n\t});\n\n\tconst levels: BrokerArchiveRow[] = (\n\t\t[\n\t\t\t[\"bid\", bids],\n\t\t\t[\"ask\", asks],\n\t\t] as const\n\t).flatMap(([side, sideLevels]) =>\n\t\tsideLevels.map(({ price, amount }, levelIndex) => {\n\t\t\tconst row = checksumRow({\n\t\t\t\t...common,\n\t\t\t\tside,\n\t\t\t\tlevel_index: levelIndex,\n\t\t\t\tprice,\n\t\t\t\tamount,\n\t\t\t\tnotional: price * amount,\n\t\t\t\tmid_price: midPrice,\n\t\t\t\tspread_from_mid_bps: Math.abs((price - midPrice) / midPrice) * 10_000,\n\t\t\t});\n\t\t\treturn { table: \"market_data.cex_order_book_levels\", row };\n\t\t}),\n\t);\n\n\tconst bands = normalizedBands(input.measurementBandsBps);\n\tconst bidDepth = bands.map((band) => {\n\t\tconst minimumPrice = bestBid.price * (1 - band / 10_000);\n\t\treturn bids\n\t\t\t.filter(({ price }) => price >= minimumPrice)\n\t\t\t.reduce((sum, { amount }) => sum + amount, 0);\n\t});\n\tconst askDepth = bands.map((band) => {\n\t\tconst maximumPrice = bestAsk.price * (1 + band / 10_000);\n\t\treturn asks\n\t\t\t.filter(({ price }) => price <= maximumPrice)\n\t\t\t.reduce((sum, { amount }) => sum + amount, 0);\n\t});\n\tconst summaryRow = checksumRow({\n\t\t...common,\n\t\tbest_bid: bestBid.price,\n\t\tbest_ask: bestAsk.price,\n\t\tbest_bid_amount: bestBid.amount,\n\t\tbest_ask_amount: bestAsk.amount,\n\t\tmid_price: midPrice,\n\t\tspread,\n\t\tspread_bps: spreadBps,\n\t\tstaleness_ms: receivedTimeMs - eventTimeMs,\n\t\tbid_level_count: bids.length,\n\t\task_level_count: asks.length,\n\t\tmeasurement_bands_bps: bands,\n\t\tbid_depth_by_band: bidDepth,\n\t\task_depth_by_band: askDepth,\n\t});\n\n\treturn {\n\t\tsnapshotId,\n\t\tlevels,\n\t\tsummary: {\n\t\t\ttable: \"market_data.cex_order_book_depth_summary\",\n\t\t\trow: summaryRow,\n\t\t},\n\t};\n}\n",
187
187
  "import type {\n\tBackfillArchiveRow,\n\tFixedUtcTimestamp,\n\tSha256Hex,\n} from \"./contracts\";\nimport { jcsCanonicalize, jcsSha256 } from \"./identity\";\n\nexport type QualificationEvent = {\n\tqualification_event_id: string;\n\tcapture_bundle_id: Sha256Hex;\n\tstate: \"qualified\" | \"quarantined\" | \"revoked\";\n\treceipt_id: Sha256Hex;\n\tpromotion_identity_sha256: Sha256Hex;\n\twindow: { start_at: FixedUtcTimestamp; end_at: FixedUtcTimestamp };\n\tevent_at: FixedUtcTimestamp;\n\treason_code: string;\n};\n\ntype UnfinalizedQualificationEvent = Omit<\n\tQualificationEvent,\n\t\"qualification_event_id\"\n> &\n\tPartial<Pick<QualificationEvent, \"qualification_event_id\">>;\n\nconst UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;\nconst SHA256 = /^[0-9a-f]{64}$/;\nconst REASON = /^[a-z][a-z0-9_]{0,127}$/;\nconst EVENT_FIELDS = new Set([\n\t\"qualification_event_id\",\n\t\"capture_bundle_id\",\n\t\"state\",\n\t\"receipt_id\",\n\t\"promotion_identity_sha256\",\n\t\"window\",\n\t\"event_at\",\n\t\"reason_code\",\n]);\n\nfunction deterministicUuid(value: unknown): string {\n\tconst digest = jcsSha256(value).slice(0, 32).split(\"\");\n\tdigest[12] = \"5\";\n\tdigest[16] = \"8\";\n\tconst hex = digest.join(\"\");\n\treturn `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n}\n\nfunction semanticEvent(\n\tevent: UnfinalizedQualificationEvent,\n): Omit<QualificationEvent, \"qualification_event_id\"> {\n\tconst { qualification_event_id: _eventId, ...semantic } = event;\n\treturn semantic;\n}\n\nfunction assertTimestamp(value: string, field: string): number {\n\tconst parsed = Date.parse(value);\n\tif (\n\t\t!Number.isSafeInteger(parsed) ||\n\t\tnew Date(parsed).toISOString() !== value\n\t) {\n\t\tthrow new Error(`${field} must be a fixed UTC RFC3339 timestamp`);\n\t}\n\treturn parsed;\n}\n\nexport function parseQualificationEvent(value: unknown): QualificationEvent {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\tthrow new Error(\"qualification event must be an object\");\n\t}\n\tconst event = value as QualificationEvent;\n\tif (\n\t\tObject.keys(event).length !== EVENT_FIELDS.size ||\n\t\t!Object.keys(event).every((field) => EVENT_FIELDS.has(field)) ||\n\t\t!UUID.test(event.qualification_event_id) ||\n\t\t!SHA256.test(event.capture_bundle_id) ||\n\t\t![\"qualified\", \"quarantined\", \"revoked\"].includes(event.state) ||\n\t\t!SHA256.test(event.receipt_id) ||\n\t\t!SHA256.test(event.promotion_identity_sha256) ||\n\t\t!event.window ||\n\t\ttypeof event.window !== \"object\" ||\n\t\tObject.keys(event.window).length !== 2 ||\n\t\t!REASON.test(event.reason_code)\n\t) {\n\t\tthrow new Error(\"qualification event fields are invalid\");\n\t}\n\tif (\n\t\tassertTimestamp(event.window.end_at, \"window.end_at\") <=\n\t\tassertTimestamp(event.window.start_at, \"window.start_at\")\n\t) {\n\t\tthrow new Error(\"qualification window must be increasing\");\n\t}\n\tassertTimestamp(event.event_at, \"event_at\");\n\tif (\n\t\tdeterministicUuid(semanticEvent(event)) !== event.qualification_event_id\n\t) {\n\t\tthrow new Error(\"qualification_event_id does not match event content\");\n\t}\n\treturn event;\n}\n\nexport function finalizeQualificationEvent(\n\tevent: UnfinalizedQualificationEvent,\n): QualificationEvent {\n\tconst semantic = semanticEvent(event);\n\treturn parseQualificationEvent({\n\t\t...semantic,\n\t\tqualification_event_id: deterministicUuid(semantic),\n\t});\n}\n\nexport function qualificationEventToArchiveRow(\n\teventInput: QualificationEvent,\n): BackfillArchiveRow {\n\tconst event = parseQualificationEvent(eventInput);\n\treturn {\n\t\ttable: \"market_data.cex_order_book_capture_qualifications\",\n\t\trow: {\n\t\t\tsource: \"external_backfill\",\n\t\t\tcapture_origin: \"vendor_historical_backfill\",\n\t\t\tsource_mode: \"vendor_historical_backfill_v1\",\n\t\t\tdeployment_id: \"market-data-vendor-backfill\",\n\t\t\tqualification_event_id: event.qualification_event_id,\n\t\t\tcapture_bundle_id: event.capture_bundle_id,\n\t\t\tstate: event.state,\n\t\t\treceipt_id: event.receipt_id,\n\t\t\tpromotion_identity_sha256: event.promotion_identity_sha256,\n\t\t\twindow_start_ms: Date.parse(event.window.start_at),\n\t\t\twindow_end_ms: Date.parse(event.window.end_at),\n\t\t\tevent_at_ms: Date.parse(event.event_at),\n\t\t\treason_code: event.reason_code,\n\t\t\tevent_json: jcsCanonicalize(event),\n\t\t},\n\t};\n}\n\nexport function qualificationEventFromArchiveRow(\n\trow: Record<string, unknown>,\n): QualificationEvent {\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = JSON.parse(String(row.event_json));\n\t} catch {\n\t\tthrow new Error(\"qualification event_json is invalid\");\n\t}\n\tconst event = parseQualificationEvent(parsed);\n\tif (\n\t\trow.source !== \"external_backfill\" ||\n\t\trow.capture_origin !== \"vendor_historical_backfill\" ||\n\t\trow.source_mode !== \"vendor_historical_backfill_v1\" ||\n\t\trow.deployment_id !== \"market-data-vendor-backfill\" ||\n\t\trow.qualification_event_id !== event.qualification_event_id ||\n\t\trow.capture_bundle_id !== event.capture_bundle_id ||\n\t\trow.state !== event.state ||\n\t\trow.receipt_id !== event.receipt_id ||\n\t\trow.promotion_identity_sha256 !== event.promotion_identity_sha256 ||\n\t\trow.window_start_ms !== Date.parse(event.window.start_at) ||\n\t\trow.window_end_ms !== Date.parse(event.window.end_at) ||\n\t\trow.event_at_ms !== Date.parse(event.event_at) ||\n\t\trow.reason_code !== event.reason_code\n\t) {\n\t\tthrow new Error(\"qualification archive row does not match event JSON\");\n\t}\n\treturn event;\n}\n",
188
- "import { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport { buildForwarderBatches } from \"./batching\";\nimport {\n\ttype ArchiveSelectionWire,\n\tarchiveSelectionCodec,\n\ttype BackfillArchiveRow,\n\tdecodeBackfillRunDocuments,\n\tEXTERNAL_BACKFILL_SOURCE,\n\ttype FinalBackfillStatus,\n\ttype ForwarderBatch,\n\ttype MarketDataVendorBackfillRequest,\n\tPROMOTION_RECEIPT_SCHEMA_ID,\n\ttype PromotionReceiptWire,\n\ttype ProviderCapability,\n\ttype ProviderObjectEvidence,\n\tpromotionReceiptCodec,\n} from \"./contracts\";\nimport { providerAcquisitionRequest } from \"./cryptohftdata\";\nimport { jcsCanonicalize } from \"./identity\";\nimport {\n\tCAPABILITY_POLICY,\n\tEFFECTIVE_ACQUISITION_POLICY_PIN,\n\tEFFECTIVE_ADAPTER_POLICY_PIN,\n\tRESOURCE_POLICY,\n} from \"./manifests\";\nimport {\n\tfinalizePromotionReceipt,\n\tpromotionReceiptToArchiveRow,\n} from \"./promotion\";\nimport {\n\tfinalizeQualificationEvent,\n\tqualificationEventToArchiveRow,\n} from \"./qualification\";\nimport { archiveSelectionToArchiveRow } from \"./selection\";\n\nexport type ProviderDataset<Row = unknown> = {\n\tobjects: ProviderObjectEvidence[];\n\tvendorSemanticDigest: string;\n\trows: Row[];\n};\n\nexport type NormalizedBackfill = {\n\tcaptureBundleId: string;\n\tobjects: ProviderObjectEvidence[];\n\trows: BackfillArchiveRow[];\n\tvendorSemanticDigest: string;\n\tcanonicalSemanticDigest: string;\n};\n\nexport type CandidateVerification = {\n\tpassed: boolean;\n\tcaptureBundleId: string;\n\tcanonicalSemanticDigest: string;\n\tprefixDigest: string;\n\tsuffixDigest: string;\n\tseamVerified: boolean;\n\tcoverageVerified: boolean;\n\treasonCode?: string;\n};\n\nexport type ArchiveClusterIdentity = {\n\tenvironment: string;\n\tcluster: string;\n};\n\nexport type ProductionForwarderAuthorization = {\n\tauthorizationId: string;\n\tscope: \"production\";\n\tenvironment: string;\n\tcluster: string;\n\texpiresAt: string;\n\tcredentialValidated: true;\n};\n\nexport type ArchivePreflightResolution = {\n\tselection: ArchiveSelectionWire;\n\treceipts: PromotionReceiptWire[];\n\treaderIdentity: ArchiveClusterIdentity;\n\tverificationBaseline?: {\n\t\tprefixDigest: string;\n\t\tsuffixDigest: string;\n\t};\n};\n\nexport type ForwarderPreflightResolution = {\n\tforwarderIdentity: ArchiveClusterIdentity;\n\tauthorization: ProductionForwarderAuthorization;\n};\n\n/** @deprecated Use ArchivePreflightResolution and its exact selection. */\nexport type QualifiedCoverage = {\n\tcomplete: boolean;\n\tcoverageDigest: string;\n\tprefixDigest?: string;\n\tsuffixDigest?: string;\n};\n\nexport type BackfillDomainOutcome = {\n\tstatus: FinalBackfillStatus;\n\treasonCode: string;\n\treasonSubcode?: string;\n\trequestId?: string;\n\tidempotencyKey?: string;\n\ttarget?: ArchiveClusterIdentity;\n\tselection?: ArchiveSelectionWire;\n\treceipt?: PromotionReceiptWire;\n\tdiagnostics?: Record<string, string | number | boolean>;\n};\n\nexport type BackfillDependencies = {\n\tarchive: {\n\t\tresolveSelection(\n\t\t\trequest: MarketDataVendorBackfillRequest,\n\t\t): Promise<ArchivePreflightResolution>;\n\t\tverifyCandidate(\n\t\t\trequest: MarketDataVendorBackfillRequest,\n\t\t\tnormalized: NormalizedBackfill,\n\t\t\tcaptureBundleId: string,\n\t\t\tbaseline: ArchivePreflightResolution,\n\t\t): Promise<CandidateVerification>;\n\t};\n\tproviders: {\n\t\tcapabilityFor(\n\t\t\trequest: MarketDataVendorBackfillRequest,\n\t\t): ProviderCapability | undefined;\n\t\tacquire(\n\t\t\trequest: MarketDataVendorBackfillRequest,\n\t\t\tcapability: ProviderCapability,\n\t\t\tcredential: unknown,\n\t\t): Promise<ProviderDataset>;\n\t\tnormalize(\n\t\t\trequest: MarketDataVendorBackfillRequest,\n\t\t\tcapability: ProviderCapability,\n\t\t\tdataset: ProviderDataset,\n\t\t\tcaptureBundleId: string,\n\t\t): Promise<NormalizedBackfill>;\n\t};\n\tcredentials: {\n\t\tresolve(provider: \"cryptohftdata\"): Promise<unknown | undefined>;\n\t};\n\tforwarder: {\n\t\tpreflight(input: {\n\t\t\tauthorizationId: string;\n\t\t\ttarget: ArchiveClusterIdentity;\n\t\t}): Promise<ForwarderPreflightResolution>;\n\t\tsubmit(batch: ForwarderBatch): Promise<{ ok: boolean; inserted: number }>;\n\t};\n\tclock: { nowMs(): number };\n\tretry?: {\n\t\tmaxAttempts: number;\n\t\twait?: (completedAttempt: number) => Promise<void>;\n\t};\n\tlog?: (event: string, fields: Record<string, unknown>) => void;\n};\n\nexport function createMarketDataVendorBackfillDependencies(\n\tdependencies: BackfillDependencies,\n): BackfillDependencies {\n\tfor (const [name, value] of Object.entries({\n\t\tarchive: dependencies.archive,\n\t\tproviders: dependencies.providers,\n\t\tcredentials: dependencies.credentials,\n\t\tforwarder: dependencies.forwarder,\n\t\tclock: dependencies.clock,\n\t})) {\n\t\tif (!value || typeof value !== \"object\") {\n\t\t\tthrow new TypeError(`Backfill dependency ${name} is required`);\n\t\t}\n\t}\n\tfor (const [name, method] of Object.entries({\n\t\t\"archive.resolveSelection\": dependencies.archive.resolveSelection,\n\t\t\"archive.verifyCandidate\": dependencies.archive.verifyCandidate,\n\t\t\"providers.capabilityFor\": dependencies.providers.capabilityFor,\n\t\t\"providers.acquire\": dependencies.providers.acquire,\n\t\t\"providers.normalize\": dependencies.providers.normalize,\n\t\t\"credentials.resolve\": dependencies.credentials.resolve,\n\t\t\"forwarder.preflight\": dependencies.forwarder.preflight,\n\t\t\"forwarder.submit\": dependencies.forwarder.submit,\n\t\t\"clock.nowMs\": dependencies.clock.nowMs,\n\t})) {\n\t\tif (typeof method !== \"function\") {\n\t\t\tthrow new TypeError(`Backfill dependency ${name} is required`);\n\t\t}\n\t}\n\treturn dependencies;\n}\n\nfunction outcome(\n\trequest: MarketDataVendorBackfillRequest | undefined,\n\tstatus: FinalBackfillStatus,\n\treasonCode: string,\n\textra: Pick<\n\t\tBackfillDomainOutcome,\n\t\t\"reasonSubcode\" | \"selection\" | \"receipt\" | \"diagnostics\"\n\t> = {},\n): BackfillDomainOutcome {\n\treturn {\n\t\tstatus,\n\t\treasonCode,\n\t\t...(request\n\t\t\t? {\n\t\t\t\t\trequestId: request.requestId,\n\t\t\t\t\tidempotencyKey: request.idempotencyKey,\n\t\t\t\t\t...(request.target ? { target: request.target } : {}),\n\t\t\t\t}\n\t\t\t: {}),\n\t\t...extra,\n\t};\n}\n\nfunction captureBundleId(\n\trequest: MarketDataVendorBackfillRequest,\n\tcapability: ProviderCapability,\n\tdataset: ProviderDataset,\n): string {\n\t// Capture-bundle identity intentionally retains the existing capture checksum\n\t// algorithm. RFC 8785 applies only to final-v1 wire documents.\n\treturn sha256Canonical({\n\t\trequest_business_identity: request.idempotencyKey,\n\t\tprovider: capability.provider,\n\t\tprovider_exchange_id: capability.providerExchangeId,\n\t\tresolved_symbol: capability.resolvedSymbol,\n\t\tadapter_version: capability.adapterVersion,\n\t\tobjects: dataset.objects.map(({ identity, checksum, bytes, rows }) => ({\n\t\t\tidentity,\n\t\t\tchecksum,\n\t\t\tbytes,\n\t\t\trows,\n\t\t})),\n\t\tcanonical_schema_version: request.expectedProduct.canonicalSchemaVersion,\n\t\tchecksum_algorithm: request.expectedProduct.checksumAlgorithm,\n\t});\n}\n\nfunction buildPromotionReceipt(\n\trequest: MarketDataVendorBackfillRequest,\n\tcapability: ProviderCapability,\n\tnormalized: NormalizedBackfill,\n\tverification: CandidateVerification,\n\tverificationTimeMs: number,\n): PromotionReceiptWire {\n\tif (\n\t\t!request.wire ||\n\t\t!request.initialSelection ||\n\t\t!request.expectedCanonicalSchema ||\n\t\t!request.coveragePolicy ||\n\t\t!request.productPins\n\t) {\n\t\tthrow new Error(\"decoded final-v1 request context is missing\");\n\t}\n\treturn finalizePromotionReceipt({\n\t\tschema_id: PROMOTION_RECEIPT_SCHEMA_ID,\n\t\tverified_at: new Date(verificationTimeMs).toISOString(),\n\t\trequest_id: request.requestId,\n\t\tidempotency_key: request.idempotencyKey,\n\t\tsource: EXTERNAL_BACKFILL_SOURCE,\n\t\tcapture_origin: \"vendor_historical_backfill\",\n\t\tsource_mode: \"vendor_historical_backfill_v1\",\n\t\tprovider: capability.provider,\n\t\tadapter_version: capability.adapterVersion,\n\t\teffective_policies: {\n\t\t\tcapability_policy: request.productPins.capability_policy,\n\t\t\tresource_policy: request.productPins.resource_policy,\n\t\t\tadapter_policy: EFFECTIVE_ADAPTER_POLICY_PIN,\n\t\t\tacquisition_policy: EFFECTIVE_ACQUISITION_POLICY_PIN,\n\t\t},\n\t\tcapture_bundle_id: normalized.captureBundleId,\n\t\tscope: request.wire.scope,\n\t\twindow: request.wire.window,\n\t\tdepth: request.depth,\n\t\tconstruction_mode: request.constructionMode,\n\t\tcanonical_schema: request.expectedCanonicalSchema,\n\t\tcoverage_policy: request.coveragePolicy,\n\t\tselection_sha256: request.initialSelection.selection_sha256,\n\t\tvendor_semantic_digest: normalized.vendorSemanticDigest,\n\t\tcanonical_semantic_digest: verification.canonicalSemanticDigest,\n\t\tprefix_digest: verification.prefixDigest,\n\t\tsuffix_digest: verification.suffixDigest,\n\t\tseam_verified: true,\n\t\tcoverage_verified: true,\n\t\tdataset_objects: normalized.objects,\n\t});\n}\n\nasync function submitAll(\n\tdependencies: BackfillDependencies,\n\tbatches: readonly ForwarderBatch[],\n): Promise<boolean> {\n\tconst maxAttempts = Math.max(\n\t\t1,\n\t\tMath.min(10, dependencies.retry?.maxAttempts ?? 3),\n\t);\n\tfor (const batch of batches) {\n\t\tlet accepted = false;\n\t\tfor (let attempt = 1; attempt <= maxAttempts; attempt += 1) {\n\t\t\ttry {\n\t\t\t\tconst response = await dependencies.forwarder.submit(batch);\n\t\t\t\taccepted = response.ok && response.inserted === batch.rows.length;\n\t\t\t} catch {\n\t\t\t\taccepted = false;\n\t\t\t}\n\t\t\tif (accepted) break;\n\t\t\tif (attempt < maxAttempts) await dependencies.retry?.wait?.(attempt);\n\t\t}\n\t\tif (!accepted) return false;\n\t}\n\treturn true;\n}\n\nfunction stableFailureReason(error: unknown, fallback: string): string {\n\tif (error && typeof error === \"object\") {\n\t\tconst reason = (error as { reason?: unknown }).reason;\n\t\tif (typeof reason === \"string\" && /^[a-z][a-z0-9_]{0,127}$/.test(reason)) {\n\t\t\treturn reason;\n\t\t}\n\t}\n\treturn fallback;\n}\n\nfunction assertArchivePreflight(\n\trequest: MarketDataVendorBackfillRequest,\n\tresolution: ArchivePreflightResolution,\n): void {\n\tif (!request.target || !request.productionAuthorizationId) {\n\t\tthrow new Error(\"request target or production authorization ID is missing\");\n\t}\n\tconst selection = archiveSelectionCodec.decode(resolution.selection);\n\tconst receipts = resolution.receipts.map((receipt) =>\n\t\tpromotionReceiptCodec.decode(receipt),\n\t);\n\tconst receiptById = new Map<string, PromotionReceiptWire>();\n\tfor (const receipt of receipts) {\n\t\tconst existing = receiptById.get(receipt.receipt_id);\n\t\tif (existing && jcsCanonicalize(existing) !== jcsCanonicalize(receipt)) {\n\t\t\tthrow new Error(\"stored receipt identity has conflicting content\");\n\t\t}\n\t\treceiptById.set(receipt.receipt_id, receipt);\n\t}\n\tfor (const bundle of selection.bundles) {\n\t\tif (\n\t\t\tbundle.capture_origin === \"vendor_historical_backfill\" &&\n\t\t\t(!bundle.qualification ||\n\t\t\t\t!receiptById.has(bundle.qualification.receipt_id))\n\t\t) {\n\t\t\tthrow new Error(\"vendor selection lacks its validated stored receipt\");\n\t\t}\n\t}\n\tif (\n\t\tresolution.readerIdentity.environment !== request.target.environment ||\n\t\tresolution.readerIdentity.cluster !== request.target.cluster\n\t) {\n\t\tthrow new Error(\"archive reader cluster identity mismatch\");\n\t}\n}\n\nfunction assertForwarderPreflight(\n\trequest: MarketDataVendorBackfillRequest,\n\tresolution: ForwarderPreflightResolution,\n\tnowMs: number,\n): void {\n\tif (!request.target || !request.productionAuthorizationId) {\n\t\tthrow new Error(\"request target or production authorization ID is missing\");\n\t}\n\tif (\n\t\tresolution.forwarderIdentity.environment !== request.target.environment ||\n\t\tresolution.forwarderIdentity.cluster !== request.target.cluster\n\t) {\n\t\tthrow new Error(\"archive forwarder cluster identity mismatch\");\n\t}\n\tconst authorization = resolution.authorization;\n\tconst expiresAtMs = Date.parse(authorization.expiresAt);\n\tif (\n\t\tauthorization.authorizationId !== request.productionAuthorizationId ||\n\t\tauthorization.scope !== \"production\" ||\n\t\tauthorization.environment !== request.target.environment ||\n\t\tauthorization.cluster !== request.target.cluster ||\n\t\tauthorization.credentialValidated !== true ||\n\t\t!Number.isSafeInteger(expiresAtMs) ||\n\t\tnew Date(expiresAtMs).toISOString() !== authorization.expiresAt ||\n\t\texpiresAtMs <= nowMs\n\t) {\n\t\tthrow new Error(\"production forwarder authorization is invalid\");\n\t}\n}\n\nfunction resourcePolicyScopeExceeded(\n\trequest: MarketDataVendorBackfillRequest,\n): boolean {\n\treturn (\n\t\trequest.depth > RESOURCE_POLICY.request_bounds.max_depth ||\n\t\trequest.window.endTimeMs - request.window.startTimeMs >\n\t\t\tRESOURCE_POLICY.request_bounds.max_window_ms ||\n\t\trequest.requiredClockTargetsMs.length >\n\t\t\tRESOURCE_POLICY.request_bounds.max_required_events\n\t);\n}\n\nfunction storedReceiptForSelection(\n\tresolution: ArchivePreflightResolution,\n): PromotionReceiptWire | undefined {\n\tconst receiptId = resolution.selection.receipt_ids[0];\n\treturn receiptId\n\t\t? resolution.receipts.find((receipt) => receipt.receipt_id === receiptId)\n\t\t: undefined;\n}\n\nexport async function runMarketDataVendorBackfill(\n\tinput: unknown,\n\tdependencies: BackfillDependencies,\n): Promise<BackfillDomainOutcome> {\n\tlet request: MarketDataVendorBackfillRequest;\n\ttry {\n\t\tconst documents = input as { request?: unknown; requiredClock?: unknown };\n\t\trequest = decodeBackfillRunDocuments({\n\t\t\trequest: documents.request,\n\t\t\trequiredClock: documents.requiredClock,\n\t\t});\n\t} catch {\n\t\treturn outcome(undefined, \"request_invalid\", \"request_invalid\");\n\t}\n\n\tlet initialResolution: ArchivePreflightResolution;\n\ttry {\n\t\tinitialResolution = await dependencies.archive.resolveSelection(request);\n\t\tassertArchivePreflight(request, initialResolution);\n\t\tconst forwarderPreflight = await dependencies.forwarder.preflight({\n\t\t\tauthorizationId: request.productionAuthorizationId as string,\n\t\t\ttarget: request.target as ArchiveClusterIdentity,\n\t\t});\n\t\tassertForwarderPreflight(\n\t\t\trequest,\n\t\t\tforwarderPreflight,\n\t\t\tdependencies.clock.nowMs(),\n\t\t);\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"archive_preflight_failed\",\n\t\t\t\"archive_preflight_failed\",\n\t\t);\n\t}\n\tif (initialResolution.selection.coverage_class === \"complete\") {\n\t\tconst receipt = storedReceiptForSelection(initialResolution);\n\t\treturn outcome(request, \"already_covered\", \"qualified_coverage_complete\", {\n\t\t\tselection: initialResolution.selection,\n\t\t\t...(receipt ? { receipt } : {}),\n\t\t});\n\t}\n\n\tif (resourcePolicyScopeExceeded(request)) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"capability_unsupported\",\n\t\t\t\"capability_unsupported\",\n\t\t\t{ reasonSubcode: \"resource_policy_scope_exceeded\" },\n\t\t);\n\t}\n\tif (\n\t\trequest.sourcePolicy === \"fill_gaps\" &&\n\t\t(request.productPins?.capability_policy.policy_id !==\n\t\t\tCAPABILITY_POLICY.policy_id ||\n\t\t\trequest.productPins.capability_policy.policy_sha256 !==\n\t\t\t\tCAPABILITY_POLICY.policy_sha256)\n\t) {\n\t\treturn outcome(request, \"capability_unsupported\", \"scope_unsupported\", {\n\t\t\treasonSubcode: \"fill_gaps_requires_capability_policy_v2\",\n\t\t});\n\t}\n\n\tlet capability: ProviderCapability | undefined;\n\ttry {\n\t\tcapability = dependencies.providers.capabilityFor(request);\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"capability_unsupported\",\n\t\t\t\"capability_probe_failed\",\n\t\t);\n\t}\n\tif (!capability) {\n\t\treturn outcome(request, \"capability_unsupported\", \"scope_unsupported\");\n\t}\n\tif (\n\t\t!request.providerPolicy.allowedAdapterVersions.includes(\n\t\t\tcapability.adapterVersion,\n\t\t)\n\t) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"capability_unsupported\",\n\t\t\t\"adapter_version_unpinned\",\n\t\t);\n\t}\n\n\tlet credential: unknown;\n\ttry {\n\t\tcredential = await dependencies.credentials.resolve(capability.provider);\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"credentials_missing\",\n\t\t\t\"credential_resolution_failed\",\n\t\t);\n\t}\n\tif (credential === undefined || credential === null) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"credentials_missing\",\n\t\t\t\"provider_credentials_missing\",\n\t\t);\n\t}\n\n\tlet dataset: ProviderDataset;\n\tlet normalized: NormalizedBackfill;\n\ttry {\n\t\tconst acquisitionRequest = providerAcquisitionRequest(request);\n\t\tdataset = await dependencies.providers.acquire(\n\t\t\tacquisitionRequest,\n\t\t\tcapability,\n\t\t\tcredential,\n\t\t);\n\t\tconst bundleId = captureBundleId(request, capability, dataset);\n\t\tnormalized = await dependencies.providers.normalize(\n\t\t\tacquisitionRequest,\n\t\t\tcapability,\n\t\t\tdataset,\n\t\t\tbundleId,\n\t\t);\n\t\tif (normalized.captureBundleId !== bundleId) {\n\t\t\treturn outcome(request, \"vendor_fetch_failed\", \"vendor_fetch_failed\", {\n\t\t\t\treasonSubcode: \"capture_identity_mismatch\",\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\tconst reason = stableFailureReason(error, \"provider_dataset_invalid\");\n\t\treturn outcome(request, \"vendor_fetch_failed\", \"vendor_fetch_failed\", {\n\t\t\treasonSubcode: reason.startsWith(\"budget_\")\n\t\t\t\t? \"resource_limit_exceeded\"\n\t\t\t\t: reason,\n\t\t});\n\t}\n\n\ttry {\n\t\tconst candidateBatches = buildForwarderBatches({\n\t\t\tcaptureBundleId: normalized.captureBundleId,\n\t\t\tdeploymentId: \"market-data-vendor-backfill\",\n\t\t\trows: normalized.rows,\n\t\t});\n\t\tif (!(await submitAll(dependencies, candidateBatches))) {\n\t\t\treturn outcome(\n\t\t\t\trequest,\n\t\t\t\t\"archive_ingest_failed\",\n\t\t\t\t\"candidate_batch_rejected\",\n\t\t\t);\n\t\t}\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"archive_ingest_failed\",\n\t\t\t\"candidate_submission_failed\",\n\t\t);\n\t}\n\n\tlet verification: CandidateVerification;\n\ttry {\n\t\tverification = await dependencies.archive.verifyCandidate(\n\t\t\trequest,\n\t\t\tnormalized,\n\t\t\tnormalized.captureBundleId,\n\t\t\tinitialResolution,\n\t\t);\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"promotion_verification_failed\",\n\t\t\t\"candidate_query_failed\",\n\t\t);\n\t}\n\tif (\n\t\t!verification.passed ||\n\t\tverification.captureBundleId !== normalized.captureBundleId ||\n\t\tverification.canonicalSemanticDigest !==\n\t\t\tnormalized.canonicalSemanticDigest ||\n\t\t!verification.seamVerified ||\n\t\t!verification.coverageVerified\n\t) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"promotion_verification_failed\",\n\t\t\tverification.reasonCode ?? \"semantic_verification_failed\",\n\t\t);\n\t}\n\n\tlet receipt: PromotionReceiptWire;\n\ttry {\n\t\treceipt = buildPromotionReceipt(\n\t\t\trequest,\n\t\t\tcapability,\n\t\t\tnormalized,\n\t\t\tverification,\n\t\t\tdependencies.clock.nowMs(),\n\t\t);\n\t\tconst [batch] = buildForwarderBatches({\n\t\t\tcaptureBundleId: normalized.captureBundleId,\n\t\t\tdeploymentId: \"market-data-vendor-backfill\",\n\t\t\trows: [promotionReceiptToArchiveRow(receipt)],\n\t\t});\n\t\tif (!batch || !(await submitAll(dependencies, [batch]))) {\n\t\t\treturn outcome(\n\t\t\t\trequest,\n\t\t\t\t\"archive_ingest_failed\",\n\t\t\t\t\"promotion_commit_failed\",\n\t\t\t);\n\t\t}\n\t\tconst qualification = finalizeQualificationEvent({\n\t\t\tcapture_bundle_id: receipt.capture_bundle_id,\n\t\t\tstate: \"qualified\",\n\t\t\treceipt_id: receipt.receipt_id,\n\t\t\tpromotion_identity_sha256: receipt.promotion_identity_sha256,\n\t\t\twindow: receipt.window,\n\t\t\tevent_at: receipt.verified_at,\n\t\t\treason_code: \"promotion_verified\",\n\t\t});\n\t\tconst [qualificationBatch] = buildForwarderBatches({\n\t\t\tcaptureBundleId: normalized.captureBundleId,\n\t\t\tdeploymentId: \"market-data-vendor-backfill\",\n\t\t\trows: [qualificationEventToArchiveRow(qualification)],\n\t\t});\n\t\tif (\n\t\t\t!qualificationBatch ||\n\t\t\t!(await submitAll(dependencies, [qualificationBatch]))\n\t\t) {\n\t\t\treturn outcome(\n\t\t\t\trequest,\n\t\t\t\t\"archive_ingest_failed\",\n\t\t\t\t\"qualification_commit_failed\",\n\t\t\t\t{ receipt },\n\t\t\t);\n\t\t}\n\t} catch {\n\t\treturn outcome(request, \"archive_ingest_failed\", \"promotion_commit_failed\");\n\t}\n\n\tlet finalResolution: ArchivePreflightResolution;\n\ttry {\n\t\tfinalResolution = await dependencies.archive.resolveSelection(request);\n\t\tassertArchivePreflight(request, finalResolution);\n\t} catch (error) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"promotion_verification_failed\",\n\t\t\t\"post_promotion_selection_failed\",\n\t\t\t{\n\t\t\t\treceipt,\n\t\t\t\treasonSubcode: stableFailureReason(\n\t\t\t\t\terror,\n\t\t\t\t\t\"archive_selection_resolution_failed\",\n\t\t\t\t),\n\t\t\t},\n\t\t);\n\t}\n\tif (finalResolution.selection.coverage_class !== \"complete\") {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"promotion_verification_failed\",\n\t\t\t\"qualified_coverage_incomplete\",\n\t\t\t{ receipt, selection: finalResolution.selection },\n\t\t);\n\t}\n\tif (\n\t\tfinalResolution.selection.bundles.some(\n\t\t\t(bundle) =>\n\t\t\t\tbundle.capture_bundle_id === receipt.capture_bundle_id &&\n\t\t\t\tbundle.capture_origin === \"vendor_historical_backfill\" &&\n\t\t\t\tbundle.qualification?.receipt_id === receipt.receipt_id,\n\t\t) === false\n\t) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"promotion_verification_failed\",\n\t\t\t\"promoted_receipt_not_selected\",\n\t\t\t{ receipt, selection: finalResolution.selection },\n\t\t);\n\t}\n\ttry {\n\t\tif (!request.wire) throw new Error(\"decoded request wire is missing\");\n\t\tconst [selectionBatch] = buildForwarderBatches({\n\t\t\tcaptureBundleId: receipt.capture_bundle_id,\n\t\t\tdeploymentId: \"market-data-vendor-backfill\",\n\t\t\trows: [\n\t\t\t\tarchiveSelectionToArchiveRow(request.wire, finalResolution.selection),\n\t\t\t],\n\t\t});\n\t\tif (!selectionBatch || !(await submitAll(dependencies, [selectionBatch]))) {\n\t\t\treturn outcome(\n\t\t\t\trequest,\n\t\t\t\t\"archive_ingest_failed\",\n\t\t\t\t\"selection_persistence_failed\",\n\t\t\t\t{ receipt, selection: finalResolution.selection },\n\t\t\t);\n\t\t}\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"archive_ingest_failed\",\n\t\t\t\"selection_persistence_failed\",\n\t\t\t{ receipt, selection: finalResolution.selection },\n\t\t);\n\t}\n\treturn outcome(request, \"promoted\", \"promotion_qualified\", {\n\t\treceipt,\n\t\tselection: finalResolution.selection,\n\t});\n}\n",
188
+ "import { sha256Canonical } from \"../market-data-archive/capture-contract\";\nimport { buildForwarderBatches } from \"./batching\";\nimport {\n\ttype ArchiveSelectionWire,\n\tarchiveSelectionCodec,\n\ttype BackfillArchiveRow,\n\tdecodeBackfillRunDocuments,\n\tEXTERNAL_BACKFILL_SOURCE,\n\ttype FinalBackfillStatus,\n\ttype ForwarderBatch,\n\ttype MarketDataVendorBackfillRequest,\n\tPROMOTION_RECEIPT_SCHEMA_ID,\n\ttype PromotionReceiptWire,\n\ttype ProviderCapability,\n\ttype ProviderObjectEvidence,\n\tpromotionReceiptCodec,\n} from \"./contracts\";\nimport { providerAcquisitionRequest } from \"./cryptohftdata\";\nimport { jcsCanonicalize } from \"./identity\";\nimport {\n\tCAPABILITY_POLICY,\n\tEFFECTIVE_ACQUISITION_POLICY_PIN,\n\tEFFECTIVE_ADAPTER_POLICY_PIN,\n\tLEGACY_RESOURCE_POLICY,\n\tRESOURCE_POLICY,\n} from \"./manifests\";\nimport {\n\tfinalizePromotionReceipt,\n\tpromotionReceiptToArchiveRow,\n} from \"./promotion\";\nimport {\n\tfinalizeQualificationEvent,\n\tqualificationEventToArchiveRow,\n} from \"./qualification\";\nimport { archiveSelectionToArchiveRow } from \"./selection\";\n\nexport type ProviderDataset<Row = unknown> = {\n\tobjects: ProviderObjectEvidence[];\n\tvendorSemanticDigest: string;\n\trows: Row[];\n};\n\nexport type NormalizedBackfill = {\n\tcaptureBundleId: string;\n\tobjects: ProviderObjectEvidence[];\n\trows: BackfillArchiveRow[];\n\tvendorSemanticDigest: string;\n\tcanonicalSemanticDigest: string;\n};\n\nexport type CandidateVerification = {\n\tpassed: boolean;\n\tcaptureBundleId: string;\n\tcanonicalSemanticDigest: string;\n\tprefixDigest: string;\n\tsuffixDigest: string;\n\tseamVerified: boolean;\n\tcoverageVerified: boolean;\n\treasonCode?: string;\n};\n\nexport type ArchiveClusterIdentity = {\n\tenvironment: string;\n\tcluster: string;\n};\n\nexport type ProductionForwarderAuthorization = {\n\tauthorizationId: string;\n\tscope: \"production\";\n\tenvironment: string;\n\tcluster: string;\n\texpiresAt: string;\n\tcredentialValidated: true;\n};\n\nexport type ArchivePreflightResolution = {\n\tselection: ArchiveSelectionWire;\n\treceipts: PromotionReceiptWire[];\n\treaderIdentity: ArchiveClusterIdentity;\n\tverificationBaseline?: {\n\t\tprefixDigest: string;\n\t\tsuffixDigest: string;\n\t};\n};\n\nexport type ForwarderPreflightResolution = {\n\tforwarderIdentity: ArchiveClusterIdentity;\n\tauthorization: ProductionForwarderAuthorization;\n};\n\n/** @deprecated Use ArchivePreflightResolution and its exact selection. */\nexport type QualifiedCoverage = {\n\tcomplete: boolean;\n\tcoverageDigest: string;\n\tprefixDigest?: string;\n\tsuffixDigest?: string;\n};\n\nexport type BackfillDomainOutcome = {\n\tstatus: FinalBackfillStatus;\n\treasonCode: string;\n\treasonSubcode?: string;\n\trequestId?: string;\n\tidempotencyKey?: string;\n\ttarget?: ArchiveClusterIdentity;\n\tselection?: ArchiveSelectionWire;\n\treceipt?: PromotionReceiptWire;\n\tdiagnostics?: Record<string, string | number | boolean>;\n};\n\nexport type BackfillDependencies = {\n\tarchive: {\n\t\tresolveSelection(\n\t\t\trequest: MarketDataVendorBackfillRequest,\n\t\t): Promise<ArchivePreflightResolution>;\n\t\tverifyCandidate(\n\t\t\trequest: MarketDataVendorBackfillRequest,\n\t\t\tnormalized: NormalizedBackfill,\n\t\t\tcaptureBundleId: string,\n\t\t\tbaseline: ArchivePreflightResolution,\n\t\t): Promise<CandidateVerification>;\n\t};\n\tproviders: {\n\t\tcapabilityFor(\n\t\t\trequest: MarketDataVendorBackfillRequest,\n\t\t): ProviderCapability | undefined;\n\t\tacquire(\n\t\t\trequest: MarketDataVendorBackfillRequest,\n\t\t\tcapability: ProviderCapability,\n\t\t\tcredential: unknown,\n\t\t): Promise<ProviderDataset>;\n\t\tnormalize(\n\t\t\trequest: MarketDataVendorBackfillRequest,\n\t\t\tcapability: ProviderCapability,\n\t\t\tdataset: ProviderDataset,\n\t\t\tcaptureBundleId: string,\n\t\t): Promise<NormalizedBackfill>;\n\t};\n\tcredentials: {\n\t\tresolve(provider: \"cryptohftdata\"): Promise<unknown | undefined>;\n\t};\n\tforwarder: {\n\t\tpreflight(input: {\n\t\t\tauthorizationId: string;\n\t\t\ttarget: ArchiveClusterIdentity;\n\t\t}): Promise<ForwarderPreflightResolution>;\n\t\tsubmit(batch: ForwarderBatch): Promise<{ ok: boolean; inserted: number }>;\n\t};\n\tclock: { nowMs(): number };\n\tretry?: {\n\t\tmaxAttempts: number;\n\t\twait?: (completedAttempt: number) => Promise<void>;\n\t};\n\tlog?: (event: string, fields: Record<string, unknown>) => void;\n};\n\nexport function createMarketDataVendorBackfillDependencies(\n\tdependencies: BackfillDependencies,\n): BackfillDependencies {\n\tfor (const [name, value] of Object.entries({\n\t\tarchive: dependencies.archive,\n\t\tproviders: dependencies.providers,\n\t\tcredentials: dependencies.credentials,\n\t\tforwarder: dependencies.forwarder,\n\t\tclock: dependencies.clock,\n\t})) {\n\t\tif (!value || typeof value !== \"object\") {\n\t\t\tthrow new TypeError(`Backfill dependency ${name} is required`);\n\t\t}\n\t}\n\tfor (const [name, method] of Object.entries({\n\t\t\"archive.resolveSelection\": dependencies.archive.resolveSelection,\n\t\t\"archive.verifyCandidate\": dependencies.archive.verifyCandidate,\n\t\t\"providers.capabilityFor\": dependencies.providers.capabilityFor,\n\t\t\"providers.acquire\": dependencies.providers.acquire,\n\t\t\"providers.normalize\": dependencies.providers.normalize,\n\t\t\"credentials.resolve\": dependencies.credentials.resolve,\n\t\t\"forwarder.preflight\": dependencies.forwarder.preflight,\n\t\t\"forwarder.submit\": dependencies.forwarder.submit,\n\t\t\"clock.nowMs\": dependencies.clock.nowMs,\n\t})) {\n\t\tif (typeof method !== \"function\") {\n\t\t\tthrow new TypeError(`Backfill dependency ${name} is required`);\n\t\t}\n\t}\n\treturn dependencies;\n}\n\nfunction outcome(\n\trequest: MarketDataVendorBackfillRequest | undefined,\n\tstatus: FinalBackfillStatus,\n\treasonCode: string,\n\textra: Pick<\n\t\tBackfillDomainOutcome,\n\t\t\"reasonSubcode\" | \"selection\" | \"receipt\" | \"diagnostics\"\n\t> = {},\n): BackfillDomainOutcome {\n\treturn {\n\t\tstatus,\n\t\treasonCode,\n\t\t...(request\n\t\t\t? {\n\t\t\t\t\trequestId: request.requestId,\n\t\t\t\t\tidempotencyKey: request.idempotencyKey,\n\t\t\t\t\t...(request.target ? { target: request.target } : {}),\n\t\t\t\t}\n\t\t\t: {}),\n\t\t...extra,\n\t};\n}\n\nfunction captureBundleId(\n\trequest: MarketDataVendorBackfillRequest,\n\tcapability: ProviderCapability,\n\tdataset: ProviderDataset,\n): string {\n\t// Capture-bundle identity intentionally retains the existing capture checksum\n\t// algorithm. RFC 8785 applies only to final-v1 wire documents.\n\treturn sha256Canonical({\n\t\trequest_business_identity: request.idempotencyKey,\n\t\tprovider: capability.provider,\n\t\tprovider_exchange_id: capability.providerExchangeId,\n\t\tresolved_symbol: capability.resolvedSymbol,\n\t\tadapter_version: capability.adapterVersion,\n\t\tobjects: dataset.objects.map(({ identity, checksum, bytes, rows }) => ({\n\t\t\tidentity,\n\t\t\tchecksum,\n\t\t\tbytes,\n\t\t\trows,\n\t\t})),\n\t\tcanonical_schema_version: request.expectedProduct.canonicalSchemaVersion,\n\t\tchecksum_algorithm: request.expectedProduct.checksumAlgorithm,\n\t});\n}\n\nfunction buildPromotionReceipt(\n\trequest: MarketDataVendorBackfillRequest,\n\tcapability: ProviderCapability,\n\tnormalized: NormalizedBackfill,\n\tverification: CandidateVerification,\n\tverificationTimeMs: number,\n): PromotionReceiptWire {\n\tif (\n\t\t!request.wire ||\n\t\t!request.initialSelection ||\n\t\t!request.expectedCanonicalSchema ||\n\t\t!request.coveragePolicy ||\n\t\t!request.productPins\n\t) {\n\t\tthrow new Error(\"decoded final-v1 request context is missing\");\n\t}\n\treturn finalizePromotionReceipt({\n\t\tschema_id: PROMOTION_RECEIPT_SCHEMA_ID,\n\t\tverified_at: new Date(verificationTimeMs).toISOString(),\n\t\trequest_id: request.requestId,\n\t\tidempotency_key: request.idempotencyKey,\n\t\tsource: EXTERNAL_BACKFILL_SOURCE,\n\t\tcapture_origin: \"vendor_historical_backfill\",\n\t\tsource_mode: \"vendor_historical_backfill_v1\",\n\t\tprovider: capability.provider,\n\t\tadapter_version: capability.adapterVersion,\n\t\teffective_policies: {\n\t\t\tcapability_policy: request.productPins.capability_policy,\n\t\t\tresource_policy: request.productPins.resource_policy,\n\t\t\tadapter_policy: EFFECTIVE_ADAPTER_POLICY_PIN,\n\t\t\tacquisition_policy: EFFECTIVE_ACQUISITION_POLICY_PIN,\n\t\t},\n\t\tcapture_bundle_id: normalized.captureBundleId,\n\t\tscope: request.wire.scope,\n\t\twindow: request.wire.window,\n\t\tdepth: request.depth,\n\t\tconstruction_mode: request.constructionMode,\n\t\tcanonical_schema: request.expectedCanonicalSchema,\n\t\tcoverage_policy: request.coveragePolicy,\n\t\tselection_sha256: request.initialSelection.selection_sha256,\n\t\tvendor_semantic_digest: normalized.vendorSemanticDigest,\n\t\tcanonical_semantic_digest: verification.canonicalSemanticDigest,\n\t\tprefix_digest: verification.prefixDigest,\n\t\tsuffix_digest: verification.suffixDigest,\n\t\tseam_verified: true,\n\t\tcoverage_verified: true,\n\t\tdataset_objects: normalized.objects,\n\t});\n}\n\nasync function submitAll(\n\tdependencies: BackfillDependencies,\n\tbatches: readonly ForwarderBatch[],\n): Promise<boolean> {\n\tconst maxAttempts = Math.max(\n\t\t1,\n\t\tMath.min(10, dependencies.retry?.maxAttempts ?? 3),\n\t);\n\tfor (const batch of batches) {\n\t\tlet accepted = false;\n\t\tfor (let attempt = 1; attempt <= maxAttempts; attempt += 1) {\n\t\t\ttry {\n\t\t\t\tconst response = await dependencies.forwarder.submit(batch);\n\t\t\t\taccepted = response.ok && response.inserted === batch.rows.length;\n\t\t\t} catch {\n\t\t\t\taccepted = false;\n\t\t\t}\n\t\t\tif (accepted) break;\n\t\t\tif (attempt < maxAttempts) await dependencies.retry?.wait?.(attempt);\n\t\t}\n\t\tif (!accepted) return false;\n\t}\n\treturn true;\n}\n\nfunction stableFailureReason(error: unknown, fallback: string): string {\n\tif (error && typeof error === \"object\") {\n\t\tconst reason = (error as { reason?: unknown }).reason;\n\t\tif (typeof reason === \"string\" && /^[a-z][a-z0-9_]{0,127}$/.test(reason)) {\n\t\t\treturn reason;\n\t\t}\n\t}\n\treturn fallback;\n}\n\nfunction assertArchivePreflight(\n\trequest: MarketDataVendorBackfillRequest,\n\tresolution: ArchivePreflightResolution,\n): void {\n\tif (!request.target || !request.productionAuthorizationId) {\n\t\tthrow new Error(\"request target or production authorization ID is missing\");\n\t}\n\tconst selection = archiveSelectionCodec.decode(resolution.selection);\n\tconst receipts = resolution.receipts.map((receipt) =>\n\t\tpromotionReceiptCodec.decode(receipt),\n\t);\n\tconst receiptById = new Map<string, PromotionReceiptWire>();\n\tfor (const receipt of receipts) {\n\t\tconst existing = receiptById.get(receipt.receipt_id);\n\t\tif (existing && jcsCanonicalize(existing) !== jcsCanonicalize(receipt)) {\n\t\t\tthrow new Error(\"stored receipt identity has conflicting content\");\n\t\t}\n\t\treceiptById.set(receipt.receipt_id, receipt);\n\t}\n\tfor (const bundle of selection.bundles) {\n\t\tif (\n\t\t\tbundle.capture_origin === \"vendor_historical_backfill\" &&\n\t\t\t(!bundle.qualification ||\n\t\t\t\t!receiptById.has(bundle.qualification.receipt_id))\n\t\t) {\n\t\t\tthrow new Error(\"vendor selection lacks its validated stored receipt\");\n\t\t}\n\t}\n\tif (\n\t\tresolution.readerIdentity.environment !== request.target.environment ||\n\t\tresolution.readerIdentity.cluster !== request.target.cluster\n\t) {\n\t\tthrow new Error(\"archive reader cluster identity mismatch\");\n\t}\n}\n\nfunction assertForwarderPreflight(\n\trequest: MarketDataVendorBackfillRequest,\n\tresolution: ForwarderPreflightResolution,\n\tnowMs: number,\n): void {\n\tif (!request.target || !request.productionAuthorizationId) {\n\t\tthrow new Error(\"request target or production authorization ID is missing\");\n\t}\n\tif (\n\t\tresolution.forwarderIdentity.environment !== request.target.environment ||\n\t\tresolution.forwarderIdentity.cluster !== request.target.cluster\n\t) {\n\t\tthrow new Error(\"archive forwarder cluster identity mismatch\");\n\t}\n\tconst authorization = resolution.authorization;\n\tconst expiresAtMs = Date.parse(authorization.expiresAt);\n\tif (\n\t\tauthorization.authorizationId !== request.productionAuthorizationId ||\n\t\tauthorization.scope !== \"production\" ||\n\t\tauthorization.environment !== request.target.environment ||\n\t\tauthorization.cluster !== request.target.cluster ||\n\t\tauthorization.credentialValidated !== true ||\n\t\t!Number.isSafeInteger(expiresAtMs) ||\n\t\tnew Date(expiresAtMs).toISOString() !== authorization.expiresAt ||\n\t\texpiresAtMs <= nowMs\n\t) {\n\t\tthrow new Error(\"production forwarder authorization is invalid\");\n\t}\n}\n\nfunction resourcePolicyScopeExceeded(\n\trequest: MarketDataVendorBackfillRequest,\n): boolean {\n\tconst policy = [RESOURCE_POLICY, LEGACY_RESOURCE_POLICY].find(\n\t\t(candidate) =>\n\t\t\trequest.productPins?.resource_policy.policy_id === candidate.policy_id &&\n\t\t\trequest.productPins.resource_policy.policy_sha256 ===\n\t\t\t\tcandidate.policy_sha256,\n\t);\n\tif (!policy) return true;\n\treturn (\n\t\trequest.depth > policy.request_bounds.max_depth ||\n\t\trequest.window.endTimeMs - request.window.startTimeMs >\n\t\t\tpolicy.request_bounds.max_window_ms ||\n\t\trequest.requiredClockTargetsMs.length >\n\t\t\tpolicy.request_bounds.max_required_events\n\t);\n}\n\nfunction storedReceiptForSelection(\n\tresolution: ArchivePreflightResolution,\n): PromotionReceiptWire | undefined {\n\tconst receiptId = resolution.selection.receipt_ids[0];\n\treturn receiptId\n\t\t? resolution.receipts.find((receipt) => receipt.receipt_id === receiptId)\n\t\t: undefined;\n}\n\nexport async function runMarketDataVendorBackfill(\n\tinput: unknown,\n\tdependencies: BackfillDependencies,\n): Promise<BackfillDomainOutcome> {\n\tlet request: MarketDataVendorBackfillRequest;\n\ttry {\n\t\tconst documents = input as { request?: unknown; requiredClock?: unknown };\n\t\trequest = decodeBackfillRunDocuments({\n\t\t\trequest: documents.request,\n\t\t\trequiredClock: documents.requiredClock,\n\t\t});\n\t} catch {\n\t\treturn outcome(undefined, \"request_invalid\", \"request_invalid\");\n\t}\n\n\tlet initialResolution: ArchivePreflightResolution;\n\ttry {\n\t\tinitialResolution = await dependencies.archive.resolveSelection(request);\n\t\tassertArchivePreflight(request, initialResolution);\n\t\tconst forwarderPreflight = await dependencies.forwarder.preflight({\n\t\t\tauthorizationId: request.productionAuthorizationId as string,\n\t\t\ttarget: request.target as ArchiveClusterIdentity,\n\t\t});\n\t\tassertForwarderPreflight(\n\t\t\trequest,\n\t\t\tforwarderPreflight,\n\t\t\tdependencies.clock.nowMs(),\n\t\t);\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"archive_preflight_failed\",\n\t\t\t\"archive_preflight_failed\",\n\t\t);\n\t}\n\tif (initialResolution.selection.coverage_class === \"complete\") {\n\t\tconst receipt = storedReceiptForSelection(initialResolution);\n\t\treturn outcome(request, \"already_covered\", \"qualified_coverage_complete\", {\n\t\t\tselection: initialResolution.selection,\n\t\t\t...(receipt ? { receipt } : {}),\n\t\t});\n\t}\n\n\tif (resourcePolicyScopeExceeded(request)) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"capability_unsupported\",\n\t\t\t\"capability_unsupported\",\n\t\t\t{ reasonSubcode: \"resource_policy_scope_exceeded\" },\n\t\t);\n\t}\n\tif (\n\t\trequest.sourcePolicy === \"fill_gaps\" &&\n\t\t(request.productPins?.capability_policy.policy_id !==\n\t\t\tCAPABILITY_POLICY.policy_id ||\n\t\t\trequest.productPins.capability_policy.policy_sha256 !==\n\t\t\t\tCAPABILITY_POLICY.policy_sha256)\n\t) {\n\t\treturn outcome(request, \"capability_unsupported\", \"scope_unsupported\", {\n\t\t\treasonSubcode: \"fill_gaps_requires_capability_policy_v2\",\n\t\t});\n\t}\n\n\tlet capability: ProviderCapability | undefined;\n\ttry {\n\t\tcapability = dependencies.providers.capabilityFor(request);\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"capability_unsupported\",\n\t\t\t\"capability_probe_failed\",\n\t\t);\n\t}\n\tif (!capability) {\n\t\treturn outcome(request, \"capability_unsupported\", \"scope_unsupported\");\n\t}\n\tif (\n\t\t!request.providerPolicy.allowedAdapterVersions.includes(\n\t\t\tcapability.adapterVersion,\n\t\t)\n\t) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"capability_unsupported\",\n\t\t\t\"adapter_version_unpinned\",\n\t\t);\n\t}\n\n\tlet credential: unknown;\n\ttry {\n\t\tcredential = await dependencies.credentials.resolve(capability.provider);\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"credentials_missing\",\n\t\t\t\"credential_resolution_failed\",\n\t\t);\n\t}\n\tif (credential === undefined || credential === null) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"credentials_missing\",\n\t\t\t\"provider_credentials_missing\",\n\t\t);\n\t}\n\n\tlet dataset: ProviderDataset;\n\tlet normalized: NormalizedBackfill;\n\ttry {\n\t\tconst acquisitionRequest = providerAcquisitionRequest(request);\n\t\tdataset = await dependencies.providers.acquire(\n\t\t\tacquisitionRequest,\n\t\t\tcapability,\n\t\t\tcredential,\n\t\t);\n\t\tconst bundleId = captureBundleId(request, capability, dataset);\n\t\tnormalized = await dependencies.providers.normalize(\n\t\t\tacquisitionRequest,\n\t\t\tcapability,\n\t\t\tdataset,\n\t\t\tbundleId,\n\t\t);\n\t\tif (normalized.captureBundleId !== bundleId) {\n\t\t\treturn outcome(request, \"vendor_fetch_failed\", \"vendor_fetch_failed\", {\n\t\t\t\treasonSubcode: \"capture_identity_mismatch\",\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\tconst reason = stableFailureReason(error, \"provider_dataset_invalid\");\n\t\treturn outcome(request, \"vendor_fetch_failed\", \"vendor_fetch_failed\", {\n\t\t\treasonSubcode: reason.startsWith(\"budget_\")\n\t\t\t\t? \"resource_limit_exceeded\"\n\t\t\t\t: reason,\n\t\t});\n\t}\n\n\ttry {\n\t\tconst candidateBatches = buildForwarderBatches({\n\t\t\tcaptureBundleId: normalized.captureBundleId,\n\t\t\tdeploymentId: \"market-data-vendor-backfill\",\n\t\t\trows: normalized.rows,\n\t\t});\n\t\tif (!(await submitAll(dependencies, candidateBatches))) {\n\t\t\treturn outcome(\n\t\t\t\trequest,\n\t\t\t\t\"archive_ingest_failed\",\n\t\t\t\t\"candidate_batch_rejected\",\n\t\t\t);\n\t\t}\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"archive_ingest_failed\",\n\t\t\t\"candidate_submission_failed\",\n\t\t);\n\t}\n\n\tlet verification: CandidateVerification;\n\ttry {\n\t\tverification = await dependencies.archive.verifyCandidate(\n\t\t\trequest,\n\t\t\tnormalized,\n\t\t\tnormalized.captureBundleId,\n\t\t\tinitialResolution,\n\t\t);\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"promotion_verification_failed\",\n\t\t\t\"candidate_query_failed\",\n\t\t);\n\t}\n\tif (\n\t\t!verification.passed ||\n\t\tverification.captureBundleId !== normalized.captureBundleId ||\n\t\tverification.canonicalSemanticDigest !==\n\t\t\tnormalized.canonicalSemanticDigest ||\n\t\t!verification.seamVerified ||\n\t\t!verification.coverageVerified\n\t) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"promotion_verification_failed\",\n\t\t\tverification.reasonCode ?? \"semantic_verification_failed\",\n\t\t);\n\t}\n\n\tlet receipt: PromotionReceiptWire;\n\ttry {\n\t\treceipt = buildPromotionReceipt(\n\t\t\trequest,\n\t\t\tcapability,\n\t\t\tnormalized,\n\t\t\tverification,\n\t\t\tdependencies.clock.nowMs(),\n\t\t);\n\t\tconst [batch] = buildForwarderBatches({\n\t\t\tcaptureBundleId: normalized.captureBundleId,\n\t\t\tdeploymentId: \"market-data-vendor-backfill\",\n\t\t\trows: [promotionReceiptToArchiveRow(receipt)],\n\t\t});\n\t\tif (!batch || !(await submitAll(dependencies, [batch]))) {\n\t\t\treturn outcome(\n\t\t\t\trequest,\n\t\t\t\t\"archive_ingest_failed\",\n\t\t\t\t\"promotion_commit_failed\",\n\t\t\t);\n\t\t}\n\t\tconst qualification = finalizeQualificationEvent({\n\t\t\tcapture_bundle_id: receipt.capture_bundle_id,\n\t\t\tstate: \"qualified\",\n\t\t\treceipt_id: receipt.receipt_id,\n\t\t\tpromotion_identity_sha256: receipt.promotion_identity_sha256,\n\t\t\twindow: receipt.window,\n\t\t\tevent_at: receipt.verified_at,\n\t\t\treason_code: \"promotion_verified\",\n\t\t});\n\t\tconst [qualificationBatch] = buildForwarderBatches({\n\t\t\tcaptureBundleId: normalized.captureBundleId,\n\t\t\tdeploymentId: \"market-data-vendor-backfill\",\n\t\t\trows: [qualificationEventToArchiveRow(qualification)],\n\t\t});\n\t\tif (\n\t\t\t!qualificationBatch ||\n\t\t\t!(await submitAll(dependencies, [qualificationBatch]))\n\t\t) {\n\t\t\treturn outcome(\n\t\t\t\trequest,\n\t\t\t\t\"archive_ingest_failed\",\n\t\t\t\t\"qualification_commit_failed\",\n\t\t\t\t{ receipt },\n\t\t\t);\n\t\t}\n\t} catch {\n\t\treturn outcome(request, \"archive_ingest_failed\", \"promotion_commit_failed\");\n\t}\n\n\tlet finalResolution: ArchivePreflightResolution;\n\ttry {\n\t\tfinalResolution = await dependencies.archive.resolveSelection(request);\n\t\tassertArchivePreflight(request, finalResolution);\n\t} catch (error) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"promotion_verification_failed\",\n\t\t\t\"post_promotion_selection_failed\",\n\t\t\t{\n\t\t\t\treceipt,\n\t\t\t\treasonSubcode: stableFailureReason(\n\t\t\t\t\terror,\n\t\t\t\t\t\"archive_selection_resolution_failed\",\n\t\t\t\t),\n\t\t\t},\n\t\t);\n\t}\n\tif (finalResolution.selection.coverage_class !== \"complete\") {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"promotion_verification_failed\",\n\t\t\t\"qualified_coverage_incomplete\",\n\t\t\t{ receipt, selection: finalResolution.selection },\n\t\t);\n\t}\n\tif (\n\t\tfinalResolution.selection.bundles.some(\n\t\t\t(bundle) =>\n\t\t\t\tbundle.capture_bundle_id === receipt.capture_bundle_id &&\n\t\t\t\tbundle.capture_origin === \"vendor_historical_backfill\" &&\n\t\t\t\tbundle.qualification?.receipt_id === receipt.receipt_id,\n\t\t) === false\n\t) {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"promotion_verification_failed\",\n\t\t\t\"promoted_receipt_not_selected\",\n\t\t\t{ receipt, selection: finalResolution.selection },\n\t\t);\n\t}\n\ttry {\n\t\tif (!request.wire) throw new Error(\"decoded request wire is missing\");\n\t\tconst [selectionBatch] = buildForwarderBatches({\n\t\t\tcaptureBundleId: receipt.capture_bundle_id,\n\t\t\tdeploymentId: \"market-data-vendor-backfill\",\n\t\t\trows: [\n\t\t\t\tarchiveSelectionToArchiveRow(request.wire, finalResolution.selection),\n\t\t\t],\n\t\t});\n\t\tif (!selectionBatch || !(await submitAll(dependencies, [selectionBatch]))) {\n\t\t\treturn outcome(\n\t\t\t\trequest,\n\t\t\t\t\"archive_ingest_failed\",\n\t\t\t\t\"selection_persistence_failed\",\n\t\t\t\t{ receipt, selection: finalResolution.selection },\n\t\t\t);\n\t\t}\n\t} catch {\n\t\treturn outcome(\n\t\t\trequest,\n\t\t\t\"archive_ingest_failed\",\n\t\t\t\"selection_persistence_failed\",\n\t\t\t{ receipt, selection: finalResolution.selection },\n\t\t);\n\t}\n\treturn outcome(request, \"promoted\", \"promotion_qualified\", {\n\t\treceipt,\n\t\tselection: finalResolution.selection,\n\t});\n}\n",
189
189
  "import type { ForwarderBatch } from \"./contracts\";\nimport type {\n\tArchiveClusterIdentity,\n\tProductionForwarderAuthorization,\n} from \"./core\";\n\nexport type ArchiveForwarderClient = {\n\tpreflight(input: {\n\t\tauthorizationId: string;\n\t\ttarget: ArchiveClusterIdentity;\n\t}): Promise<{\n\t\tforwarderIdentity: ArchiveClusterIdentity;\n\t\tauthorization: ProductionForwarderAuthorization;\n\t}>;\n\tsubmit(batch: ForwarderBatch): Promise<{ ok: boolean; inserted: number }>;\n};\n\nexport type ArchiveForwarderClientOptions = {\n\turl: string;\n\tauthToken?: string;\n\tfetch?: typeof globalThis.fetch;\n};\n\nexport class ArchiveForwarderSubmissionError extends Error {\n\treadonly reason: string;\n\n\tconstructor(reason: string, status?: number) {\n\t\tsuper(status === undefined ? reason : `${reason}:${status}`);\n\t\tthis.name = \"ArchiveForwarderSubmissionError\";\n\t\tthis.reason = reason;\n\t}\n}\n\nfunction parseAdmissionResult(\n\tvalue: unknown,\n): { ok: boolean; inserted: number } | undefined {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) return;\n\tconst record = value as Record<string, unknown>;\n\tif (\n\t\trecord.ok !== true ||\n\t\ttypeof record.inserted !== \"number\" ||\n\t\t!Number.isSafeInteger(record.inserted) ||\n\t\trecord.inserted < 0\n\t) {\n\t\treturn;\n\t}\n\treturn { ok: true, inserted: record.inserted };\n}\n\nexport function createArchiveForwarderClient(\n\toptions: ArchiveForwarderClientOptions,\n): ArchiveForwarderClient {\n\tconst url = options.url.trim();\n\tif (!url) throw new Error(\"archive_forwarder_url_required\");\n\tconst request = options.fetch ?? globalThis.fetch;\n\tconst authorizationHeaders: Record<string, string> = {};\n\tif (options.authToken?.trim()) {\n\t\tauthorizationHeaders.authorization = `Bearer ${options.authToken.trim()}`;\n\t}\n\n\treturn {\n\t\tasync preflight(input) {\n\t\t\tconst endpoint = new URL(url);\n\t\t\tendpoint.pathname = \"/health/market-data-vendor-backfill\";\n\t\t\tendpoint.search = \"\";\n\t\t\tendpoint.hash = \"\";\n\t\t\tlet response: Response;\n\t\t\ttry {\n\t\t\t\tresponse = await request(endpoint, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t...authorizationHeaders,\n\t\t\t\t\t\t\"x-archive-authorization-id\": input.authorizationId,\n\t\t\t\t\t\t\"x-archive-environment\": input.target.environment,\n\t\t\t\t\t\t\"x-archive-cluster\": input.target.cluster,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} catch {\n\t\t\t\tthrow new ArchiveForwarderSubmissionError(\n\t\t\t\t\t\"archive_forwarder_preflight_unreachable\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new ArchiveForwarderSubmissionError(\n\t\t\t\t\t\"archive_forwarder_preflight_http_error\",\n\t\t\t\t\tresponse.status,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst value = await response.json().catch(() => undefined);\n\t\t\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\t\t\tthrow new ArchiveForwarderSubmissionError(\n\t\t\t\t\t\"archive_forwarder_invalid_preflight\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst record = value as Record<string, unknown>;\n\t\t\tconst identity = record.forwarder_identity as\n\t\t\t\t| Record<string, unknown>\n\t\t\t\t| undefined;\n\t\t\tconst authorization = record.authorization as\n\t\t\t\t| Record<string, unknown>\n\t\t\t\t| undefined;\n\t\t\tconst expiresAtMs =\n\t\t\t\ttypeof authorization?.expires_at === \"string\"\n\t\t\t\t\t? Date.parse(authorization.expires_at)\n\t\t\t\t\t: Number.NaN;\n\t\t\tif (\n\t\t\t\trecord.ok !== true ||\n\t\t\t\t!identity ||\n\t\t\t\tidentity.environment !== input.target.environment ||\n\t\t\t\tidentity.cluster !== input.target.cluster ||\n\t\t\t\t!authorization ||\n\t\t\t\tauthorization.authorization_id !== input.authorizationId ||\n\t\t\t\tauthorization.scope !== \"production\" ||\n\t\t\t\tauthorization.environment !== input.target.environment ||\n\t\t\t\tauthorization.cluster !== input.target.cluster ||\n\t\t\t\ttypeof authorization.expires_at !== \"string\" ||\n\t\t\t\t!Number.isSafeInteger(expiresAtMs) ||\n\t\t\t\tnew Date(expiresAtMs).toISOString() !== authorization.expires_at ||\n\t\t\t\tauthorization.credential_validated !== true\n\t\t\t) {\n\t\t\t\tthrow new ArchiveForwarderSubmissionError(\n\t\t\t\t\t\"archive_forwarder_invalid_preflight\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tforwarderIdentity: {\n\t\t\t\t\tenvironment: identity.environment as string,\n\t\t\t\t\tcluster: identity.cluster as string,\n\t\t\t\t},\n\t\t\t\tauthorization: {\n\t\t\t\t\tauthorizationId: authorization.authorization_id as string,\n\t\t\t\t\tscope: \"production\",\n\t\t\t\t\tenvironment: authorization.environment as string,\n\t\t\t\t\tcluster: authorization.cluster as string,\n\t\t\t\t\texpiresAt: authorization.expires_at,\n\t\t\t\t\tcredentialValidated: true,\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t\tasync submit(batch) {\n\t\t\tlet response: Response;\n\t\t\ttry {\n\t\t\t\tresponse = await request(url, {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t\t\t...authorizationHeaders,\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(batch),\n\t\t\t\t});\n\t\t\t} catch {\n\t\t\t\tthrow new ArchiveForwarderSubmissionError(\n\t\t\t\t\t\"archive_forwarder_unreachable\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new ArchiveForwarderSubmissionError(\n\t\t\t\t\t\"archive_forwarder_http_error\",\n\t\t\t\t\tresponse.status,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst admission = parseAdmissionResult(\n\t\t\t\tawait response.json().catch(() => undefined),\n\t\t\t);\n\t\t\tif (!admission) {\n\t\t\t\tthrow new ArchiveForwarderSubmissionError(\n\t\t\t\t\t\"archive_forwarder_invalid_response\",\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn admission;\n\t\t},\n\t};\n}\n"
190
190
  ],
191
- "mappings": "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",
192
- "debugId": "E83C0385A80F908D64756E2164756E21",
191
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBA,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,sBAAmB;AAAA,EAGnB,sBAAc,OAAO,eAAe,WAAW,aAAa;AAAA;;;;ECJpE,IAAI,kBAAmB,WAAQ,QAAK,oBAAqB,OAAO,SAAU,QAAQ,CAAC,GAAG,GAAG,GAAG,IAAI;AAAA,IAC5F,IAAI,OAAO;AAAA,MAAW,KAAK;AAAA,IAC3B,OAAO,eAAe,GAAG,IAAI,EAAE,YAAY,MAAM,KAAK,QAAQ,GAAG;AAAA,MAAE,OAAO,EAAE;AAAA,MAAM,CAAC;AAAA,MACjF,QAAQ,CAAC,GAAG,GAAG,GAAG,IAAI;AAAA,IACxB,IAAI,OAAO;AAAA,MAAW,KAAK;AAAA,IAC3B,EAAE,MAAM,EAAE;AAAA;AAAA,EAEd,IAAI,eAAgB,WAAQ,QAAK,gBAAiB,QAAQ,CAAC,GAAG,UAAS;AAAA,IACnE,SAAS,KAAK;AAAA,MAAG,IAAI,MAAM,aAAa,CAAC,OAAO,UAAU,eAAe,KAAK,UAAS,CAAC;AAAA,QAAG,gBAAgB,UAAS,GAAG,CAAC;AAAA;AAAA,EAE5H,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,mCAAsC,OAAO;AAAA;;;;ECX7C,IAAI,kBAAmB,WAAQ,QAAK,oBAAqB,OAAO,SAAU,QAAQ,CAAC,GAAG,GAAG,GAAG,IAAI;AAAA,IAC5F,IAAI,OAAO;AAAA,MAAW,KAAK;AAAA,IAC3B,OAAO,eAAe,GAAG,IAAI,EAAE,YAAY,MAAM,KAAK,QAAQ,GAAG;AAAA,MAAE,OAAO,EAAE;AAAA,MAAM,CAAC;AAAA,MACjF,QAAQ,CAAC,GAAG,GAAG,GAAG,IAAI;AAAA,IACxB,IAAI,OAAO;AAAA,MAAW,KAAK;AAAA,IAC3B,EAAE,MAAM,EAAE;AAAA;AAAA,EAEd,IAAI,eAAgB,WAAQ,QAAK,gBAAiB,QAAQ,CAAC,GAAG,UAAS;AAAA,IACnE,SAAS,KAAK;AAAA,MAAG,IAAI,MAAM,aAAa,CAAC,OAAO,UAAU,eAAe,KAAK,UAAS,CAAC;AAAA,QAAG,gBAAgB,UAAS,GAAG,CAAC;AAAA;AAAA,EAE5H,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,6BAAgC,OAAO;AAAA;;;;ECXvC,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,kBAAe;AAAA,EAEf,kBAAU;AAAA;;;;ECHlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,uBAAuB,kCAA+B;AAAA,EAC9D,IAAM;AAAA,EACN,IAAM,KAAK;AAAA,EAiBX,SAAS,uBAAuB,CAAC,YAAY;AAAA,IACzC,MAAM,mBAAmB,IAAI,IAAI,CAAC,UAAU,CAAC;AAAA,IAC7C,MAAM,mBAAmB,IAAI;AAAA,IAC7B,MAAM,iBAAiB,WAAW,MAAM,EAAE;AAAA,IAC1C,IAAI,CAAC,gBAAgB;AAAA,MAEjB,OAAO,MAAM;AAAA,IACjB;AAAA,IACA,MAAM,mBAAmB;AAAA,MACrB,OAAO,CAAC,eAAe;AAAA,MACvB,OAAO,CAAC,eAAe;AAAA,MACvB,OAAO,CAAC,eAAe;AAAA,MACvB,YAAY,eAAe;AAAA,IAC/B;AAAA,IAEA,IAAI,iBAAiB,cAAc,MAAM;AAAA,MACrC,OAAO,SAAS,YAAY,CAAC,eAAe;AAAA,QACxC,OAAO,kBAAkB;AAAA;AAAA,IAEjC;AAAA,IACA,SAAS,OAAO,CAAC,GAAG;AAAA,MAChB,iBAAiB,IAAI,CAAC;AAAA,MACtB,OAAO;AAAA;AAAA,IAEX,SAAS,OAAO,CAAC,GAAG;AAAA,MAChB,iBAAiB,IAAI,CAAC;AAAA,MACtB,OAAO;AAAA;AAAA,IAEX,OAAO,SAAS,YAAY,CAAC,eAAe;AAAA,MACxC,IAAI,iBAAiB,IAAI,aAAa,GAAG;AAAA,QACrC,OAAO;AAAA,MACX;AAAA,MACA,IAAI,iBAAiB,IAAI,aAAa,GAAG;AAAA,QACrC,OAAO;AAAA,MACX;AAAA,MACA,MAAM,qBAAqB,cAAc,MAAM,EAAE;AAAA,MACjD,IAAI,CAAC,oBAAoB;AAAA,QAGrB,OAAO,QAAQ,aAAa;AAAA,MAChC;AAAA,MACA,MAAM,sBAAsB;AAAA,QACxB,OAAO,CAAC,mBAAmB;AAAA,QAC3B,OAAO,CAAC,mBAAmB;AAAA,QAC3B,OAAO,CAAC,mBAAmB;AAAA,QAC3B,YAAY,mBAAmB;AAAA,MACnC;AAAA,MAEA,IAAI,oBAAoB,cAAc,MAAM;AAAA,QACxC,OAAO,QAAQ,aAAa;AAAA,MAChC;AAAA,MAEA,IAAI,iBAAiB,UAAU,oBAAoB,OAAO;AAAA,QACtD,OAAO,QAAQ,aAAa;AAAA,MAChC;AAAA,MACA,IAAI,iBAAiB,UAAU,GAAG;AAAA,QAC9B,IAAI,iBAAiB,UAAU,oBAAoB,SAC/C,iBAAiB,SAAS,oBAAoB,OAAO;AAAA,UACrD,OAAO,QAAQ,aAAa;AAAA,QAChC;AAAA,QACA,OAAO,QAAQ,aAAa;AAAA,MAChC;AAAA,MACA,IAAI,iBAAiB,SAAS,oBAAoB,OAAO;AAAA,QACrD,OAAO,QAAQ,aAAa;AAAA,MAChC;AAAA,MACA,OAAO,QAAQ,aAAa;AAAA;AAAA;AAAA,EAG5B,kCAA0B;AAAA,EAgB1B,uBAAe,wBAAwB,UAAU,OAAO;AAAA;;;;ECxGhE,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,2BAA2B,oBAAoB,yBAAsB;AAAA,EAC7E,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ,UAAU,QAAQ,MAAM,GAAG,EAAE;AAAA,EAC3C,IAAM,+BAA+B,OAAO,IAAI,wBAAwB,OAAO;AAAA,EAC/E,IAAM,UAAU,WAAW;AAAA,EAC3B,SAAS,cAAc,CAAC,MAAM,UAAU,MAAM,gBAAgB,OAAO;AAAA,IACjE,IAAI;AAAA,IACJ,MAAM,MAAO,QAAQ,iCAAiC,KAAK,QAAQ,mCAAmC,QAAQ,OAAY,YAAI,KAAK;AAAA,MAC/H,SAAS,UAAU;AAAA,IACvB;AAAA,IACA,IAAI,CAAC,iBAAiB,IAAI,OAAO;AAAA,MAE7B,MAAM,MAAM,IAAI,MAAM,gEAAgE,MAAM;AAAA,MAC5F,KAAK,MAAM,IAAI,SAAS,IAAI,OAAO;AAAA,MACnC,OAAO;AAAA,IACX;AAAA,IACA,IAAI,IAAI,YAAY,UAAU,SAAS;AAAA,MAEnC,MAAM,MAAM,IAAI,MAAM,gDAAgD,IAAI,eAAe,kDAAkD,UAAU,SAAS;AAAA,MAC9J,KAAK,MAAM,IAAI,SAAS,IAAI,OAAO;AAAA,MACnC,OAAO;AAAA,IACX;AAAA,IACA,IAAI,QAAQ;AAAA,IACZ,KAAK,MAAM,+CAA+C,SAAS,UAAU,UAAU;AAAA,IACvF,OAAO;AAAA;AAAA,EAEH,yBAAiB;AAAA,EACzB,SAAS,SAAS,CAAC,MAAM;AAAA,IACrB,IAAI,IAAI;AAAA,IACR,MAAM,iBAAiB,KAAK,QAAQ,mCAAmC,QAAQ,OAAY,YAAS,YAAI,GAAG;AAAA,IAC3G,IAAI,CAAC,iBAAiB,EAAE,GAAG,SAAS,cAAc,aAAa,GAAG;AAAA,MAC9D;AAAA,IACJ;AAAA,IACA,QAAQ,KAAK,QAAQ,mCAAmC,QAAQ,OAAY,YAAS,YAAI,GAAG;AAAA;AAAA,EAExF,oBAAY;AAAA,EACpB,SAAS,gBAAgB,CAAC,MAAM,MAAM;AAAA,IAClC,KAAK,MAAM,kDAAkD,SAAS,UAAU,UAAU;AAAA,IAC1F,MAAM,MAAM,QAAQ;AAAA,IACpB,IAAI,KAAK;AAAA,MACL,OAAO,IAAI;AAAA,IACf;AAAA;AAAA,EAEI,2BAAmB;AAAA;;;;EC9C3B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,8BAA2B;AAAA,EACnC,IAAM;AAAA;AAAA,EAUN,MAAM,oBAAoB;AAAA,IACtB,WAAW,CAAC,OAAO;AAAA,MACf,KAAK,aAAa,MAAM,aAAa;AAAA;AAAA,IAEzC,KAAK,IAAI,MAAM;AAAA,MACX,OAAO,SAAS,SAAS,KAAK,YAAY,IAAI;AAAA;AAAA,IAElD,KAAK,IAAI,MAAM;AAAA,MACX,OAAO,SAAS,SAAS,KAAK,YAAY,IAAI;AAAA;AAAA,IAElD,IAAI,IAAI,MAAM;AAAA,MACV,OAAO,SAAS,QAAQ,KAAK,YAAY,IAAI;AAAA;AAAA,IAEjD,IAAI,IAAI,MAAM;AAAA,MACV,OAAO,SAAS,QAAQ,KAAK,YAAY,IAAI;AAAA;AAAA,IAEjD,OAAO,IAAI,MAAM;AAAA,MACb,OAAO,SAAS,WAAW,KAAK,YAAY,IAAI;AAAA;AAAA,EAExD;AAAA,EACQ,8BAAsB;AAAA,EAC9B,SAAS,QAAQ,CAAC,UAAU,WAAW,MAAM;AAAA,IACzC,MAAM,UAAU,GAAG,eAAe,WAAW,MAAM;AAAA,IAEnD,IAAI,CAAC,QAAQ;AAAA,MACT;AAAA,IACJ;AAAA,IACA,KAAK,QAAQ,SAAS;AAAA,IACtB,OAAO,OAAO,UAAU,GAAG,IAAI;AAAA;AAAA;;;;ECxCnC,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,uBAAoB;AAAA,EAM5B,IAAI;AAAA,GACH,QAAS,CAAC,eAAc;AAAA,IAErB,cAAa,cAAa,UAAU,KAAK;AAAA,IAEzC,cAAa,cAAa,WAAW,MAAM;AAAA,IAE3C,cAAa,cAAa,UAAU,MAAM;AAAA,IAE1C,cAAa,cAAa,UAAU,MAAM;AAAA,IAE1C,cAAa,cAAa,WAAW,MAAM;AAAA,IAK3C,cAAa,cAAa,aAAa,MAAM;AAAA,IAE7C,cAAa,cAAa,SAAS,QAAQ;AAAA,KAC5C,eAAuB,yBAAyB,uBAAe,CAAC,EAAE;AAAA;;;;EC1BrE,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,mCAAgC;AAAA,EACxC,IAAM;AAAA,EACN,SAAS,wBAAwB,CAAC,UAAU,QAAQ;AAAA,IAChD,IAAI,WAAW,QAAQ,aAAa,MAAM;AAAA,MACtC,WAAW,QAAQ,aAAa;AAAA,IACpC,EACK,SAAI,WAAW,QAAQ,aAAa,KAAK;AAAA,MAC1C,WAAW,QAAQ,aAAa;AAAA,IACpC;AAAA,IAEA,SAAS,UAAU,CAAC;AAAA,IACpB,SAAS,WAAW,CAAC,UAAU,UAAU;AAAA,MACrC,MAAM,UAAU,OAAO;AAAA,MACvB,IAAI,OAAO,YAAY,cAAc,YAAY,UAAU;AAAA,QACvD,OAAO,QAAQ,KAAK,MAAM;AAAA,MAC9B;AAAA,MACA,OAAO,QAAS,GAAG;AAAA;AAAA,IAEvB,OAAO;AAAA,MACH,OAAO,YAAY,SAAS,QAAQ,aAAa,KAAK;AAAA,MACtD,MAAM,YAAY,QAAQ,QAAQ,aAAa,IAAI;AAAA,MACnD,MAAM,YAAY,QAAQ,QAAQ,aAAa,IAAI;AAAA,MACnD,OAAO,YAAY,SAAS,QAAQ,aAAa,KAAK;AAAA,MACtD,SAAS,YAAY,WAAW,QAAQ,aAAa,OAAO;AAAA,IAChE;AAAA;AAAA,EAEI,mCAA2B;AAAA;;;;EC3BnC,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,kBAAe;AAAA,EACvB,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,WAAW;AAAA;AAAA,EAKjB,MAAM,QAAQ;AAAA,IAKV,WAAW,GAAG;AAAA,MACV,SAAS,SAAS,CAAC,UAAU;AAAA,QACzB,OAAO,QAAS,IAAI,MAAM;AAAA,UACtB,MAAM,UAAU,GAAG,eAAe,WAAW,MAAM;AAAA,UAEnD,IAAI,CAAC;AAAA,YACD;AAAA,UACJ,OAAO,OAAO,UAAU,GAAG,IAAI;AAAA;AAAA;AAAA,MAIvC,MAAM,OAAO;AAAA,MAEb,MAAM,YAAY,CAAC,QAAQ,oBAAoB,EAAE,UAAU,QAAQ,aAAa,KAAK,MAAM;AAAA,QACvF,IAAI,IAAI,IAAI;AAAA,QACZ,IAAI,WAAW,MAAM;AAAA,UAIjB,MAAM,MAAM,IAAI,MAAM,oIAAoI;AAAA,UAC1J,KAAK,OAAO,KAAK,IAAI,WAAW,QAAQ,OAAY,YAAI,KAAK,IAAI,OAAO;AAAA,UACxE,OAAO;AAAA,QACX;AAAA,QACA,IAAI,OAAO,sBAAsB,UAAU;AAAA,UACvC,oBAAoB;AAAA,YAChB,UAAU;AAAA,UACd;AAAA,QACJ;AAAA,QACA,MAAM,aAAa,GAAG,eAAe,WAAW,MAAM;AAAA,QACtD,MAAM,aAAa,GAAG,iBAAiB,2BAA2B,KAAK,kBAAkB,cAAc,QAAQ,OAAY,YAAI,KAAK,QAAQ,aAAa,MAAM,MAAM;AAAA,QAErK,IAAI,aAAa,CAAC,kBAAkB,yBAAyB;AAAA,UACzD,MAAM,SAAS,KAAK,IAAI,MAAM,EAAE,WAAW,QAAQ,OAAY,YAAI,KAAK;AAAA,UACxE,UAAU,KAAK,2CAA2C,OAAO;AAAA,UACjE,UAAU,KAAK,6DAA6D,OAAO;AAAA,QACvF;AAAA,QACA,QAAQ,GAAG,eAAe,gBAAgB,QAAQ,WAAW,MAAM,IAAI;AAAA;AAAA,MAE3E,KAAK,YAAY;AAAA,MACjB,KAAK,UAAU,MAAM;AAAA,SAChB,GAAG,eAAe,kBAAkB,UAAU,IAAI;AAAA;AAAA,MAEvD,KAAK,wBAAwB,CAAC,YAAY;AAAA,QACtC,OAAO,IAAI,kBAAkB,oBAAoB,OAAO;AAAA;AAAA,MAE5D,KAAK,UAAU,UAAU,SAAS;AAAA,MAClC,KAAK,QAAQ,UAAU,OAAO;AAAA,MAC9B,KAAK,OAAO,UAAU,MAAM;AAAA,MAC5B,KAAK,OAAO,UAAU,MAAM;AAAA,MAC5B,KAAK,QAAQ,UAAU,OAAO;AAAA;AAAA,WAG3B,QAAQ,GAAG;AAAA,MACd,IAAI,CAAC,KAAK,WAAW;AAAA,QACjB,KAAK,YAAY,IAAI;AAAA,MACzB;AAAA,MACA,OAAO,KAAK;AAAA;AAAA,EAEpB;AAAA,EACQ,kBAAU;AAAA;;;;EC3ElB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,sBAAmB;AAAA;AAAA,EAC3B,MAAM,YAAY;AAAA,IACd,WAAW,CAAC,SAAS;AAAA,MACjB,KAAK,WAAW,UAAU,IAAI,IAAI,OAAO,IAAI,IAAI;AAAA;AAAA,IAErD,QAAQ,CAAC,KAAK;AAAA,MACV,MAAM,QAAQ,KAAK,SAAS,IAAI,GAAG;AAAA,MACnC,IAAI,CAAC,OAAO;AAAA,QACR;AAAA,MACJ;AAAA,MACA,OAAO,OAAO,OAAO,CAAC,GAAG,KAAK;AAAA;AAAA,IAElC,aAAa,GAAG;AAAA,MACZ,OAAO,MAAM,KAAK,KAAK,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAAA;AAAA,IAErE,QAAQ,CAAC,KAAK,OAAO;AAAA,MACjB,MAAM,aAAa,IAAI,YAAY,KAAK,QAAQ;AAAA,MAChD,WAAW,SAAS,IAAI,KAAK,KAAK;AAAA,MAClC,OAAO;AAAA;AAAA,IAEX,WAAW,CAAC,KAAK;AAAA,MACb,MAAM,aAAa,IAAI,YAAY,KAAK,QAAQ;AAAA,MAChD,WAAW,SAAS,OAAO,GAAG;AAAA,MAC9B,OAAO;AAAA;AAAA,IAEX,aAAa,IAAI,MAAM;AAAA,MACnB,MAAM,aAAa,IAAI,YAAY,KAAK,QAAQ;AAAA,MAChD,WAAW,OAAO,MAAM;AAAA,QACpB,WAAW,SAAS,OAAO,GAAG;AAAA,MAClC;AAAA,MACA,OAAO;AAAA;AAAA,IAEX,KAAK,GAAG;AAAA,MACJ,OAAO,IAAI;AAAA;AAAA,EAEnB;AAAA,EACQ,sBAAc;AAAA;;;;ECrCtB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,qCAAkC;AAAA,EAIlC,qCAA6B,OAAO,sBAAsB;AAAA;;;;ECLlE,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,yCAAyC,wBAAqB;AAAA,EACtE,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,OAAO,OAAO,QAAQ,SAAS;AAAA,EAMrC,SAAS,aAAa,CAAC,UAAU,CAAC,GAAG;AAAA,IACjC,OAAO,IAAI,eAAe,YAAY,IAAI,IAAI,OAAO,QAAQ,OAAO,CAAC,CAAC;AAAA;AAAA,EAElE,wBAAgB;AAAA,EAOxB,SAAS,8BAA8B,CAAC,KAAK;AAAA,IACzC,IAAI,OAAO,QAAQ,UAAU;AAAA,MACzB,KAAK,MAAM,qDAAqD,OAAO,KAAK;AAAA,MAC5E,MAAM;AAAA,IACV;AAAA,IACA,OAAO;AAAA,MACH,UAAU,SAAS;AAAA,MACnB,QAAQ,GAAG;AAAA,QACP,OAAO;AAAA;AAAA,IAEf;AAAA;AAAA,EAEI,yCAAiC;AAAA;;;;ECjCzC,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,uBAAuB,2BAAwB;AAAA,EAEvD,SAAS,gBAAgB,CAAC,aAAa;AAAA,IAOnC,OAAO,OAAO,IAAI,WAAW;AAAA;AAAA,EAEzB,2BAAmB;AAAA;AAAA,EAC3B,MAAM,YAAY;AAAA,IAMd,WAAW,CAAC,eAAe;AAAA,MAEvB,MAAM,OAAO;AAAA,MACb,KAAK,kBAAkB,gBAAgB,IAAI,IAAI,aAAa,IAAI,IAAI;AAAA,MACpE,KAAK,WAAW,CAAC,QAAQ,KAAK,gBAAgB,IAAI,GAAG;AAAA,MACrD,KAAK,WAAW,CAAC,KAAK,UAAU;AAAA,QAC5B,MAAM,UAAU,IAAI,YAAY,KAAK,eAAe;AAAA,QACpD,QAAQ,gBAAgB,IAAI,KAAK,KAAK;AAAA,QACtC,OAAO;AAAA;AAAA,MAEX,KAAK,cAAc,CAAC,QAAQ;AAAA,QACxB,MAAM,UAAU,IAAI,YAAY,KAAK,eAAe;AAAA,QACpD,QAAQ,gBAAgB,OAAO,GAAG;AAAA,QAClC,OAAO;AAAA;AAAA;AAAA,EAGnB;AAAA,EAEQ,uBAAe,IAAI;AAAA;;;;ECrC3B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,4BAAyB;AAAA,EACjC,IAAM,aAAa;AAAA,IACf,EAAE,GAAG,SAAS,GAAG,QAAQ;AAAA,IACzB,EAAE,GAAG,QAAQ,GAAG,OAAO;AAAA,IACvB,EAAE,GAAG,QAAQ,GAAG,OAAO;AAAA,IACvB,EAAE,GAAG,SAAS,GAAG,QAAQ;AAAA,IACzB,EAAE,GAAG,WAAW,GAAG,QAAQ;AAAA,EAC/B;AAAA;AAAA,EAMA,MAAM,kBAAkB;AAAA,IACpB,WAAW,GAAG;AAAA,MACV,SAAS,YAAY,CAAC,UAAU;AAAA,QAC5B,OAAO,QAAS,IAAI,MAAM;AAAA,UACtB,IAAI,SAAS;AAAA,YAGT,IAAI,UAAU,QAAQ;AAAA,YACtB,IAAI,OAAO,YAAY,YAAY;AAAA,cAG/B,UAAU,QAAQ;AAAA,YACtB;AAAA,YAEA,IAAI,OAAO,YAAY,YAAY;AAAA,cAC/B,OAAO,QAAQ,MAAM,SAAS,IAAI;AAAA,YACtC;AAAA,UACJ;AAAA;AAAA;AAAA,MAGR,SAAS,IAAI,EAAG,IAAI,WAAW,QAAQ,KAAK;AAAA,QACxC,KAAK,WAAW,GAAG,KAAK,aAAa,WAAW,GAAG,CAAC;AAAA,MACxD;AAAA;AAAA,EAER;AAAA,EACQ,4BAAoB;AAAA;;;;ECvC5B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,0BAA0B,iDAAiD,uCAAuC,yCAAyC,sCAAsC,gCAAgC,4BAA4B,8BAA8B,qBAAqB,4CAA4C,oCAAoC,sCAAsC,+BAA+B,8BAA8B,0BAA0B,kCAAkC,4BAA4B,qBAAqB,oBAAiB;AAAA;AAAA,EAKzmB,MAAM,UAAU;AAAA,IACZ,WAAW,GAAG;AAAA,IAId,WAAW,CAAC,OAAO,UAAU;AAAA,MACzB,OAAe;AAAA;AAAA,IAKnB,eAAe,CAAC,OAAO,UAAU;AAAA,MAC7B,OAAe;AAAA;AAAA,IAKnB,aAAa,CAAC,OAAO,UAAU;AAAA,MAC3B,OAAe;AAAA;AAAA,IAKnB,mBAAmB,CAAC,OAAO,UAAU;AAAA,MACjC,OAAe;AAAA;AAAA,IAKnB,qBAAqB,CAAC,OAAO,UAAU;AAAA,MACnC,OAAe;AAAA;AAAA,IAKnB,uBAAuB,CAAC,OAAO,UAAU;AAAA,MACrC,OAAe;AAAA;AAAA,IAKnB,6BAA6B,CAAC,OAAO,UAAU;AAAA,MAC3C,OAAe;AAAA;AAAA,IAKnB,0BAA0B,CAAC,WAAW,cAAc;AAAA,IAIpD,6BAA6B,CAAC,WAAW;AAAA,EAC7C;AAAA,EACQ,oBAAY;AAAA;AAAA,EACpB,MAAM,WAAW;AAAA,EACjB;AAAA,EACQ,qBAAa;AAAA;AAAA,EACrB,MAAM,0BAA0B,WAAW;AAAA,IACvC,GAAG,CAAC,QAAQ,aAAa;AAAA,EAC7B;AAAA,EACQ,4BAAoB;AAAA;AAAA,EAC5B,MAAM,gCAAgC,WAAW;AAAA,IAC7C,GAAG,CAAC,QAAQ,aAAa;AAAA,EAC7B;AAAA,EACQ,kCAA0B;AAAA;AAAA,EAClC,MAAM,wBAAwB,WAAW;AAAA,IACrC,MAAM,CAAC,QAAQ,aAAa;AAAA,EAChC;AAAA,EACQ,0BAAkB;AAAA;AAAA,EAC1B,MAAM,4BAA4B,WAAW;AAAA,IACzC,MAAM,CAAC,QAAQ,aAAa;AAAA,EAChC;AAAA,EACQ,8BAAsB;AAAA;AAAA,EAC9B,MAAM,qBAAqB;AAAA,IACvB,WAAW,CAAC,WAAW;AAAA,IACvB,cAAc,CAAC,WAAW;AAAA,EAC9B;AAAA,EACQ,+BAAuB;AAAA;AAAA,EAC/B,MAAM,oCAAoC,qBAAqB;AAAA,EAC/D;AAAA,EACQ,sCAA8B;AAAA;AAAA,EACtC,MAAM,kCAAkC,qBAAqB;AAAA,EAC7D;AAAA,EACQ,oCAA4B;AAAA;AAAA,EACpC,MAAM,0CAA0C,qBAAqB;AAAA,EACrE;AAAA,EACQ,4CAAoC;AAAA,EACpC,qBAAa,IAAI;AAAA,EAEjB,8BAAsB,IAAI;AAAA,EAC1B,4BAAoB,IAAI;AAAA,EACxB,gCAAwB,IAAI;AAAA,EAC5B,sCAA8B,IAAI;AAAA,EAElC,yCAAiC,IAAI;AAAA,EACrC,uCAA+B,IAAI;AAAA,EACnC,iDAAyC,IAAI;AAAA,EAIrD,SAAS,eAAe,GAAG;AAAA,IACvB,OAAe;AAAA;AAAA,EAEX,0BAAkB;AAAA;;;;EC7G1B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,oBAAiB;AAAA,EAEzB,IAAI;AAAA,GACH,QAAS,CAAC,YAAW;AAAA,IAClB,WAAU,WAAU,SAAS,KAAK;AAAA,IAClC,WAAU,WAAU,YAAY,KAAK;AAAA,KACtC,YAAoB,sBAAsB,oBAAY,CAAC,EAAE;AAAA;;;;ECP5D,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,+BAA+B,+BAA4B;AAAA,EAC3D,+BAAuB;AAAA,IAC3B,GAAG,CAAC,SAAS,KAAK;AAAA,MACd,IAAI,WAAW,MAAM;AAAA,QACjB;AAAA,MACJ;AAAA,MACA,OAAO,QAAQ;AAAA;AAAA,IAEnB,IAAI,CAAC,SAAS;AAAA,MACV,IAAI,WAAW,MAAM;AAAA,QACjB,OAAO,CAAC;AAAA,MACZ;AAAA,MACA,OAAO,OAAO,KAAK,OAAO;AAAA;AAAA,EAElC;AAAA,EACQ,+BAAuB;AAAA,IAC3B,GAAG,CAAC,SAAS,KAAK,OAAO;AAAA,MACrB,IAAI,WAAW,MAAM;AAAA,QACjB;AAAA,MACJ;AAAA,MACA,QAAQ,OAAO;AAAA;AAAA,EAEvB;AAAA;;;;ECvBA,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,6BAA0B;AAAA,EAClC,IAAM;AAAA;AAAA,EACN,MAAM,mBAAmB;AAAA,IACrB,MAAM,GAAG;AAAA,MACL,OAAO,UAAU;AAAA;AAAA,IAErB,IAAI,CAAC,UAAU,IAAI,YAAY,MAAM;AAAA,MACjC,OAAO,GAAG,KAAK,SAAS,GAAG,IAAI;AAAA;AAAA,IAEnC,IAAI,CAAC,UAAU,QAAQ;AAAA,MACnB,OAAO;AAAA;AAAA,IAEX,MAAM,GAAG;AAAA,MACL,OAAO;AAAA;AAAA,IAEX,OAAO,GAAG;AAAA,MACN,OAAO;AAAA;AAAA,EAEf;AAAA,EACQ,6BAAqB;AAAA;;;;ECpB7B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,qBAAkB;AAAA,EAC1B,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,WAAW;AAAA,EACjB,IAAM,uBAAuB,IAAI,qBAAqB;AAAA;AAAA,EAItD,MAAM,WAAW;AAAA,IAEb,WAAW,GAAG;AAAA,WAEP,WAAW,GAAG;AAAA,MACjB,IAAI,CAAC,KAAK,WAAW;AAAA,QACjB,KAAK,YAAY,IAAI;AAAA,MACzB;AAAA,MACA,OAAO,KAAK;AAAA;AAAA,IAOhB,uBAAuB,CAAC,gBAAgB;AAAA,MACpC,QAAQ,GAAG,eAAe,gBAAgB,UAAU,gBAAgB,OAAO,QAAQ,SAAS,CAAC;AAAA;AAAA,IAKjG,MAAM,GAAG;AAAA,MACL,OAAO,KAAK,mBAAmB,EAAE,OAAO;AAAA;AAAA,IAU5C,IAAI,CAAC,SAAS,IAAI,YAAY,MAAM;AAAA,MAChC,OAAO,KAAK,mBAAmB,EAAE,KAAK,SAAS,IAAI,SAAS,GAAG,IAAI;AAAA;AAAA,IAQvE,IAAI,CAAC,SAAS,QAAQ;AAAA,MAClB,OAAO,KAAK,mBAAmB,EAAE,KAAK,SAAS,MAAM;AAAA;AAAA,IAEzD,kBAAkB,GAAG;AAAA,MACjB,QAAQ,GAAG,eAAe,WAAW,QAAQ,KAAK;AAAA;AAAA,IAGtD,OAAO,GAAG;AAAA,MACN,KAAK,mBAAmB,EAAE,QAAQ;AAAA,OACjC,GAAG,eAAe,kBAAkB,UAAU,OAAO,QAAQ,SAAS,CAAC;AAAA;AAAA,EAEhF;AAAA,EACQ,qBAAa;AAAA;;;;EC9ErB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,qBAAkB;AAAA,EAgB1B,IAAI;AAAA,GACH,QAAS,CAAC,aAAY;AAAA,IAEnB,YAAW,YAAW,UAAU,KAAK;AAAA,IAErC,YAAW,YAAW,aAAa,KAAK;AAAA,KACzC,aAAqB,uBAAuB,qBAAa,CAAC,EAAE;AAAA;;;;ECR/D,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,+BAA+B,0BAA0B,yBAAsB;AAAA,EACvF,IAAM;AAAA,EACE,yBAAiB;AAAA,EACjB,0BAAkB;AAAA,EAClB,+BAAuB;AAAA,IAC3B,SAAiB;AAAA,IACjB,QAAgB;AAAA,IAChB,YAAY,cAAc,WAAW;AAAA,EACzC;AAAA;;;;ECTA,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,2BAAwB;AAAA,EAChC,IAAM;AAAA;AAAA,EAMN,MAAM,iBAAiB;AAAA,IACnB,WAAW,CAAC,eAAe,yBAAyB,sBAAsB;AAAA,MACtE,KAAK,eAAe;AAAA;AAAA,IAGxB,WAAW,GAAG;AAAA,MACV,OAAO,KAAK;AAAA;AAAA,IAGhB,YAAY,CAAC,MAAM,QAAQ;AAAA,MACvB,OAAO;AAAA;AAAA,IAGX,aAAa,CAAC,aAAa;AAAA,MACvB,OAAO;AAAA;AAAA,IAGX,QAAQ,CAAC,OAAO,aAAa;AAAA,MACzB,OAAO;AAAA;AAAA,IAEX,OAAO,CAAC,OAAO;AAAA,MACX,OAAO;AAAA;AAAA,IAEX,QAAQ,CAAC,QAAQ;AAAA,MACb,OAAO;AAAA;AAAA,IAGX,SAAS,CAAC,SAAS;AAAA,MACf,OAAO;AAAA;AAAA,IAGX,UAAU,CAAC,OAAO;AAAA,MACd,OAAO;AAAA;AAAA,IAGX,GAAG,CAAC,UAAU;AAAA,IAEd,WAAW,GAAG;AAAA,MACV,OAAO;AAAA;AAAA,IAGX,eAAe,CAAC,YAAY,OAAO;AAAA,EACvC;AAAA,EACQ,2BAAmB;AAAA;;;;ECnD3B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,yBAAyB,yBAAyB,qBAAqB,kBAAkB,wBAAwB,kBAAe;AAAA,EACxI,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EAIN,IAAM,YAAY,GAAG,UAAU,kBAAkB,gCAAgC;AAAA,EAMjF,SAAS,OAAO,CAAC,SAAS;AAAA,IACtB,OAAO,QAAQ,SAAS,QAAQ,KAAK;AAAA;AAAA,EAEjC,kBAAU;AAAA,EAIlB,SAAS,aAAa,GAAG;AAAA,IACrB,OAAO,QAAQ,UAAU,WAAW,YAAY,EAAE,OAAO,CAAC;AAAA;AAAA,EAEtD,wBAAgB;AAAA,EAOxB,SAAS,OAAO,CAAC,SAAS,MAAM;AAAA,IAC5B,OAAO,QAAQ,SAAS,UAAU,IAAI;AAAA;AAAA,EAElC,kBAAU;AAAA,EAMlB,SAAS,UAAU,CAAC,SAAS;AAAA,IACzB,OAAO,QAAQ,YAAY,QAAQ;AAAA;AAAA,EAE/B,qBAAa;AAAA,EAQrB,SAAS,cAAc,CAAC,SAAS,aAAa;AAAA,IAC1C,OAAO,QAAQ,SAAS,IAAI,mBAAmB,iBAAiB,WAAW,CAAC;AAAA;AAAA,EAExE,yBAAiB;AAAA,EAMzB,SAAS,cAAc,CAAC,SAAS;AAAA,IAC7B,IAAI;AAAA,IACJ,QAAQ,KAAK,QAAQ,OAAO,OAAO,QAAQ,OAAY,YAAS,YAAI,GAAG,YAAY;AAAA;AAAA,EAE/E,yBAAiB;AAAA;;;;EC/EzB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,0BAA0B,6BAA6B,wBAAwB,yBAAsB;AAAA,EAgB7G,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,sBAAsB;AAAA,EAC5B,IAAM,qBAAqB;AAAA,EAC3B,SAAS,cAAc,CAAC,SAAS;AAAA,IAC7B,OAAO,oBAAoB,KAAK,OAAO,KAAK,YAAY,yBAAyB;AAAA;AAAA,EAE7E,yBAAiB;AAAA,EACzB,SAAS,aAAa,CAAC,QAAQ;AAAA,IAC3B,OAAO,mBAAmB,KAAK,MAAM,KAAK,WAAW,yBAAyB;AAAA;AAAA,EAE1E,wBAAgB;AAAA,EAKxB,SAAS,kBAAkB,CAAC,aAAa;AAAA,IACrC,OAAQ,eAAe,YAAY,OAAO,KAAK,cAAc,YAAY,MAAM;AAAA;AAAA,EAE3E,6BAAqB;AAAA,EAO7B,SAAS,eAAe,CAAC,aAAa;AAAA,IAClC,OAAO,IAAI,mBAAmB,iBAAiB,WAAW;AAAA;AAAA,EAEtD,0BAAkB;AAAA;;;;EC/B1B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,qBAAkB;AAAA,EAC1B,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,aAAa,UAAU,WAAW,YAAY;AAAA;AAAA,EAIpD,MAAM,WAAW;AAAA,IAEb,SAAS,CAAC,MAAM,SAAS,UAAU,WAAW,OAAO,GAAG;AAAA,MACpD,MAAM,OAAO,QAAQ,YAAY,QAAQ,YAAiB,YAAS,YAAI,QAAQ,IAAI;AAAA,MACnF,IAAI,MAAM;AAAA,QACN,OAAO,IAAI,mBAAmB;AAAA,MAClC;AAAA,MACA,MAAM,oBAAoB,YAAY,GAAG,gBAAgB,gBAAgB,OAAO;AAAA,MAChF,IAAI,cAAc,iBAAiB,MAC9B,GAAG,oBAAoB,oBAAoB,iBAAiB,GAAG;AAAA,QAChE,OAAO,IAAI,mBAAmB,iBAAiB,iBAAiB;AAAA,MACpE,EACK;AAAA,QACD,OAAO,IAAI,mBAAmB;AAAA;AAAA;AAAA,IAGtC,eAAe,CAAC,MAAM,MAAM,MAAM,MAAM;AAAA,MACpC,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI,UAAU,SAAS,GAAG;AAAA,QACtB;AAAA,MACJ,EACK,SAAI,UAAU,WAAW,GAAG;AAAA,QAC7B,KAAK;AAAA,MACT,EACK,SAAI,UAAU,WAAW,GAAG;AAAA,QAC7B,OAAO;AAAA,QACP,KAAK;AAAA,MACT,EACK;AAAA,QACD,OAAO;AAAA,QACP,MAAM;AAAA,QACN,KAAK;AAAA;AAAA,MAET,MAAM,gBAAgB,QAAQ,QAAQ,QAAa,YAAI,MAAM,WAAW,OAAO;AAAA,MAC/E,MAAM,OAAO,KAAK,UAAU,MAAM,MAAM,aAAa;AAAA,MACrD,MAAM,sBAAsB,GAAG,gBAAgB,SAAS,eAAe,IAAI;AAAA,MAC3E,OAAO,WAAW,KAAK,oBAAoB,IAAI,WAAW,IAAI;AAAA;AAAA,EAEtE;AAAA,EACQ,qBAAa;AAAA,EACrB,SAAS,aAAa,CAAC,aAAa;AAAA,IAChC,OAAQ,OAAO,gBAAgB,YAC3B,OAAO,YAAY,cAAc,YACjC,OAAO,YAAY,eAAe,YAClC,OAAO,YAAY,kBAAkB;AAAA;AAAA;;;;ECxD7C,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,sBAAmB;AAAA,EAC3B,IAAM;AAAA,EACN,IAAM,cAAc,IAAI,aAAa;AAAA;AAAA,EAIrC,MAAM,YAAY;AAAA,IACd,WAAW,CAAC,WAAW,MAAM,SAAS,SAAS;AAAA,MAC3C,KAAK,YAAY;AAAA,MACjB,KAAK,OAAO;AAAA,MACZ,KAAK,UAAU;AAAA,MACf,KAAK,UAAU;AAAA;AAAA,IAEnB,SAAS,CAAC,MAAM,SAAS,SAAS;AAAA,MAC9B,OAAO,KAAK,WAAW,EAAE,UAAU,MAAM,SAAS,OAAO;AAAA;AAAA,IAE7D,eAAe,CAAC,OAAO,UAAU,UAAU,KAAK;AAAA,MAC5C,MAAM,SAAS,KAAK,WAAW;AAAA,MAC/B,OAAO,QAAQ,MAAM,OAAO,iBAAiB,QAAQ,SAAS;AAAA;AAAA,IAMlE,UAAU,GAAG;AAAA,MACT,IAAI,KAAK,WAAW;AAAA,QAChB,OAAO,KAAK;AAAA,MAChB;AAAA,MACA,MAAM,SAAS,KAAK,UAAU,kBAAkB,KAAK,MAAM,KAAK,SAAS,KAAK,OAAO;AAAA,MACrF,IAAI,CAAC,QAAQ;AAAA,QACT,OAAO;AAAA,MACX;AAAA,MACA,KAAK,YAAY;AAAA,MACjB,OAAO,KAAK;AAAA;AAAA,EAEpB;AAAA,EACQ,sBAAc;AAAA;;;;ECrCtB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,6BAA0B;AAAA,EAClC,IAAM;AAAA;AAAA,EAON,MAAM,mBAAmB;AAAA,IACrB,SAAS,CAAC,OAAO,UAAU,UAAU;AAAA,MACjC,OAAO,IAAI,aAAa;AAAA;AAAA,EAEhC;AAAA,EACQ,6BAAqB;AAAA;;;;ECd7B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,8BAA2B;AAAA,EACnC,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,uBAAuB,IAAI,qBAAqB;AAAA;AAAA,EAStD,MAAM,oBAAoB;AAAA,IAItB,SAAS,CAAC,MAAM,SAAS,SAAS;AAAA,MAC9B,IAAI;AAAA,MACJ,QAAS,KAAK,KAAK,kBAAkB,MAAM,SAAS,OAAO,OAAO,QAAQ,OAAY,YAAI,KAAK,IAAI,cAAc,YAAY,MAAM,MAAM,SAAS,OAAO;AAAA;AAAA,IAE7J,WAAW,GAAG;AAAA,MACV,IAAI;AAAA,MACJ,QAAQ,KAAK,KAAK,eAAe,QAAQ,OAAY,YAAI,KAAK;AAAA;AAAA,IAKlE,WAAW,CAAC,UAAU;AAAA,MAClB,KAAK,YAAY;AAAA;AAAA,IAErB,iBAAiB,CAAC,MAAM,SAAS,SAAS;AAAA,MACtC,IAAI;AAAA,MACJ,QAAQ,KAAK,KAAK,eAAe,QAAQ,OAAY,YAAS,YAAI,GAAG,UAAU,MAAM,SAAS,OAAO;AAAA;AAAA,EAE7G;AAAA,EACQ,8BAAsB;AAAA;;;;ECpC9B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,2BAAwB;AAAA,EAMhC,IAAI;AAAA,GACH,QAAS,CAAC,mBAAkB;AAAA,IAKzB,kBAAiB,kBAAiB,gBAAgB,KAAK;AAAA,IAKvD,kBAAiB,kBAAiB,YAAY,KAAK;AAAA,IAKnD,kBAAiB,kBAAiB,wBAAwB,KAAK;AAAA,KAChE,mBAA2B,6BAA6B,2BAAmB,CAAC,EAAE;AAAA;;;;ECvCjF,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,mBAAgB;AAAA,EAgBxB,IAAI;AAAA,GACH,QAAS,CAAC,WAAU;AAAA,IAEjB,UAAS,UAAS,cAAc,KAAK;AAAA,IAKrC,UAAS,UAAS,YAAY,KAAK;AAAA,IAKnC,UAAS,UAAS,YAAY,KAAK;AAAA,IAMnC,UAAS,UAAS,cAAc,KAAK;AAAA,IAMrC,UAAS,UAAS,cAAc,KAAK;AAAA,KACtC,WAAmB,qBAAqB,mBAAW,CAAC,EAAE;AAAA;;;;EC3CzD,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,yBAAsB;AAAA,EAI9B,IAAI;AAAA,GACH,QAAS,CAAC,iBAAgB;AAAA,IAIvB,gBAAe,gBAAe,WAAW,KAAK;AAAA,IAK9C,gBAAe,gBAAe,QAAQ,KAAK;AAAA,IAI3C,gBAAe,gBAAe,WAAW,KAAK;AAAA,KAC/C,iBAAyB,2BAA2B,yBAAiB,CAAC,EAAE;AAAA;;;;ECL3E,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,wBAAwB,sBAAmB;AAAA,EACnD,IAAM,uBAAuB;AAAA,EAC7B,IAAM,YAAY,QAAQ;AAAA,EAC1B,IAAM,mBAAmB,WAAW,oCAAoC;AAAA,EACxE,IAAM,kBAAkB,IAAI,OAAO,OAAO,aAAa,oBAAoB;AAAA,EAC3E,IAAM,yBAAyB;AAAA,EAC/B,IAAM,kCAAkC;AAAA,EASxC,SAAS,WAAW,CAAC,KAAK;AAAA,IACtB,OAAO,gBAAgB,KAAK,GAAG;AAAA;AAAA,EAE3B,sBAAc;AAAA,EAKtB,SAAS,aAAa,CAAC,OAAO;AAAA,IAC1B,OAAQ,uBAAuB,KAAK,KAAK,KACrC,CAAC,gCAAgC,KAAK,KAAK;AAAA;AAAA,EAE3C,wBAAgB;AAAA;;;;EC5BxB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,yBAAsB;AAAA,EAC9B,IAAM;AAAA,EACN,IAAM,wBAAwB;AAAA,EAC9B,IAAM,sBAAsB;AAAA,EAC5B,IAAM,yBAAyB;AAAA,EAC/B,IAAM,iCAAiC;AAAA;AAAA,EAUvC,MAAM,eAAe;AAAA,IACjB,WAAW,CAAC,eAAe;AAAA,MACvB,KAAK,iBAAiB,IAAI;AAAA,MAC1B,IAAI;AAAA,QACA,KAAK,OAAO,aAAa;AAAA;AAAA,IAEjC,GAAG,CAAC,KAAK,OAAO;AAAA,MAGZ,MAAM,aAAa,KAAK,OAAO;AAAA,MAC/B,IAAI,WAAW,eAAe,IAAI,GAAG,GAAG;AAAA,QACpC,WAAW,eAAe,OAAO,GAAG;AAAA,MACxC;AAAA,MACA,WAAW,eAAe,IAAI,KAAK,KAAK;AAAA,MACxC,OAAO;AAAA;AAAA,IAEX,KAAK,CAAC,KAAK;AAAA,MACP,MAAM,aAAa,KAAK,OAAO;AAAA,MAC/B,WAAW,eAAe,OAAO,GAAG;AAAA,MACpC,OAAO;AAAA;AAAA,IAEX,GAAG,CAAC,KAAK;AAAA,MACL,OAAO,KAAK,eAAe,IAAI,GAAG;AAAA;AAAA,IAEtC,SAAS,GAAG;AAAA,MACR,OAAO,KAAK,MAAM,EACb,OAAO,CAAC,KAAK,QAAQ;AAAA,QACtB,IAAI,KAAK,MAAM,iCAAiC,KAAK,IAAI,GAAG,CAAC;AAAA,QAC7D,OAAO;AAAA,SACR,CAAC,CAAC,EACA,KAAK,sBAAsB;AAAA;AAAA,IAEpC,MAAM,CAAC,eAAe;AAAA,MAClB,IAAI,cAAc,SAAS;AAAA,QACvB;AAAA,MACJ,KAAK,iBAAiB,cACjB,MAAM,sBAAsB,EAC5B,QAAQ,EACR,OAAO,CAAC,KAAK,SAAS;AAAA,QACvB,MAAM,aAAa,KAAK,KAAK;AAAA,QAC7B,MAAM,IAAI,WAAW,QAAQ,8BAA8B;AAAA,QAC3D,IAAI,MAAM,IAAI;AAAA,UACV,MAAM,MAAM,WAAW,MAAM,GAAG,CAAC;AAAA,UACjC,MAAM,QAAQ,WAAW,MAAM,IAAI,GAAG,KAAK,MAAM;AAAA,UACjD,KAAK,GAAG,wBAAwB,aAAa,GAAG,MAAM,GAAG,wBAAwB,eAAe,KAAK,GAAG;AAAA,YACpG,IAAI,IAAI,KAAK,KAAK;AAAA,UACtB;AAAA,QAIJ;AAAA,QACA,OAAO;AAAA,SACR,IAAI,GAAK;AAAA,MAEZ,IAAI,KAAK,eAAe,OAAO,uBAAuB;AAAA,QAClD,KAAK,iBAAiB,IAAI,IAAI,MAAM,KAAK,KAAK,eAAe,QAAQ,CAAC,EACjE,QAAQ,EACR,MAAM,GAAG,qBAAqB,CAAC;AAAA,MACxC;AAAA;AAAA,IAEJ,KAAK,GAAG;AAAA,MACJ,OAAO,MAAM,KAAK,KAAK,eAAe,KAAK,CAAC,EAAE,QAAQ;AAAA;AAAA,IAE1D,MAAM,GAAG;AAAA,MACL,MAAM,aAAa,IAAI;AAAA,MACvB,WAAW,iBAAiB,IAAI,IAAI,KAAK,cAAc;AAAA,MACvD,OAAO;AAAA;AAAA,EAEf;AAAA,EACQ,yBAAiB;AAAA;;;;ECrFzB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,2BAAwB;AAAA,EAChC,IAAM;AAAA,EACN,SAAS,gBAAgB,CAAC,eAAe;AAAA,IACrC,OAAO,IAAI,kBAAkB,eAAe,aAAa;AAAA;AAAA,EAErD,2BAAmB;AAAA;;;;ECN3B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,kBAAe;AAAA,EAGvB,IAAM;AAAA,EAEE,kBAAU,UAAU,WAAW,YAAY;AAAA;;;;ECNnD,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,eAAY;AAAA,EAGpB,IAAM;AAAA,EAOE,eAAO,OAAO,QAAQ,SAAS;AAAA;;;;ECXvC,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,8BAA8B,4BAAyB;AAAA,EAC/D,IAAM;AAAA;AAAA,EAKN,MAAM,kBAAkB;AAAA,IACpB,QAAQ,CAAC,OAAO,UAAU,UAAU;AAAA,MAChC,OAAO,YAAY;AAAA;AAAA,EAE3B;AAAA,EACQ,4BAAoB;AAAA,EACpB,8BAAsB,IAAI;AAAA;;;;ECblC,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,qBAAkB;AAAA,EAC1B,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,WAAW;AAAA;AAAA,EAIjB,MAAM,WAAW;AAAA,IAEb,WAAW,GAAG;AAAA,WAEP,WAAW,GAAG;AAAA,MACjB,IAAI,CAAC,KAAK,WAAW;AAAA,QACjB,KAAK,YAAY,IAAI;AAAA,MACzB;AAAA,MACA,OAAO,KAAK;AAAA;AAAA,IAMhB,sBAAsB,CAAC,UAAU;AAAA,MAC7B,QAAQ,GAAG,eAAe,gBAAgB,UAAU,UAAU,OAAO,QAAQ,SAAS,CAAC;AAAA;AAAA,IAK3F,gBAAgB,GAAG;AAAA,MACf,QAAQ,GAAG,eAAe,WAAW,QAAQ,KAAK,oBAAoB;AAAA;AAAA,IAK1E,QAAQ,CAAC,MAAM,SAAS,SAAS;AAAA,MAC7B,OAAO,KAAK,iBAAiB,EAAE,SAAS,MAAM,SAAS,OAAO;AAAA;AAAA,IAGlE,OAAO,GAAG;AAAA,OACL,GAAG,eAAe,kBAAkB,UAAU,OAAO,QAAQ,SAAS,CAAC;AAAA;AAAA,EAEhF;AAAA,EACQ,qBAAa;AAAA;;;;EC3CrB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,kBAAe;AAAA,EAGvB,IAAM;AAAA,EAEE,kBAAU,UAAU,WAAW,YAAY;AAAA;;;;ECNnD,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,gCAA6B;AAAA;AAAA,EAIrC,MAAM,sBAAsB;AAAA,IAExB,MAAM,CAAC,UAAU,UAAU;AAAA,IAE3B,OAAO,CAAC,SAAS,UAAU;AAAA,MACvB,OAAO;AAAA;AAAA,IAEX,MAAM,GAAG;AAAA,MACL,OAAO,CAAC;AAAA;AAAA,EAEhB;AAAA,EACQ,gCAAwB;AAAA;;;;EChBhC,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,wBAAwB,qBAAqB,2BAA2B,qBAAkB;AAAA,EAClG,IAAM;AAAA,EACN,IAAM;AAAA,EAIN,IAAM,eAAe,GAAG,UAAU,kBAAkB,2BAA2B;AAAA,EAO/E,SAAS,UAAU,CAAC,SAAS;AAAA,IACzB,OAAO,QAAQ,SAAS,WAAW,KAAK;AAAA;AAAA,EAEpC,qBAAa;AAAA,EAMrB,SAAS,gBAAgB,GAAG;AAAA,IACxB,OAAO,WAAW,UAAU,WAAW,YAAY,EAAE,OAAO,CAAC;AAAA;AAAA,EAEzD,2BAAmB;AAAA,EAO3B,SAAS,UAAU,CAAC,SAAS,SAAS;AAAA,IAClC,OAAO,QAAQ,SAAS,aAAa,OAAO;AAAA;AAAA,EAExC,qBAAa;AAAA,EAMrB,SAAS,aAAa,CAAC,SAAS;AAAA,IAC5B,OAAO,QAAQ,YAAY,WAAW;AAAA;AAAA,EAElC,wBAAgB;AAAA;;;;EC7CxB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,yBAAsB;AAAA,EAC9B,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,WAAW;AAAA,EACjB,IAAM,2BAA2B,IAAI,wBAAwB;AAAA;AAAA,EAI7D,MAAM,eAAe;AAAA,IAEjB,WAAW,GAAG;AAAA,MACV,KAAK,gBAAgB,QAAQ;AAAA,MAC7B,KAAK,aAAa,kBAAkB;AAAA,MACpC,KAAK,mBAAmB,kBAAkB;AAAA,MAC1C,KAAK,aAAa,kBAAkB;AAAA,MACpC,KAAK,gBAAgB,kBAAkB;AAAA;AAAA,WAGpC,WAAW,GAAG;AAAA,MACjB,IAAI,CAAC,KAAK,WAAW;AAAA,QACjB,KAAK,YAAY,IAAI;AAAA,MACzB;AAAA,MACA,OAAO,KAAK;AAAA;AAAA,IAOhB,mBAAmB,CAAC,YAAY;AAAA,MAC5B,QAAQ,GAAG,eAAe,gBAAgB,UAAU,YAAY,OAAO,QAAQ,SAAS,CAAC;AAAA;AAAA,IAS7F,MAAM,CAAC,SAAS,SAAS,SAAS,oBAAoB,sBAAsB;AAAA,MACxE,OAAO,KAAK,qBAAqB,EAAE,OAAO,SAAS,SAAS,MAAM;AAAA;AAAA,IAStE,OAAO,CAAC,SAAS,SAAS,SAAS,oBAAoB,sBAAsB;AAAA,MACzE,OAAO,KAAK,qBAAqB,EAAE,QAAQ,SAAS,SAAS,MAAM;AAAA;AAAA,IAKvE,MAAM,GAAG;AAAA,MACL,OAAO,KAAK,qBAAqB,EAAE,OAAO;AAAA;AAAA,IAG9C,OAAO,GAAG;AAAA,OACL,GAAG,eAAe,kBAAkB,UAAU,OAAO,QAAQ,SAAS,CAAC;AAAA;AAAA,IAE5E,oBAAoB,GAAG;AAAA,MACnB,QAAQ,GAAG,eAAe,WAAW,QAAQ,KAAK;AAAA;AAAA,EAE1D;AAAA,EACQ,yBAAiB;AAAA;;;;ECvEzB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,sBAAmB;AAAA,EAG3B,IAAM;AAAA,EAEE,sBAAc,cAAc,eAAe,YAAY;AAAA;;;;ECN/D,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,mBAAgB;AAAA,EACxB,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,WAAW;AAAA;AAAA,EAIjB,MAAM,SAAS;AAAA,IAEX,WAAW,GAAG;AAAA,MACV,KAAK,uBAAuB,IAAI,sBAAsB;AAAA,MACtD,KAAK,kBAAkB,oBAAoB;AAAA,MAC3C,KAAK,qBAAqB,oBAAoB;AAAA,MAC9C,KAAK,aAAa,gBAAgB;AAAA,MAClC,KAAK,UAAU,gBAAgB;AAAA,MAC/B,KAAK,gBAAgB,gBAAgB;AAAA,MACrC,KAAK,iBAAiB,gBAAgB;AAAA,MACtC,KAAK,UAAU,gBAAgB;AAAA,MAC/B,KAAK,iBAAiB,gBAAgB;AAAA;AAAA,WAGnC,WAAW,GAAG;AAAA,MACjB,IAAI,CAAC,KAAK,WAAW;AAAA,QACjB,KAAK,YAAY,IAAI;AAAA,MACzB;AAAA,MACA,OAAO,KAAK;AAAA;AAAA,IAOhB,uBAAuB,CAAC,UAAU;AAAA,MAC9B,MAAM,WAAW,GAAG,eAAe,gBAAgB,UAAU,KAAK,sBAAsB,OAAO,QAAQ,SAAS,CAAC;AAAA,MACjH,IAAI,SAAS;AAAA,QACT,KAAK,qBAAqB,YAAY,QAAQ;AAAA,MAClD;AAAA,MACA,OAAO;AAAA;AAAA,IAKX,iBAAiB,GAAG;AAAA,MAChB,QAAQ,GAAG,eAAe,WAAW,QAAQ,KAAK,KAAK;AAAA;AAAA,IAK3D,SAAS,CAAC,MAAM,SAAS;AAAA,MACrB,OAAO,KAAK,kBAAkB,EAAE,UAAU,MAAM,OAAO;AAAA;AAAA,IAG3D,OAAO,GAAG;AAAA,OACL,GAAG,eAAe,kBAAkB,UAAU,OAAO,QAAQ,SAAS,CAAC;AAAA,MACxE,KAAK,uBAAuB,IAAI,sBAAsB;AAAA;AAAA,EAE9D;AAAA,EACQ,mBAAW;AAAA;;;;EC7DnB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,gBAAa;AAAA,EAGrB,IAAM;AAAA,EAEE,gBAAQ,QAAQ,SAAS,YAAY;AAAA;;;;ECN7C,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,gBAAgB,sBAAsB,kBAAkB,eAAe,kBAAkB,+BAA+B,0BAA0B,yBAAyB,wBAAwB,yBAAyB,6BAA6B,2BAA2B,qBAAqB,yBAAyB,mBAAmB,2BAA2B,8BAA8B,sBAAsB,+BAA+B,+BAA+B,oBAAoB,0BAA0B,uBAAuB,4BAA4B,uBAAuB,2BAA2B,yCAAsC;AAAA,EACnqB,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,kCAAkC,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,QAAQ;AAAA,IAAkC,CAAC;AAAA,EAE1J,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,oBAAoB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAoB,CAAC;AAAA,EAChI,OAAO,eAAe,SAAS,gBAAgB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAgB,CAAC;AAAA,EAExH,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,qBAAqB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,gBAAgB;AAAA,IAAqB,CAAC;AAAA,EACxI,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,gBAAgB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,QAAQ;AAAA,IAAgB,CAAC;AAAA,EAEtH,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,mBAAmB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,YAAY;AAAA,IAAmB,CAAC;AAAA,EAChI,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,aAAa,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,SAAS;AAAA,IAAa,CAAC;AAAA,EAEjH,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,wBAAwB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,oBAAoB;AAAA,IAAwB,CAAC;AAAA,EAClJ,OAAO,eAAe,SAAS,wBAAwB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,oBAAoB;AAAA,IAAwB,CAAC;AAAA,EAClJ,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,eAAe,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,cAAc;AAAA,IAAe,CAAC;AAAA,EAC1H,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,uBAAuB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,sBAAsB;AAAA,IAAuB,CAAC;AAAA,EAClJ,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,oBAAoB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,iBAAiB;AAAA,IAAoB,CAAC;AAAA,EACvI,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,YAAY,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,YAAY;AAAA,IAAY,CAAC;AAAA,EAClH,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,kBAAkB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,SAAS;AAAA,IAAkB,CAAC;AAAA,EAC3H,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,cAAc,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,cAAc;AAAA,IAAc,CAAC;AAAA,EACxH,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,oBAAoB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,QAAQ;AAAA,IAAoB,CAAC;AAAA,EAC9H,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,sBAAsB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,oBAAoB;AAAA,IAAsB,CAAC;AAAA,EAC9I,OAAO,eAAe,SAAS,kBAAkB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,oBAAoB;AAAA,IAAkB,CAAC;AAAA,EACtI,OAAO,eAAe,SAAS,iBAAiB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,oBAAoB;AAAA,IAAiB,CAAC;AAAA,EACpI,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,kBAAkB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,yBAAyB;AAAA,IAAkB,CAAC;AAAA,EAC3I,OAAO,eAAe,SAAS,mBAAmB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,yBAAyB;AAAA,IAAmB,CAAC;AAAA,EAC7I,OAAO,eAAe,SAAS,wBAAwB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,yBAAyB;AAAA,IAAwB,CAAC;AAAA,EAGvJ,IAAM;AAAA,EACN,OAAO,eAAe,SAAS,WAAW,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,cAAc;AAAA,IAAW,CAAC;AAAA,EAClH,IAAM;AAAA,EACN,OAAO,eAAe,SAAS,QAAQ,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,WAAW;AAAA,IAAQ,CAAC;AAAA,EACzG,IAAM;AAAA,EACN,OAAO,eAAe,SAAS,WAAW,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,cAAc;AAAA,IAAW,CAAC;AAAA,EAClH,IAAM;AAAA,EACN,OAAO,eAAe,SAAS,eAAe,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,kBAAkB;AAAA,IAAe,CAAC;AAAA,EAC9H,IAAM;AAAA,EACN,OAAO,eAAe,SAAS,SAAS,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,YAAY;AAAA,IAAS,CAAC;AAAA,EAEpG,kBAAU;AAAA,IACd,SAAS,cAAc;AAAA,IACvB,MAAM,WAAW;AAAA,IACjB,SAAS,cAAc;AAAA,IACvB,aAAa,kBAAkB;AAAA,IAC/B,OAAO,YAAY;AAAA,EACvB;AAAA;;;;EC9EA,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,qBAAqB,2BAA2B,sBAAsB,wBAAwB,oBAAoB,oBAAoB,qBAAqB,cAAc,YAAY,cAAc,gBAAgB,eAAe,qBAAqB,sBAAmB;AAAA;AAAA,EAElR,MAAM,YAAY;AAAA,EAClB;AAAA,EACQ,sBAAc;AAAA,EACd,qBAAa;AAAA;AAAA,EACrB,MAAM,aAAa,YAAY;AAAA,IAC3B,WAAW,CAAC,GAAG;AAAA,MACX,MAAM;AAAA,MACN,IAAI,CAAS,mBAAW,KAAK,CAAC;AAAA,QAC1B,MAAM,IAAI,MAAM,0CAA0C;AAAA,MAC9D,KAAK,MAAM;AAAA;AAAA,IAEf,QAAQ,GAAG;AAAA,MACP,OAAO,KAAK;AAAA;AAAA,IAEhB,QAAQ,GAAG;AAAA,MACP,OAAO;AAAA;AAAA,QAEP,KAAK,GAAG;AAAA,MACR,OAAO,GAAG,KAAK,MAAM,EAAE;AAAA;AAAA,EAE/B;AAAA,EACQ,eAAO;AAAA;AAAA,EACf,MAAM,cAAc,YAAY;AAAA,IAC5B,WAAW,CAAC,MAAM;AAAA,MACd,MAAM;AAAA,MACN,KAAK,SAAS,OAAO,SAAS,WAAW,CAAC,IAAI,IAAI;AAAA;AAAA,IAEtD,QAAQ,GAAG;AAAA,MACP,OAAO,KAAK;AAAA;AAAA,IAEhB,QAAQ,GAAG;AAAA,MACP,IAAI,KAAK,OAAO,SAAS;AAAA,QACrB,OAAO;AAAA,MACX,MAAM,OAAO,KAAK,OAAO;AAAA,MACzB,OAAO,SAAS,MAAM,SAAS;AAAA;AAAA,QAE/B,GAAG,GAAG;AAAA,MACN,IAAI;AAAA,MACJ,QAAS,KAAK,KAAK,UAAU,QAAQ,OAAY,YAAI,KAAM,KAAK,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,EAAE;AAAA;AAAA,QAElH,KAAK,GAAG;AAAA,MACR,IAAI;AAAA,MACJ,QAAS,KAAK,KAAK,YAAY,QAAQ,OAAY,YAAI,KAAM,KAAK,SAAS,KAAK,OAAO,OAAO,CAAC,OAAO,MAAM;AAAA,QACxG,IAAI,aAAa;AAAA,UACb,MAAM,EAAE,QAAQ,MAAM,EAAE,QAAQ,KAAK;AAAA,QACzC,OAAO;AAAA,SACR,CAAC,CAAC;AAAA;AAAA,EAEb;AAAA,EACQ,gBAAQ;AAAA,EACR,cAAM,IAAI,MAAM,EAAE;AAAA,EAC1B,SAAS,CAAC,CAAC,SAAS,MAAM;AAAA,IACtB,MAAM,OAAO,CAAC,KAAK,EAAE;AAAA,IACrB,IAAI,IAAI;AAAA,IACR,OAAO,IAAI,KAAK,QAAQ;AAAA,MACpB,WAAW,MAAM,KAAK,EAAE;AAAA,MACxB,KAAK,KAAK,KAAK,EAAE,EAAE;AAAA,IACvB;AAAA,IACA,OAAO,IAAI,MAAM,IAAI;AAAA;AAAA,EAEjB,YAAI;AAAA,EACZ,IAAM,OAAO,IAAI,MAAM,GAAG;AAAA,EAC1B,SAAS,GAAG,CAAC,SAAS,MAAM;AAAA,IACxB,MAAM,OAAO,CAAC,cAAc,KAAK,EAAE,CAAC;AAAA,IACpC,IAAI,IAAI;AAAA,IACR,OAAO,IAAI,KAAK,QAAQ;AAAA,MACpB,KAAK,KAAK,IAAI;AAAA,MACd,WAAW,MAAM,KAAK,EAAE;AAAA,MACxB,KAAK,KAAK,MAAM,cAAc,KAAK,EAAE,EAAE,CAAC;AAAA,IAC5C;AAAA,IACA,SAAS,IAAI;AAAA,IACb,OAAO,IAAI,MAAM,IAAI;AAAA;AAAA,EAEjB,cAAM;AAAA,EACd,SAAS,UAAU,CAAC,MAAM,KAAK;AAAA,IAC3B,IAAI,eAAe;AAAA,MACf,KAAK,KAAK,GAAG,IAAI,MAAM;AAAA,IACtB,SAAI,eAAe;AAAA,MACpB,KAAK,KAAK,GAAG;AAAA,IAEb;AAAA,WAAK,KAAK,YAAY,GAAG,CAAC;AAAA;AAAA,EAE1B,qBAAa;AAAA,EACrB,SAAS,QAAQ,CAAC,MAAM;AAAA,IACpB,IAAI,IAAI;AAAA,IACR,OAAO,IAAI,KAAK,SAAS,GAAG;AAAA,MACxB,IAAI,KAAK,OAAO,MAAM;AAAA,QAClB,MAAM,MAAM,eAAe,KAAK,IAAI,IAAI,KAAK,IAAI,EAAE;AAAA,QACnD,IAAI,QAAQ,WAAW;AAAA,UACnB,KAAK,OAAO,IAAI,GAAG,GAAG,GAAG;AAAA,UACzB;AAAA,QACJ;AAAA,QACA,KAAK,OAAO;AAAA,MAChB;AAAA,MACA;AAAA,IACJ;AAAA;AAAA,EAEJ,SAAS,cAAc,CAAC,GAAG,GAAG;AAAA,IAC1B,IAAI,MAAM;AAAA,MACN,OAAO;AAAA,IACX,IAAI,MAAM;AAAA,MACN,OAAO;AAAA,IACX,IAAI,OAAO,KAAK,UAAU;AAAA,MACtB,IAAI,aAAa,QAAQ,EAAE,EAAE,SAAS,OAAO;AAAA,QACzC;AAAA,MACJ,IAAI,OAAO,KAAK;AAAA,QACZ,OAAO,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI;AAAA,MAC/B,IAAI,EAAE,OAAO;AAAA,QACT,OAAO,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;AAAA,MACrC;AAAA,IACJ;AAAA,IACA,IAAI,OAAO,KAAK,YAAY,EAAE,OAAO,OAAO,EAAE,aAAa;AAAA,MACvD,OAAO,IAAI,IAAI,EAAE,MAAM,CAAC;AAAA,IAC5B;AAAA;AAAA,EAEJ,SAAS,SAAS,CAAC,IAAI,IAAI;AAAA,IACvB,OAAO,GAAG,SAAS,IAAI,KAAK,GAAG,SAAS,IAAI,KAAK,MAAO,KAAK;AAAA;AAAA,EAEzD,oBAAY;AAAA,EAEpB,SAAS,WAAW,CAAC,GAAG;AAAA,IACpB,OAAO,OAAO,KAAK,YAAY,OAAO,KAAK,aAAa,MAAM,OACxD,IACA,cAAc,MAAM,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;AAAA;AAAA,EAE1D,SAAS,UAAS,CAAC,GAAG;AAAA,IAClB,OAAO,IAAI,MAAM,cAAc,CAAC,CAAC;AAAA;AAAA,EAE7B,oBAAY;AAAA,EACpB,SAAS,aAAa,CAAC,GAAG;AAAA,IACtB,OAAO,KAAK,UAAU,CAAC,EAClB,QAAQ,WAAW,SAAS,EAC5B,QAAQ,WAAW,SAAS;AAAA;AAAA,EAE7B,wBAAgB;AAAA,EACxB,SAAS,WAAW,CAAC,KAAK;AAAA,IACtB,OAAO,OAAO,OAAO,YAAoB,mBAAW,KAAK,GAAG,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAM;AAAA;AAAA,EAEzF,sBAAc;AAAA,EAEtB,SAAS,gBAAgB,CAAC,KAAK;AAAA,IAC3B,IAAI,OAAO,OAAO,YAAoB,mBAAW,KAAK,GAAG,GAAG;AAAA,MACxD,OAAO,IAAI,MAAM,GAAG,KAAK;AAAA,IAC7B;AAAA,IACA,MAAM,IAAI,MAAM,iCAAiC,oCAAoC;AAAA;AAAA,EAEjF,2BAAmB;AAAA,EAC3B,SAAS,UAAU,CAAC,IAAI;AAAA,IACpB,OAAO,IAAI,MAAM,GAAG,SAAS,CAAC;AAAA;AAAA,EAE1B,qBAAa;AAAA;;;;ECzJrB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,qBAAqB,yBAAyB,gBAAgB,mBAAmB,yBAAsB;AAAA,EAC/G,IAAM;AAAA;AAAA,EACN,MAAM,mBAAmB,MAAM;AAAA,IAC3B,WAAW,CAAC,MAAM;AAAA,MACd,MAAM,uBAAuB,kBAAkB;AAAA,MAC/C,KAAK,QAAQ,KAAK;AAAA;AAAA,EAE1B;AAAA,EACA,IAAI;AAAA,GACH,QAAS,CAAC,iBAAgB;AAAA,IACvB,gBAAe,gBAAe,aAAa,KAAK;AAAA,IAChD,gBAAe,gBAAe,eAAe,KAAK;AAAA,KACnD,mBAA2B,yBAAiB,iBAAiB,CAAC,EAAE;AAAA,EAC3D,mBAAW;AAAA,IACf,OAAO,IAAI,OAAO,KAAK,OAAO;AAAA,IAC9B,KAAK,IAAI,OAAO,KAAK,KAAK;AAAA,IAC1B,KAAK,IAAI,OAAO,KAAK,KAAK;AAAA,EAC9B;AAAA;AAAA,EACA,MAAM,MAAM;AAAA,IACR,WAAW,GAAG,UAAU,WAAW,CAAC,GAAG;AAAA,MACnC,KAAK,SAAS,CAAC;AAAA,MACf,KAAK,YAAY;AAAA,MACjB,KAAK,UAAU;AAAA;AAAA,IAEnB,MAAM,CAAC,cAAc;AAAA,MACjB,OAAO,wBAAwB,OAAO,OAAO,eAAe,KAAK,KAAK,YAAY;AAAA;AAAA,IAEtF,IAAI,CAAC,QAAQ;AAAA,MACT,OAAO,IAAI,OAAO,KAAK,KAAK,SAAS,MAAM,CAAC;AAAA;AAAA,IAEhD,QAAQ,CAAC,QAAQ;AAAA,MACb,MAAM,KAAK,KAAK,OAAO,WAAW,KAAK,WAAW,MAAM;AAAA,MACxD,OAAO,GAAG,SAAS,GAAG;AAAA;AAAA,IAE1B,UAAU,CAAC,QAAQ;AAAA,MACf,IAAI,IAAI;AAAA,MACR,MAAM,MAAM,KAAK,KAAK,aAAa,QAAQ,OAAY,YAAS,YAAI,GAAG,eAAe,QAAQ,OAAY,YAAS,YAAI,GAAG,IAAI,MAAM,MAAO,KAAK,aAAa,CAAC,KAAK,UAAU,IAAI,MAAM,GAAI;AAAA,QACvL,MAAM,IAAI,MAAM,oBAAoB,sCAAsC;AAAA,MAC9E;AAAA,MACA,OAAQ,KAAK,OAAO,UAAU,EAAE,QAAQ,OAAO,EAAE;AAAA;AAAA,EAEzD;AAAA,EACQ,gBAAQ;AAAA;AAAA,EAChB,MAAM,uBAAuB,OAAO,KAAK;AAAA,IACrC,WAAW,CAAC,QAAQ,SAAS;AAAA,MACzB,MAAM,OAAO;AAAA,MACb,KAAK,SAAS;AAAA;AAAA,IAElB,QAAQ,CAAC,SAAS,UAAU,aAAa;AAAA,MACrC,KAAK,QAAQ;AAAA,MACb,KAAK,YAAa,IAAG,OAAO,MAAO,IAAI,OAAO,KAAK,QAAQ,KAAK;AAAA;AAAA,EAExE;AAAA,EACQ,yBAAiB;AAAA,EACzB,IAAM,OAAQ,IAAG,OAAO;AAAA;AAAA,EACxB,MAAM,mBAAmB,MAAM;AAAA,IAC3B,WAAW,CAAC,MAAM;AAAA,MACd,MAAM,IAAI;AAAA,MACV,KAAK,UAAU,CAAC;AAAA,MAChB,KAAK,SAAS,KAAK;AAAA,MACnB,KAAK,OAAO,KAAK,MAAM,IAAI,KAAK,QAAQ,OAAO,OAAO,IAAI;AAAA;AAAA,IAE9D,GAAG,GAAG;AAAA,MACF,OAAO,KAAK;AAAA;AAAA,IAEhB,IAAI,CAAC,QAAQ;AAAA,MACT,OAAO,IAAI,eAAe,QAAQ,KAAK,SAAS,MAAM,CAAC;AAAA;AAAA,IAE3D,KAAK,CAAC,cAAc,OAAO;AAAA,MACvB,IAAI;AAAA,MACJ,IAAI,MAAM,QAAQ;AAAA,QACd,MAAM,IAAI,MAAM,sCAAsC;AAAA,MAC1D,MAAM,OAAO,KAAK,OAAO,YAAY;AAAA,MACrC,QAAQ,WAAW;AAAA,MACnB,MAAM,YAAY,KAAK,MAAM,SAAS,QAAQ,OAAY,YAAI,KAAK,MAAM;AAAA,MACzE,IAAI,KAAK,KAAK,QAAQ;AAAA,MACtB,IAAI,IAAI;AAAA,QACJ,MAAM,QAAQ,GAAG,IAAI,QAAQ;AAAA,QAC7B,IAAI;AAAA,UACA,OAAO;AAAA,MACf,EACK;AAAA,QACD,KAAK,KAAK,QAAQ,UAAU,IAAI;AAAA;AAAA,MAEpC,GAAG,IAAI,UAAU,IAAI;AAAA,MACrB,MAAM,IAAI,KAAK,OAAO,YAAY,KAAK,OAAO,UAAU,CAAC;AAAA,MACzD,MAAM,YAAY,EAAE;AAAA,MACpB,EAAE,aAAa,MAAM;AAAA,MACrB,KAAK,SAAS,OAAO,EAAE,UAAU,QAAQ,UAAU,CAAC;AAAA,MACpD,OAAO;AAAA;AAAA,IAEX,QAAQ,CAAC,QAAQ,UAAU;AAAA,MACvB,MAAM,KAAK,KAAK,QAAQ;AAAA,MACxB,IAAI,CAAC;AAAA,QACD;AAAA,MACJ,OAAO,GAAG,IAAI,QAAQ;AAAA;AAAA,IAE1B,SAAS,CAAC,WAAW,SAAS,KAAK,SAAS;AAAA,MACxC,OAAO,KAAK,cAAc,QAAQ,CAAC,SAAS;AAAA,QACxC,IAAI,KAAK,cAAc;AAAA,UACnB,MAAM,IAAI,MAAM,kBAAkB,oBAAoB;AAAA,QAC1D,OAAQ,IAAG,OAAO,KAAM,YAAY,KAAK;AAAA,OAC5C;AAAA;AAAA,IAEL,SAAS,CAAC,SAAS,KAAK,SAAS,YAAY,SAAS;AAAA,MAClD,OAAO,KAAK,cAAc,QAAQ,CAAC,SAAS;AAAA,QACxC,IAAI,KAAK,UAAU;AAAA,UACf,MAAM,IAAI,MAAM,kBAAkB,oBAAoB;AAAA,QAC1D,OAAO,KAAK,MAAM;AAAA,SACnB,YAAY,OAAO;AAAA;AAAA,IAE1B,aAAa,CAAC,QAAQ,WAAW,aAAa,CAAC,GAAG,SAAS;AAAA,MACvD,IAAI,OAAO,OAAO;AAAA,MAClB,WAAW,UAAU,QAAQ;AAAA,QACzB,MAAM,KAAK,OAAO;AAAA,QAClB,IAAI,CAAC;AAAA,UACD;AAAA,QACJ,MAAM,UAAW,WAAW,UAAU,WAAW,WAAW,IAAI;AAAA,QAChE,GAAG,QAAQ,CAAC,SAAS;AAAA,UACjB,IAAI,QAAQ,IAAI,IAAI;AAAA,YAChB;AAAA,UACJ,QAAQ,IAAI,MAAM,eAAe,OAAO;AAAA,UACxC,IAAI,IAAI,UAAU,IAAI;AAAA,UACtB,IAAI,GAAG;AAAA,YACH,MAAM,MAAM,KAAK,KAAK,MAAc,iBAAS,MAAc,iBAAS;AAAA,YACpE,OAAQ,IAAG,OAAO,KAAM,OAAO,OAAO,UAAU,KAAK,KAAK,KAAK;AAAA,UACnE,EACK,SAAK,IAAI,YAAY,QAAQ,YAAiB,YAAS,YAAI,QAAQ,IAAI,GAAI;AAAA,YAC5E,OAAQ,IAAG,OAAO,KAAM,OAAO,IAAI,KAAK,KAAK;AAAA,UACjD,EACK;AAAA,YACD,MAAM,IAAI,WAAW,IAAI;AAAA;AAAA,UAE7B,QAAQ,IAAI,MAAM,eAAe,SAAS;AAAA,SAC7C;AAAA,MACL;AAAA,MACA,OAAO;AAAA;AAAA,EAEf;AAAA,EACQ,qBAAa;AAAA;;;;EC5IrB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,aAAa,cAAc,cAAc,kBAAkB,oBAAoB,mBAAmB,yBAAyB,qBAAqB,gBAAgB,eAAe,qBAAqB,oBAAoB,sBAAsB,cAAc,oBAAoB,cAAc,YAAS;AAAA,EAC/S,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,KAAK,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,OAAO;AAAA,IAAK,CAAC;AAAA,EAC/F,OAAO,eAAe,SAAS,OAAO,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,OAAO;AAAA,IAAO,CAAC;AAAA,EACnG,OAAO,eAAe,SAAS,aAAa,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,OAAO;AAAA,IAAa,CAAC;AAAA,EAC/G,OAAO,eAAe,SAAS,OAAO,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,OAAO;AAAA,IAAO,CAAC;AAAA,EACnG,OAAO,eAAe,SAAS,eAAe,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,OAAO;AAAA,IAAe,CAAC;AAAA,EACnH,OAAO,eAAe,SAAS,aAAa,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,OAAO;AAAA,IAAa,CAAC;AAAA,EAC/G,OAAO,eAAe,SAAS,cAAc,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,OAAO;AAAA,IAAc,CAAC;AAAA,EACjH,OAAO,eAAe,SAAS,QAAQ,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,OAAO;AAAA,IAAQ,CAAC;AAAA,EACrG,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,SAAS,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,QAAQ;AAAA,IAAS,CAAC;AAAA,EACxG,OAAO,eAAe,SAAS,cAAc,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,QAAQ;AAAA,IAAc,CAAC;AAAA,EAClH,OAAO,eAAe,SAAS,kBAAkB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,QAAQ;AAAA,IAAkB,CAAC;AAAA,EAC1H,OAAO,eAAe,SAAS,YAAY,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,QAAQ;AAAA,IAAY,CAAC;AAAA,EACtG,oBAAY;AAAA,IAChB,IAAI,IAAI,OAAO,MAAM,GAAG;AAAA,IACxB,KAAK,IAAI,OAAO,MAAM,IAAI;AAAA,IAC1B,IAAI,IAAI,OAAO,MAAM,GAAG;AAAA,IACxB,KAAK,IAAI,OAAO,MAAM,IAAI;AAAA,IAC1B,IAAI,IAAI,OAAO,MAAM,KAAK;AAAA,IAC1B,KAAK,IAAI,OAAO,MAAM,KAAK;AAAA,IAC3B,KAAK,IAAI,OAAO,MAAM,GAAG;AAAA,IACzB,IAAI,IAAI,OAAO,MAAM,IAAI;AAAA,IACzB,KAAK,IAAI,OAAO,MAAM,IAAI;AAAA,IAC1B,KAAK,IAAI,OAAO,MAAM,GAAG;AAAA,EAC7B;AAAA;AAAA,EACA,MAAM,KAAK;AAAA,IACP,aAAa,GAAG;AAAA,MACZ,OAAO;AAAA;AAAA,IAEX,aAAa,CAAC,QAAQ,YAAY;AAAA,MAC9B,OAAO;AAAA;AAAA,EAEf;AAAA;AAAA,EACA,MAAM,YAAY,KAAK;AAAA,IACnB,WAAW,CAAC,SAAS,MAAM,KAAK;AAAA,MAC5B,MAAM;AAAA,MACN,KAAK,UAAU;AAAA,MACf,KAAK,OAAO;AAAA,MACZ,KAAK,MAAM;AAAA;AAAA,IAEf,MAAM,GAAG,KAAK,MAAM;AAAA,MAChB,MAAM,UAAU,MAAM,QAAQ,SAAS,MAAM,KAAK;AAAA,MAClD,MAAM,MAAM,KAAK,QAAQ,YAAY,KAAK,MAAM,KAAK;AAAA,MACrD,OAAO,GAAG,WAAW,KAAK,OAAO,SAAS;AAAA;AAAA,IAE9C,aAAa,CAAC,OAAO,WAAW;AAAA,MAC5B,IAAI,CAAC,MAAM,KAAK,KAAK;AAAA,QACjB;AAAA,MACJ,IAAI,KAAK;AAAA,QACL,KAAK,MAAM,aAAa,KAAK,KAAK,OAAO,SAAS;AAAA,MACtD,OAAO;AAAA;AAAA,QAEP,KAAK,GAAG;AAAA,MACR,OAAO,KAAK,eAAe,OAAO,cAAc,KAAK,IAAI,QAAQ,CAAC;AAAA;AAAA,EAE1E;AAAA;AAAA,EACA,MAAM,eAAe,KAAK;AAAA,IACtB,WAAW,CAAC,KAAK,KAAK,aAAa;AAAA,MAC/B,MAAM;AAAA,MACN,KAAK,MAAM;AAAA,MACX,KAAK,MAAM;AAAA,MACX,KAAK,cAAc;AAAA;AAAA,IAEvB,MAAM,GAAG,MAAM;AAAA,MACX,OAAO,GAAG,KAAK,SAAS,KAAK,SAAS;AAAA;AAAA,IAE1C,aAAa,CAAC,OAAO,WAAW;AAAA,MAC5B,IAAI,KAAK,eAAe,OAAO,QAAQ,CAAC,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK;AAAA,QACjE;AAAA,MACJ,KAAK,MAAM,aAAa,KAAK,KAAK,OAAO,SAAS;AAAA,MAClD,OAAO;AAAA;AAAA,QAEP,KAAK,GAAG;AAAA,MACR,MAAM,QAAQ,KAAK,eAAe,OAAO,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM;AAAA,MACzE,OAAO,aAAa,OAAO,KAAK,GAAG;AAAA;AAAA,EAE3C;AAAA;AAAA,EACA,MAAM,iBAAiB,OAAO;AAAA,IAC1B,WAAW,CAAC,KAAK,IAAI,KAAK,aAAa;AAAA,MACnC,MAAM,KAAK,KAAK,WAAW;AAAA,MAC3B,KAAK,KAAK;AAAA;AAAA,IAEd,MAAM,GAAG,MAAM;AAAA,MACX,OAAO,GAAG,KAAK,OAAO,KAAK,OAAO,KAAK,SAAS;AAAA;AAAA,EAExD;AAAA;AAAA,EACA,MAAM,cAAc,KAAK;AAAA,IACrB,WAAW,CAAC,OAAO;AAAA,MACf,MAAM;AAAA,MACN,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ,CAAC;AAAA;AAAA,IAElB,MAAM,GAAG,MAAM;AAAA,MACX,OAAO,GAAG,KAAK,WAAW;AAAA;AAAA,EAElC;AAAA;AAAA,EACA,MAAM,cAAc,KAAK;AAAA,IACrB,WAAW,CAAC,OAAO;AAAA,MACf,MAAM;AAAA,MACN,KAAK,QAAQ;AAAA,MACb,KAAK,QAAQ,CAAC;AAAA;AAAA,IAElB,MAAM,GAAG,MAAM;AAAA,MACX,MAAM,QAAQ,KAAK,QAAQ,IAAI,KAAK,UAAU;AAAA,MAC9C,OAAO,QAAQ,WAAW;AAAA;AAAA,EAElC;AAAA;AAAA,EACA,MAAM,cAAc,KAAK;AAAA,IACrB,WAAW,CAAC,OAAO;AAAA,MACf,MAAM;AAAA,MACN,KAAK,QAAQ;AAAA;AAAA,IAEjB,MAAM,GAAG,MAAM;AAAA,MACX,OAAO,SAAS,KAAK,WAAW;AAAA;AAAA,QAEhC,KAAK,GAAG;AAAA,MACR,OAAO,KAAK,MAAM;AAAA;AAAA,EAE1B;AAAA;AAAA,EACA,MAAM,gBAAgB,KAAK;AAAA,IACvB,WAAW,CAAC,MAAM;AAAA,MACd,MAAM;AAAA,MACN,KAAK,OAAO;AAAA;AAAA,IAEhB,MAAM,GAAG,MAAM;AAAA,MACX,OAAO,GAAG,KAAK,UAAU;AAAA;AAAA,IAE7B,aAAa,GAAG;AAAA,MACZ,OAAO,GAAG,KAAK,SAAS,OAAO;AAAA;AAAA,IAEnC,aAAa,CAAC,OAAO,WAAW;AAAA,MAC5B,KAAK,OAAO,aAAa,KAAK,MAAM,OAAO,SAAS;AAAA,MACpD,OAAO;AAAA;AAAA,QAEP,KAAK,GAAG;AAAA,MACR,OAAO,KAAK,gBAAgB,OAAO,cAAc,KAAK,KAAK,QAAQ,CAAC;AAAA;AAAA,EAE5E;AAAA;AAAA,EACA,MAAM,mBAAmB,KAAK;AAAA,IAC1B,WAAW,CAAC,QAAQ,CAAC,GAAG;AAAA,MACpB,MAAM;AAAA,MACN,KAAK,QAAQ;AAAA;AAAA,IAEjB,MAAM,CAAC,MAAM;AAAA,MACT,OAAO,KAAK,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE;AAAA;AAAA,IAEnE,aAAa,GAAG;AAAA,MACZ,QAAQ,UAAU;AAAA,MAClB,IAAI,IAAI,MAAM;AAAA,MACd,OAAO,KAAK;AAAA,QACR,MAAM,IAAI,MAAM,GAAG,cAAc;AAAA,QACjC,IAAI,MAAM,QAAQ,CAAC;AAAA,UACf,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC;AAAA,QACtB,SAAI;AAAA,UACL,MAAM,KAAK;AAAA,QAEX;AAAA,gBAAM,OAAO,GAAG,CAAC;AAAA,MACzB;AAAA,MACA,OAAO,MAAM,SAAS,IAAI,OAAO;AAAA;AAAA,IAErC,aAAa,CAAC,OAAO,WAAW;AAAA,MAC5B,QAAQ,UAAU;AAAA,MAClB,IAAI,IAAI,MAAM;AAAA,MACd,OAAO,KAAK;AAAA,QAER,MAAM,IAAI,MAAM;AAAA,QAChB,IAAI,EAAE,cAAc,OAAO,SAAS;AAAA,UAChC;AAAA,QACJ,cAAc,OAAO,EAAE,KAAK;AAAA,QAC5B,MAAM,OAAO,GAAG,CAAC;AAAA,MACrB;AAAA,MACA,OAAO,MAAM,SAAS,IAAI,OAAO;AAAA;AAAA,QAEjC,KAAK,GAAG;AAAA,MACR,OAAO,KAAK,MAAM,OAAO,CAAC,OAAO,MAAM,SAAS,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA;AAAA,EAE3E;AAAA;AAAA,EACA,MAAM,kBAAkB,WAAW;AAAA,IAC/B,MAAM,CAAC,MAAM;AAAA,MACT,OAAO,MAAM,KAAK,KAAK,MAAM,OAAO,IAAI,IAAI,MAAM,KAAK;AAAA;AAAA,EAE/D;AAAA;AAAA,EACA,MAAM,aAAa,WAAW;AAAA,EAC9B;AAAA;AAAA,EACA,MAAM,aAAa,UAAU;AAAA,EAC7B;AAAA,EACA,KAAK,OAAO;AAAA;AAAA,EACZ,MAAM,WAAW,UAAU;AAAA,IACvB,WAAW,CAAC,WAAW,OAAO;AAAA,MAC1B,MAAM,KAAK;AAAA,MACX,KAAK,YAAY;AAAA;AAAA,IAErB,MAAM,CAAC,MAAM;AAAA,MACT,IAAI,OAAO,MAAM,KAAK,eAAe,MAAM,OAAO,IAAI;AAAA,MACtD,IAAI,KAAK;AAAA,QACL,QAAQ,UAAU,KAAK,KAAK,OAAO,IAAI;AAAA,MAC3C,OAAO;AAAA;AAAA,IAEX,aAAa,GAAG;AAAA,MACZ,MAAM,cAAc;AAAA,MACpB,MAAM,OAAO,KAAK;AAAA,MAClB,IAAI,SAAS;AAAA,QACT,OAAO,KAAK;AAAA,MAChB,IAAI,IAAI,KAAK;AAAA,MACb,IAAI,GAAG;AAAA,QACH,MAAM,KAAK,EAAE,cAAc;AAAA,QAC3B,IAAI,KAAK,OAAO,MAAM,QAAQ,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI;AAAA,MACvD;AAAA,MACA,IAAI,GAAG;AAAA,QACH,IAAI,SAAS;AAAA,UACT,OAAO,aAAa,KAAK,IAAI,EAAE;AAAA,QACnC,IAAI,KAAK,MAAM;AAAA,UACX,OAAO;AAAA,QACX,OAAO,IAAI,GAAG,IAAI,IAAI,GAAG,aAAa,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK;AAAA,MAC5D;AAAA,MACA,IAAI,SAAS,SAAS,CAAC,KAAK,MAAM;AAAA,QAC9B;AAAA,MACJ,OAAO;AAAA;AAAA,IAEX,aAAa,CAAC,OAAO,WAAW;AAAA,MAC5B,IAAI;AAAA,MACJ,KAAK,QAAQ,KAAK,KAAK,UAAU,QAAQ,OAAY,YAAS,YAAI,GAAG,cAAc,OAAO,SAAS;AAAA,MACnG,IAAI,EAAE,MAAM,cAAc,OAAO,SAAS,KAAK,KAAK;AAAA,QAChD;AAAA,MACJ,KAAK,YAAY,aAAa,KAAK,WAAW,OAAO,SAAS;AAAA,MAC9D,OAAO;AAAA;AAAA,QAEP,KAAK,GAAG;AAAA,MACR,MAAM,QAAQ,MAAM;AAAA,MACpB,aAAa,OAAO,KAAK,SAAS;AAAA,MAClC,IAAI,KAAK;AAAA,QACL,SAAS,OAAO,KAAK,KAAK,KAAK;AAAA,MACnC,OAAO;AAAA;AAAA,EAEf;AAAA,EACA,GAAG,OAAO;AAAA;AAAA,EACV,MAAM,YAAY,UAAU;AAAA,EAC5B;AAAA,EACA,IAAI,OAAO;AAAA;AAAA,EACX,MAAM,gBAAgB,IAAI;AAAA,IACtB,WAAW,CAAC,WAAW;AAAA,MACnB,MAAM;AAAA,MACN,KAAK,YAAY;AAAA;AAAA,IAErB,MAAM,CAAC,MAAM;AAAA,MACT,OAAO,OAAO,KAAK,eAAe,MAAM,OAAO,IAAI;AAAA;AAAA,IAEvD,aAAa,CAAC,OAAO,WAAW;AAAA,MAC5B,IAAI,CAAC,MAAM,cAAc,OAAO,SAAS;AAAA,QACrC;AAAA,MACJ,KAAK,YAAY,aAAa,KAAK,WAAW,OAAO,SAAS;AAAA,MAC9D,OAAO;AAAA;AAAA,QAEP,KAAK,GAAG;AAAA,MACR,OAAO,SAAS,MAAM,OAAO,KAAK,UAAU,KAAK;AAAA;AAAA,EAEzD;AAAA;AAAA,EACA,MAAM,iBAAiB,IAAI;AAAA,IACvB,WAAW,CAAC,SAAS,MAAM,MAAM,IAAI;AAAA,MACjC,MAAM;AAAA,MACN,KAAK,UAAU;AAAA,MACf,KAAK,OAAO;AAAA,MACZ,KAAK,OAAO;AAAA,MACZ,KAAK,KAAK;AAAA;AAAA,IAEd,MAAM,CAAC,MAAM;AAAA,MACT,MAAM,UAAU,KAAK,MAAM,QAAQ,SAAS,MAAM,KAAK;AAAA,MACvD,QAAQ,MAAM,MAAM,OAAO;AAAA,MAC3B,OAAO,OAAO,WAAW,QAAQ,SAAS,QAAQ,OAAO,YAAY,MAAM,OAAO,IAAI;AAAA;AAAA,QAEtF,KAAK,GAAG;AAAA,MACR,MAAM,QAAQ,aAAa,MAAM,OAAO,KAAK,IAAI;AAAA,MACjD,OAAO,aAAa,OAAO,KAAK,EAAE;AAAA;AAAA,EAE1C;AAAA;AAAA,EACA,MAAM,gBAAgB,IAAI;AAAA,IACtB,WAAW,CAAC,MAAM,SAAS,MAAM,UAAU;AAAA,MACvC,MAAM;AAAA,MACN,KAAK,OAAO;AAAA,MACZ,KAAK,UAAU;AAAA,MACf,KAAK,OAAO;AAAA,MACZ,KAAK,WAAW;AAAA;AAAA,IAEpB,MAAM,CAAC,MAAM;AAAA,MACT,OAAO,OAAO,KAAK,WAAW,KAAK,QAAQ,KAAK,QAAQ,KAAK,cAAc,MAAM,OAAO,IAAI;AAAA;AAAA,IAEhG,aAAa,CAAC,OAAO,WAAW;AAAA,MAC5B,IAAI,CAAC,MAAM,cAAc,OAAO,SAAS;AAAA,QACrC;AAAA,MACJ,KAAK,WAAW,aAAa,KAAK,UAAU,OAAO,SAAS;AAAA,MAC5D,OAAO;AAAA;AAAA,QAEP,KAAK,GAAG;AAAA,MACR,OAAO,SAAS,MAAM,OAAO,KAAK,SAAS,KAAK;AAAA;AAAA,EAExD;AAAA;AAAA,EACA,MAAM,aAAa,UAAU;AAAA,IACzB,WAAW,CAAC,MAAM,MAAM,OAAO;AAAA,MAC3B,MAAM;AAAA,MACN,KAAK,OAAO;AAAA,MACZ,KAAK,OAAO;AAAA,MACZ,KAAK,QAAQ;AAAA;AAAA,IAEjB,MAAM,CAAC,MAAM;AAAA,MACT,MAAM,SAAS,KAAK,QAAQ,WAAW;AAAA,MACvC,OAAO,GAAG,kBAAkB,KAAK,QAAQ,KAAK,UAAU,MAAM,OAAO,IAAI;AAAA;AAAA,EAEjF;AAAA,EACA,KAAK,OAAO;AAAA;AAAA,EACZ,MAAM,eAAe,WAAW;AAAA,IAC5B,MAAM,CAAC,MAAM;AAAA,MACT,OAAO,YAAY,MAAM,OAAO,IAAI;AAAA;AAAA,EAE5C;AAAA,EACA,OAAO,OAAO;AAAA;AAAA,EACd,MAAM,YAAY,UAAU;AAAA,IACxB,MAAM,CAAC,MAAM;AAAA,MACT,IAAI,OAAO,QAAQ,MAAM,OAAO,IAAI;AAAA,MACpC,IAAI,KAAK;AAAA,QACL,QAAQ,KAAK,MAAM,OAAO,IAAI;AAAA,MAClC,IAAI,KAAK;AAAA,QACL,QAAQ,KAAK,QAAQ,OAAO,IAAI;AAAA,MACpC,OAAO;AAAA;AAAA,IAEX,aAAa,GAAG;AAAA,MACZ,IAAI,IAAI;AAAA,MACR,MAAM,cAAc;AAAA,OACnB,KAAK,KAAK,WAAW,QAAQ,OAAY,aAAa,GAAG,cAAc;AAAA,OACvE,KAAK,KAAK,aAAa,QAAQ,OAAY,aAAa,GAAG,cAAc;AAAA,MAC1E,OAAO;AAAA;AAAA,IAEX,aAAa,CAAC,OAAO,WAAW;AAAA,MAC5B,IAAI,IAAI;AAAA,MACR,MAAM,cAAc,OAAO,SAAS;AAAA,OACnC,KAAK,KAAK,WAAW,QAAQ,OAAY,aAAa,GAAG,cAAc,OAAO,SAAS;AAAA,OACvF,KAAK,KAAK,aAAa,QAAQ,OAAY,aAAa,GAAG,cAAc,OAAO,SAAS;AAAA,MAC1F,OAAO;AAAA;AAAA,QAEP,KAAK,GAAG;AAAA,MACR,MAAM,QAAQ,MAAM;AAAA,MACpB,IAAI,KAAK;AAAA,QACL,SAAS,OAAO,KAAK,MAAM,KAAK;AAAA,MACpC,IAAI,KAAK;AAAA,QACL,SAAS,OAAO,KAAK,QAAQ,KAAK;AAAA,MACtC,OAAO;AAAA;AAAA,EAEf;AAAA;AAAA,EACA,MAAM,cAAc,UAAU;AAAA,IAC1B,WAAW,CAAC,OAAO;AAAA,MACf,MAAM;AAAA,MACN,KAAK,QAAQ;AAAA;AAAA,IAEjB,MAAM,CAAC,MAAM;AAAA,MACT,OAAO,SAAS,KAAK,WAAW,MAAM,OAAO,IAAI;AAAA;AAAA,EAEzD;AAAA,EACA,MAAM,OAAO;AAAA;AAAA,EACb,MAAM,gBAAgB,UAAU;AAAA,IAC5B,MAAM,CAAC,MAAM;AAAA,MACT,OAAO,YAAY,MAAM,OAAO,IAAI;AAAA;AAAA,EAE5C;AAAA,EACA,QAAQ,OAAO;AAAA;AAAA,EACf,MAAM,QAAQ;AAAA,IACV,WAAW,CAAC,UAAU,OAAO,CAAC,GAAG;AAAA,MAC7B,KAAK,UAAU,CAAC;AAAA,MAChB,KAAK,eAAe,CAAC;AAAA,MACrB,KAAK,aAAa,CAAC;AAAA,MACnB,KAAK,OAAO,KAAK,MAAM,IAAI,KAAK,QAAQ;AAAA,IAAO,GAAG;AAAA,MAClD,KAAK,YAAY;AAAA,MACjB,KAAK,SAAS,IAAI,QAAQ,MAAM,EAAE,QAAQ,SAAS,CAAC;AAAA,MACpD,KAAK,SAAS,CAAC,IAAI,IAAM;AAAA;AAAA,IAE7B,QAAQ,GAAG;AAAA,MACP,OAAO,KAAK,MAAM,OAAO,KAAK,IAAI;AAAA;AAAA,IAGtC,IAAI,CAAC,QAAQ;AAAA,MACT,OAAO,KAAK,OAAO,KAAK,MAAM;AAAA;AAAA,IAGlC,SAAS,CAAC,QAAQ;AAAA,MACd,OAAO,KAAK,UAAU,KAAK,MAAM;AAAA;AAAA,IAGrC,UAAU,CAAC,cAAc,OAAO;AAAA,MAC5B,MAAM,OAAO,KAAK,UAAU,MAAM,cAAc,KAAK;AAAA,MACrD,MAAM,KAAK,KAAK,QAAQ,KAAK,YAAY,KAAK,QAAQ,KAAK,UAAU,IAAI;AAAA,MACzE,GAAG,IAAI,IAAI;AAAA,MACX,OAAO;AAAA;AAAA,IAEX,aAAa,CAAC,QAAQ,UAAU;AAAA,MAC5B,OAAO,KAAK,UAAU,SAAS,QAAQ,QAAQ;AAAA;AAAA,IAInD,SAAS,CAAC,WAAW;AAAA,MACjB,OAAO,KAAK,UAAU,UAAU,WAAW,KAAK,OAAO;AAAA;AAAA,IAE3D,SAAS,GAAG;AAAA,MACR,OAAO,KAAK,UAAU,UAAU,KAAK,OAAO;AAAA;AAAA,IAEhD,IAAI,CAAC,SAAS,cAAc,KAAK,UAAU;AAAA,MACvC,MAAM,OAAO,KAAK,OAAO,OAAO,YAAY;AAAA,MAC5C,IAAI,QAAQ,aAAa;AAAA,QACrB,KAAK,WAAW,KAAK,OAAO;AAAA,MAChC,KAAK,UAAU,IAAI,IAAI,SAAS,MAAM,GAAG,CAAC;AAAA,MAC1C,OAAO;AAAA;AAAA,IAGX,KAAK,CAAC,cAAc,KAAK,WAAW;AAAA,MAChC,OAAO,KAAK,KAAK,QAAQ,SAAS,OAAO,cAAc,KAAK,SAAS;AAAA;AAAA,IAGzE,GAAG,CAAC,cAAc,KAAK,WAAW;AAAA,MAC9B,OAAO,KAAK,KAAK,QAAQ,SAAS,KAAK,cAAc,KAAK,SAAS;AAAA;AAAA,IAGvE,GAAG,CAAC,cAAc,KAAK,WAAW;AAAA,MAC9B,OAAO,KAAK,KAAK,QAAQ,SAAS,KAAK,cAAc,KAAK,SAAS;AAAA;AAAA,IAGvE,MAAM,CAAC,KAAK,KAAK,aAAa;AAAA,MAC1B,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;AAAA;AAAA,IAG3D,GAAG,CAAC,KAAK,KAAK;AAAA,MACV,OAAO,KAAK,UAAU,IAAI,SAAS,KAAa,kBAAU,KAAK,GAAG,CAAC;AAAA;AAAA,IAGvE,IAAI,CAAC,GAAG;AAAA,MACJ,IAAI,OAAO,KAAK;AAAA,QACZ,EAAE;AAAA,MACD,SAAI,MAAM,OAAO;AAAA,QAClB,KAAK,UAAU,IAAI,QAAQ,CAAC,CAAC;AAAA,MACjC,OAAO;AAAA;AAAA,IAGX,MAAM,IAAI,WAAW;AAAA,MACjB,MAAM,OAAO,CAAC,GAAG;AAAA,MACjB,YAAY,KAAK,UAAU,WAAW;AAAA,QAClC,IAAI,KAAK,SAAS;AAAA,UACd,KAAK,KAAK,GAAG;AAAA,QACjB,KAAK,KAAK,GAAG;AAAA,QACb,IAAI,QAAQ,SAAS,KAAK,KAAK,KAAK;AAAA,UAChC,KAAK,KAAK,GAAG;AAAA,WACZ,GAAG,OAAO,YAAY,MAAM,KAAK;AAAA,QACtC;AAAA,MACJ;AAAA,MACA,KAAK,KAAK,GAAG;AAAA,MACb,OAAO,IAAI,OAAO,MAAM,IAAI;AAAA;AAAA,IAGhC,EAAE,CAAC,WAAW,UAAU,UAAU;AAAA,MAC9B,KAAK,WAAW,IAAI,GAAG,SAAS,CAAC;AAAA,MACjC,IAAI,YAAY,UAAU;AAAA,QACtB,KAAK,KAAK,QAAQ,EAAE,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM;AAAA,MACpD,EACK,SAAI,UAAU;AAAA,QACf,KAAK,KAAK,QAAQ,EAAE,MAAM;AAAA,MAC9B,EACK,SAAI,UAAU;AAAA,QACf,MAAM,IAAI,MAAM,0CAA0C;AAAA,MAC9D;AAAA,MACA,OAAO;AAAA;AAAA,IAGX,MAAM,CAAC,WAAW;AAAA,MACd,OAAO,KAAK,UAAU,IAAI,GAAG,SAAS,CAAC;AAAA;AAAA,IAG3C,IAAI,GAAG;AAAA,MACH,OAAO,KAAK,UAAU,IAAI,IAAM;AAAA;AAAA,IAGpC,KAAK,GAAG;AAAA,MACJ,OAAO,KAAK,cAAc,IAAI,IAAI;AAAA;AAAA,IAEtC,IAAI,CAAC,MAAM,SAAS;AAAA,MAChB,KAAK,WAAW,IAAI;AAAA,MACpB,IAAI;AAAA,QACA,KAAK,KAAK,OAAO,EAAE,OAAO;AAAA,MAC9B,OAAO;AAAA;AAAA,IAGX,GAAG,CAAC,WAAW,SAAS;AAAA,MACpB,OAAO,KAAK,KAAK,IAAI,QAAQ,SAAS,GAAG,OAAO;AAAA;AAAA,IAGpD,QAAQ,CAAC,cAAc,MAAM,IAAI,SAAS,UAAU,KAAK,KAAK,MAAM,QAAQ,SAAS,MAAM,QAAQ,SAAS,KAAK;AAAA,MAC7G,MAAM,OAAO,KAAK,OAAO,OAAO,YAAY;AAAA,MAC5C,OAAO,KAAK,KAAK,IAAI,SAAS,SAAS,MAAM,MAAM,EAAE,GAAG,MAAM,QAAQ,IAAI,CAAC;AAAA;AAAA,IAG/E,KAAK,CAAC,cAAc,UAAU,SAAS,UAAU,QAAQ,SAAS,OAAO;AAAA,MACrE,MAAM,OAAO,KAAK,OAAO,OAAO,YAAY;AAAA,MAC5C,IAAI,KAAK,KAAK,KAAK;AAAA,QACf,MAAM,MAAM,oBAAoB,OAAO,OAAO,WAAW,KAAK,IAAI,QAAQ,QAAQ;AAAA,QAClF,OAAO,KAAK,SAAS,MAAM,GAAI,IAAG,OAAO,KAAM,cAAc,CAAC,MAAM;AAAA,UAChE,KAAK,IAAI,MAAO,IAAG,OAAO,KAAM,OAAO,IAAI;AAAA,UAC3C,QAAQ,IAAI;AAAA,SACf;AAAA,MACL;AAAA,MACA,OAAO,KAAK,KAAK,IAAI,QAAQ,MAAM,SAAS,MAAM,QAAQ,GAAG,MAAM,QAAQ,IAAI,CAAC;AAAA;AAAA,IAIpF,KAAK,CAAC,cAAc,KAAK,SAAS,UAAU,KAAK,KAAK,MAAM,QAAQ,SAAS,MAAM,QAAQ,SAAS,OAAO;AAAA,MACvG,IAAI,KAAK,KAAK,eAAe;AAAA,QACzB,OAAO,KAAK,MAAM,cAAe,IAAG,OAAO,iBAAkB,QAAQ,OAAO;AAAA,MAChF;AAAA,MACA,MAAM,OAAO,KAAK,OAAO,OAAO,YAAY;AAAA,MAC5C,OAAO,KAAK,KAAK,IAAI,QAAQ,MAAM,SAAS,MAAM,GAAG,GAAG,MAAM,QAAQ,IAAI,CAAC;AAAA;AAAA,IAG/E,MAAM,GAAG;AAAA,MACL,OAAO,KAAK,cAAc,GAAG;AAAA;AAAA,IAGjC,KAAK,CAAC,OAAO;AAAA,MACT,OAAO,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC;AAAA;AAAA,IAG1C,KAAK,CAAC,OAAO;AAAA,MACT,OAAO,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC;AAAA;AAAA,IAG1C,MAAM,CAAC,OAAO;AAAA,MACV,MAAM,OAAO,IAAI;AAAA,MACjB,KAAK,WAAW,IAAI;AAAA,MACpB,KAAK,KAAK,KAAK;AAAA,MACf,IAAI,KAAK,MAAM,WAAW;AAAA,QACtB,MAAM,IAAI,MAAM,wCAAwC;AAAA,MAC5D,OAAO,KAAK,cAAc,MAAM;AAAA;AAAA,IAGpC,GAAG,CAAC,SAAS,WAAW,aAAa;AAAA,MACjC,IAAI,CAAC,aAAa,CAAC;AAAA,QACf,MAAM,IAAI,MAAM,8CAA8C;AAAA,MAClE,MAAM,OAAO,IAAI;AAAA,MACjB,KAAK,WAAW,IAAI;AAAA,MACpB,KAAK,KAAK,OAAO;AAAA,MACjB,IAAI,WAAW;AAAA,QACX,MAAM,QAAQ,KAAK,KAAK,GAAG;AAAA,QAC3B,KAAK,YAAY,KAAK,QAAQ,IAAI,MAAM,KAAK;AAAA,QAC7C,UAAU,KAAK;AAAA,MACnB;AAAA,MACA,IAAI,aAAa;AAAA,QACb,KAAK,YAAY,KAAK,UAAU,IAAI;AAAA,QACpC,KAAK,KAAK,WAAW;AAAA,MACzB;AAAA,MACA,OAAO,KAAK,cAAc,OAAO,OAAO;AAAA;AAAA,IAG5C,KAAK,CAAC,OAAO;AAAA,MACT,OAAO,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC;AAAA;AAAA,IAG1C,KAAK,CAAC,MAAM,WAAW;AAAA,MACnB,KAAK,aAAa,KAAK,KAAK,OAAO,MAAM;AAAA,MACzC,IAAI;AAAA,QACA,KAAK,KAAK,IAAI,EAAE,SAAS,SAAS;AAAA,MACtC,OAAO;AAAA;AAAA,IAGX,QAAQ,CAAC,WAAW;AAAA,MAChB,MAAM,MAAM,KAAK,aAAa,IAAI;AAAA,MAClC,IAAI,QAAQ;AAAA,QACR,MAAM,IAAI,MAAM,sCAAsC;AAAA,MAC1D,MAAM,UAAU,KAAK,OAAO,SAAS;AAAA,MACrC,IAAI,UAAU,KAAM,cAAc,aAAa,YAAY,WAAY;AAAA,QACnE,MAAM,IAAI,MAAM,mCAAmC,cAAc,oBAAoB;AAAA,MACzF;AAAA,MACA,KAAK,OAAO,SAAS;AAAA,MACrB,OAAO;AAAA;AAAA,IAGX,IAAI,CAAC,MAAM,OAAO,OAAO,KAAK,OAAO,UAAU;AAAA,MAC3C,KAAK,WAAW,IAAI,KAAK,MAAM,MAAM,KAAK,CAAC;AAAA,MAC3C,IAAI;AAAA,QACA,KAAK,KAAK,QAAQ,EAAE,QAAQ;AAAA,MAChC,OAAO;AAAA;AAAA,IAGX,OAAO,GAAG;AAAA,MACN,OAAO,KAAK,cAAc,IAAI;AAAA;AAAA,IAElC,QAAQ,CAAC,IAAI,GAAG;AAAA,MACZ,OAAO,MAAM,GAAG;AAAA,QACZ,KAAK,MAAM,cAAc;AAAA,QACzB,KAAK,MAAM,cAAc,KAAK,MAAM,OAAO,KAAK,UAAU;AAAA,MAC9D;AAAA;AAAA,IAEJ,SAAS,CAAC,MAAM;AAAA,MACZ,KAAK,UAAU,MAAM,KAAK,IAAI;AAAA,MAC9B,OAAO;AAAA;AAAA,IAEX,UAAU,CAAC,MAAM;AAAA,MACb,KAAK,UAAU,MAAM,KAAK,IAAI;AAAA,MAC9B,KAAK,OAAO,KAAK,IAAI;AAAA;AAAA,IAEzB,aAAa,CAAC,IAAI,IAAI;AAAA,MAClB,MAAM,IAAI,KAAK;AAAA,MACf,IAAI,aAAa,MAAO,MAAM,aAAa,IAAK;AAAA,QAC5C,KAAK,OAAO,IAAI;AAAA,QAChB,OAAO;AAAA,MACX;AAAA,MACA,MAAM,IAAI,MAAM,0BAA0B,KAAK,GAAG,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO;AAAA;AAAA,IAEvF,SAAS,CAAC,MAAM;AAAA,MACZ,MAAM,IAAI,KAAK;AAAA,MACf,IAAI,EAAE,aAAa,KAAK;AAAA,QACpB,MAAM,IAAI,MAAM,8BAA8B;AAAA,MAClD;AAAA,MACA,KAAK,YAAY,EAAE,OAAO;AAAA,MAC1B,OAAO;AAAA;AAAA,QAEP,KAAK,GAAG;AAAA,MACR,OAAO,KAAK,OAAO;AAAA;AAAA,QAEnB,SAAS,GAAG;AAAA,MACZ,MAAM,KAAK,KAAK;AAAA,MAChB,OAAO,GAAG,GAAG,SAAS;AAAA;AAAA,QAEtB,SAAS,CAAC,MAAM;AAAA,MAChB,MAAM,KAAK,KAAK;AAAA,MAChB,GAAG,GAAG,SAAS,KAAK;AAAA;AAAA,EAE5B;AAAA,EACQ,kBAAU;AAAA,EAClB,SAAS,QAAQ,CAAC,OAAO,MAAM;AAAA,IAC3B,WAAW,KAAK;AAAA,MACZ,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM;AAAA,IAC7C,OAAO;AAAA;AAAA,EAEX,SAAS,YAAY,CAAC,OAAO,MAAM;AAAA,IAC/B,OAAO,gBAAgB,OAAO,cAAc,SAAS,OAAO,KAAK,KAAK,IAAI;AAAA;AAAA,EAE9E,SAAS,YAAY,CAAC,MAAM,OAAO,WAAW;AAAA,IAC1C,IAAI,gBAAgB,OAAO;AAAA,MACvB,OAAO,YAAY,IAAI;AAAA,IAC3B,IAAI,CAAC,YAAY,IAAI;AAAA,MACjB,OAAO;AAAA,IACX,OAAO,IAAI,OAAO,MAAM,KAAK,OAAO,OAAO,CAAC,OAAO,MAAM;AAAA,MACrD,IAAI,aAAa,OAAO;AAAA,QACpB,IAAI,YAAY,CAAC;AAAA,MACrB,IAAI,aAAa,OAAO;AAAA,QACpB,MAAM,KAAK,GAAG,EAAE,MAAM;AAAA,MAEtB;AAAA,cAAM,KAAK,CAAC;AAAA,MAChB,OAAO;AAAA,OACR,CAAC,CAAC,CAAC;AAAA,IACN,SAAS,WAAW,CAAC,GAAG;AAAA,MACpB,MAAM,IAAI,UAAU,EAAE;AAAA,MACtB,IAAI,MAAM,aAAa,MAAM,EAAE,SAAS;AAAA,QACpC,OAAO;AAAA,MACX,OAAO,MAAM,EAAE;AAAA,MACf,OAAO;AAAA;AAAA,IAEX,SAAS,WAAW,CAAC,GAAG;AAAA,MACpB,OAAQ,aAAa,OAAO,SACxB,EAAE,OAAO,KAAK,CAAC,MAAM,aAAa,OAAO,QAAQ,MAAM,EAAE,SAAS,KAAK,UAAU,EAAE,SAAS,SAAS;AAAA;AAAA;AAAA,EAGjH,SAAS,aAAa,CAAC,OAAO,MAAM;AAAA,IAChC,WAAW,KAAK;AAAA,MACZ,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM;AAAA;AAAA,EAEjD,SAAS,GAAG,CAAC,GAAG;AAAA,IACZ,OAAO,OAAO,KAAK,aAAa,OAAO,KAAK,YAAY,MAAM,OAAO,CAAC,IAAK,IAAG,OAAO,MAAO,IAAI,CAAC;AAAA;AAAA,EAE7F,cAAM;AAAA,EACd,IAAM,UAAU,QAAgB,kBAAU,GAAG;AAAA,EAE7C,SAAS,GAAG,IAAI,MAAM;AAAA,IAClB,OAAO,KAAK,OAAO,OAAO;AAAA;AAAA,EAEtB,cAAM;AAAA,EACd,IAAM,SAAS,QAAgB,kBAAU,EAAE;AAAA,EAE3C,SAAS,EAAE,IAAI,MAAM;AAAA,IACjB,OAAO,KAAK,OAAO,MAAM;AAAA;AAAA,EAErB,aAAK;AAAA,EACb,SAAS,OAAO,CAAC,IAAI;AAAA,IACjB,OAAO,CAAC,GAAG,MAAO,MAAM,OAAO,MAAM,IAAI,MAAM,OAAO,MAAM,IAAK,IAAG,OAAO,KAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC;AAAA;AAAA,EAE1G,SAAS,GAAG,CAAC,GAAG;AAAA,IACZ,OAAO,aAAa,OAAO,OAAO,IAAK,IAAG,OAAO,MAAO;AAAA;AAAA;;;;ECrrB5D,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,0BAA0B,uBAAuB,eAAe,kBAAkB,uBAAuB,+BAA+B,yBAAyB,mBAAmB,8BAA8B,4BAA4B,yBAAyB,2BAA2B,yBAAyB,+BAA+B,yBAAyB,4BAA4B,4BAA4B,iBAAc;AAAA,EACjc,IAAM;AAAA,EACN,IAAM;AAAA,EAEN,SAAS,MAAM,CAAC,KAAK;AAAA,IACjB,MAAM,OAAO,CAAC;AAAA,IACd,WAAW,QAAQ;AAAA,MACf,KAAK,QAAQ;AAAA,IACjB,OAAO;AAAA;AAAA,EAEH,iBAAS;AAAA,EACjB,SAAS,iBAAiB,CAAC,IAAI,QAAQ;AAAA,IACnC,IAAI,OAAO,UAAU;AAAA,MACjB,OAAO;AAAA,IACX,IAAI,OAAO,KAAK,MAAM,EAAE,WAAW;AAAA,MAC/B,OAAO;AAAA,IACX,kBAAkB,IAAI,MAAM;AAAA,IAC5B,OAAO,CAAC,eAAe,QAAQ,GAAG,KAAK,MAAM,GAAG;AAAA;AAAA,EAE5C,4BAAoB;AAAA,EAC5B,SAAS,iBAAiB,CAAC,IAAI,SAAS,GAAG,QAAQ;AAAA,IAC/C,QAAQ,MAAM,SAAS;AAAA,IACvB,IAAI,CAAC,KAAK;AAAA,MACN;AAAA,IACJ,IAAI,OAAO,WAAW;AAAA,MAClB;AAAA,IACJ,MAAM,QAAQ,KAAK,MAAM;AAAA,IACzB,WAAW,OAAO,QAAQ;AAAA,MACtB,IAAI,CAAC,MAAM;AAAA,QACP,gBAAgB,IAAI,qBAAqB,MAAM;AAAA,IACvD;AAAA;AAAA,EAEI,4BAAoB;AAAA,EAC5B,SAAS,cAAc,CAAC,QAAQ,OAAO;AAAA,IACnC,IAAI,OAAO,UAAU;AAAA,MACjB,OAAO,CAAC;AAAA,IACZ,WAAW,OAAO;AAAA,MACd,IAAI,MAAM;AAAA,QACN,OAAO;AAAA,IACf,OAAO;AAAA;AAAA,EAEH,yBAAiB;AAAA,EACzB,SAAS,oBAAoB,CAAC,QAAQ,OAAO;AAAA,IACzC,IAAI,OAAO,UAAU;AAAA,MACjB,OAAO,CAAC;AAAA,IACZ,WAAW,OAAO;AAAA,MACd,IAAI,QAAQ,UAAU,MAAM,IAAI;AAAA,QAC5B,OAAO;AAAA,IACf,OAAO;AAAA;AAAA,EAEH,+BAAuB;AAAA,EAC/B,SAAS,cAAc,GAAG,cAAc,cAAc,QAAQ,SAAS,OAAO;AAAA,IAC1E,IAAI,CAAC,OAAO;AAAA,MACR,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU;AAAA,QAC9C,OAAO;AAAA,MACX,IAAI,OAAO,UAAU;AAAA,QACjB,OAAQ,IAAG,UAAU,KAAM;AAAA,IACnC;AAAA,IACA,OAAQ,IAAG,UAAU,KAAM,eAAe,cAAc,GAAG,UAAU,aAAa,OAAO;AAAA;AAAA,EAErF,yBAAiB;AAAA,EACzB,SAAS,gBAAgB,CAAC,KAAK;AAAA,IAC3B,OAAO,oBAAoB,mBAAmB,GAAG,CAAC;AAAA;AAAA,EAE9C,2BAAmB;AAAA,EAC3B,SAAS,cAAc,CAAC,KAAK;AAAA,IACzB,OAAO,mBAAmB,kBAAkB,GAAG,CAAC;AAAA;AAAA,EAE5C,yBAAiB;AAAA,EACzB,SAAS,iBAAiB,CAAC,KAAK;AAAA,IAC5B,IAAI,OAAO,OAAO;AAAA,MACd,OAAO,GAAG;AAAA,IACd,OAAO,IAAI,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI;AAAA;AAAA,EAE9C,4BAAoB;AAAA,EAC5B,SAAS,mBAAmB,CAAC,KAAK;AAAA,IAC9B,OAAO,IAAI,QAAQ,OAAO,GAAG,EAAE,QAAQ,OAAO,GAAG;AAAA;AAAA,EAE7C,8BAAsB;AAAA,EAC9B,SAAS,QAAQ,CAAC,IAAI,GAAG;AAAA,IACrB,IAAI,MAAM,QAAQ,EAAE,GAAG;AAAA,MACnB,WAAW,KAAK;AAAA,QACZ,EAAE,CAAC;AAAA,IACX,EACK;AAAA,MACD,EAAE,EAAE;AAAA;AAAA;AAAA,EAGJ,mBAAW;AAAA,EACnB,SAAS,kBAAkB,GAAG,YAAY,aAAa,aAAa,gBAAiB;AAAA,IACjF,OAAO,CAAC,KAAK,MAAM,IAAI,WAAW;AAAA,MAC9B,MAAM,MAAM,OAAO,YACb,OACA,cAAc,UAAU,QACnB,gBAAgB,UAAU,OAAO,WAAW,KAAK,MAAM,EAAE,IAAI,YAAY,KAAK,MAAM,EAAE,GAAG,MAC1F,gBAAgB,UAAU,QACrB,YAAY,KAAK,IAAI,IAAI,GAAG,QAC7B,YAAY,MAAM,EAAE;AAAA,MAClC,OAAO,WAAW,UAAU,QAAQ,EAAE,eAAe,UAAU,QAAQ,aAAa,KAAK,GAAG,IAAI;AAAA;AAAA;AAAA,EAGhG,yBAAiB;AAAA,IACrB,OAAO,mBAAmB;AAAA,MACtB,YAAY,CAAC,KAAK,MAAM,OAAO,IAAI,GAAI,IAAG,UAAU,KAAM,kBAAkB,sBAAsB,MAAM;AAAA,QACpG,IAAI,GAAI,IAAG,UAAU,KAAM,iBAAiB,MAAM,IAAI,OAAO,IAAI,IAAI,GAAG,MAAM,IAAI,OAAO,IAAK,IAAG,UAAU,KAAM,UAAU,EAAE,KAAM,IAAG,UAAU,mBAAoB,OAAO,OAAO,CAAC;AAAA,OACtL;AAAA,MACD,aAAa,CAAC,KAAK,MAAM,OAAO,IAAI,GAAI,IAAG,UAAU,KAAM,eAAe,MAAM;AAAA,QAC5E,IAAI,SAAS,MAAM;AAAA,UACf,IAAI,OAAO,IAAI,IAAI;AAAA,QACvB,EACK;AAAA,UACD,IAAI,OAAO,IAAK,IAAG,UAAU,KAAM,UAAU;AAAA,UAC7C,aAAa,KAAK,IAAI,IAAI;AAAA;AAAA,OAEjC;AAAA,MACD,aAAa,CAAC,MAAM,OAAQ,SAAS,OAAO,OAAO,KAAK,SAAS,GAAG;AAAA,MACpE,cAAc;AAAA,IAClB,CAAC;AAAA,IACD,OAAO,mBAAmB;AAAA,MACtB,YAAY,CAAC,KAAK,MAAM,OAAO,IAAI,GAAI,IAAG,UAAU,KAAM,kBAAkB,sBAAsB,MAAM,IAAI,OAAO,IAAK,IAAG,UAAU,KAAM,0BAA0B,QAAQ,UAAU,QAAQ,MAAM,CAAC;AAAA,MACtM,aAAa,CAAC,KAAK,MAAM,OAAO,IAAI,GAAI,IAAG,UAAU,KAAM,eAAe,MAAM,IAAI,OAAO,IAAI,SAAS,OAAO,OAAQ,IAAG,UAAU,KAAM,QAAQ,UAAU,QAAQ,MAAM,CAAC;AAAA,MAC3K,aAAa,CAAC,MAAM,OAAQ,SAAS,OAAO,OAAO,KAAK,IAAI,MAAM,EAAE;AAAA,MACpE,cAAc,CAAC,KAAK,UAAU,IAAI,IAAI,SAAS,KAAK;AAAA,IACxD,CAAC;AAAA,EACL;AAAA,EACA,SAAS,oBAAoB,CAAC,KAAK,IAAI;AAAA,IACnC,IAAI,OAAO;AAAA,MACP,OAAO,IAAI,IAAI,SAAS,IAAI;AAAA,IAChC,MAAM,QAAQ,IAAI,IAAI,SAAU,IAAG,UAAU,MAAO;AAAA,IACpD,IAAI,OAAO;AAAA,MACP,aAAa,KAAK,OAAO,EAAE;AAAA,IAC/B,OAAO;AAAA;AAAA,EAEH,+BAAuB;AAAA,EAC/B,SAAS,YAAY,CAAC,KAAK,OAAO,IAAI;AAAA,IAClC,OAAO,KAAK,EAAE,EAAE,QAAQ,CAAC,MAAM,IAAI,OAAQ,IAAG,UAAU,KAAM,SAAS,GAAG,UAAU,aAAa,CAAC,KAAK,IAAI,CAAC;AAAA;AAAA,EAExG,uBAAe;AAAA,EACvB,IAAM,WAAW,CAAC;AAAA,EAClB,SAAS,OAAO,CAAC,KAAK,GAAG;AAAA,IACrB,OAAO,IAAI,WAAW,QAAQ;AAAA,MAC1B,KAAK;AAAA,MACL,MAAM,SAAS,EAAE,UAAU,SAAS,EAAE,QAAQ,IAAI,OAAO,MAAM,EAAE,IAAI;AAAA,IACzE,CAAC;AAAA;AAAA,EAEG,kBAAU;AAAA,EAClB,IAAI;AAAA,GACH,QAAS,CAAC,OAAM;AAAA,IACb,MAAK,MAAK,SAAS,KAAK;AAAA,IACxB,MAAK,MAAK,SAAS,KAAK;AAAA,KACzB,SAAiB,eAAO,OAAO,CAAC,EAAE;AAAA,EACrC,SAAS,YAAY,CAAC,UAAU,cAAc,kBAAkB;AAAA,IAE5D,IAAI,oBAAoB,UAAU,MAAM;AAAA,MACpC,MAAM,WAAW,iBAAiB,KAAK;AAAA,MACvC,OAAO,mBACD,WACK,IAAG,UAAU,WAAY,mBACzB,IAAG,UAAU,YAAa,oBAC/B,WACK,IAAG,UAAU,WAAY,aACzB,IAAG,UAAU,WAAY;AAAA,IACxC;AAAA,IACA,OAAO,oBAAoB,GAAG,UAAU,aAAa,QAAQ,EAAE,SAAS,IAAI,MAAM,kBAAkB,QAAQ;AAAA;AAAA,EAExG,uBAAe;AAAA,EACvB,SAAS,eAAe,CAAC,IAAI,KAAK,OAAO,GAAG,KAAK,cAAc;AAAA,IAC3D,IAAI,CAAC;AAAA,MACD;AAAA,IACJ,MAAM,gBAAgB;AAAA,IACtB,IAAI,SAAS;AAAA,MACT,MAAM,IAAI,MAAM,GAAG;AAAA,IACvB,GAAG,KAAK,OAAO,KAAK,GAAG;AAAA;AAAA,EAEnB,0BAAkB;AAAA;;;;EC/K1B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IAEV,MAAM,IAAI,UAAU,KAAK,MAAM;AAAA,IAE/B,QAAQ,IAAI,UAAU,KAAK,QAAQ;AAAA,IACnC,cAAc,IAAI,UAAU,KAAK,cAAc;AAAA,IAC/C,YAAY,IAAI,UAAU,KAAK,YAAY;AAAA,IAC3C,oBAAoB,IAAI,UAAU,KAAK,oBAAoB;AAAA,IAC3D,UAAU,IAAI,UAAU,KAAK,UAAU;AAAA,IACvC,gBAAgB,IAAI,UAAU,KAAK,gBAAgB;AAAA,IAEnD,SAAS,IAAI,UAAU,KAAK,SAAS;AAAA,IACrC,QAAQ,IAAI,UAAU,KAAK,QAAQ;AAAA,IACnC,MAAM,IAAI,UAAU,KAAK,MAAM;AAAA,IAE/B,MAAM,IAAI,UAAU,KAAK,MAAM;AAAA,IAC/B,OAAO,IAAI,UAAU,KAAK,OAAO;AAAA,IAEjC,MAAM,IAAI,UAAU,KAAK,MAAM;AAAA,IAC/B,SAAS,IAAI,UAAU,KAAK,SAAS;AAAA,IACrC,SAAS,IAAI,UAAU,KAAK,SAAS;AAAA,IACrC,UAAU,IAAI,UAAU,KAAK,UAAU;AAAA,EAC3C;AAAA,EACQ,kBAAU;AAAA;;;;ECzBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,uBAAuB,2BAA2B,2BAA2B,sBAAsB,4BAA4B,uBAAoB;AAAA,EAC3J,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACE,uBAAe;AAAA,IACnB,SAAS,GAAG,cAAe,IAAG,UAAU,kBAAmB;AAAA,EAC/D;AAAA,EACQ,4BAAoB;AAAA,IACxB,SAAS,GAAG,SAAS,iBAAiB,aAC/B,IAAG,UAAU,QAAS,4BAA4B,uBAClD,IAAG,UAAU,QAAS;AAAA,EACjC;AAAA,EACA,SAAS,WAAW,CAAC,KAAK,QAAgB,sBAAc,YAAY,mBAAmB;AAAA,IACnF,QAAQ,OAAO;AAAA,IACf,QAAQ,KAAK,eAAe,cAAc;AAAA,IAC1C,MAAM,SAAS,gBAAgB,KAAK,OAAO,UAAU;AAAA,IACrD,IAAI,sBAAsB,QAAQ,sBAA2B,YAAI,oBAAqB,iBAAiB,WAAY;AAAA,MAC/G,SAAS,KAAK,MAAM;AAAA,IACxB,EACK;AAAA,MACD,aAAa,IAAK,IAAG,UAAU,MAAO,SAAS;AAAA;AAAA;AAAA,EAG/C,sBAAc;AAAA,EACtB,SAAS,gBAAgB,CAAC,KAAK,QAAgB,sBAAc,YAAY;AAAA,IACrE,QAAQ,OAAO;AAAA,IACf,QAAQ,KAAK,eAAe,cAAc;AAAA,IAC1C,MAAM,SAAS,gBAAgB,KAAK,OAAO,UAAU;AAAA,IACrD,SAAS,KAAK,MAAM;AAAA,IACpB,IAAI,EAAE,iBAAiB,YAAY;AAAA,MAC/B,aAAa,IAAI,QAAQ,QAAQ,OAAO;AAAA,IAC5C;AAAA;AAAA,EAEI,2BAAmB;AAAA,EAC3B,SAAS,gBAAgB,CAAC,KAAK,WAAW;AAAA,IACtC,IAAI,OAAO,QAAQ,QAAQ,QAAQ,SAAS;AAAA,IAC5C,IAAI,GAAI,IAAG,UAAU,KAAM,QAAQ,QAAQ,oBAAoB,MAAM,IAAI,GAAG,WAAW,MAAM,IAAI,OAAQ,IAAG,UAAU,KAAM,QAAQ,QAAQ,kBAAkB,SAAS,GAAG,MAAM,IAAI,OAAO,QAAQ,QAAQ,SAAS,IAAI,CAAC,CAAC;AAAA;AAAA,EAEtN,2BAAmB;AAAA,EAC3B,SAAS,YAAY,GAAG,KAAK,SAAS,aAAa,MAAM,WAAW,MAAO;AAAA,IAEvE,IAAI,cAAc;AAAA,MACd,MAAM,IAAI,MAAM,0BAA0B;AAAA,IAC9C,MAAM,MAAM,IAAI,KAAK,KAAK;AAAA,IAC1B,IAAI,SAAS,KAAK,WAAW,QAAQ,QAAQ,QAAQ,CAAC,MAAM;AAAA,MACxD,IAAI,MAAM,KAAM,IAAG,UAAU,KAAM,QAAQ,QAAQ,WAAW,IAAI;AAAA,MAClE,IAAI,GAAI,IAAG,UAAU,KAAM,kCAAkC,MAAM,IAAI,OAAQ,IAAG,UAAU,KAAM,qBAAqB,GAAG,UAAU,WAAW,QAAQ,QAAQ,cAAc,GAAG,SAAS,CAAC,CAAC;AAAA,MAC3L,IAAI,OAAQ,IAAG,UAAU,KAAM,kBAAmB,IAAG,UAAU,OAAQ,GAAG,iBAAiB,SAAS;AAAA,MACpG,IAAI,GAAG,KAAK,SAAS;AAAA,QACjB,IAAI,OAAQ,IAAG,UAAU,KAAM,cAAc,WAAW;AAAA,QACxD,IAAI,OAAQ,IAAG,UAAU,KAAM,YAAY,IAAI;AAAA,MACnD;AAAA,KACH;AAAA;AAAA,EAEG,uBAAe;AAAA,EACvB,SAAS,QAAQ,CAAC,KAAK,QAAQ;AAAA,IAC3B,MAAM,MAAM,IAAI,MAAM,OAAO,MAAM;AAAA,IACnC,IAAI,GAAI,IAAG,UAAU,KAAM,QAAQ,QAAQ,oBAAoB,MAAM,IAAI,OAAO,QAAQ,QAAQ,SAAU,IAAG,UAAU,MAAO,MAAM,GAAI,IAAG,UAAU,KAAM,QAAQ,QAAQ,gBAAgB,MAAM;AAAA,IACjM,IAAI,KAAM,IAAG,UAAU,KAAM,QAAQ,QAAQ,UAAU;AAAA;AAAA,EAE3D,SAAS,YAAY,CAAC,IAAI,MAAM;AAAA,IAC5B,QAAQ,KAAK,cAAc,cAAc;AAAA,IACzC,IAAI,UAAU,QAAQ;AAAA,MAClB,IAAI,MAAO,IAAG,UAAU,SAAU,GAAG,mBAAmB,OAAO;AAAA,IACnE,EACK;AAAA,MACD,IAAI,OAAQ,IAAG,UAAU,KAAM,uBAAuB,IAAI;AAAA,MAC1D,IAAI,OAAO,KAAK;AAAA;AAAA;AAAA,EAGxB,IAAM,IAAI;AAAA,IACN,SAAS,IAAI,UAAU,KAAK,SAAS;AAAA,IACrC,YAAY,IAAI,UAAU,KAAK,YAAY;AAAA,IAC3C,QAAQ,IAAI,UAAU,KAAK,QAAQ;AAAA,IACnC,cAAc,IAAI,UAAU,KAAK,cAAc;AAAA,IAC/C,SAAS,IAAI,UAAU,KAAK,SAAS;AAAA,IACrC,QAAQ,IAAI,UAAU,KAAK,QAAQ;AAAA,IACnC,cAAc,IAAI,UAAU,KAAK,cAAc;AAAA,EACnD;AAAA,EACA,SAAS,eAAe,CAAC,KAAK,OAAO,YAAY;AAAA,IAC7C,QAAQ,iBAAiB,IAAI;AAAA,IAC7B,IAAI,iBAAiB;AAAA,MACjB,OAAQ,IAAG,UAAU;AAAA,IACzB,OAAO,YAAY,KAAK,OAAO,UAAU;AAAA;AAAA,EAE7C,SAAS,WAAW,CAAC,KAAK,OAAO,aAAa,CAAC,GAAG;AAAA,IAC9C,QAAQ,KAAK,OAAO;AAAA,IACpB,MAAM,YAAY;AAAA,MACd,kBAAkB,IAAI,UAAU;AAAA,MAChC,gBAAgB,KAAK,UAAU;AAAA,IACnC;AAAA,IACA,gBAAgB,KAAK,OAAO,SAAS;AAAA,IACrC,OAAO,IAAI,OAAO,GAAG,SAAS;AAAA;AAAA,EAElC,SAAS,iBAAiB,GAAG,eAAe,gBAAgB;AAAA,IACxD,MAAM,WAAW,eACV,IAAG,UAAU,OAAQ,aAAa,GAAG,OAAO,cAAc,cAAc,OAAO,KAAK,GAAG,MACxF;AAAA,IACN,OAAO,CAAC,QAAQ,QAAQ,eAAe,GAAG,UAAU,WAAW,QAAQ,QAAQ,cAAc,QAAQ,CAAC;AAAA;AAAA,EAE1G,SAAS,eAAe,GAAG,SAAS,MAAM,qBAAqB,YAAY,gBAAgB;AAAA,IACvF,IAAI,UAAU,eAAe,gBAAiB,IAAG,UAAU,OAAQ,iBAAiB;AAAA,IACpF,IAAI,YAAY;AAAA,MACZ,UAAW,IAAG,UAAU,OAAQ,WAAW,GAAG,OAAO,cAAc,YAAY,OAAO,KAAK,GAAG;AAAA,IAClG;AAAA,IACA,OAAO,CAAC,EAAE,YAAY,OAAO;AAAA;AAAA,EAEjC,SAAS,eAAe,CAAC,OAAO,QAAQ,WAAW,WAAW;AAAA,IAC1D,QAAQ,SAAS,MAAM,aAAa,OAAO;AAAA,IAC3C,QAAQ,MAAM,cAAc,cAAc,eAAe;AAAA,IACzD,UAAU,KAAK,CAAC,EAAE,SAAS,OAAO,GAAG,CAAC,EAAE,QAAQ,OAAO,UAAU,aAAa,OAAO,GAAG,IAAI,UAAW,IAAG,UAAU,MAAO,CAAC;AAAA,IAC5H,IAAI,KAAK,UAAU;AAAA,MACf,UAAU,KAAK,CAAC,EAAE,SAAS,OAAO,WAAW,aAAa,QAAQ,GAAG,IAAI,OAAO,CAAC;AAAA,IACrF;AAAA,IACA,IAAI,KAAK,SAAS;AAAA,MACd,UAAU,KAAK,CAAC,EAAE,QAAQ,WAAW,GAAG,CAAC,EAAE,cAAe,IAAG,UAAU,KAAM,eAAe,YAAY,GAAG,CAAC,QAAQ,QAAQ,MAAM,IAAI,CAAC;AAAA,IAC3I;AAAA,IACA,IAAI;AAAA,MACA,UAAU,KAAK,CAAC,EAAE,cAAc,YAAY,CAAC;AAAA;AAAA;;;;ECvHrD,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,4BAA4B,+BAA4B;AAAA,EAChE,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,YAAY;AAAA,IACd,SAAS;AAAA,EACb;AAAA,EACA,SAAS,oBAAoB,CAAC,IAAI;AAAA,IAC9B,QAAQ,KAAK,QAAQ,iBAAiB;AAAA,IACtC,IAAI,WAAW,OAAO;AAAA,MAClB,iBAAiB,IAAI,KAAK;AAAA,IAC9B,EACK,SAAI,OAAO,UAAU,YAAY,OAAO,WAAW,MAAM;AAAA,MAC1D,IAAI,OAAO,QAAQ,QAAQ,IAAI;AAAA,IACnC,EACK;AAAA,MACD,IAAI,OAAQ,IAAG,UAAU,KAAM,uBAAuB,IAAI;AAAA,MAC1D,IAAI,OAAO,IAAI;AAAA;AAAA;AAAA,EAGf,+BAAuB;AAAA,EAC/B,SAAS,iBAAiB,CAAC,IAAI,OAAO;AAAA,IAClC,QAAQ,KAAK,WAAW;AAAA,IACxB,IAAI,WAAW,OAAO;AAAA,MAClB,IAAI,IAAI,OAAO,KAAK;AAAA,MACpB,iBAAiB,EAAE;AAAA,IACvB,EACK;AAAA,MACD,IAAI,IAAI,OAAO,IAAI;AAAA;AAAA;AAAA,EAGnB,4BAAoB;AAAA,EAC5B,SAAS,gBAAgB,CAAC,IAAI,mBAAmB;AAAA,IAC7C,QAAQ,KAAK,SAAS;AAAA,IAEtB,MAAM,MAAM;AAAA,MACR;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,QAAQ,CAAC;AAAA,MACT;AAAA,IACJ;AAAA,KACC,GAAG,SAAS,aAAa,KAAK,WAAW,WAAW,iBAAiB;AAAA;AAAA;;;;EC9C1E,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,mBAAmB,qBAAkB;AAAA,EAC7C,IAAM,aAAa,CAAC,UAAU,UAAU,WAAW,WAAW,QAAQ,UAAU,OAAO;AAAA,EACvF,IAAM,YAAY,IAAI,IAAI,UAAU;AAAA,EACpC,SAAS,UAAU,CAAC,GAAG;AAAA,IACnB,OAAO,OAAO,KAAK,YAAY,UAAU,IAAI,CAAC;AAAA;AAAA,EAE1C,qBAAa;AAAA,EACrB,SAAS,QAAQ,GAAG;AAAA,IAChB,MAAM,SAAS;AAAA,MACX,QAAQ,EAAE,MAAM,UAAU,OAAO,CAAC,EAAE;AAAA,MACpC,QAAQ,EAAE,MAAM,UAAU,OAAO,CAAC,EAAE;AAAA,MACpC,OAAO,EAAE,MAAM,SAAS,OAAO,CAAC,EAAE;AAAA,MAClC,QAAQ,EAAE,MAAM,UAAU,OAAO,CAAC,EAAE;AAAA,IACxC;AAAA,IACA,OAAO;AAAA,MACH,OAAO,KAAK,QAAQ,SAAS,MAAM,SAAS,MAAM,MAAM,KAAK;AAAA,MAC7D,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,QAAQ,OAAO,QAAQ,OAAO,OAAO,OAAO,MAAM;AAAA,MAChF,MAAM,EAAE,OAAO,CAAC,EAAE;AAAA,MAClB,KAAK,CAAC;AAAA,MACN,UAAU,CAAC;AAAA,IACf;AAAA;AAAA,EAEI,mBAAW;AAAA;;;;ECvBnB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,wBAAwB,yBAAyB,gCAA6B;AAAA,EACtF,SAAS,qBAAqB,GAAG,QAAQ,QAAQ,MAAM;AAAA,IACnD,MAAM,QAAQ,KAAK,MAAM,MAAM;AAAA,IAC/B,OAAO,SAAS,UAAU,QAAQ,eAAe,QAAQ,KAAK;AAAA;AAAA,EAE1D,gCAAwB;AAAA,EAChC,SAAS,cAAc,CAAC,QAAQ,OAAO;AAAA,IACnC,OAAO,MAAM,MAAM,KAAK,CAAC,SAAS,cAAc,QAAQ,IAAI,CAAC;AAAA;AAAA,EAEzD,yBAAiB;AAAA,EACzB,SAAS,aAAa,CAAC,QAAQ,MAAM;AAAA,IACjC,IAAI;AAAA,IACJ,OAAQ,OAAO,KAAK,aAAa,eAC3B,KAAK,KAAK,WAAW,gBAAgB,QAAQ,OAAY,YAAS,YAAI,GAAG,KAAK,CAAC,QAAQ,OAAO,SAAS,SAAS;AAAA;AAAA,EAElH,wBAAgB;AAAA;;;;EChBxB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,0BAA0B,yBAAyB,wBAAwB,iCAAiC,uBAAuB,yBAAyB,mBAAgB;AAAA,EACpL,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAI;AAAA,GACH,QAAS,CAAC,WAAU;AAAA,IACjB,UAAS,UAAS,aAAa,KAAK;AAAA,IACpC,UAAS,UAAS,WAAW,KAAK;AAAA,KACnC,aAAqB,mBAAW,WAAW,CAAC,EAAE;AAAA,EACjD,SAAS,cAAc,CAAC,QAAQ;AAAA,IAC5B,MAAM,SAAQ,aAAa,OAAO,IAAI;AAAA,IACtC,MAAM,UAAU,OAAM,SAAS,MAAM;AAAA,IACrC,IAAI,SAAS;AAAA,MACT,IAAI,OAAO,aAAa;AAAA,QACpB,MAAM,IAAI,MAAM,wCAAwC;AAAA,IAChE,EACK;AAAA,MACD,IAAI,CAAC,OAAM,UAAU,OAAO,aAAa,WAAW;AAAA,QAChD,MAAM,IAAI,MAAM,0CAA0C;AAAA,MAC9D;AAAA,MACA,IAAI,OAAO,aAAa;AAAA,QACpB,OAAM,KAAK,MAAM;AAAA;AAAA,IAEzB,OAAO;AAAA;AAAA,EAEH,yBAAiB;AAAA,EAEzB,SAAS,YAAY,CAAC,IAAI;AAAA,IACtB,MAAM,SAAQ,MAAM,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,CAAC;AAAA,IACpD,IAAI,OAAM,MAAM,QAAQ,UAAU;AAAA,MAC9B,OAAO;AAAA,IACX,MAAM,IAAI,MAAM,0CAA0C,OAAM,KAAK,GAAG,CAAC;AAAA;AAAA,EAErE,uBAAe;AAAA,EACvB,SAAS,sBAAsB,CAAC,IAAI,QAAO;AAAA,IACvC,QAAQ,KAAK,MAAM,SAAS;AAAA,IAC5B,MAAM,WAAW,cAAc,QAAO,KAAK,WAAW;AAAA,IACtD,MAAM,aAAa,OAAM,SAAS,KAC9B,EAAE,SAAS,WAAW,KAAK,OAAM,WAAW,MAAM,GAAG,gBAAgB,uBAAuB,IAAI,OAAM,EAAE;AAAA,IAC5G,IAAI,YAAY;AAAA,MACZ,MAAM,YAAY,eAAe,QAAO,MAAM,KAAK,eAAe,SAAS,KAAK;AAAA,MAChF,IAAI,GAAG,WAAW,MAAM;AAAA,QACpB,IAAI,SAAS;AAAA,UACT,WAAW,IAAI,QAAO,QAAQ;AAAA,QAE9B;AAAA,0BAAgB,EAAE;AAAA,OACzB;AAAA,IACL;AAAA,IACA,OAAO;AAAA;AAAA,EAEH,iCAAyB;AAAA,EACjC,IAAM,YAAY,IAAI,IAAI,CAAC,UAAU,UAAU,WAAW,WAAW,MAAM,CAAC;AAAA,EAC5E,SAAS,aAAa,CAAC,QAAO,aAAa;AAAA,IACvC,OAAO,cACD,OAAM,OAAO,CAAC,MAAM,UAAU,IAAI,CAAC,KAAM,gBAAgB,WAAW,MAAM,OAAQ,IAClF,CAAC;AAAA;AAAA,EAEX,SAAS,UAAU,CAAC,IAAI,QAAO,UAAU;AAAA,IACrC,QAAQ,KAAK,MAAM,SAAS;AAAA,IAC5B,MAAM,WAAW,IAAI,IAAI,YAAa,IAAG,UAAU,YAAa,MAAM;AAAA,IACtE,MAAM,UAAU,IAAI,IAAI,WAAY,IAAG,UAAU,aAAc;AAAA,IAC/D,IAAI,KAAK,gBAAgB,SAAS;AAAA,MAC9B,IAAI,GAAI,IAAG,UAAU,KAAM,yCAAyC,YAAY,oBAAoB,MAAM,IACrG,OAAO,MAAO,IAAG,UAAU,KAAM,SAAS,EAC1C,OAAO,UAAW,IAAG,UAAU,YAAa,MAAM,EAClD,GAAG,eAAe,QAAO,MAAM,KAAK,aAAa,GAAG,MAAM,IAAI,OAAO,SAAS,IAAI,CAAC,CAAC;AAAA,IAC7F;AAAA,IACA,IAAI,GAAI,IAAG,UAAU,KAAM,uBAAuB;AAAA,IAClD,WAAW,KAAK,UAAU;AAAA,MACtB,IAAI,UAAU,IAAI,CAAC,KAAM,MAAM,WAAW,KAAK,gBAAgB,SAAU;AAAA,QACrE,mBAAmB,CAAC;AAAA,MACxB;AAAA,IACJ;AAAA,IACA,IAAI,KAAK;AAAA,IACT,gBAAgB,EAAE;AAAA,IAClB,IAAI,MAAM;AAAA,IACV,IAAI,GAAI,IAAG,UAAU,KAAM,yBAAyB,MAAM;AAAA,MACtD,IAAI,OAAO,MAAM,OAAO;AAAA,MACxB,iBAAiB,IAAI,OAAO;AAAA,KAC/B;AAAA,IACD,SAAS,kBAAkB,CAAC,GAAG;AAAA,MAC3B,QAAQ;AAAA,aACC;AAAA,UACD,IACK,OAAQ,IAAG,UAAU,KAAM,2BAA2B,uBAAuB,EAC7E,OAAO,SAAU,IAAG,UAAU,UAAW,MAAM,EAC/C,OAAQ,IAAG,UAAU,KAAM,eAAe,EAC1C,OAAO,SAAU,IAAG,UAAU,MAAO;AAAA,UAC1C;AAAA,aACC;AAAA,UACD,IACK,OAAQ,IAAG,UAAU,KAAM,4BAA4B;AAAA,oBACxD,2BAA2B,WAAW,YAAY,OAAO,EACxD,OAAO,SAAU,IAAG,UAAU,MAAO,MAAM;AAAA,UAChD;AAAA,aACC;AAAA,UACD,IACK,OAAQ,IAAG,UAAU,KAAM,6BAA6B;AAAA,oBACzD,4BAA4B,WAAW,YAAY,aAAa,YAAY,EAC3E,OAAO,SAAU,IAAG,UAAU,MAAO,MAAM;AAAA,UAChD;AAAA,aACC;AAAA,UACD,IACK,OAAQ,IAAG,UAAU,KAAM,uBAAuB,iBAAiB,eAAe,EAClF,OAAO,SAAS,KAAK,EACrB,OAAQ,IAAG,UAAU,KAAM,sBAAsB,YAAY,EAC7D,OAAO,SAAS,IAAI;AAAA,UACzB;AAAA,aACC;AAAA,UACD,IAAI,OAAQ,IAAG,UAAU,KAAM,kBAAkB,iBAAiB,gBAAgB;AAAA,UAClF,IAAI,OAAO,SAAS,IAAI;AAAA,UACxB;AAAA,aACC;AAAA,UACD,IACK,OAAQ,IAAG,UAAU,KAAM,4BAA4B;AAAA,mBACzD,6BAA6B,eAAe,EAC1C,OAAO,SAAU,IAAG,UAAU,MAAO,OAAO;AAAA;AAAA;AAAA;AAAA,EAIjE,SAAS,gBAAgB,GAAG,KAAK,YAAY,sBAAsB,MAAM;AAAA,IAErE,IAAI,GAAI,IAAG,UAAU,KAAM,4BAA4B,MAAM,IAAI,OAAQ,IAAG,UAAU,KAAM,cAAc,uBAAuB,IAAI,CAAC;AAAA;AAAA,EAE1I,SAAS,aAAa,CAAC,UAAU,MAAM,YAAY,UAAU,SAAS,SAAS;AAAA,IAC3E,MAAM,KAAK,YAAY,SAAS,UAAU,UAAU,UAAU,KAAK,UAAU,UAAU;AAAA,IACvF,IAAI;AAAA,IACJ,QAAQ;AAAA,WACC;AAAA,QACD,OAAQ,IAAG,UAAU,KAAM,QAAQ;AAAA,WAClC;AAAA,QACD,OAAQ,IAAG,UAAU,mBAAoB;AAAA,QACzC;AAAA,WACC;AAAA,QACD,OAAQ,IAAG,UAAU,KAAM,kBAAkB,sCAAsC;AAAA,QACnF;AAAA,WACC;AAAA,QACD,OAAO,QAAS,IAAG,UAAU,OAAQ,uBAAuB,OAAO;AAAA,QACnE;AAAA,WACC;AAAA,QACD,OAAO,QAAQ;AAAA,QACf;AAAA;AAAA,QAEA,OAAQ,IAAG,UAAU,YAAa,QAAQ,MAAM;AAAA;AAAA,IAExD,OAAO,YAAY,SAAS,UAAU,QAAQ,GAAG,UAAU,KAAK,IAAI;AAAA,IACpE,SAAS,OAAO,CAAC,QAAQ,UAAU,KAAK;AAAA,MACpC,QAAQ,GAAG,UAAU,KAAM,IAAG,UAAU,YAAa,oBAAoB,OAAO,aAAc,IAAG,UAAU,cAAe,UAAU,UAAU,GAAG;AAAA;AAAA;AAAA,EAGjJ,wBAAgB;AAAA,EACxB,SAAS,cAAc,CAAC,WAAW,MAAM,YAAY,SAAS;AAAA,IAC1D,IAAI,UAAU,WAAW,GAAG;AAAA,MACxB,OAAO,cAAc,UAAU,IAAI,MAAM,YAAY,OAAO;AAAA,IAChE;AAAA,IACA,IAAI;AAAA,IACJ,MAAM,UAAS,GAAG,OAAO,QAAQ,SAAS;AAAA,IAC1C,IAAI,OAAM,SAAS,OAAM,QAAQ;AAAA,MAC7B,MAAM,SAAU,IAAG,UAAU,YAAa;AAAA,MAC1C,OAAO,OAAM,OAAO,SAAU,IAAG,UAAU,MAAO,WAAW;AAAA,MAC7D,OAAO,OAAM;AAAA,MACb,OAAO,OAAM;AAAA,MACb,OAAO,OAAM;AAAA,IACjB,EACK;AAAA,MACD,OAAO,UAAU;AAAA;AAAA,IAErB,IAAI,OAAM;AAAA,MACN,OAAO,OAAM;AAAA,IACjB,WAAW,KAAK;AAAA,MACZ,QAAQ,GAAG,UAAU,KAAK,MAAM,cAAc,GAAG,MAAM,YAAY,OAAO,CAAC;AAAA,IAC/E,OAAO;AAAA;AAAA,EAEH,yBAAiB;AAAA,EACzB,IAAM,YAAY;AAAA,IACd,SAAS,GAAG,aAAa,WAAW;AAAA,IACpC,QAAQ,GAAG,QAAQ,kBAAkB,OAAO,UAAU,WAAY,IAAG,UAAU,YAAa,YAAa,IAAG,UAAU,YAAa;AAAA,EACvI;AAAA,EACA,SAAS,eAAe,CAAC,IAAI;AAAA,IACzB,MAAM,MAAM,oBAAoB,EAAE;AAAA,KACjC,GAAG,SAAS,aAAa,KAAK,SAAS;AAAA;AAAA,EAEpC,0BAAkB;AAAA,EAC1B,SAAS,mBAAmB,CAAC,IAAI;AAAA,IAC7B,QAAQ,KAAK,MAAM,WAAW;AAAA,IAC9B,MAAM,cAAc,GAAG,OAAO,gBAAgB,IAAI,QAAQ,MAAM;AAAA,IAChE,OAAO;AAAA,MACH;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA,QAAQ,OAAO;AAAA,MACf;AAAA,MACA,aAAa;AAAA,MACb,cAAc;AAAA,MACd,QAAQ,CAAC;AAAA,MACT;AAAA,IACJ;AAAA;AAAA;;;;ECvMJ,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,yBAAsB;AAAA,EAC9B,IAAM;AAAA,EACN,IAAM;AAAA,EACN,SAAS,cAAc,CAAC,IAAI,IAAI;AAAA,IAC5B,QAAQ,YAAY,UAAU,GAAG;AAAA,IACjC,IAAI,OAAO,YAAY,YAAY;AAAA,MAC/B,WAAW,OAAO,YAAY;AAAA,QAC1B,cAAc,IAAI,KAAK,WAAW,KAAK,OAAO;AAAA,MAClD;AAAA,IACJ,EACK,SAAI,OAAO,WAAW,MAAM,QAAQ,KAAK,GAAG;AAAA,MAC7C,MAAM,QAAQ,CAAC,KAAK,MAAM,cAAc,IAAI,GAAG,IAAI,OAAO,CAAC;AAAA,IAC/D;AAAA;AAAA,EAEI,yBAAiB;AAAA,EACzB,SAAS,aAAa,CAAC,IAAI,MAAM,cAAc;AAAA,IAC3C,QAAQ,KAAK,eAAe,MAAM,SAAS;AAAA,IAC3C,IAAI,iBAAiB;AAAA,MACjB;AAAA,IACJ,MAAM,YAAa,IAAG,UAAU,KAAM,QAAQ,GAAG,UAAU,aAAa,IAAI;AAAA,IAC5E,IAAI,eAAe;AAAA,OACd,GAAG,OAAO,iBAAiB,IAAI,2BAA2B,WAAW;AAAA,MACtE;AAAA,IACJ;AAAA,IACA,IAAI,YAAa,IAAG,UAAU,KAAM;AAAA,IACpC,IAAI,KAAK,gBAAgB,SAAS;AAAA,MAC9B,YAAa,IAAG,UAAU,KAAM,gBAAgB,yBAAyB;AAAA,IAC7E;AAAA,IAGA,IAAI,GAAG,WAAY,IAAG,UAAU,KAAM,gBAAgB,GAAG,UAAU,WAAW,YAAY,GAAG;AAAA;AAAA;;;;EC/BjG,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,wBAAwB,wBAAwB,qBAAqB,2BAA2B,2BAA2B,8BAA8B,2BAA2B,yBAAyB,wBAAwB,sBAAsB,4BAA4B,2BAA2B,iCAA8B;AAAA,EACxV,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,SAAS,sBAAsB,CAAC,KAAK,MAAM;AAAA,IACvC,QAAQ,KAAK,MAAM,OAAO;AAAA,IAC1B,IAAI,GAAG,iBAAiB,KAAK,MAAM,MAAM,GAAG,KAAK,aAAa,GAAG,MAAM;AAAA,MACnE,IAAI,UAAU,EAAE,iBAAkB,IAAG,UAAU,KAAM,OAAO,GAAG,IAAI;AAAA,MACnE,IAAI,MAAM;AAAA,KACb;AAAA;AAAA,EAEG,iCAAyB;AAAA,EACjC,SAAS,gBAAgB,GAAG,KAAK,MAAM,MAAM,UAAU,YAAY,SAAS;AAAA,IACxE,QAAQ,GAAG,UAAU,IAAI,GAAG,WAAW,IAAI,CAAC,UAAU,GAAG,UAAU,KAAK,iBAAiB,KAAK,MAAM,MAAM,KAAK,aAAa,GAAI,IAAG,UAAU,KAAM,aAAa,MAAM,CAAC,CAAC;AAAA;AAAA,EAEpK,2BAAmB;AAAA,EAC3B,SAAS,iBAAiB,CAAC,KAAK,SAAS;AAAA,IACrC,IAAI,UAAU,EAAE,iBAAiB,QAAQ,GAAG,IAAI;AAAA,IAChD,IAAI,MAAM;AAAA;AAAA,EAEN,4BAAoB;AAAA,EAC5B,SAAS,WAAW,CAAC,KAAK;AAAA,IACtB,OAAO,IAAI,WAAW,QAAQ;AAAA,MAE1B,KAAK,OAAO,UAAU;AAAA,MACtB,MAAO,IAAG,UAAU;AAAA,IACxB,CAAC;AAAA;AAAA,EAEG,sBAAc;AAAA,EACtB,SAAS,aAAa,CAAC,KAAK,MAAM,UAAU;AAAA,IACxC,OAAQ,IAAG,UAAU,KAAM,YAAY,GAAG,UAAU,SAAS;AAAA;AAAA,EAEzD,wBAAgB;AAAA,EACxB,SAAS,cAAc,CAAC,KAAK,MAAM,UAAU,eAAe;AAAA,IACxD,MAAM,OAAQ,IAAG,UAAU,KAAM,QAAQ,GAAG,UAAU,aAAa,QAAQ;AAAA,IAC3E,OAAO,gBAAiB,IAAG,UAAU,KAAM,WAAW,cAAc,KAAK,MAAM,QAAQ,MAAM;AAAA;AAAA,EAEzF,yBAAiB;AAAA,EACzB,SAAS,gBAAgB,CAAC,KAAK,MAAM,UAAU,eAAe;AAAA,IAC1D,MAAM,OAAQ,IAAG,UAAU,KAAM,QAAQ,GAAG,UAAU,aAAa,QAAQ;AAAA,IAC3E,OAAO,iBAAiB,GAAG,UAAU,IAAI,OAAO,GAAG,UAAU,KAAK,cAAc,KAAK,MAAM,QAAQ,CAAC,CAAC,IAAI;AAAA;AAAA,EAErG,2BAAmB;AAAA,EAC3B,SAAS,mBAAmB,CAAC,WAAW;AAAA,IACpC,OAAO,YAAY,OAAO,KAAK,SAAS,EAAE,OAAO,CAAC,MAAM,MAAM,WAAW,IAAI,CAAC;AAAA;AAAA,EAE1E,8BAAsB;AAAA,EAC9B,SAAS,gBAAgB,CAAC,IAAI,WAAW;AAAA,IACrC,OAAO,oBAAoB,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,mBAAmB,IAAI,UAAU,EAAE,CAAC;AAAA;AAAA,EAEhG,2BAAmB;AAAA,EAC3B,SAAS,gBAAgB,GAAG,YAAY,MAAM,MAAM,KAAK,cAAc,YAAY,aAAa,MAAM,MAAM,UAAS,YAAY;AAAA,IAC7H,MAAM,gBAAgB,aAAc,IAAG,UAAU,KAAM,eAAe,SAAS,eAAe,eAAe;AAAA,IAC7G,MAAM,SAAS;AAAA,MACX,CAAC,QAAQ,QAAQ,eAAe,GAAG,UAAU,WAAW,QAAQ,QAAQ,cAAc,SAAS,CAAC;AAAA,MAChG,CAAC,QAAQ,QAAQ,YAAY,GAAG,UAAU;AAAA,MAC1C,CAAC,QAAQ,QAAQ,oBAAoB,GAAG,kBAAkB;AAAA,MAC1D,CAAC,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,QAAQ;AAAA,IACvD;AAAA,IACA,IAAI,GAAG,KAAK;AAAA,MACR,OAAO,KAAK,CAAC,QAAQ,QAAQ,gBAAgB,QAAQ,QAAQ,cAAc,CAAC;AAAA,IAChF,MAAM,OAAQ,IAAG,UAAU,KAAM,kBAAkB,IAAI,OAAO,GAAG,MAAM;AAAA,IACvE,OAAO,aAAY,UAAU,MAAO,IAAG,UAAU,KAAM,aAAa,aAAY,UAAW,IAAG,UAAU,KAAM,QAAQ;AAAA;AAAA,EAElH,2BAAmB;AAAA,EAC3B,IAAM,YAAa,IAAG,UAAU;AAAA,EAChC,SAAS,UAAU,GAAG,KAAK,MAAM,UAAU,SAAS;AAAA,IAChD,MAAM,IAAI,KAAK,gBAAgB,MAAM;AAAA,IACrC,QAAQ,WAAW,KAAK;AAAA,IACxB,MAAM,KAAK,OAAO,SAAS,CAAC;AAAA,IAC5B,OAAO,IAAI,WAAW,WAAW;AAAA,MAC7B,KAAK,GAAG,SAAS;AAAA,MACjB,KAAK;AAAA,MACL,MAAO,IAAG,UAAU,KAAM,OAAO,SAAS,eAAe,aAAa,GAAG,OAAO,SAAS,KAAK,MAAM,KAAK,YAAY;AAAA,IACzH,CAAC;AAAA;AAAA,EAEG,qBAAa;AAAA,EACrB,SAAS,aAAa,CAAC,KAAK;AAAA,IACxB,QAAQ,KAAK,MAAM,SAAS,OAAO;AAAA,IACnC,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,IAC9B,IAAI,GAAG,WAAW;AAAA,MACd,MAAM,WAAW,IAAI,IAAI,SAAS,IAAI;AAAA,MACtC,cAAc,MAAM,IAAI,OAAO,UAAU,KAAK,CAAC;AAAA,MAC/C,OAAO;AAAA,IACX;AAAA,IACA,IAAI,IAAI,OAAO,IAAI;AAAA,IACnB,cAAc,MAAM,IAAI,MAAM,CAAC;AAAA,IAC/B,OAAO;AAAA,IACP,SAAS,aAAa,CAAC,UAAU;AAAA,MAC7B,MAAM,MAAM,IAAI,MAAM,OAAQ,IAAG,UAAU,KAAM,aAAa;AAAA,MAC9D,IAAI,SAAS,KAAK,GAAG,KAAK,CAAC,MAAM;AAAA,QAC7B,IAAI,UAAU;AAAA,UACV;AAAA,UACA,UAAU;AAAA,UACV,cAAc,OAAO,KAAK;AAAA,QAC9B,GAAG,KAAK;AAAA,QACR,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,GAAG,QAAQ;AAAA,OAC7C;AAAA;AAAA;AAAA,EAGD,wBAAgB;AAAA,EACxB,SAAS,aAAa,CAAC,KAAK;AAAA,IACxB,QAAQ,KAAK,QAAQ,SAAS,OAAO;AAAA,IAErC,IAAI,CAAC,MAAM,QAAQ,MAAM;AAAA,MACrB,MAAM,IAAI,MAAM,0BAA0B;AAAA,IAC9C,MAAM,cAAc,OAAO,KAAK,CAAC,SAAS,GAAG,OAAO,mBAAmB,IAAI,GAAG,CAAC;AAAA,IAC/E,IAAI,eAAe,CAAC,GAAG,KAAK;AAAA,MACxB;AAAA,IACJ,MAAM,QAAQ,IAAI,IAAI,SAAS,KAAK;AAAA,IACpC,MAAM,WAAW,IAAI,KAAK,QAAQ;AAAA,IAClC,IAAI,MAAM,MAAM,OAAO,QAAQ,CAAC,MAAM,MAAM;AAAA,MACxC,MAAM,SAAS,IAAI,UAAU;AAAA,QACzB;AAAA,QACA,YAAY;AAAA,QACZ,eAAe;AAAA,MACnB,GAAG,QAAQ;AAAA,MACX,IAAI,OAAO,OAAQ,IAAG,UAAU,KAAM,YAAY,UAAU;AAAA,MAC5D,MAAM,SAAS,IAAI,oBAAoB,QAAQ,QAAQ;AAAA,MAGvD,IAAI,CAAC;AAAA,QACD,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,CAAC;AAAA,KACvC,CAAC;AAAA,IACF,IAAI,OAAO,OAAO,MAAM,IAAI,MAAM,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC;AAAA;AAAA,EAEtD,wBAAgB;AAAA;;;;EChIxB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,+BAA+B,0BAA0B,0BAA0B,2BAAwB;AAAA,EACnH,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,SAAS,gBAAgB,CAAC,KAAK,KAAK;AAAA,IAChC,QAAQ,KAAK,SAAS,QAAQ,cAAc,OAAO;AAAA,IACnD,MAAM,cAAc,IAAI,MAAM,KAAK,GAAG,MAAM,QAAQ,cAAc,EAAE;AAAA,IACpE,MAAM,YAAY,WAAW,KAAK,SAAS,WAAW;AAAA,IACtD,IAAI,GAAG,KAAK,mBAAmB;AAAA,MAC3B,GAAG,KAAK,eAAe,aAAa,IAAI;AAAA,IAC5C,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,IAC9B,IAAI,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,YAAY,UAAU;AAAA,MACtB,eAAe,GAAG,GAAG,iBAAiB;AAAA,MACtC,cAAc;AAAA,MACd,eAAe;AAAA,IACnB,GAAG,KAAK;AAAA,IACR,IAAI,KAAK,OAAO,MAAM,IAAI,MAAM,IAAI,CAAC;AAAA;AAAA,EAEjC,2BAAmB;AAAA,EAC3B,SAAS,eAAe,CAAC,KAAK,KAAK;AAAA,IAC/B,IAAI;AAAA,IACJ,QAAQ,KAAK,SAAS,QAAQ,cAAc,OAAO,OAAO;AAAA,IAC1D,kBAAkB,IAAI,GAAG;AAAA,IACzB,MAAM,WAAW,CAAC,SAAS,IAAI,UAAU,IAAI,QAAQ,KAAK,GAAG,MAAM,QAAQ,cAAc,EAAE,IAAI,IAAI;AAAA,IACnG,MAAM,cAAc,WAAW,KAAK,SAAS,QAAQ;AAAA,IACrD,MAAM,QAAQ,IAAI,IAAI,OAAO;AAAA,IAC7B,IAAI,WAAW,OAAO,eAAe;AAAA,IACrC,IAAI,IAAI,KAAK,IAAI,WAAW,QAAQ,OAAY,YAAI,KAAK,KAAK;AAAA,IAC9D,SAAS,eAAe,GAAG;AAAA,MACvB,IAAI,IAAI,WAAW,OAAO;AAAA,QACtB,YAAY;AAAA,QACZ,IAAI,IAAI;AAAA,UACJ,WAAW,GAAG;AAAA,QAClB,WAAW,MAAM,IAAI,MAAM,CAAC;AAAA,MAChC,EACK;AAAA,QACD,MAAM,WAAW,IAAI,QAAQ,cAAc,IAAI,aAAa;AAAA,QAC5D,IAAI,IAAI;AAAA,UACJ,WAAW,GAAG;AAAA,QAClB,WAAW,MAAM,QAAQ,KAAK,QAAQ,CAAC;AAAA;AAAA;AAAA,IAG/C,SAAS,aAAa,GAAG;AAAA,MACrB,MAAM,WAAW,IAAI,IAAI,YAAY,IAAI;AAAA,MACzC,IAAI,IAAI,MAAM,YAAa,IAAG,UAAU,UAAW,GAAG,CAAC,MAAM,IAAI,OAAO,OAAO,KAAK,EAAE,GAAI,IAAG,UAAU,KAAM,gBAAgB,GAAG,mBAAmB,MAAM,IAAI,OAAO,UAAW,IAAG,UAAU,KAAM,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;AAAA,MAClO,OAAO;AAAA;AAAA,IAEX,SAAS,YAAY,GAAG;AAAA,MACpB,MAAM,eAAgB,IAAG,UAAU,KAAM;AAAA,MACzC,IAAI,OAAO,cAAc,IAAI;AAAA,MAC7B,YAAY,UAAU,GAAG;AAAA,MACzB,OAAO;AAAA;AAAA,IAEX,SAAS,WAAW,CAAC,SAAS,IAAI,QAAS,IAAG,UAAU,aAAc,UAAU,KAAK;AAAA,MACjF,MAAM,UAAU,GAAG,KAAK,cAAc,QAAQ,QAAQ,OAAO,QAAQ,QAAQ;AAAA,MAC7E,MAAM,aAAa,GAAG,aAAa,QAAO,CAAC,SAAU,IAAI,WAAW;AAAA,MACpE,IAAI,OAAO,OAAQ,IAAG,UAAU,KAAM,UAAU,GAAG,OAAO,kBAAkB,KAAK,aAAa,SAAS,UAAU,KAAK,IAAI,SAAS;AAAA;AAAA,IAEvI,SAAS,UAAU,CAAC,QAAQ;AAAA,MACxB,IAAI;AAAA,MACJ,IAAI,IAAI,GAAG,UAAU,MAAM,MAAK,IAAI,WAAW,QAAQ,QAAY,YAAI,MAAK,KAAK,GAAG,MAAM;AAAA;AAAA;AAAA,EAG1F,0BAAkB;AAAA,EAC1B,SAAS,UAAU,CAAC,KAAK;AAAA,IACrB,QAAQ,KAAK,MAAM,OAAO;AAAA,IAC1B,IAAI,GAAG,GAAG,YAAY,MAAM,IAAI,OAAO,MAAO,IAAG,UAAU,KAAM,GAAG,cAAc,GAAG,qBAAqB,CAAC;AAAA;AAAA,EAE/G,SAAS,OAAO,CAAC,KAAK,MAAM;AAAA,IACxB,QAAQ,QAAQ;AAAA,IAChB,IAAI,GAAI,IAAG,UAAU,mBAAoB,SAAS,MAAM;AAAA,MACpD,IACK,OAAO,QAAQ,QAAQ,SAAU,IAAG,UAAU,KAAM,QAAQ,QAAQ,sBAAsB,UAAU,QAAQ,QAAQ,kBAAkB,OAAO,EAC7I,OAAO,QAAQ,QAAQ,QAAS,IAAG,UAAU,KAAM,QAAQ,QAAQ,gBAAgB;AAAA,OACvF,GAAG,SAAS,cAAc,GAAG;AAAA,OAC/B,MAAM,IAAI,MAAM,CAAC;AAAA;AAAA,EAExB,SAAS,iBAAiB,GAAG,aAAa,KAAK;AAAA,IAC3C,IAAI,IAAI,SAAS,CAAC,UAAU;AAAA,MACxB,MAAM,IAAI,MAAM,8BAA8B;AAAA;AAAA,EAEtD,SAAS,UAAU,CAAC,KAAK,SAAS,QAAQ;AAAA,IACtC,IAAI,WAAW;AAAA,MACX,MAAM,IAAI,MAAM,YAAY,4BAA4B;AAAA,IAC5D,OAAO,IAAI,WAAW,WAAW,OAAO,UAAU,aAAa,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,QAAQ,OAAO,GAAG,UAAU,WAAW,MAAM,EAAE,CAAC;AAAA;AAAA,EAE5I,SAAS,eAAe,CAAC,QAAQ,YAAY,iBAAiB,OAAO;AAAA,IAEjE,OAAQ,CAAC,WAAW,UAChB,WAAW,KAAK,CAAC,OAAO,OAAO,UACzB,MAAM,QAAQ,MAAM,IACpB,OAAO,WACH,UAAU,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,IAC5D,OAAO,UAAU,MAAO,kBAAkB,OAAO,UAAU,WAAY;AAAA;AAAA,EAEjF,0BAAkB;AAAA,EAC1B,SAAS,oBAAoB,GAAG,QAAQ,MAAM,MAAM,iBAAiB,KAAK,SAAS;AAAA,IAE/E,IAAI,MAAM,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,QAAQ,SAAS,OAAO,IAAI,IAAI,YAAY,SAAS;AAAA,MACvF,MAAM,IAAI,MAAM,0BAA0B;AAAA,IAC9C;AAAA,IACA,MAAM,OAAO,IAAI;AAAA,IACjB,IAAI,SAAS,QAAQ,SAAc,YAAS,YAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,OAAO,UAAU,eAAe,KAAK,QAAQ,GAAG,CAAC,GAAG;AAAA,MACpH,MAAM,IAAI,MAAM,2CAA2C,YAAY,KAAK,KAAK,GAAG,GAAG;AAAA,IAC3F;AAAA,IACA,IAAI,IAAI,gBAAgB;AAAA,MACpB,MAAM,QAAQ,IAAI,eAAe,OAAO,QAAQ;AAAA,MAChD,IAAI,CAAC,OAAO;AAAA,QACR,MAAM,MAAM,YAAY,sCAAsC,qBAC1D,KAAK,WAAW,IAAI,eAAe,MAAM;AAAA,QAC7C,IAAI,KAAK,mBAAmB;AAAA,UACxB,KAAK,OAAO,MAAM,GAAG;AAAA,QAErB;AAAA,gBAAM,IAAI,MAAM,GAAG;AAAA,MAC3B;AAAA,IACJ;AAAA;AAAA,EAEI,+BAAuB;AAAA;;;;ECzH/B,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,8BAA8B,8BAA8B,uBAAoB;AAAA,EACxF,IAAM;AAAA,EACN,IAAM;AAAA,EACN,SAAS,YAAY,CAAC,MAAM,SAAS,YAAY,QAAQ,YAAY,eAAe,gBAAgB;AAAA,IAChG,IAAI,YAAY,aAAa,WAAW,WAAW;AAAA,MAC/C,MAAM,IAAI,MAAM,sDAAsD;AAAA,IAC1E;AAAA,IACA,IAAI,YAAY,WAAW;AAAA,MACvB,MAAM,MAAM,GAAG,OAAO;AAAA,MACtB,OAAO,eAAe,YAChB;AAAA,QACE,QAAQ;AAAA,QACR,YAAa,IAAG,UAAU,KAAM,GAAG,cAAc,GAAG,UAAU,aAAa,OAAO;AAAA,QAClF,eAAe,GAAG,GAAG,iBAAiB;AAAA,MAC1C,IACE;AAAA,QACE,QAAQ,IAAI;AAAA,QACZ,YAAa,IAAG,UAAU,KAAM,GAAG,cAAc,GAAG,UAAU,aAAa,OAAO,KAAK,GAAG,UAAU,aAAa,UAAU;AAAA,QAC3H,eAAe,GAAG,GAAG,iBAAiB,YAAY,GAAG,OAAO,gBAAgB,UAAU;AAAA,MAC1F;AAAA,IACR;AAAA,IACA,IAAI,WAAW,WAAW;AAAA,MACtB,IAAI,eAAe,aAAa,kBAAkB,aAAa,iBAAiB,WAAW;AAAA,QACvF,MAAM,IAAI,MAAM,6EAA6E;AAAA,MACjG;AAAA,MACA,OAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,MAAM,IAAI,MAAM,6CAA6C;AAAA;AAAA,EAEzD,uBAAe;AAAA,EACvB,SAAS,mBAAmB,CAAC,WAAW,MAAM,UAAU,cAAc,QAAQ,MAAM,WAAW,gBAAgB;AAAA,IAC3G,IAAI,SAAS,aAAa,aAAa,WAAW;AAAA,MAC9C,MAAM,IAAI,MAAM,qDAAqD;AAAA,IACzE;AAAA,IACA,QAAQ,QAAQ;AAAA,IAChB,IAAI,aAAa,WAAW;AAAA,MACxB,QAAQ,WAAW,aAAa,SAAS;AAAA,MACzC,MAAM,WAAW,IAAI,IAAI,QAAS,IAAG,UAAU,KAAM,GAAG,QAAQ,GAAG,UAAU,aAAa,QAAQ,KAAK,IAAI;AAAA,MAC3G,iBAAiB,QAAQ;AAAA,MACzB,UAAU,YAAa,IAAG,UAAU,OAAQ,aAAa,GAAG,OAAO,cAAc,UAAU,QAAQ,KAAK,gBAAgB;AAAA,MACxH,UAAU,qBAAsB,IAAG,UAAU,KAAM;AAAA,MACnD,UAAU,cAAc,CAAC,GAAG,aAAa,UAAU,kBAAkB;AAAA,IACzE;AAAA,IACA,IAAI,SAAS,WAAW;AAAA,MACpB,MAAM,WAAW,gBAAgB,UAAU,OAAO,OAAO,IAAI,IAAI,QAAQ,MAAM,IAAI;AAAA,MACnF,iBAAiB,QAAQ;AAAA,MACzB,IAAI,iBAAiB;AAAA,QACjB,UAAU,eAAe;AAAA,IAEjC;AAAA,IACA,IAAI;AAAA,MACA,UAAU,YAAY;AAAA,IAC1B,SAAS,gBAAgB,CAAC,WAAW;AAAA,MACjC,UAAU,OAAO;AAAA,MACjB,UAAU,YAAY,GAAG,YAAY;AAAA,MACrC,UAAU,YAAY,CAAC;AAAA,MACvB,GAAG,oBAAoB,IAAI;AAAA,MAC3B,UAAU,aAAa,GAAG;AAAA,MAC1B,UAAU,YAAY,CAAC,GAAG,GAAG,WAAW,SAAS;AAAA;AAAA;AAAA,EAGjD,8BAAsB;AAAA,EAC9B,SAAS,mBAAmB,CAAC,aAAa,kBAAkB,aAAa,eAAe,cAAc,aAAa;AAAA,IAC/G,IAAI,kBAAkB;AAAA,MAClB,UAAU,gBAAgB;AAAA,IAC9B,IAAI,iBAAiB;AAAA,MACjB,UAAU,eAAe;AAAA,IAC7B,IAAI,cAAc;AAAA,MACd,UAAU,YAAY;AAAA,IAC1B,UAAU,mBAAmB;AAAA,IAC7B,UAAU,cAAc;AAAA;AAAA,EAEpB,8BAAsB;AAAA;;;;ECzE9B,OAAO,UAAU,SAAS,KAAK,CAAC,GAAG,GAAG;AAAA,IACpC,IAAI,MAAM;AAAA,MAAG,OAAO;AAAA,IAEpB,IAAI,KAAK,KAAK,OAAO,KAAK,YAAY,OAAO,KAAK,UAAU;AAAA,MAC1D,IAAI,EAAE,gBAAgB,EAAE;AAAA,QAAa,OAAO;AAAA,MAE5C,IAAI,QAAQ,GAAG;AAAA,MACf,IAAI,MAAM,QAAQ,CAAC,GAAG;AAAA,QACpB,SAAS,EAAE;AAAA,QACX,IAAI,UAAU,EAAE;AAAA,UAAQ,OAAO;AAAA,QAC/B,KAAK,IAAI,OAAQ,QAAQ;AAAA,UACvB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;AAAA,YAAG,OAAO;AAAA,QACjC,OAAO;AAAA,MACT;AAAA,MAIA,IAAI,EAAE,gBAAgB;AAAA,QAAQ,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE;AAAA,MAC5E,IAAI,EAAE,YAAY,OAAO,UAAU;AAAA,QAAS,OAAO,EAAE,QAAQ,MAAM,EAAE,QAAQ;AAAA,MAC7E,IAAI,EAAE,aAAa,OAAO,UAAU;AAAA,QAAU,OAAO,EAAE,SAAS,MAAM,EAAE,SAAS;AAAA,MAEjF,OAAO,OAAO,KAAK,CAAC;AAAA,MACpB,SAAS,KAAK;AAAA,MACd,IAAI,WAAW,OAAO,KAAK,CAAC,EAAE;AAAA,QAAQ,OAAO;AAAA,MAE7C,KAAK,IAAI,OAAQ,QAAQ;AAAA,QACvB,IAAI,CAAC,OAAO,UAAU,eAAe,KAAK,GAAG,KAAK,EAAE;AAAA,UAAG,OAAO;AAAA,MAEhE,KAAK,IAAI,OAAQ,QAAQ,KAAI;AAAA,QAC3B,IAAI,MAAM,KAAK;AAAA,QAEf,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI;AAAA,UAAG,OAAO;AAAA,MACrC;AAAA,MAEA,OAAO;AAAA,IACT;AAAA,IAGA,OAAO,MAAI,KAAK,MAAI;AAAA;AAAA;;;;EC1CtB,IAAI,WAAW,OAAO,UAAU,QAAS,CAAC,QAAQ,MAAM,IAAI;AAAA,IAE1D,IAAI,OAAO,QAAQ,YAAY;AAAA,MAC7B,KAAK;AAAA,MACL,OAAO,CAAC;AAAA,IACV;AAAA,IAEA,KAAK,KAAK,MAAM;AAAA,IAChB,IAAI,MAAO,OAAO,MAAM,aAAc,KAAK,GAAG,OAAO,QAAQ,GAAG;AAAA,IAChE,IAAI,OAAO,GAAG,QAAQ,QAAQ,GAAG;AAAA,IAEjC,UAAU,MAAM,KAAK,MAAM,QAAQ,IAAI,MAAM;AAAA;AAAA,EAI/C,SAAS,WAAW;AAAA,IAClB,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,UAAU;AAAA,IACV,sBAAsB;AAAA,IACtB,eAAe;AAAA,IACf,KAAK;AAAA,IACL,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EAEA,SAAS,gBAAgB;AAAA,IACvB,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AAAA,EAEA,SAAS,gBAAgB;AAAA,IACvB,OAAO;AAAA,IACP,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,mBAAmB;AAAA,IACnB,cAAc;AAAA,EAChB;AAAA,EAEA,SAAS,eAAe;AAAA,IACtB,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,SAAS;AAAA,IACT,SAAS;AAAA,IACT,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,WAAW;AAAA,IACX,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,aAAa;AAAA,IACb,eAAe;AAAA,IACf,eAAe;AAAA,EACjB;AAAA,EAGA,SAAS,SAAS,CAAC,MAAM,KAAK,MAAM,QAAQ,SAAS,YAAY,eAAe,eAAe,cAAc,UAAU;AAAA,IACrH,IAAI,UAAU,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,GAAG;AAAA,MACjE,IAAI,QAAQ,SAAS,YAAY,eAAe,eAAe,cAAc,QAAQ;AAAA,MACrF,SAAS,OAAO,QAAQ;AAAA,QACtB,IAAI,MAAM,OAAO;AAAA,QACjB,IAAI,MAAM,QAAQ,GAAG,GAAG;AAAA,UACtB,IAAI,OAAO,SAAS,eAAe;AAAA,YACjC,SAAS,IAAE,EAAG,IAAE,IAAI,QAAQ;AAAA,cAC1B,UAAU,MAAM,KAAK,MAAM,IAAI,IAAI,UAAU,MAAM,MAAM,MAAM,GAAG,YAAY,SAAS,KAAK,QAAQ,CAAC;AAAA,UACzG;AAAA,QACF,EAAO,SAAI,OAAO,SAAS,eAAe;AAAA,UACxC,IAAI,OAAO,OAAO,OAAO,UAAU;AAAA,YACjC,SAAS,QAAQ;AAAA,cACf,UAAU,MAAM,KAAK,MAAM,IAAI,OAAO,UAAU,MAAM,MAAM,MAAM,cAAc,IAAI,GAAG,YAAY,SAAS,KAAK,QAAQ,IAAI;AAAA,UACjI;AAAA,QACF,EAAO,SAAI,OAAO,SAAS,YAAa,KAAK,WAAW,EAAE,OAAO,SAAS,eAAgB;AAAA,UACxF,UAAU,MAAM,KAAK,MAAM,KAAK,UAAU,MAAM,KAAK,YAAY,SAAS,KAAK,MAAM;AAAA,QACvF;AAAA,MACF;AAAA,MACA,KAAK,QAAQ,SAAS,YAAY,eAAe,eAAe,cAAc,QAAQ;AAAA,IACxF;AAAA;AAAA,EAIF,SAAS,aAAa,CAAC,KAAK;AAAA,IAC1B,OAAO,IAAI,QAAQ,MAAM,IAAI,EAAE,QAAQ,OAAO,IAAI;AAAA;AAAA;;;;EC1FpD,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,wBAAwB,qBAAqB,sBAAsB,uBAAuB,sBAAsB,oBAAiB;AAAA,EACzI,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EAEN,IAAM,iBAAiB,IAAI,IAAI;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAAA,EACD,SAAS,SAAS,CAAC,QAAQ,QAAQ,MAAM;AAAA,IACrC,IAAI,OAAO,UAAU;AAAA,MACjB,OAAO;AAAA,IACX,IAAI,UAAU;AAAA,MACV,OAAO,CAAC,OAAO,MAAM;AAAA,IACzB,IAAI,CAAC;AAAA,MACD,OAAO;AAAA,IACX,OAAO,UAAU,MAAM,KAAK;AAAA;AAAA,EAExB,oBAAY;AAAA,EACpB,IAAM,eAAe,IAAI,IAAI;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAAA,EACD,SAAS,MAAM,CAAC,QAAQ;AAAA,IACpB,WAAW,OAAO,QAAQ;AAAA,MACtB,IAAI,aAAa,IAAI,GAAG;AAAA,QACpB,OAAO;AAAA,MACX,MAAM,MAAM,OAAO;AAAA,MACnB,IAAI,MAAM,QAAQ,GAAG,KAAK,IAAI,KAAK,MAAM;AAAA,QACrC,OAAO;AAAA,MACX,IAAI,OAAO,OAAO,YAAY,OAAO,GAAG;AAAA,QACpC,OAAO;AAAA,IACf;AAAA,IACA,OAAO;AAAA;AAAA,EAEX,SAAS,SAAS,CAAC,QAAQ;AAAA,IACvB,IAAI,QAAQ;AAAA,IACZ,WAAW,OAAO,QAAQ;AAAA,MACtB,IAAI,QAAQ;AAAA,QACR,OAAO;AAAA,MACX;AAAA,MACA,IAAI,eAAe,IAAI,GAAG;AAAA,QACtB;AAAA,MACJ,IAAI,OAAO,OAAO,QAAQ,UAAU;AAAA,SAC/B,GAAG,OAAO,UAAU,OAAO,MAAM,CAAC,QAAS,SAAS,UAAU,GAAG,CAAE;AAAA,MACxE;AAAA,MACA,IAAI,UAAU;AAAA,QACV,OAAO;AAAA,IACf;AAAA,IACA,OAAO;AAAA;AAAA,EAEX,SAAS,WAAW,CAAC,UAAU,KAAK,IAAI,WAAW;AAAA,IAC/C,IAAI,cAAc;AAAA,MACd,KAAK,YAAY,EAAE;AAAA,IACvB,MAAM,IAAI,SAAS,MAAM,EAAE;AAAA,IAC3B,OAAO,aAAa,UAAU,CAAC;AAAA;AAAA,EAE3B,sBAAc;AAAA,EACtB,SAAS,YAAY,CAAC,UAAU,GAAG;AAAA,IAC/B,MAAM,aAAa,SAAS,UAAU,CAAC;AAAA,IACvC,OAAO,WAAW,MAAM,GAAG,EAAE,KAAK;AAAA;AAAA,EAE9B,uBAAe;AAAA,EACvB,IAAM,sBAAsB;AAAA,EAC5B,SAAS,WAAW,CAAC,IAAI;AAAA,IACrB,OAAO,KAAK,GAAG,QAAQ,qBAAqB,EAAE,IAAI;AAAA;AAAA,EAE9C,sBAAc;AAAA,EACtB,SAAS,UAAU,CAAC,UAAU,QAAQ,IAAI;AAAA,IACtC,KAAK,YAAY,EAAE;AAAA,IACnB,OAAO,SAAS,QAAQ,QAAQ,EAAE;AAAA;AAAA,EAE9B,qBAAa;AAAA,EACrB,IAAM,SAAS;AAAA,EACf,SAAS,aAAa,CAAC,QAAQ,QAAQ;AAAA,IACnC,IAAI,OAAO,UAAU;AAAA,MACjB,OAAO,CAAC;AAAA,IACZ,QAAQ,UAAU,gBAAgB,KAAK;AAAA,IACvC,MAAM,QAAQ,YAAY,OAAO,aAAa,MAAM;AAAA,IACpD,MAAM,UAAU,EAAE,IAAI,MAAM;AAAA,IAC5B,MAAM,aAAa,YAAY,aAAa,OAAO,KAAK;AAAA,IACxD,MAAM,YAAY,CAAC;AAAA,IACnB,MAAM,aAAa,IAAI;AAAA,IACvB,SAAS,QAAQ,EAAE,SAAS,KAAK,GAAG,CAAC,KAAK,SAAS,GAAG,kBAAkB;AAAA,MACpE,IAAI,kBAAkB;AAAA,QAClB;AAAA,MACJ,MAAM,WAAW,aAAa;AAAA,MAC9B,IAAI,cAAc,QAAQ;AAAA,MAC1B,IAAI,OAAO,IAAI,aAAa;AAAA,QACxB,cAAc,OAAO,KAAK,MAAM,IAAI,SAAS;AAAA,MACjD,UAAU,KAAK,MAAM,IAAI,OAAO;AAAA,MAChC,UAAU,KAAK,MAAM,IAAI,cAAc;AAAA,MACvC,QAAQ,WAAW;AAAA,MACnB,SAAS,MAAM,CAAC,KAAK;AAAA,QAEjB,MAAM,WAAW,KAAK,KAAK,YAAY;AAAA,QACvC,MAAM,YAAY,cAAc,SAAS,aAAa,GAAG,IAAI,GAAG;AAAA,QAChE,IAAI,WAAW,IAAI,GAAG;AAAA,UAClB,MAAM,SAAS,GAAG;AAAA,QACtB,WAAW,IAAI,GAAG;AAAA,QAClB,IAAI,WAAW,KAAK,KAAK;AAAA,QACzB,IAAI,OAAO,YAAY;AAAA,UACnB,WAAW,KAAK,KAAK;AAAA,QACzB,IAAI,OAAO,YAAY,UAAU;AAAA,UAC7B,iBAAiB,KAAK,SAAS,QAAQ,GAAG;AAAA,QAC9C,EACK,SAAI,QAAQ,YAAY,QAAQ,GAAG;AAAA,UACpC,IAAI,IAAI,OAAO,KAAK;AAAA,YAChB,iBAAiB,KAAK,UAAU,MAAM,GAAG;AAAA,YACzC,UAAU,OAAO;AAAA,UACrB,EACK;AAAA,YACD,KAAK,KAAK,OAAO;AAAA;AAAA,QAEzB;AAAA,QACA,OAAO;AAAA;AAAA,MAEX,SAAS,SAAS,CAAC,QAAQ;AAAA,QACvB,IAAI,OAAO,UAAU,UAAU;AAAA,UAC3B,IAAI,CAAC,OAAO,KAAK,MAAM;AAAA,YACnB,MAAM,IAAI,MAAM,mBAAmB,SAAS;AAAA,UAChD,OAAO,KAAK,MAAM,IAAI,QAAQ;AAAA,QAClC;AAAA;AAAA,KAEP;AAAA,IACD,OAAO;AAAA,IACP,SAAS,gBAAgB,CAAC,MAAM,MAAM,KAAK;AAAA,MACvC,IAAI,SAAS,aAAa,CAAC,MAAM,MAAM,IAAI;AAAA,QACvC,MAAM,SAAS,GAAG;AAAA;AAAA,IAE1B,SAAS,QAAQ,CAAC,KAAK;AAAA,MACnB,OAAO,IAAI,MAAM,cAAc,uCAAuC;AAAA;AAAA;AAAA,EAGtE,wBAAgB;AAAA;;;;ECxJxB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,kBAAkB,qBAAqB,+BAA4B;AAAA,EAC3E,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EAEN,SAAS,oBAAoB,CAAC,IAAI;AAAA,IAC9B,IAAI,YAAY,EAAE,GAAG;AAAA,MACjB,cAAc,EAAE;AAAA,MAChB,IAAI,kBAAkB,EAAE,GAAG;AAAA,QACvB,iBAAiB,EAAE;AAAA,QACnB;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,iBAAiB,IAAI,OAAO,GAAG,aAAa,sBAAsB,EAAE,CAAC;AAAA;AAAA,EAEjE,+BAAuB;AAAA,EAC/B,SAAS,gBAAgB,GAAG,KAAK,cAAc,QAAQ,WAAW,QAAQ,MAAM;AAAA,IAC5E,IAAI,KAAK,KAAK,KAAK;AAAA,MACf,IAAI,KAAK,cAAe,IAAG,UAAU,KAAM,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,UAAU,UAAU,QAAQ,MAAM;AAAA,QAClH,IAAI,KAAM,IAAG,UAAU,mBAAoB,cAAc,QAAQ,IAAI,GAAG;AAAA,QACxE,qBAAqB,KAAK,IAAI;AAAA,QAC9B,IAAI,KAAK,IAAI;AAAA,OAChB;AAAA,IACL,EACK;AAAA,MACD,IAAI,KAAK,cAAe,IAAG,UAAU,KAAM,QAAQ,QAAQ,SAAS,kBAAkB,IAAI,KAAK,UAAU,QAAQ,MAAM,IAAI,KAAK,cAAc,QAAQ,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA,EAG/K,SAAS,iBAAiB,CAAC,MAAM;AAAA,IAC7B,OAAQ,IAAG,UAAU,MAAO,QAAQ,QAAQ,oBAAoB,QAAQ,QAAQ,eAAe,QAAQ,QAAQ,uBAAuB,QAAQ,QAAQ,YAAY,QAAQ,QAAQ,OAAO,KAAK,aAAc,IAAG,UAAU,OAAQ,QAAQ,QAAQ,sBAAsB,UAAU;AAAA;AAAA,EAErR,SAAS,oBAAoB,CAAC,KAAK,MAAM;AAAA,IACrC,IAAI,GAAG,QAAQ,QAAQ,QAAQ,MAAM;AAAA,MACjC,IAAI,IAAI,QAAQ,QAAQ,cAAe,IAAG,UAAU,KAAM,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,cAAc;AAAA,MAClH,IAAI,IAAI,QAAQ,QAAQ,YAAa,IAAG,UAAU,KAAM,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,YAAY;AAAA,MAC9G,IAAI,IAAI,QAAQ,QAAQ,oBAAqB,IAAG,UAAU,KAAM,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,oBAAoB;AAAA,MAC9H,IAAI,IAAI,QAAQ,QAAQ,UAAW,IAAG,UAAU,KAAM,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU;AAAA,MAC1G,IAAI,KAAK;AAAA,QACL,IAAI,IAAI,QAAQ,QAAQ,gBAAiB,IAAG,UAAU,KAAM,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,gBAAgB;AAAA,OAC3H,MAAM;AAAA,MACL,IAAI,IAAI,QAAQ,QAAQ,cAAe,IAAG,UAAU,MAAO;AAAA,MAC3D,IAAI,IAAI,QAAQ,QAAQ,YAAa,IAAG,UAAU,aAAc;AAAA,MAChE,IAAI,IAAI,QAAQ,QAAQ,oBAAqB,IAAG,UAAU,aAAc;AAAA,MACxE,IAAI,IAAI,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,IAAI;AAAA,MACtD,IAAI,KAAK;AAAA,QACL,IAAI,IAAI,QAAQ,QAAQ,gBAAiB,IAAG,UAAU,MAAO;AAAA,KACpE;AAAA;AAAA,EAEL,SAAS,gBAAgB,CAAC,IAAI;AAAA,IAC1B,QAAQ,QAAQ,MAAM,QAAQ;AAAA,IAC9B,iBAAiB,IAAI,MAAM;AAAA,MACvB,IAAI,KAAK,YAAY,OAAO;AAAA,QACxB,eAAe,EAAE;AAAA,MACrB,eAAe,EAAE;AAAA,MACjB,IAAI,IAAI,QAAQ,QAAQ,SAAS,IAAI;AAAA,MACrC,IAAI,IAAI,QAAQ,QAAQ,QAAQ,CAAC;AAAA,MACjC,IAAI,KAAK;AAAA,QACL,eAAe,EAAE;AAAA,MACrB,gBAAgB,EAAE;AAAA,MAClB,cAAc,EAAE;AAAA,KACnB;AAAA,IACD;AAAA;AAAA,EAEJ,SAAS,cAAc,CAAC,IAAI;AAAA,IAExB,QAAQ,KAAK,iBAAiB;AAAA,IAC9B,GAAG,YAAY,IAAI,MAAM,aAAc,IAAG,UAAU,KAAM,wBAAwB;AAAA,IAClF,IAAI,GAAI,IAAG,UAAU,KAAM,GAAG,0BAA0B,MAAM,IAAI,OAAQ,IAAG,UAAU,KAAM,GAAG,mBAAoB,IAAG,UAAU,aAAc,CAAC;AAAA,IAChJ,IAAI,GAAI,IAAG,UAAU,KAAM,GAAG,0BAA0B,MAAM,IAAI,OAAQ,IAAG,UAAU,KAAM,GAAG,mBAAoB,IAAG,UAAU,aAAc,CAAC;AAAA;AAAA,EAEpJ,SAAS,aAAa,CAAC,QAAQ,MAAM;AAAA,IACjC,MAAM,QAAQ,OAAO,UAAU,YAAY,OAAO,KAAK;AAAA,IACvD,OAAO,UAAU,KAAK,KAAK,UAAU,KAAK,KAAK,WAAY,IAAG,UAAU,mBAAoB,aAAa,UAAU;AAAA;AAAA,EAGvH,SAAS,aAAa,CAAC,IAAI,OAAO;AAAA,IAC9B,IAAI,YAAY,EAAE,GAAG;AAAA,MACjB,cAAc,EAAE;AAAA,MAChB,IAAI,kBAAkB,EAAE,GAAG;AAAA,QACvB,iBAAiB,IAAI,KAAK;AAAA,QAC1B;AAAA,MACJ;AAAA,IACJ;AAAA,KACC,GAAG,aAAa,mBAAmB,IAAI,KAAK;AAAA;AAAA,EAEjD,SAAS,iBAAiB,GAAG,QAAQ,QAAQ;AAAA,IACzC,IAAI,OAAO,UAAU;AAAA,MACjB,OAAO,CAAC;AAAA,IACZ,WAAW,OAAO;AAAA,MACd,IAAI,KAAK,MAAM,IAAI;AAAA,QACf,OAAO;AAAA,IACf,OAAO;AAAA;AAAA,EAEX,SAAS,WAAW,CAAC,IAAI;AAAA,IACrB,OAAO,OAAO,GAAG,UAAU;AAAA;AAAA,EAE/B,SAAS,gBAAgB,CAAC,IAAI,OAAO;AAAA,IACjC,QAAQ,QAAQ,KAAK,SAAS;AAAA,IAC9B,IAAI,KAAK,YAAY,OAAO;AAAA,MACxB,eAAe,EAAE;AAAA,IACrB,cAAc,EAAE;AAAA,IAChB,iBAAiB,EAAE;AAAA,IACnB,MAAM,YAAY,IAAI,MAAM,SAAS,QAAQ,QAAQ,MAAM;AAAA,IAC3D,gBAAgB,IAAI,SAAS;AAAA,IAE7B,IAAI,IAAI,OAAQ,IAAG,UAAU,KAAM,iBAAiB,QAAQ,QAAQ,QAAQ;AAAA;AAAA,EAEhF,SAAS,aAAa,CAAC,IAAI;AAAA,KACtB,GAAG,OAAO,mBAAmB,EAAE;AAAA,IAChC,qBAAqB,EAAE;AAAA;AAAA,EAE3B,SAAS,eAAe,CAAC,IAAI,WAAW;AAAA,IACpC,IAAI,GAAG,KAAK;AAAA,MACR,OAAO,eAAe,IAAI,CAAC,GAAG,OAAO,SAAS;AAAA,IAClD,MAAM,UAAS,GAAG,WAAW,gBAAgB,GAAG,MAAM;AAAA,IACtD,MAAM,gBAAgB,GAAG,WAAW,wBAAwB,IAAI,MAAK;AAAA,IACrE,eAAe,IAAI,QAAO,CAAC,cAAc,SAAS;AAAA;AAAA,EAEtD,SAAS,oBAAoB,CAAC,IAAI;AAAA,IAC9B,QAAQ,QAAQ,eAAe,MAAM,SAAS;AAAA,IAC9C,IAAI,OAAO,QAAQ,KAAK,0BAA0B,GAAG,OAAO,sBAAsB,QAAQ,KAAK,KAAK,GAAG;AAAA,MACnG,KAAK,OAAO,KAAK,6CAA6C,gBAAgB;AAAA,IAClF;AAAA;AAAA,EAEJ,SAAS,cAAc,CAAC,IAAI;AAAA,IACxB,QAAQ,QAAQ,SAAS;AAAA,IACzB,IAAI,OAAO,YAAY,aAAa,KAAK,eAAe,KAAK,cAAc;AAAA,OACtE,GAAG,OAAO,iBAAiB,IAAI,uCAAuC;AAAA,IAC3E;AAAA;AAAA,EAEJ,SAAS,aAAa,CAAC,IAAI;AAAA,IACvB,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK;AAAA,IAChC,IAAI;AAAA,MACA,GAAG,UAAU,GAAG,UAAU,YAAY,GAAG,KAAK,aAAa,GAAG,QAAQ,KAAK;AAAA;AAAA,EAEnF,SAAS,gBAAgB,CAAC,IAAI;AAAA,IAC1B,IAAI,GAAG,OAAO,UAAU,CAAC,GAAG,UAAU;AAAA,MAClC,MAAM,IAAI,MAAM,6BAA6B;AAAA;AAAA,EAErD,SAAS,cAAc,GAAG,KAAK,WAAW,QAAQ,eAAe,QAAQ;AAAA,IACrE,MAAM,MAAM,OAAO;AAAA,IACnB,IAAI,KAAK,aAAa,MAAM;AAAA,MACxB,IAAI,KAAM,IAAG,UAAU,KAAM,QAAQ,QAAQ,mBAAmB,MAAM;AAAA,IAC1E,EACK,SAAI,OAAO,KAAK,YAAY,YAAY;AAAA,MACzC,MAAM,aAAc,IAAG,UAAU,OAAQ;AAAA,MACzC,MAAM,WAAW,IAAI,WAAW,QAAQ,EAAE,KAAK,UAAU,KAAK,CAAC;AAAA,MAC/D,IAAI,KAAM,IAAG,UAAU,KAAM,QAAQ,QAAQ,sBAAsB,QAAQ,eAAe,kBAAkB;AAAA,IAChH;AAAA;AAAA,EAEJ,SAAS,aAAa,CAAC,IAAI;AAAA,IACvB,QAAQ,KAAK,WAAW,cAAc,iBAAiB,SAAS;AAAA,IAChE,IAAI,UAAU,QAAQ;AAAA,MAElB,IAAI,GAAI,IAAG,UAAU,KAAM,QAAQ,QAAQ,gBAAgB,MAAM,IAAI,OAAO,QAAQ,QAAQ,IAAI,GAAG,MAAM,IAAI,MAAO,IAAG,UAAU,SAAU,mBAAmB,QAAQ,QAAQ,UAAU,CAAC;AAAA,IAC7L,EACK;AAAA,MACD,IAAI,OAAQ,IAAG,UAAU,KAAM,uBAAuB,QAAQ,QAAQ,OAAO;AAAA,MAC7E,IAAI,KAAK;AAAA,QACL,gBAAgB,EAAE;AAAA,MACtB,IAAI,OAAQ,IAAG,UAAU,KAAM,QAAQ,QAAQ,cAAc;AAAA;AAAA;AAAA,EAGrE,SAAS,eAAe,GAAG,KAAK,WAAW,OAAO,SAAS;AAAA,IACvD,IAAI,iBAAiB,UAAU;AAAA,MAC3B,IAAI,OAAQ,IAAG,UAAU,KAAM,mBAAmB,KAAK;AAAA,IAC3D,IAAI,iBAAiB,UAAU;AAAA,MAC3B,IAAI,OAAQ,IAAG,UAAU,KAAM,mBAAmB,KAAK;AAAA;AAAA,EAE/D,SAAS,cAAc,CAAC,IAAI,QAAO,YAAY,WAAW;AAAA,IACtD,QAAQ,KAAK,QAAQ,MAAM,WAAW,MAAM,SAAS;AAAA,IACrD,QAAQ,UAAU;AAAA,IAClB,IAAI,OAAO,SAAS,KAAK,yBAAyB,EAAE,GAAG,OAAO,sBAAsB,QAAQ,KAAK,IAAI;AAAA,MACjG,IAAI,MAAM,MAAM,YAAY,IAAI,QAAQ,MAAM,IAAI,KAAK,UAAU,CAAC;AAAA,MAClE;AAAA,IACJ;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,iBAAiB,IAAI,MAAK;AAAA,IAC9B,IAAI,MAAM,MAAM;AAAA,MACZ,WAAW,SAAS,MAAM;AAAA,QACtB,cAAc,KAAK;AAAA,MACvB,cAAc,MAAM,IAAI;AAAA,KAC3B;AAAA,IACD,SAAS,aAAa,CAAC,OAAO;AAAA,MAC1B,IAAI,EAAE,GAAG,gBAAgB,gBAAgB,QAAQ,KAAK;AAAA,QAClD;AAAA,MACJ,IAAI,MAAM,MAAM;AAAA,QACZ,IAAI,IAAI,GAAG,WAAW,eAAe,MAAM,MAAM,MAAM,KAAK,aAAa,CAAC;AAAA,QAC1E,gBAAgB,IAAI,KAAK;AAAA,QACzB,IAAI,OAAM,WAAW,KAAK,OAAM,OAAO,MAAM,QAAQ,YAAY;AAAA,UAC7D,IAAI,KAAK;AAAA,WACR,GAAG,WAAW,iBAAiB,EAAE;AAAA,QACtC;AAAA,QACA,IAAI,MAAM;AAAA,MACd,EACK;AAAA,QACD,gBAAgB,IAAI,KAAK;AAAA;AAAA,MAG7B,IAAI,CAAC;AAAA,QACD,IAAI,GAAI,IAAG,UAAU,KAAM,QAAQ,QAAQ,cAAc,aAAa,GAAG;AAAA;AAAA;AAAA,EAGrF,SAAS,eAAe,CAAC,IAAI,OAAO;AAAA,IAChC,QAAQ,KAAK,QAAQ,QAAQ,kBAAmB;AAAA,IAChD,IAAI;AAAA,OACC,GAAG,WAAW,gBAAgB,IAAI,MAAM,IAAI;AAAA,IACjD,IAAI,MAAM,MAAM;AAAA,MACZ,WAAW,QAAQ,MAAM,OAAO;AAAA,QAC5B,KAAK,GAAG,gBAAgB,eAAe,QAAQ,IAAI,GAAG;AAAA,UAClD,YAAY,IAAI,KAAK,SAAS,KAAK,YAAY,MAAM,IAAI;AAAA,QAC7D;AAAA,MACJ;AAAA,KACH;AAAA;AAAA,EAEL,SAAS,gBAAgB,CAAC,IAAI,QAAO;AAAA,IACjC,IAAI,GAAG,UAAU,QAAQ,CAAC,GAAG,KAAK;AAAA,MAC9B;AAAA,IACJ,kBAAkB,IAAI,MAAK;AAAA,IAC3B,IAAI,CAAC,GAAG,KAAK;AAAA,MACT,mBAAmB,IAAI,MAAK;AAAA,IAChC,kBAAkB,IAAI,GAAG,SAAS;AAAA;AAAA,EAEtC,SAAS,iBAAiB,CAAC,IAAI,QAAO;AAAA,IAClC,IAAI,CAAC,OAAM;AAAA,MACP;AAAA,IACJ,IAAI,CAAC,GAAG,UAAU,QAAQ;AAAA,MACtB,GAAG,YAAY;AAAA,MACf;AAAA,IACJ;AAAA,IACA,OAAM,QAAQ,CAAC,MAAM;AAAA,MACjB,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG;AAAA,QAChC,iBAAiB,IAAI,SAAS,8BAA8B,GAAG,UAAU,KAAK,GAAG,IAAI;AAAA,MACzF;AAAA,KACH;AAAA,IACD,kBAAkB,IAAI,MAAK;AAAA;AAAA,EAE/B,SAAS,kBAAkB,CAAC,IAAI,IAAI;AAAA,IAChC,IAAI,GAAG,SAAS,KAAK,EAAE,GAAG,WAAW,KAAK,GAAG,SAAS,MAAM,IAAI;AAAA,MAC5D,iBAAiB,IAAI,iDAAiD;AAAA,IAC1E;AAAA;AAAA,EAEJ,SAAS,iBAAiB,CAAC,IAAI,IAAI;AAAA,IAC/B,MAAM,QAAQ,GAAG,KAAK,MAAM;AAAA,IAC5B,WAAW,WAAW,OAAO;AAAA,MACzB,MAAM,OAAO,MAAM;AAAA,MACnB,IAAI,OAAO,QAAQ,aAAa,GAAG,gBAAgB,eAAe,GAAG,QAAQ,IAAI,GAAG;AAAA,QAChF,QAAQ,SAAS,KAAK;AAAA,QACtB,IAAI,KAAK,UAAU,CAAC,KAAK,KAAK,CAAC,MAAM,kBAAkB,IAAI,CAAC,CAAC,GAAG;AAAA,UAC5D,iBAAiB,IAAI,iBAAiB,KAAK,KAAK,GAAG,mBAAmB,UAAU;AAAA,QACpF;AAAA,MACJ;AAAA,IACJ;AAAA;AAAA,EAEJ,SAAS,iBAAiB,CAAC,OAAO,MAAM;AAAA,IACpC,OAAO,MAAM,SAAS,IAAI,KAAM,SAAS,YAAY,MAAM,SAAS,SAAS;AAAA;AAAA,EAEjF,SAAS,YAAY,CAAC,IAAI,GAAG;AAAA,IACzB,OAAO,GAAG,SAAS,CAAC,KAAM,MAAM,aAAa,GAAG,SAAS,QAAQ;AAAA;AAAA,EAErE,SAAS,iBAAiB,CAAC,IAAI,WAAW;AAAA,IACtC,MAAM,KAAK,CAAC;AAAA,IACZ,WAAW,KAAK,GAAG,WAAW;AAAA,MAC1B,IAAI,aAAa,WAAW,CAAC;AAAA,QACzB,GAAG,KAAK,CAAC;AAAA,MACR,SAAI,UAAU,SAAS,SAAS,KAAK,MAAM;AAAA,QAC5C,GAAG,KAAK,SAAS;AAAA,IACzB;AAAA,IACA,GAAG,YAAY;AAAA;AAAA,EAEnB,SAAS,gBAAgB,CAAC,IAAI,KAAK;AAAA,IAC/B,MAAM,aAAa,GAAG,UAAU,SAAS,GAAG;AAAA,IAC5C,OAAO,QAAQ;AAAA,KACd,GAAG,OAAO,iBAAiB,IAAI,KAAK,GAAG,KAAK,WAAW;AAAA;AAAA;AAAA,EAE5D,MAAM,WAAW;AAAA,IACb,WAAW,CAAC,IAAI,KAAK,SAAS;AAAA,OACzB,GAAG,UAAU,sBAAsB,IAAI,KAAK,OAAO;AAAA,MACpD,KAAK,MAAM,GAAG;AAAA,MACd,KAAK,YAAY,GAAG;AAAA,MACpB,KAAK,UAAU;AAAA,MACf,KAAK,OAAO,GAAG;AAAA,MACf,KAAK,SAAS,GAAG,OAAO;AAAA,MACxB,KAAK,QAAQ,IAAI,SAAS,GAAG,KAAK,SAAS,KAAK,UAAU,KAAK,OAAO;AAAA,MACtE,KAAK,eAAe,GAAG,OAAO,gBAAgB,IAAI,KAAK,QAAQ,SAAS,KAAK,KAAK;AAAA,MAClF,KAAK,aAAa,IAAI;AAAA,MACtB,KAAK,eAAe,GAAG;AAAA,MACvB,KAAK,SAAS,CAAC;AAAA,MACf,KAAK,KAAK;AAAA,MACV,KAAK,MAAM;AAAA,MACX,IAAI,KAAK,OAAO;AAAA,QACZ,KAAK,aAAa,GAAG,IAAI,MAAM,WAAW,QAAQ,KAAK,OAAO,EAAE,CAAC;AAAA,MACrE,EACK;AAAA,QACD,KAAK,aAAa,KAAK;AAAA,QACvB,IAAI,EAAE,GAAG,UAAU,iBAAiB,KAAK,QAAQ,IAAI,YAAY,IAAI,cAAc,GAAG;AAAA,UAClF,MAAM,IAAI,MAAM,GAAG,yBAAyB,KAAK,UAAU,IAAI,UAAU,GAAG;AAAA,QAChF;AAAA;AAAA,MAEJ,IAAI,UAAU,MAAM,IAAI,cAAc,IAAI,WAAW,OAAO;AAAA,QACxD,KAAK,YAAY,GAAG,IAAI,MAAM,SAAS,QAAQ,QAAQ,MAAM;AAAA,MACjE;AAAA;AAAA,IAEJ,MAAM,CAAC,WAAW,eAAe,YAAY;AAAA,MACzC,KAAK,YAAY,GAAG,UAAU,KAAK,SAAS,GAAG,eAAe,UAAU;AAAA;AAAA,IAE5E,UAAU,CAAC,WAAW,eAAe,YAAY;AAAA,MAC7C,KAAK,IAAI,GAAG,SAAS;AAAA,MACrB,IAAI;AAAA,QACA,WAAW;AAAA,MAEX;AAAA,aAAK,MAAM;AAAA,MACf,IAAI,eAAe;AAAA,QACf,KAAK,IAAI,KAAK;AAAA,QACd,cAAc;AAAA,QACd,IAAI,KAAK;AAAA,UACL,KAAK,IAAI,MAAM;AAAA,MACvB,EACK;AAAA,QACD,IAAI,KAAK;AAAA,UACL,KAAK,IAAI,MAAM;AAAA,QAEf;AAAA,eAAK,IAAI,KAAK;AAAA;AAAA;AAAA,IAG1B,IAAI,CAAC,WAAW,YAAY;AAAA,MACxB,KAAK,YAAY,GAAG,UAAU,KAAK,SAAS,GAAG,WAAW,UAAU;AAAA;AAAA,IAExE,IAAI,CAAC,WAAW;AAAA,MACZ,IAAI,cAAc,WAAW;AAAA,QACzB,KAAK,MAAM;AAAA,QACX,IAAI,CAAC,KAAK;AAAA,UACN,KAAK,IAAI,GAAG,KAAK;AAAA,QACrB;AAAA,MACJ;AAAA,MACA,KAAK,IAAI,GAAG,SAAS;AAAA,MACrB,KAAK,MAAM;AAAA,MACX,IAAI,KAAK;AAAA,QACL,KAAK,IAAI,MAAM;AAAA,MAEf;AAAA,aAAK,IAAI,KAAK;AAAA;AAAA,IAEtB,SAAS,CAAC,WAAW;AAAA,MACjB,IAAI,CAAC,KAAK;AAAA,QACN,OAAO,KAAK,KAAK,SAAS;AAAA,MAC9B,QAAQ,eAAe;AAAA,MACvB,KAAK,KAAM,IAAG,UAAU,KAAM,iCAAiC,GAAG,UAAU,IAAI,KAAK,aAAa,GAAG,SAAS,IAAI;AAAA;AAAA,IAEtH,KAAK,CAAC,QAAQ,aAAa,YAAY;AAAA,MACnC,IAAI,aAAa;AAAA,QACb,KAAK,UAAU,WAAW;AAAA,QAC1B,KAAK,OAAO,QAAQ,UAAU;AAAA,QAC9B,KAAK,UAAU,CAAC,CAAC;AAAA,QACjB;AAAA,MACJ;AAAA,MACA,KAAK,OAAO,QAAQ,UAAU;AAAA;AAAA,IAElC,MAAM,CAAC,QAAQ,YAAY;AAAA,OAEtB,SAAS,SAAS,mBAAmB,SAAS,aAAa,MAAM,KAAK,IAAI,OAAO,UAAU;AAAA;AAAA,IAEhG,UAAU,GAAG;AAAA,OACR,GAAG,SAAS,aAAa,MAAM,KAAK,IAAI,cAAc,SAAS,iBAAiB;AAAA;AAAA,IAErF,KAAK,GAAG;AAAA,MACJ,IAAI,KAAK,cAAc;AAAA,QACnB,MAAM,IAAI,MAAM,yCAAyC;AAAA,OAC5D,GAAG,SAAS,kBAAkB,KAAK,KAAK,KAAK,SAAS;AAAA;AAAA,IAE3D,EAAE,CAAC,MAAM;AAAA,MACL,IAAI,CAAC,KAAK;AAAA,QACN,KAAK,IAAI,GAAG,IAAI;AAAA;AAAA,IAExB,SAAS,CAAC,KAAK,QAAQ;AAAA,MACnB,IAAI;AAAA,QACA,OAAO,OAAO,KAAK,QAAQ,GAAG;AAAA,MAE9B;AAAA,aAAK,SAAS;AAAA;AAAA,IAEtB,UAAU,CAAC,OAAO,WAAW,aAAa,UAAU,KAAK;AAAA,MACrD,KAAK,IAAI,MAAM,MAAM;AAAA,QACjB,KAAK,WAAW,OAAO,UAAU;AAAA,QACjC,UAAU;AAAA,OACb;AAAA;AAAA,IAEL,UAAU,CAAC,QAAQ,UAAU,KAAK,aAAa,UAAU,KAAK;AAAA,MAC1D,IAAI,CAAC,KAAK;AAAA,QACN;AAAA,MACJ,QAAQ,KAAK,YAAY,YAAY,QAAQ;AAAA,MAC7C,IAAI,IAAI,GAAG,UAAU,IAAK,IAAG,UAAU,KAAM,4BAA4B,UAAU,CAAC;AAAA,MACpF,IAAI,UAAU,UAAU;AAAA,QACpB,IAAI,OAAO,OAAO,IAAI;AAAA,MAC1B,IAAI,WAAW,UAAU,IAAI,gBAAgB;AAAA,QACzC,IAAI,OAAO,KAAK,aAAa,CAAC;AAAA,QAC9B,KAAK,WAAW;AAAA,QAChB,IAAI,UAAU,UAAU;AAAA,UACpB,IAAI,OAAO,OAAO,KAAK;AAAA,MAC/B;AAAA,MACA,IAAI,KAAK;AAAA;AAAA,IAEb,YAAY,GAAG;AAAA,MACX,QAAQ,KAAK,YAAY,YAAY,KAAK,OAAO;AAAA,MACjD,QAAQ,GAAG,UAAU,IAAI,eAAe,GAAG,mBAAmB,CAAC;AAAA,MAC/D,SAAS,cAAc,GAAG;AAAA,QACtB,IAAI,WAAW,QAAQ;AAAA,UAEnB,IAAI,EAAE,sBAAsB,UAAU;AAAA,YAClC,MAAM,IAAI,MAAM,0BAA0B;AAAA,UAC9C,MAAM,KAAK,MAAM,QAAQ,UAAU,IAAI,aAAa,CAAC,UAAU;AAAA,UAC/D,OAAQ,IAAG,UAAU,MAAO,GAAG,WAAW,gBAAgB,IAAI,YAAY,GAAG,KAAK,eAAe,WAAW,SAAS,KAAK;AAAA,QAC9H;AAAA,QACA,OAAO,UAAU;AAAA;AAAA,MAErB,SAAS,kBAAkB,GAAG;AAAA,QAC1B,IAAI,IAAI,gBAAgB;AAAA,UACpB,MAAM,oBAAoB,IAAI,WAAW,iBAAiB,EAAE,KAAK,IAAI,eAAe,CAAC;AAAA,UACrF,OAAQ,IAAG,UAAU,MAAO,qBAAqB;AAAA,QACrD;AAAA,QACA,OAAO,UAAU;AAAA;AAAA;AAAA,IAGzB,SAAS,CAAC,MAAM,OAAO;AAAA,MACnB,MAAM,aAAa,GAAG,YAAY,cAAc,KAAK,IAAI,IAAI;AAAA,OAC5D,GAAG,YAAY,qBAAqB,WAAW,KAAK,IAAI,IAAI;AAAA,OAC5D,GAAG,YAAY,qBAAqB,WAAW,IAAI;AAAA,MACpD,MAAM,cAAc,KAAK,KAAK,OAAO,WAAW,OAAO,WAAW,OAAO,UAAU;AAAA,MACnF,cAAc,aAAa,KAAK;AAAA,MAChC,OAAO;AAAA;AAAA,IAEX,cAAc,CAAC,WAAW,QAAQ;AAAA,MAC9B,QAAQ,IAAI,QAAQ;AAAA,MACpB,IAAI,CAAC,GAAG,KAAK;AAAA,QACT;AAAA,MACJ,IAAI,GAAG,UAAU,QAAQ,UAAU,UAAU,WAAW;AAAA,QACpD,GAAG,QAAQ,OAAO,eAAe,MAAM,KAAK,UAAU,OAAO,GAAG,OAAO,MAAM;AAAA,MACjF;AAAA,MACA,IAAI,GAAG,UAAU,QAAQ,UAAU,UAAU,WAAW;AAAA,QACpD,GAAG,QAAQ,OAAO,eAAe,MAAM,KAAK,UAAU,OAAO,GAAG,OAAO,MAAM;AAAA,MACjF;AAAA;AAAA,IAEJ,mBAAmB,CAAC,WAAW,OAAO;AAAA,MAClC,QAAQ,IAAI,QAAQ;AAAA,MACpB,IAAI,GAAG,KAAK,gBAAgB,GAAG,UAAU,QAAQ,GAAG,UAAU,OAAO;AAAA,QACjE,IAAI,GAAG,OAAO,MAAM,KAAK,eAAe,WAAW,UAAU,IAAI,CAAC;AAAA,QAClE,OAAO;AAAA,MACX;AAAA;AAAA,EAER;AAAA,EACQ,qBAAa;AAAA,EACrB,SAAS,WAAW,CAAC,IAAI,SAAS,KAAK,UAAU;AAAA,IAC7C,MAAM,MAAM,IAAI,WAAW,IAAI,KAAK,OAAO;AAAA,IAC3C,IAAI,UAAU,KAAK;AAAA,MACf,IAAI,KAAK,KAAK,QAAQ;AAAA,IAC1B,EACK,SAAI,IAAI,SAAS,IAAI,UAAU;AAAA,OAC/B,GAAG,UAAU,iBAAiB,KAAK,GAAG;AAAA,IAC3C,EACK,SAAI,WAAW,KAAK;AAAA,OACpB,GAAG,UAAU,kBAAkB,KAAK,GAAG;AAAA,IAC5C,EACK,SAAI,IAAI,WAAW,IAAI,UAAU;AAAA,OACjC,GAAG,UAAU,iBAAiB,KAAK,GAAG;AAAA,IAC3C;AAAA;AAAA,EAEJ,IAAM,eAAe;AAAA,EACrB,IAAM,wBAAwB;AAAA,EAC9B,SAAS,OAAO,CAAC,SAAS,WAAW,WAAW,eAAe;AAAA,IAC3D,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI,UAAU;AAAA,MACV,OAAO,QAAQ,QAAQ;AAAA,IAC3B,IAAI,MAAM,OAAO,KAAK;AAAA,MAClB,IAAI,CAAC,aAAa,KAAK,KAAK;AAAA,QACxB,MAAM,IAAI,MAAM,yBAAyB,OAAO;AAAA,MACpD,cAAc;AAAA,MACd,OAAO,QAAQ,QAAQ;AAAA,IAC3B,EACK;AAAA,MACD,MAAM,UAAU,sBAAsB,KAAK,KAAK;AAAA,MAChD,IAAI,CAAC;AAAA,QACD,MAAM,IAAI,MAAM,yBAAyB,OAAO;AAAA,MACpD,MAAM,KAAK,CAAC,QAAQ;AAAA,MACpB,cAAc,QAAQ;AAAA,MACtB,IAAI,gBAAgB,KAAK;AAAA,QACrB,IAAI,MAAM;AAAA,UACN,MAAM,IAAI,MAAM,SAAS,kBAAkB,EAAE,CAAC;AAAA,QAClD,OAAO,YAAY,YAAY;AAAA,MACnC;AAAA,MACA,IAAI,KAAK;AAAA,QACL,MAAM,IAAI,MAAM,SAAS,QAAQ,EAAE,CAAC;AAAA,MACxC,OAAO,UAAU,YAAY;AAAA,MAC7B,IAAI,CAAC;AAAA,QACD,OAAO;AAAA;AAAA,IAEf,IAAI,OAAO;AAAA,IACX,MAAM,WAAW,YAAY,MAAM,GAAG;AAAA,IACtC,WAAW,WAAW,UAAU;AAAA,MAC5B,IAAI,SAAS;AAAA,QACT,OAAQ,IAAG,UAAU,KAAM,QAAQ,GAAG,UAAU,cAAc,GAAG,OAAO,qBAAqB,OAAO,CAAC;AAAA,QACrG,OAAQ,IAAG,UAAU,KAAM,WAAW;AAAA,MAC1C;AAAA,IACJ;AAAA,IACA,OAAO;AAAA,IACP,SAAS,QAAQ,CAAC,aAAa,IAAI;AAAA,MAC/B,OAAO,iBAAiB,eAAe,kCAAkC;AAAA;AAAA;AAAA,EAGzE,kBAAU;AAAA;;;;ECrgBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA;AAAA,EAC5D,MAAM,wBAAwB,MAAM;AAAA,IAChC,WAAW,CAAC,QAAQ;AAAA,MAChB,MAAM,mBAAmB;AAAA,MACzB,KAAK,SAAS;AAAA,MACd,KAAK,MAAM,KAAK,aAAa;AAAA;AAAA,EAErC;AAAA,EACQ,kBAAU;AAAA;;;;ECRlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA;AAAA,EACN,MAAM,wBAAwB,MAAM;AAAA,IAChC,WAAW,CAAC,UAAU,QAAQ,KAAK,KAAK;AAAA,MACpC,MAAM,OAAO,2BAA2B,eAAe,QAAQ;AAAA,MAC/D,KAAK,cAAc,GAAG,UAAU,YAAY,UAAU,QAAQ,GAAG;AAAA,MACjE,KAAK,iBAAiB,GAAG,UAAU,cAAc,GAAG,UAAU,aAAa,UAAU,KAAK,UAAU,CAAC;AAAA;AAAA,EAE7G;AAAA,EACQ,kBAAU;AAAA;;;;ECTlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,wBAAwB,6BAA6B,qBAAqB,wBAAwB,oBAAiB;AAAA,EAC3H,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA;AAAA,EACN,MAAM,UAAU;AAAA,IACZ,WAAW,CAAC,KAAK;AAAA,MACb,IAAI;AAAA,MACJ,KAAK,OAAO,CAAC;AAAA,MACb,KAAK,iBAAiB,CAAC;AAAA,MACvB,IAAI;AAAA,MACJ,IAAI,OAAO,IAAI,UAAU;AAAA,QACrB,SAAS,IAAI;AAAA,MACjB,KAAK,SAAS,IAAI;AAAA,MAClB,KAAK,WAAW,IAAI;AAAA,MACpB,KAAK,OAAO,IAAI,QAAQ;AAAA,MACxB,KAAK,UAAU,KAAK,IAAI,YAAY,QAAQ,OAAY,YAAI,MAAM,GAAG,UAAU,aAAa,WAAW,QAAQ,WAAgB,YAAS,YAAI,OAAO,IAAI,YAAY,MAAM;AAAA,MACzK,KAAK,aAAa,IAAI;AAAA,MACtB,KAAK,YAAY,IAAI;AAAA,MACrB,KAAK,OAAO,IAAI;AAAA,MAChB,KAAK,SAAS,WAAW,QAAQ,WAAgB,YAAS,YAAI,OAAO;AAAA,MACrE,KAAK,OAAO,CAAC;AAAA;AAAA,EAErB;AAAA,EACQ,oBAAY;AAAA,EAIpB,SAAS,aAAa,CAAC,KAAK;AAAA,IAExB,MAAM,OAAO,mBAAmB,KAAK,MAAM,GAAG;AAAA,IAC9C,IAAI;AAAA,MACA,OAAO;AAAA,IACX,MAAM,UAAU,GAAG,UAAU,aAAa,KAAK,KAAK,aAAa,IAAI,KAAK,MAAM;AAAA,IAChF,QAAQ,KAAK,UAAU,KAAK,KAAK;AAAA,IACjC,QAAQ,kBAAkB,KAAK;AAAA,IAC/B,MAAM,MAAM,IAAI,UAAU,QAAQ,KAAK,OAAO,EAAE,KAAK,OAAO,cAAc,CAAC;AAAA,IAC3E,IAAI;AAAA,IACJ,IAAI,IAAI,QAAQ;AAAA,MACZ,mBAAmB,IAAI,WAAW,SAAS;AAAA,QACvC,KAAK,mBAAmB;AAAA,QACxB,MAAO,IAAG,UAAU;AAAA,MACxB,CAAC;AAAA,IACL;AAAA,IACA,MAAM,eAAe,IAAI,UAAU,UAAU;AAAA,IAC7C,IAAI,eAAe;AAAA,IACnB,MAAM,YAAY;AAAA,MACd;AAAA,MACA,WAAW,KAAK,KAAK;AAAA,MACrB,MAAM,QAAQ,QAAQ;AAAA,MACtB,YAAY,QAAQ,QAAQ;AAAA,MAC5B,oBAAoB,QAAQ,QAAQ;AAAA,MACpC,WAAW,CAAC,QAAQ,QAAQ,IAAI;AAAA,MAChC,aAAa,CAAC,UAAU,GAAG;AAAA,MAC3B,WAAW;AAAA,MACX,WAAW,CAAC;AAAA,MACZ,mBAAmB,IAAI;AAAA,MACvB,cAAc,IAAI,WAAW,UAAU,KAAK,KAAK,KAAK,WAAW,OAC3D,EAAE,KAAK,IAAI,QAAQ,OAAO,GAAG,UAAU,WAAW,IAAI,MAAM,EAAE,IAC9D,EAAE,KAAK,IAAI,OAAO,CAAC;AAAA,MACzB;AAAA,MACA,iBAAiB;AAAA,MACjB,QAAQ,IAAI;AAAA,MACZ,WAAW;AAAA,MACX;AAAA,MACA,QAAQ,IAAI,UAAU;AAAA,MACtB,YAAY,UAAU;AAAA,MACtB,eAAe,IAAI,eAAe,KAAK,KAAK,MAAM,KAAK;AAAA,MACvD,WAAY,IAAG,UAAU;AAAA,MACzB,MAAM,KAAK;AAAA,MACX,MAAM;AAAA,IACV;AAAA,IACA,IAAI;AAAA,IACJ,IAAI;AAAA,MACA,KAAK,cAAc,IAAI,GAAG;AAAA,OACzB,GAAG,WAAW,sBAAsB,SAAS;AAAA,MAC9C,IAAI,SAAS,KAAK,KAAK,KAAK,QAAQ;AAAA,MAEpC,MAAM,eAAe,IAAI,SAAS;AAAA,MAClC,aAAa,GAAG,IAAI,UAAU,QAAQ,QAAQ,KAAK,WAAW;AAAA,MAE9D,IAAI,KAAK,KAAK,KAAK;AAAA,QACf,aAAa,KAAK,KAAK,KAAK,QAAQ,YAAY,GAAG;AAAA,MAEvD,MAAM,eAAe,IAAI,SAAS,GAAG,QAAQ,QAAQ,QAAQ,GAAG,QAAQ,QAAQ,SAAS,UAAU;AAAA,MACnG,MAAM,WAAW,aAAa,MAAM,KAAK,MAAM,IAAI,CAAC;AAAA,MACpD,KAAK,MAAM,MAAM,cAAc,EAAE,KAAK,SAAS,CAAC;AAAA,MAChD,SAAS,SAAS;AAAA,MAClB,SAAS,SAAS,IAAI;AAAA,MACtB,SAAS,YAAY;AAAA,MACrB,IAAI,IAAI;AAAA,QACJ,SAAS,SAAS;AAAA,MACtB,IAAI,KAAK,KAAK,KAAK,WAAW,MAAM;AAAA,QAChC,SAAS,SAAS,EAAE,cAAc,cAAc,aAAa,IAAI,QAAQ;AAAA,MAC7E;AAAA,MACA,IAAI,KAAK,KAAK,aAAa;AAAA,QACvB,QAAQ,OAAO,UAAU;AAAA,QACzB,SAAS,YAAY;AAAA,UACjB,OAAO,iBAAiB,UAAU,OAAO,YAAY;AAAA,UACrD,OAAO,iBAAiB,UAAU,OAAO,YAAY;AAAA,UACrD,cAAc,iBAAiB,UAAU;AAAA,UACzC,cAAc,iBAAiB,UAAU;AAAA,QAC7C;AAAA,QACA,IAAI,SAAS;AAAA,UACT,SAAS,OAAO,aAAa,GAAG,UAAU,WAAW,SAAS,SAAS;AAAA,MAC/E;AAAA,MACA,IAAI,WAAW;AAAA,MACf,OAAO;AAAA,MAEX,OAAO,GAAG;AAAA,MACN,OAAO,IAAI;AAAA,MACX,OAAO,IAAI;AAAA,MACX,IAAI;AAAA,QACA,KAAK,OAAO,MAAM,0CAA0C,UAAU;AAAA,MAE1E,MAAM;AAAA,cAEV;AAAA,MACI,KAAK,cAAc,OAAO,GAAG;AAAA;AAAA;AAAA,EAG7B,wBAAgB;AAAA,EACxB,SAAS,UAAU,CAAC,MAAM,QAAQ,KAAK;AAAA,IACnC,IAAI;AAAA,IACJ,OAAO,GAAG,UAAU,YAAY,KAAK,KAAK,aAAa,QAAQ,GAAG;AAAA,IAClE,MAAM,YAAY,KAAK,KAAK;AAAA,IAC5B,IAAI;AAAA,MACA,OAAO;AAAA,IACX,IAAI,OAAO,QAAQ,KAAK,MAAM,MAAM,GAAG;AAAA,IACvC,IAAI,SAAS,WAAW;AAAA,MACpB,MAAM,UAAU,KAAK,KAAK,eAAe,QAAQ,OAAY,YAAS,YAAI,GAAG;AAAA,MAC7E,QAAQ,aAAa,KAAK;AAAA,MAC1B,IAAI;AAAA,QACA,OAAO,IAAI,UAAU,EAAE,QAAQ,UAAU,MAAM,OAAO,CAAC;AAAA,IAC/D;AAAA,IACA,IAAI,SAAS;AAAA,MACT;AAAA,IACJ,OAAQ,KAAK,KAAK,OAAO,gBAAgB,KAAK,MAAM,IAAI;AAAA;AAAA,EAEpD,qBAAa;AAAA,EACrB,SAAS,eAAe,CAAC,KAAK;AAAA,IAC1B,KAAK,GAAG,UAAU,WAAW,IAAI,QAAQ,KAAK,KAAK,UAAU;AAAA,MACzD,OAAO,IAAI;AAAA,IACf,OAAO,IAAI,WAAW,MAAM,cAAc,KAAK,MAAM,GAAG;AAAA;AAAA,EAG5D,SAAS,kBAAkB,CAAC,QAAQ;AAAA,IAChC,WAAW,OAAO,KAAK,eAAe;AAAA,MAClC,IAAI,cAAc,KAAK,MAAM;AAAA,QACzB,OAAO;AAAA,IACf;AAAA;AAAA,EAEI,6BAAqB;AAAA,EAC7B,SAAS,aAAa,CAAC,IAAI,IAAI;AAAA,IAC3B,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG;AAAA;AAAA,EAI9E,SAAS,OAAO,CAAC,MACjB,KACE;AAAA,IACE,IAAI;AAAA,IACJ,OAAO,QAAQ,MAAM,KAAK,KAAK,SAAS;AAAA,MACpC,MAAM;AAAA,IACV,OAAO,OAAO,KAAK,QAAQ,QAAQ,cAAc,KAAK,MAAM,MAAM,GAAG;AAAA;AAAA,EAGzE,SAAS,aAAa,CAAC,MACvB,KACE;AAAA,IACE,MAAM,IAAI,KAAK,KAAK,YAAY,MAAM,GAAG;AAAA,IACzC,MAAM,WAAW,GAAG,UAAU,cAAc,KAAK,KAAK,aAAa,CAAC;AAAA,IACpE,IAAI,UAAU,GAAG,UAAU,aAAa,KAAK,KAAK,aAAa,KAAK,QAAQ,SAAS;AAAA,IAErF,IAAI,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS,KAAK,YAAY,QAAQ;AAAA,MAC3D,OAAO,eAAe,KAAK,MAAM,GAAG,IAAI;AAAA,IAC5C;AAAA,IACA,MAAM,MAAM,GAAG,UAAU,aAAa,OAAO;AAAA,IAC7C,MAAM,WAAW,KAAK,KAAK,OAAO,KAAK,QAAQ;AAAA,IAC/C,IAAI,OAAO,YAAY,UAAU;AAAA,MAC7B,MAAM,MAAM,cAAc,KAAK,MAAM,MAAM,QAAQ;AAAA,MACnD,IAAI,QAAQ,QAAQ,QAAQ,QAAa,YAAS,YAAI,IAAI,YAAY;AAAA,QAClE;AAAA,MACJ,OAAO,eAAe,KAAK,MAAM,GAAG,GAAG;AAAA,IAC3C;AAAA,IACA,IAAI,QAAQ,aAAa,QAAQ,aAAkB,YAAS,YAAI,SAAS,YAAY;AAAA,MACjF;AAAA,IACJ,IAAI,CAAC,SAAS;AAAA,MACV,cAAc,KAAK,MAAM,QAAQ;AAAA,IACrC,IAAI,QAAQ,GAAG,UAAU,aAAa,GAAG,GAAG;AAAA,MACxC,QAAQ,WAAW;AAAA,MACnB,QAAQ,aAAa,KAAK;AAAA,MAC1B,MAAM,QAAQ,OAAO;AAAA,MACrB,IAAI;AAAA,QACA,UAAU,GAAG,UAAU,YAAY,KAAK,KAAK,aAAa,QAAQ,KAAK;AAAA,MAC3E,OAAO,IAAI,UAAU,EAAE,QAAQ,UAAU,MAAM,OAAO,CAAC;AAAA,IAC3D;AAAA,IACA,OAAO,eAAe,KAAK,MAAM,GAAG,QAAQ;AAAA;AAAA,EAExC,wBAAgB;AAAA,EACxB,IAAM,uBAAuB,IAAI,IAAI;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAAA,EACD,SAAS,cAAc,CAAC,aAAa,QAAQ,QAAQ,QAAQ;AAAA,IACzD,IAAI;AAAA,IACJ,MAAM,KAAK,UAAU,cAAc,QAAQ,OAAY,YAAS,YAAI,GAAG,QAAQ;AAAA,MAC3E;AAAA,IACJ,WAAW,QAAQ,UAAU,SAAS,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG;AAAA,MACvD,IAAI,OAAO,WAAW;AAAA,QAClB;AAAA,MACJ,MAAM,aAAa,OAAQ,IAAG,OAAO,kBAAkB,IAAI;AAAA,MAC3D,IAAI,eAAe;AAAA,QACf;AAAA,MACJ,SAAS;AAAA,MAET,MAAM,QAAQ,OAAO,WAAW,YAAY,OAAO,KAAK,KAAK;AAAA,MAC7D,IAAI,CAAC,qBAAqB,IAAI,IAAI,KAAK,OAAO;AAAA,QAC1C,UAAU,GAAG,UAAU,YAAY,KAAK,KAAK,aAAa,QAAQ,KAAK;AAAA,MAC3E;AAAA,IACJ;AAAA,IACA,IAAI;AAAA,IACJ,IAAI,OAAO,UAAU,aAAa,OAAO,QAAQ,EAAE,GAAG,OAAO,sBAAsB,QAAQ,KAAK,KAAK,GAAG;AAAA,MACpG,MAAM,QAAQ,GAAG,UAAU,YAAY,KAAK,KAAK,aAAa,QAAQ,OAAO,IAAI;AAAA,MACjF,MAAM,cAAc,KAAK,MAAM,MAAM,IAAI;AAAA,IAC7C;AAAA,IAGA,QAAQ,aAAa,KAAK;AAAA,IAC1B,MAAM,OAAO,IAAI,UAAU,EAAE,QAAQ,UAAU,MAAM,OAAO,CAAC;AAAA,IAC7D,IAAI,IAAI,WAAW,IAAI,KAAK;AAAA,MACxB,OAAO;AAAA,IACX;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;EC5OJ,IAAM,SAAS,OAAO,UAAU,KAAK,KAAK,6DAA6D;AAAA,EAGvG,IAAM,SAAS,OAAO,UAAU,KAAK,KAAK,0FAA0F;AAAA,EAGpI,IAAM,YAAY,OAAO,UAAU,KAAK,KAAK,gBAAgB;AAAA,EAG7D,IAAM,eAAe,OAAO,UAAU,KAAK,KAAK,kBAAkB;AAAA,EAGlE,IAAM,kBAAkB,OAAO,UAAU,KAAK,KAAK,gCAAgC;AAAA,EAMnF,SAAS,wBAAyB,CAAC,OAAO;AAAA,IACxC,IAAI,MAAM;AAAA,IACV,IAAI,OAAO;AAAA,IACX,IAAI,IAAI;AAAA,IAER,KAAK,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,MACjC,OAAO,MAAM,GAAG,WAAW,CAAC;AAAA,MAC5B,IAAI,SAAS,IAAI;AAAA,QACf;AAAA,MACF;AAAA,MACA,IAAI,EAAG,QAAQ,MAAM,QAAQ,MAAQ,QAAQ,MAAM,QAAQ,MAAQ,QAAQ,MAAM,QAAQ,MAAO;AAAA,QAC9F,OAAO;AAAA,MACT;AAAA,MACA,OAAO,MAAM;AAAA,MACb;AAAA,IACF;AAAA,IAEA,KAAK,KAAK,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,MAClC,OAAO,MAAM,GAAG,WAAW,CAAC;AAAA,MAC5B,IAAI,EAAG,QAAQ,MAAM,QAAQ,MAAQ,QAAQ,MAAM,QAAQ,MAAQ,QAAQ,MAAM,QAAQ,MAAO;AAAA,QAC9F,OAAO;AAAA,MACT;AAAA,MACA,OAAO,MAAM;AAAA,IACf;AAAA,IACA,OAAO;AAAA;AAAA,EAcT,IAAM,kBAAkB,OAAO,UAAU,KAAK,KAAK,6BAA6B;AAAA,EAMhF,SAAS,aAAc,CAAC,QAAQ;AAAA,IAC9B,OAAO,SAAS;AAAA,IAChB,OAAO;AAAA;AAAA,EAST,SAAS,cAAe,CAAC,QAAQ,SAAS,QAAQ;AAAA,IAChD,IAAI,OAAO,QAAQ;AAAA,MACjB,MAAM,MAAM,yBAAyB,MAAM;AAAA,MAC3C,IAAI,QAAQ,IAAI;AAAA,QACd,QAAQ,KAAK,GAAG;AAAA,MAClB,EAAO;AAAA,QACL,OAAO,QAAQ;AAAA,QACf,OAAO;AAAA;AAAA,MAET,OAAO,SAAS;AAAA,IAClB;AAAA,IACA,OAAO;AAAA;AAAA,EAOT,SAAS,OAAQ,CAAC,OAAO;AAAA,IACvB,IAAI,aAAa;AAAA,IACjB,MAAM,SAAS,EAAE,OAAO,OAAO,SAAS,IAAI,MAAM,GAAG;AAAA,IAErD,MAAM,UAAU,CAAC;AAAA,IAEjB,MAAM,SAAS,CAAC;AAAA,IAChB,IAAI,qBAAqB;AAAA,IACzB,IAAI,UAAU;AAAA,IAEd,IAAI,UAAU;AAAA,IAEd,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,MACrC,MAAM,SAAS,MAAM;AAAA,MACrB,IAAI,WAAW,OAAO,WAAW,KAAK;AAAA,QAAE;AAAA,MAAS;AAAA,MACjD,IAAI,WAAW,KAAK;AAAA,QAClB,IAAI,uBAAuB,MAAM;AAAA,UAC/B,UAAU;AAAA,QACZ;AAAA,QACA,IAAI,CAAC,QAAQ,QAAQ,SAAS,MAAM,GAAG;AAAA,UAAE;AAAA,QAAM;AAAA,QAC/C,IAAI,EAAE,aAAa,GAAG;AAAA,UAEpB,OAAO,QAAQ;AAAA,UACf;AAAA,QACF;AAAA,QACA,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK;AAAA,UACjC,qBAAqB;AAAA,QACvB;AAAA,QACA,QAAQ,KAAK,GAAG;AAAA,QAChB;AAAA,MACF,EAAO,SAAI,WAAW,KAAK;AAAA,QACzB,IAAI,CAAC,QAAQ,QAAQ,SAAS,MAAM,GAAG;AAAA,UAAE;AAAA,QAAM;AAAA,QAE/C,UAAU;AAAA,MACZ,EAAO;AAAA,QACL,OAAO,KAAK,MAAM;AAAA,QAClB;AAAA;AAAA,IAEJ;AAAA,IACA,IAAI,OAAO,QAAQ;AAAA,MACjB,IAAI,YAAY,eAAe;AAAA,QAC7B,OAAO,OAAO,OAAO,KAAK,EAAE;AAAA,MAC9B,EAAO,SAAI,SAAS;AAAA,QAClB,QAAQ,KAAK,OAAO,KAAK,EAAE,CAAC;AAAA,MAC9B,EAAO;AAAA,QACL,QAAQ,KAAK,yBAAyB,MAAM,CAAC;AAAA;AAAA,IAEjD;AAAA,IACA,OAAO,UAAU,QAAQ,KAAK,EAAE;AAAA,IAChC,OAAO;AAAA;AAAA,EAcT,SAAS,aAAc,CAAC,MAAM;AAAA,IAC5B,IAAI,UAAU,MAAM,GAAG,IAAI,GAAG;AAAA,MAAE,OAAO,EAAE,MAAM,QAAQ,MAAM;AAAA,IAAE;AAAA,IAC/D,MAAM,OAAO,QAAQ,IAAI;AAAA,IAEzB,IAAI,CAAC,KAAK,OAAO;AAAA,MACf,IAAI,UAAU,KAAK;AAAA,MACnB,IAAI,cAAc,KAAK;AAAA,MACvB,IAAI,KAAK,MAAM;AAAA,QACb,WAAW,MAAM,KAAK;AAAA,QACtB,eAAe,QAAQ,KAAK;AAAA,MAC9B;AAAA,MACA,OAAO,EAAE,MAAM,SAAS,QAAQ,MAAM,YAAY;AAAA,IACpD,EAAO;AAAA,MACL,OAAO,EAAE,MAAM,QAAQ,MAAM;AAAA;AAAA;AAAA,EASjC,SAAS,SAAU,CAAC,KAAK,OAAO;AAAA,IAC9B,IAAI,MAAM;AAAA,IACV,SAAS,IAAI,EAAG,IAAI,IAAI,QAAQ,KAAK;AAAA,MACnC,IAAI,IAAI,OAAO;AAAA,QAAO;AAAA,IACxB;AAAA,IACA,OAAO;AAAA;AAAA,EAST,SAAS,iBAAkB,CAAC,MAAM;AAAA,IAChC,IAAI,QAAQ;AAAA,IACZ,MAAM,SAAS,CAAC;AAAA,IAChB,IAAI,YAAY;AAAA,IAChB,IAAI,MAAM;AAAA,IAGV,OAAO,MAAM,MAAM,QAAQ;AAAA,MACzB,IAAI,QAAQ,GAAG;AAAA,QACb,IAAI,UAAU,KAAK;AAAA,UACjB;AAAA,QACF,EAAO,SAAI,UAAU,KAAK;AAAA,UACxB,OAAO,KAAK,GAAG;AAAA,UACf;AAAA,QACF,EAAO;AAAA,UACL,OAAO,KAAK,KAAK;AAAA,UACjB;AAAA;AAAA,MAEJ,EAAO,SAAI,QAAQ,GAAG;AAAA,QACpB,IAAI,MAAM,OAAO,KAAK;AAAA,UACpB,IAAI,MAAM,OAAO,KAAK;AAAA,YACpB;AAAA,UACF,EAAO,SAAI,MAAM,OAAO,KAAK;AAAA,YAC3B,QAAQ,MAAM,MAAM,CAAC;AAAA,YACrB;AAAA,UACF;AAAA,QACF,EAAO,SAAI,MAAM,OAAO,KAAK;AAAA,UAC3B,IAAI,MAAM,OAAO,OAAO,MAAM,OAAO,KAAK;AAAA,YACxC,OAAO,KAAK,GAAG;AAAA,YACf;AAAA,UACF;AAAA,QACF;AAAA,MACF,EAAO,SAAI,QAAQ,GAAG;AAAA,QACpB,IAAI,UAAU,OAAO;AAAA,UACnB,IAAI,OAAO,WAAW,GAAG;AAAA,YACvB,OAAO,IAAI;AAAA,UACb;AAAA,UACA,OAAO,KAAK,GAAG;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,MACA,IAAI,MAAM,OAAO,KAAK;AAAA,QACpB,IAAI,MAAM,OAAO,KAAK;AAAA,UACpB,IAAI,MAAM,OAAO,KAAK;AAAA,YACpB,QAAQ,MAAM,MAAM,CAAC;AAAA,YACrB;AAAA,UACF;AAAA,QACF,EAAO,SAAI,MAAM,OAAO,KAAK;AAAA,UAC3B,QAAQ,MAAM,MAAM,CAAC;AAAA,UACrB;AAAA,QACF;AAAA,MACF,EAAO,SAAI,MAAM,OAAO,KAAK;AAAA,QAC3B,IAAI,MAAM,OAAO,KAAK;AAAA,UACpB,IAAI,MAAM,OAAO,KAAK;AAAA,YACpB,QAAQ,MAAM,MAAM,CAAC;AAAA,YACrB;AAAA,UACF,EAAO,SAAI,MAAM,OAAO,KAAK;AAAA,YAC3B,IAAI,MAAM,OAAO,KAAK;AAAA,cACpB,QAAQ,MAAM,MAAM,CAAC;AAAA,cACrB,IAAI,OAAO,WAAW,GAAG;AAAA,gBACvB,OAAO,IAAI;AAAA,cACb;AAAA,cACA;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MAGA,KAAK,YAAY,MAAM,QAAQ,KAAK,CAAC,OAAO,IAAI;AAAA,QAC9C,OAAO,KAAK,KAAK;AAAA,QACjB;AAAA,MACF,EAAO;AAAA,QACL,OAAO,KAAK,MAAM,MAAM,GAAG,SAAS,CAAC;AAAA,QACrC,QAAQ,MAAM,MAAM,SAAS;AAAA;AAAA,IAEjC;AAAA,IAEA,OAAO,OAAO,KAAK,EAAE;AAAA;AAAA,EAavB,IAAM,cAAc,EAAE,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,MAAM;AAAA,EACjF,IAAM,gBAAgB;AAAA,EACtB,IAAM,yBAAyB;AAAA,EAE/B,SAAS,sBAAuB,CAAC,MAAM,MAAM;AAAA,IAC3C,MAAM,KAAK,OAAO,yBAAyB;AAAA,IAC3C,GAAG,YAAY;AAAA,IACf,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,YAAY,GAAG;AAAA;AAAA,EAWjD,SAAS,wBAAyB,CAAC,OAAO,mBAAmB,OAAO;AAAA,IAClE,IAAI,MAAM,QAAQ,GAAG,MAAM,IAAI;AAAA,MAC7B,OAAO;AAAA,IACT;AAAA,IAEA,IAAI,SAAS;AAAA,IAEb,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,MACrC,IAAI,MAAM,OAAO,OAAO,IAAI,IAAI,MAAM,QAAQ;AAAA,QAC5C,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC;AAAA,QACpC,IAAI,UAAU,GAAG,GAAG;AAAA,UAClB,MAAM,gBAAgB,IAAI,YAAY;AAAA,UACtC,MAAM,UAAU,OAAO,aAAa,SAAS,eAAe,EAAE,CAAC;AAAA,UAE/D,IAAI,oBAAoB,aAAa,OAAO,GAAG;AAAA,YAC7C,UAAU;AAAA,UACZ,EAAO;AAAA,YACL,UAAU,MAAM;AAAA;AAAA,UAGlB,KAAK;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,MAEA,UAAU,MAAM;AAAA,IAClB;AAAA,IAEA,OAAO;AAAA;AAAA,EAWT,SAAS,qBAAsB,CAAC,OAAO;AAAA,IACrC,IAAI,SAAS;AAAA,IAEb,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,MACrC,IAAI,MAAM,OAAO,OAAO,IAAI,IAAI,MAAM,QAAQ;AAAA,QAC5C,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC;AAAA,QACpC,IAAI,UAAU,GAAG,GAAG;AAAA,UAClB,MAAM,gBAAgB,IAAI,YAAY;AAAA,UACtC,MAAM,UAAU,OAAO,aAAa,SAAS,eAAe,EAAE,CAAC;AAAA,UAE/D,IAAI,YAAY,OAAO,aAAa,OAAO,GAAG;AAAA,YAC5C,UAAU;AAAA,UACZ,EAAO;AAAA,YACL,UAAU,MAAM;AAAA;AAAA,UAGlB,KAAK;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,MAEA,IAAI,gBAAgB,MAAM,EAAE,GAAG;AAAA,QAC7B,UAAU,MAAM;AAAA,MAClB,EAAO;AAAA,QACL,UAAU,OAAO,MAAM,EAAE;AAAA;AAAA,IAE7B;AAAA,IAEA,OAAO;AAAA;AAAA,EAST,SAAS,uBAAwB,CAAC,OAAO;AAAA,IACvC,IAAI,SAAS;AAAA,IAEb,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,MACrC,IAAI,MAAM,OAAO,OAAO,IAAI,IAAI,MAAM,QAAQ;AAAA,QAC5C,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,CAAC;AAAA,QACpC,IAAI,UAAU,GAAG,GAAG;AAAA,UAClB,UAAU,MAAM,IAAI,YAAY;AAAA,UAChC,KAAK;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,MAEA,UAAU,OAAO,MAAM,EAAE;AAAA,IAC3B;AAAA,IAEA,OAAO;AAAA;AAAA,EAOT,SAAS,kBAAmB,CAAC,WAAW;AAAA,IACtC,MAAM,YAAY,CAAC;AAAA,IAEnB,IAAI,UAAU,aAAa,WAAW;AAAA,MACpC,UAAU,KAAK,UAAU,QAAQ;AAAA,MACjC,UAAU,KAAK,GAAG;AAAA,IACpB;AAAA,IAEA,IAAI,UAAU,SAAS,WAAW;AAAA,MAChC,IAAI,OAAO,SAAS,UAAU,IAAI;AAAA,MAClC,IAAI,CAAC,OAAO,IAAI,GAAG;AAAA,QACjB,MAAM,UAAU,cAAc,IAAI;AAAA,QAClC,IAAI,QAAQ,WAAW,MAAM;AAAA,UAC3B,OAAO,IAAI,QAAQ;AAAA,QACrB,EAAO;AAAA,UACL,OAAO,uBAAuB,MAAM,KAAK;AAAA;AAAA,MAE7C;AAAA,MACA,UAAU,KAAK,IAAI;AAAA,IACrB;AAAA,IAEA,IAAI,OAAO,UAAU,SAAS,YAAY,OAAO,UAAU,SAAS,UAAU;AAAA,MAC5E,UAAU,KAAK,GAAG;AAAA,MAClB,UAAU,KAAK,OAAO,UAAU,IAAI,CAAC;AAAA,IACvC;AAAA,IAEA,OAAO,UAAU,SAAS,UAAU,KAAK,EAAE,IAAI;AAAA;AAAA,EAGjD,OAAO,UAAU;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA;;;;ECxbA,MAAQ;AAAA,EACR,IAAM,UAAU;AAAA,EAEhB,IAAM,uBAA6C;AAAA,IAAC;AAAA,IAAQ;AAAA,IAAS;AAAA,IACnE;AAAA,IAAO;AAAA,IAAO;AAAA,EAAU;AAAA,EAQ1B,SAAS,iBAAkB,CAAC,MAAM;AAAA,IAChC,OAAO,qBAAqB,QAA0B,IAAK,MAAM;AAAA;AAAA,EAyBnE,SAAS,UAAW,CAAC,aAAa;AAAA,IAChC,IAAI,YAAY,WAAW,MAAM;AAAA,MAC/B,OAAO;AAAA,IACT,EAAO,SAAI,YAAY,WAAW,OAAO;AAAA,MACvC,OAAO;AAAA,IACT,EAAO,SAAI,YAAY,QAAQ;AAAA,MAC7B,OACE,YAAY,OAAO,WAAW,MAC7B,YAAY,OAAO,OAAO,OAAO,YAAY,OAAO,OAAO,SAC3D,YAAY,OAAO,OAAO,OAAO,YAAY,OAAO,OAAO,SAC3D,YAAY,OAAO,OAAO,OAAO,YAAY,OAAO,OAAO;AAAA,IAEhE,EAAO;AAAA,MACL,OAAO;AAAA;AAAA;AAAA,EAKX,SAAS,SAAU,CAAC,WAAW;AAAA,IAC7B,IAAI,CAAC,UAAU,MAAM;AAAA,MACnB,UAAU,QAAQ,UAAU,SAAS;AAAA,IACvC;AAAA,IAEA,OAAO;AAAA;AAAA,EAIT,SAAS,aAAc,CAAC,WAAW;AAAA,IACjC,MAAM,SAAS,OAAO,UAAU,MAAM,EAAE,YAAY,MAAM;AAAA,IAG1D,IAAI,UAAU,UAAU,SAAS,MAAM,OAAO,UAAU,SAAS,IAAI;AAAA,MACnE,UAAU,OAAO;AAAA,IACnB;AAAA,IAGA,IAAI,CAAC,UAAU,MAAM;AAAA,MACnB,UAAU,OAAO;AAAA,IACnB;AAAA,IAMA,OAAO;AAAA;AAAA,EAIT,SAAS,OAAQ,CAAC,aAAa;AAAA,IAE7B,YAAY,SAAS,WAAW,WAAW;AAAA,IAG3C,YAAY,gBAAgB,YAAY,QAAQ,QAAQ,YAAY,QAAQ,MAAM,YAAY,QAAQ;AAAA,IACtG,YAAY,OAAO;AAAA,IACnB,YAAY,QAAQ;AAAA,IAEpB,OAAO;AAAA;AAAA,EAIT,SAAS,WAAY,CAAC,aAAa;AAAA,IAEjC,IAAI,YAAY,UAAU,WAAW,WAAW,IAAI,MAAM,OAAO,YAAY,SAAS,IAAI;AAAA,MACxF,YAAY,OAAO;AAAA,IACrB;AAAA,IAGA,IAAI,OAAO,YAAY,WAAW,WAAW;AAAA,MAC3C,YAAY,SAAU,YAAY,SAAS,QAAQ;AAAA,MACnD,YAAY,SAAS;AAAA,IACvB;AAAA,IAGA,IAAI,YAAY,cAAc;AAAA,MAC5B,OAAO,MAAM,SAAS,YAAY,aAAa,MAAM,GAAG;AAAA,MACxD,YAAY,OAAQ,QAAQ,SAAS,MAAM,OAAO;AAAA,MAClD,YAAY,QAAQ;AAAA,MACpB,YAAY,eAAe;AAAA,IAC7B;AAAA,IAGA,YAAY,WAAW;AAAA,IAEvB,OAAO;AAAA;AAAA,EAIT,SAAS,QAAS,CAAC,cAAc,SAAS;AAAA,IACxC,IAAI,CAAC,aAAa,MAAM;AAAA,MACtB,aAAa,QAAQ;AAAA,MACrB,OAAO;AAAA,IACT;AAAA,IACA,MAAM,UAAU,aAAa,KAAK,MAAM,OAAO;AAAA,IAC/C,IAAI,SAAS;AAAA,MACX,MAAM,SAAS,QAAQ,UAAU,aAAa,UAAU;AAAA,MACxD,aAAa,MAAM,QAAQ,GAAG,YAAY;AAAA,MAC1C,aAAa,MAAM,QAAQ;AAAA,MAC3B,MAAM,YAAY,GAAG,UAAU,QAAQ,OAAO,aAAa;AAAA,MAC3D,MAAM,gBAAgB,iBAAiB,SAAS;AAAA,MAChD,aAAa,OAAO;AAAA,MAEpB,IAAI,eAAe;AAAA,QACjB,eAAe,cAAc,MAAM,cAAc,OAAO;AAAA,MAC1D;AAAA,IACF,EAAO;AAAA,MACL,aAAa,QAAQ,aAAa,SAAS;AAAA;AAAA,IAG7C,OAAO;AAAA;AAAA,EAIT,SAAS,YAAa,CAAC,cAAc,SAAS;AAAA,IAC5C,IAAI,aAAa,QAAQ,WAAW;AAAA,MAClC,MAAM,IAAI,MAAM,sCAAsC;AAAA,IACxD;AAAA,IACA,MAAM,SAAS,QAAQ,UAAU,aAAa,UAAU;AAAA,IACxD,MAAM,MAAM,aAAa,IAAI,YAAY;AAAA,IACzC,MAAM,YAAY,GAAG,UAAU,QAAQ,OAAO;AAAA,IAC9C,MAAM,gBAAgB,iBAAiB,SAAS;AAAA,IAEhD,IAAI,eAAe;AAAA,MACjB,eAAe,cAAc,UAAU,cAAc,OAAO;AAAA,IAC9D;AAAA,IAEA,MAAM,eAAe;AAAA,IACrB,MAAM,MAAM,aAAa;AAAA,IACzB,aAAa,OAAO,GAAG,OAAO,QAAQ,OAAO;AAAA,IAE7C,QAAQ,aAAa;AAAA,IACrB,OAAO;AAAA;AAAA,EAIT,SAAS,YAAa,CAAC,cAAc,SAAS;AAAA,IAC5C,MAAM,gBAAgB;AAAA,IACtB,cAAc,OAAO,cAAc;AAAA,IACnC,cAAc,MAAM;AAAA,IAEpB,IAAI,CAAC,QAAQ,aAAa,CAAC,cAAc,QAAQ,CAAC,OAAO,cAAc,IAAI,IAAI;AAAA,MAC7E,cAAc,QAAQ,cAAc,SAAS;AAAA,IAC/C;AAAA,IAEA,OAAO;AAAA;AAAA,EAIT,SAAS,gBAAiB,CAAC,eAAe;AAAA,IACxC,MAAM,eAAe;AAAA,IAErB,aAAa,OAAO,cAAc,QAAQ,IAAI,YAAY;AAAA,IAC1D,OAAO;AAAA;AAAA,EAGT,IAAM,OAAqC;AAAA,IACzC,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,WAAW;AAAA,EACb;AAAA,EAEA,IAAM,QAAsC;AAAA,IAC1C,QAAQ;AAAA,IACR,YAAY,KAAK;AAAA,IACjB,OAAO;AAAA,IACP,WAAW;AAAA,EACb;AAAA,EAEA,IAAM,KAAmC;AAAA,IACvC,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,WAAW;AAAA,EACb;AAAA,EAEA,IAAM,MAAoC;AAAA,IACxC,QAAQ;AAAA,IACR,YAAY,GAAG;AAAA,IACf,OAAO,GAAG;AAAA,IACV,WAAW,GAAG;AAAA,EAChB;AAAA,EAEA,IAAM,MAAoC;AAAA,IACxC,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,WAAW;AAAA,IACX,eAAe;AAAA,EACjB;AAAA,EAEA,IAAM,UAAwC;AAAA,IAC5C,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,WAAW;AAAA,IACX,eAAe;AAAA,EACjB;AAAA,EAEA,IAAM,UAA4D;AAAA,IAChE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,EACd;AAAA,EAEA,OAAO,eAAe,SAAS,IAAI;AAAA,EAMnC,SAAS,gBAAiB,CAAC,QAAQ;AAAA,IACjC,OACE,WACE,QAAmC,WACnC,QAAkC,OAAO,YAAY,OAEvD;AAAA;AAAA,EAGJ,OAAO,UAAU;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA;;;;ECxQA,MAAQ,eAAe,mBAAmB,oBAAoB,0BAA0B,uBAAuB,yBAAyB,wBAAwB,QAAQ;AAAA,EACxK,MAAQ,SAAS;AAAA,EAQjB,SAAS,SAAU,CAAC,KAAK,SAAS;AAAA,IAChC,IAAI,OAAO,QAAQ,UAAU;AAAA,MAC3B,MAAwB,gBAAgB,KAAK,OAAO;AAAA,IACtD,EAAO,SAAI,OAAO,QAAQ,UAAU;AAAA,MAClC,MAAwB,MAAM,UAAU,KAAK,OAAO,GAAG,OAAO;AAAA,IAChE;AAAA,IACA,OAAO;AAAA;AAAA,EAST,SAAS,OAAQ,CAAC,SAAS,aAAa,SAAS;AAAA,IAC/C,MAAM,oBAAoB,UAAU,OAAO,OAAO,EAAE,QAAQ,OAAO,GAAG,OAAO,IAAI,EAAE,QAAQ,OAAO;AAAA,IAClG,QAAQ,QAAQ,YAAY,0BAA0B,kBAAkB,gBAAgB,SAAS,iBAAiB;AAAA,IAClH,QAAQ,QAAQ,gBAAgB,0BAA0B,sBAAsB,gBAAgB,aAAa,iBAAiB;AAAA,IAC9H,IAAI,iBAAiB,mBAAmB;AAAA,MACtC,MAAM,IAAI,MAAM,WAAW,SAAS,eAAe,SAAS,mBAAmB;AAAA,IACjF;AAAA,IACA,MAAM,WAAW,iBAAiB,YAAY,gBAAgB,mBAAmB,IAAI;AAAA,IACrF,kBAAkB,aAAa;AAAA,IAC/B,OAAO,UAAU,UAAU,iBAAiB;AAAA;AAAA,EAU9C,SAAS,gBAAiB,CAAC,MAAM,UAAU,SAAS,mBAAmB;AAAA,IAErE,MAAM,SAAS,CAAC;AAAA,IAChB,IAAI,CAAC,mBAAmB;AAAA,MACtB,OAAO,MAAM,UAAU,MAAM,OAAO,GAAG,OAAO;AAAA,MAC9C,WAAW,MAAM,UAAU,UAAU,OAAO,GAAG,OAAO;AAAA,IACxD;AAAA,IACA,UAAU,WAAW,CAAC;AAAA,IAEtB,IAAI,CAAC,QAAQ,YAAY,SAAS,QAAQ;AAAA,MACxC,OAAO,SAAS,SAAS;AAAA,MAEzB,OAAO,WAAW,SAAS;AAAA,MAC3B,OAAO,OAAO,SAAS;AAAA,MACvB,OAAO,OAAO,SAAS;AAAA,MACvB,OAAO,OAAO,kBAAkB,SAAS,QAAQ,EAAE;AAAA,MACnD,OAAO,QAAQ,SAAS;AAAA,IAC1B,EAAO;AAAA,MACL,IAAI,SAAS,aAAa,aAAa,SAAS,SAAS,aAAa,SAAS,SAAS,WAAW;AAAA,QAEjG,OAAO,WAAW,SAAS;AAAA,QAC3B,OAAO,OAAO,SAAS;AAAA,QACvB,OAAO,OAAO,SAAS;AAAA,QACvB,OAAO,OAAO,kBAAkB,SAAS,QAAQ,EAAE;AAAA,QACnD,OAAO,QAAQ,SAAS;AAAA,MAC1B,EAAO;AAAA,QACL,IAAI,CAAC,SAAS,MAAM;AAAA,UAClB,OAAO,OAAO,KAAK;AAAA,UACnB,IAAI,SAAS,UAAU,WAAW;AAAA,YAChC,OAAO,QAAQ,SAAS;AAAA,UAC1B,EAAO;AAAA,YACL,OAAO,QAAQ,KAAK;AAAA;AAAA,QAExB,EAAO;AAAA,UACL,IAAI,SAAS,KAAK,OAAO,KAAK;AAAA,YAC5B,OAAO,OAAO,kBAAkB,SAAS,IAAI;AAAA,UAC/C,EAAO;AAAA,YACL,KAAK,KAAK,aAAa,aAAa,KAAK,SAAS,aAAa,KAAK,SAAS,cAAc,CAAC,KAAK,MAAM;AAAA,cACrG,OAAO,OAAO,MAAM,SAAS;AAAA,YAC/B,EAAO,SAAI,CAAC,KAAK,MAAM;AAAA,cACrB,OAAO,OAAO,SAAS;AAAA,YACzB,EAAO;AAAA,cACL,OAAO,OAAO,KAAK,KAAK,MAAM,GAAG,KAAK,KAAK,YAAY,GAAG,IAAI,CAAC,IAAI,SAAS;AAAA;AAAA,YAE9E,OAAO,OAAO,kBAAkB,OAAO,IAAI;AAAA;AAAA,UAE7C,OAAO,QAAQ,SAAS;AAAA;AAAA,QAG1B,OAAO,WAAW,KAAK;AAAA,QACvB,OAAO,OAAO,KAAK;AAAA,QACnB,OAAO,OAAO,KAAK;AAAA;AAAA,MAErB,OAAO,SAAS,KAAK;AAAA;AAAA,IAGvB,OAAO,WAAW,SAAS;AAAA,IAE3B,OAAO;AAAA;AAAA,EAST,SAAS,KAAM,CAAC,MAAM,MAAM,SAAS;AAAA,IACnC,MAAM,cAAc,uBAAuB,MAAM,OAAO;AAAA,IACxD,MAAM,cAAc,uBAAuB,MAAM,OAAO;AAAA,IAExD,OAAO,gBAAgB,aAAa,gBAAgB,aAAa,YAAY,YAAY,MAAM,YAAY,YAAY;AAAA;AAAA,EAQzH,SAAS,SAAU,CAAC,OAAO,MAAM;AAAA,IAC/B,MAAM,YAAY;AAAA,MAChB,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,UAAU,MAAM;AAAA,MAChB,MAAM,MAAM;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,OAAO,MAAM;AAAA,MACb,KAAK,MAAM;AAAA,MACX,KAAK,MAAM;AAAA,MACX,MAAM,MAAM;AAAA,MACZ,UAAU,MAAM;AAAA,MAChB,WAAW,MAAM;AAAA,MACjB,cAAc,MAAM;AAAA,MACpB,QAAQ,MAAM;AAAA,MACd,OAAO;AAAA,IACT;AAAA,IACA,MAAM,UAAU,OAAO,OAAO,CAAC,GAAG,IAAI;AAAA,IACtC,MAAM,YAAY,CAAC;AAAA,IAGnB,MAAM,gBAAgB,iBAAiB,QAAQ,UAAU,UAAU,MAAM;AAAA,IAGzE,IAAI,iBAAiB,cAAc;AAAA,MAAW,cAAc,UAAU,WAAW,OAAO;AAAA,IAExF,IAAI,UAAU,SAAS,WAAW;AAAA,MAChC,IAAI,CAAC,QAAQ,YAAY;AAAA,QACvB,UAAU,OAAO,wBAAwB,UAAU,IAAI;AAAA,QAEvD,IAAI,UAAU,WAAW,WAAW;AAAA,UAClC,UAAU,OAAO,UAAU,KAAK,MAAM,KAAK,EAAE,KAAK,GAAG;AAAA,QACvD;AAAA,MACF,EAAO;AAAA,QACL,UAAU,OAAO,yBAAyB,UAAU,IAAI;AAAA;AAAA,IAE5D;AAAA,IAEA,IAAI,QAAQ,cAAc,YAAY,UAAU,QAAQ;AAAA,MACtD,UAAU,KAAK,UAAU,QAAQ,GAAG;AAAA,IACtC;AAAA,IAEA,MAAM,YAAY,mBAAmB,SAAS;AAAA,IAC9C,IAAI,cAAc,WAAW;AAAA,MAC3B,IAAI,QAAQ,cAAc,UAAU;AAAA,QAClC,UAAU,KAAK,IAAI;AAAA,MACrB;AAAA,MAEA,UAAU,KAAK,SAAS;AAAA,MAExB,IAAI,UAAU,QAAQ,UAAU,KAAK,OAAO,KAAK;AAAA,QAC/C,UAAU,KAAK,GAAG;AAAA,MACpB;AAAA,IACF;AAAA,IACA,IAAI,UAAU,SAAS,WAAW;AAAA,MAChC,IAAI,IAAI,UAAU;AAAA,MAElB,IAAI,CAAC,QAAQ,iBAAiB,CAAC,iBAAiB,CAAC,cAAc,eAAe;AAAA,QAC5E,IAAI,kBAAkB,CAAC;AAAA,MACzB;AAAA,MAEA,IACE,cAAc,aACd,EAAE,OAAO,OACT,EAAE,OAAO,KACT;AAAA,QAEA,IAAI,SAAS,EAAE,MAAM,CAAC;AAAA,MACxB;AAAA,MAEA,UAAU,KAAK,CAAC;AAAA,IAClB;AAAA,IAEA,IAAI,UAAU,UAAU,WAAW;AAAA,MACjC,UAAU,KAAK,KAAK,UAAU,KAAK;AAAA,IACrC;AAAA,IAEA,IAAI,UAAU,aAAa,WAAW;AAAA,MACpC,UAAU,KAAK,KAAK,UAAU,QAAQ;AAAA,IACxC;AAAA,IACA,OAAO,UAAU,KAAK,EAAE;AAAA;AAAA,EAG1B,IAAM,YAAY;AAAA,EAIlB,IAAM,mBAAmB;AAAA,EASzB,IAAM,8BAA8B;AAAA,EAOpC,SAAS,aAAc,CAAC,QAAQ,SAAS;AAAA,IACvC,IAAI,QAAQ,OAAO,aAAa,OAAO,QAAQ,OAAO,KAAK,OAAO,KAAK;AAAA,MACrE,OAAO;AAAA,IACT;AAAA,IAEA,IAAI,OAAO,OAAO,SAAS,aAAa,OAAO,OAAO,KAAK,OAAO,OAAO,QAAQ;AAAA,MAC/E,OAAO;AAAA,IACT;AAAA,IAEA;AAAA;AAAA,EAQF,SAAS,eAAgB,CAAC,KAAK,MAAM;AAAA,IACnC,MAAM,UAAU,OAAO,OAAO,CAAC,GAAG,IAAI;AAAA,IAEtC,MAAM,SAAS;AAAA,MACb,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IAEA,IAAI,2BAA2B;AAAA,IAE/B,IAAI,OAAO;AAAA,IACX,IAAI,QAAQ,cAAc,UAAU;AAAA,MAClC,IAAI,QAAQ,QAAQ;AAAA,QAClB,MAAM,QAAQ,SAAS,MAAM;AAAA,MAC/B,EAAO;AAAA,QACL,MAAM,OAAO;AAAA;AAAA,IAEjB;AAAA,IASA,MAAM,iBAAiB,IAAI,MAAM,gBAAgB;AAAA,IACjD,IAAI,mBAAmB,QAAQ,eAAe,GAAG,QAAQ,IAAI,MAAM,IAAI;AAAA,MACrE,OAAO,QAAQ;AAAA,MACf,2BAA2B;AAAA,IAC7B;AAAA,IAQA,MAAM,kBAAkB,IAAI,MAAM,2BAA2B;AAAA,IAC7D,IAAI,oBAAoB,MAAM;AAAA,MAC5B,MAAM,SAAS,gBAAgB;AAAA,MAC/B,MAAM,mBAAmB,OAAO,QAAQ,aAAa,EAAE;AAAA,MAEvD,IAAI,iBAAiB,UAAU,GAAG;AAAA,QAChC,IAAI,iBAAiB,MAAM,GAAG,CAAC,MAAM,MAAM;AAAA,UACzC,OAAO,QAAQ,OAAO,SAAS;AAAA,UAC/B,2BAA2B;AAAA,QAC7B,EAAO,SAAI,OAAO,WAAW,iBAAiB,QAAQ;AAAA,UACpD,OAAO,QAAQ,OAAO,SAAS;AAAA,UAC/B,2BAA2B;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM,UAAU,IAAI,MAAM,SAAS;AAAA,IAEnC,IAAI,SAAS;AAAA,MAEX,OAAO,SAAS,QAAQ;AAAA,MACxB,OAAO,WAAW,QAAQ;AAAA,MAC1B,OAAO,OAAO,QAAQ;AAAA,MACtB,OAAO,OAAO,SAAS,QAAQ,IAAI,EAAE;AAAA,MACrC,OAAO,OAAO,QAAQ,MAAM;AAAA,MAC5B,OAAO,QAAQ,QAAQ;AAAA,MACvB,OAAO,WAAW,QAAQ;AAAA,MAG1B,IAAI,MAAM,OAAO,IAAI,GAAG;AAAA,QACtB,OAAO,OAAO,QAAQ;AAAA,MACxB;AAAA,MAEA,MAAM,aAAa,cAAc,QAAQ,OAAO;AAAA,MAChD,IAAI,eAAe,WAAW;AAAA,QAC5B,OAAO,QAAQ,OAAO,SAAS;AAAA,QAC/B,2BAA2B;AAAA,MAC7B;AAAA,MAEA,IAAI,OAAO,MAAM;AAAA,QACf,MAAM,aAAa,OAAO,OAAO,IAAI;AAAA,QACrC,IAAI,eAAe,OAAO;AAAA,UACxB,MAAM,aAAa,cAAc,OAAO,IAAI;AAAA,UAC5C,OAAO,OAAO,WAAW,KAAK,YAAY;AAAA,UAC1C,OAAO,WAAW;AAAA,QACpB,EAAO;AAAA,UACL,OAAO;AAAA;AAAA,MAEX;AAAA,MACA,IAAI,OAAO,WAAW,aAAa,OAAO,aAAa,aAAa,OAAO,SAAS,aAAa,OAAO,SAAS,aAAa,OAAO,UAAU,aAAa,CAAC,OAAO,MAAM;AAAA,QACxK,OAAO,YAAY;AAAA,MACrB,EAAO,SAAI,OAAO,WAAW,WAAW;AAAA,QACtC,OAAO,YAAY;AAAA,MACrB,EAAO,SAAI,OAAO,aAAa,WAAW;AAAA,QACxC,OAAO,YAAY;AAAA,MACrB,EAAO;AAAA,QACL,OAAO,YAAY;AAAA;AAAA,MAIrB,IAAI,QAAQ,aAAa,QAAQ,cAAc,YAAY,QAAQ,cAAc,OAAO,WAAW;AAAA,QACjG,OAAO,QAAQ,OAAO,SAAS,kBAAkB,QAAQ,YAAY;AAAA,MACvE;AAAA,MAGA,MAAM,gBAAgB,iBAAiB,QAAQ,UAAU,OAAO,MAAM;AAAA,MAGtE,IAAI,CAAC,QAAQ,mBAAmB,CAAC,iBAAiB,CAAC,cAAc,iBAAiB;AAAA,QAEhF,IAAI,OAAO,SAAS,QAAQ,cAAe,iBAAiB,cAAc,eAAgB,SAAS,SAAS,gBAAgB,OAAO,IAAI,GAAG;AAAA,UAExI,IAAI;AAAA,YACF,OAAO,OAAO,IAAI,IAAI,YAAY,OAAO,IAAI,EAAE;AAAA,YAC/C,OAAO,GAAG;AAAA,YACV,OAAO,QAAQ,OAAO,SAAS,uDAAuD;AAAA;AAAA,QAE1F;AAAA,MAEF;AAAA,MAEA,IAAI,CAAC,iBAAkB,iBAAiB,CAAC,cAAc,eAAgB;AAAA,QACrE,IAAI,IAAI,QAAQ,GAAG,MAAM,IAAI;AAAA,UAC3B,IAAI,OAAO,WAAW,WAAW;AAAA,YAC/B,OAAO,SAAS,SAAS,OAAO,MAAM;AAAA,UACxC;AAAA,UACA,IAAI,OAAO,SAAS,WAAW;AAAA,YAC7B,OAAO,OAAO,uBAAuB,SAAS,OAAO,IAAI,GAAG,IAAI;AAAA,UAClE;AAAA,QACF;AAAA,QACA,IAAI,OAAO,MAAM;AAAA,UACf,OAAO,OAAO,sBAAsB,OAAO,IAAI;AAAA,QACjD;AAAA,QACA,IAAI,OAAO,UAAU;AAAA,UACnB,IAAI;AAAA,YACF,OAAO,WAAW,UAAU,mBAAmB,OAAO,QAAQ,CAAC;AAAA,YAC/D,MAAM;AAAA,YACN,OAAO,QAAQ,OAAO,SAAS;AAAA;AAAA,QAEnC;AAAA,MACF;AAAA,MAGA,IAAI,iBAAiB,cAAc,OAAO;AAAA,QACxC,cAAc,MAAM,QAAQ,OAAO;AAAA,MACrC;AAAA,IACF,EAAO;AAAA,MACL,OAAO,QAAQ,OAAO,SAAS;AAAA;AAAA,IAEjC,OAAO,EAAE,QAAQ,yBAAyB;AAAA;AAAA,EAQ5C,SAAS,KAAM,CAAC,KAAK,MAAM;AAAA,IACzB,OAAO,gBAAgB,KAAK,IAAI,EAAE;AAAA;AAAA,EAQpC,SAAS,eAAgB,CAAC,KAAK,MAAM;AAAA,IACnC,OAAO,0BAA0B,KAAK,IAAI,EAAE;AAAA;AAAA,EAQ9C,SAAS,yBAA0B,CAAC,KAAK,MAAM;AAAA,IAC7C,QAAQ,QAAQ,6BAA6B,gBAAgB,KAAK,IAAI;AAAA,IACtE,OAAO;AAAA,MACL,YAAY,2BAA2B,MAAM,UAAU,QAAQ,IAAI;AAAA,MACnE;AAAA,IACF;AAAA;AAAA,EAQF,SAAS,sBAAuB,CAAC,KAAK,MAAM;AAAA,IAC1C,IAAI,OAAO,QAAQ,UAAU;AAAA,MAC3B,QAAQ,YAAY,6BAA6B,0BAA0B,KAAK,IAAI;AAAA,MACpF,OAAO,2BAA2B,YAAY;AAAA,IAChD;AAAA,IAEA,IAAI,OAAO,QAAQ,UAAU;AAAA,MAC3B,OAAO,UAAU,KAAK,IAAI;AAAA,IAC5B;AAAA;AAAA,EAGF,IAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAO,UAAU;AAAA,EACjB,OAAO,QAAQ,UAAU;AAAA,EACzB,OAAO,QAAQ,UAAU;AAAA;;;;ECzczB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAI,OAAO;AAAA,EACH,kBAAU;AAAA;;;;ECHlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,kBAAkB,eAAe,cAAc,oBAAoB,cAAc,YAAY,qBAAkB;AAAA,EACvH,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,cAAc,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,WAAW;AAAA,IAAc,CAAC;AAAA,EACrH,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,KAAK,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAK,CAAC;AAAA,EAClG,OAAO,eAAe,SAAS,OAAO,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAO,CAAC;AAAA,EACtG,OAAO,eAAe,SAAS,aAAa,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAa,CAAC;AAAA,EAClH,OAAO,eAAe,SAAS,OAAO,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAO,CAAC;AAAA,EACtG,OAAO,eAAe,SAAS,QAAQ,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAQ,CAAC;AAAA,EACxG,OAAO,eAAe,SAAS,WAAW,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAW,CAAC;AAAA,EAC9G,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,gBAAgB,CAAC,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK;AAAA,EAC3D,cAAc,OAAO;AAAA,EACrB,IAAM,sBAAsB,CAAC,oBAAoB,eAAe,aAAa;AAAA,EAC7E,IAAM,kBAAkB,IAAI,IAAI;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAC;AAAA,EACD,IAAM,iBAAiB;AAAA,IACnB,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,OAAO;AAAA,IACP,WAAW;AAAA,IACX,WAAW;AAAA,EACf;AAAA,EACA,IAAM,oBAAoB;AAAA,IACtB,uBAAuB;AAAA,IACvB,kBAAkB;AAAA,IAClB,SAAS;AAAA,EACb;AAAA,EACA,IAAM,iBAAiB;AAAA,EAEvB,SAAS,eAAe,CAAC,GAAG;AAAA,IACxB,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;AAAA,IACpG,MAAM,IAAI,EAAE;AAAA,IACZ,MAAM,SAAS,KAAK,EAAE,UAAU,QAAQ,OAAY,YAAS,YAAI,GAAG;AAAA,IACpE,MAAM,WAAW,UAAU,QAAQ,UAAU,YAAY,IAAI,SAAS;AAAA,IACtE,MAAM,UAAU,MAAM,KAAK,EAAE,UAAU,QAAQ,OAAY,YAAS,YAAI,GAAG,YAAY,QAAQ,OAAY,YAAI,KAAK;AAAA,IACpH,MAAM,eAAe,KAAK,EAAE,iBAAiB,QAAQ,OAAY,YAAI,KAAK,MAAM;AAAA,IAChF,OAAO;AAAA,MACH,eAAe,MAAM,KAAK,EAAE,kBAAkB,QAAQ,OAAY,YAAI,KAAK,OAAO,QAAQ,OAAY,YAAI,KAAK;AAAA,MAC/G,gBAAgB,MAAM,KAAK,EAAE,mBAAmB,QAAQ,OAAY,YAAI,KAAK,OAAO,QAAQ,OAAY,YAAI,KAAK;AAAA,MACjH,cAAc,MAAM,KAAK,EAAE,iBAAiB,QAAQ,OAAY,YAAI,KAAK,OAAO,QAAQ,OAAY,YAAI,KAAK;AAAA,MAC7G,eAAe,MAAM,KAAK,EAAE,kBAAkB,QAAQ,OAAY,YAAI,KAAK,OAAO,QAAQ,OAAY,YAAI,KAAK;AAAA,MAC/G,iBAAiB,MAAM,KAAK,EAAE,oBAAoB,QAAQ,OAAY,YAAI,KAAK,OAAO,QAAQ,OAAY,YAAI,KAAK;AAAA,MACnH,MAAM,EAAE,OAAO,KAAK,EAAE,MAAM,UAAU,OAAO,IAAI,EAAE,UAAU,OAAO;AAAA,MACpE,eAAe,KAAK,EAAE,kBAAkB,QAAQ,OAAY,YAAI,KAAK;AAAA,MACrE,WAAW,KAAK,EAAE,cAAc,QAAQ,OAAY,YAAI,KAAK;AAAA,MAC7D,OAAO,KAAK,EAAE,UAAU,QAAQ,OAAY,YAAI,KAAK;AAAA,MACrD,WAAW,KAAK,EAAE,cAAc,QAAQ,OAAY,YAAI,KAAK;AAAA,MAC7D,aAAa,KAAK,EAAE,gBAAgB,QAAQ,OAAY,YAAI,KAAK;AAAA,MACjE,WAAW,KAAK,EAAE,cAAc,QAAQ,OAAY,YAAI,KAAK;AAAA,MAC7D,gBAAgB,KAAK,EAAE,mBAAmB,QAAQ,OAAY,YAAI,KAAK;AAAA,MACvE,iBAAiB,KAAK,EAAE,oBAAoB,QAAQ,OAAY,YAAI,KAAK;AAAA,MACzE,kBAAkB,KAAK,EAAE,qBAAqB,QAAQ,OAAY,YAAI,KAAK;AAAA,MAC3E,gBAAgB,KAAK,EAAE,mBAAmB,QAAQ,OAAY,YAAI,KAAK;AAAA,MACvE,aAAa,KAAK,EAAE,gBAAgB,QAAQ,OAAY,YAAI,KAAK;AAAA,MACjE;AAAA,IACJ;AAAA;AAAA;AAAA,EAEJ,MAAM,IAAI;AAAA,IACN,WAAW,CAAC,OAAO,CAAC,GAAG;AAAA,MACnB,KAAK,UAAU,CAAC;AAAA,MAChB,KAAK,OAAO,CAAC;AAAA,MACb,KAAK,UAAU,CAAC;AAAA,MAChB,KAAK,gBAAgB,IAAI;AAAA,MACzB,KAAK,WAAW,CAAC;AAAA,MACjB,KAAK,SAAS,IAAI;AAAA,MAClB,OAAO,KAAK,OAAO,KAAK,SAAS,gBAAgB,IAAI,EAAE;AAAA,MACvD,QAAQ,KAAK,UAAU,KAAK,KAAK;AAAA,MACjC,KAAK,QAAQ,IAAI,UAAU,WAAW,EAAE,OAAO,CAAC,GAAG,UAAU,iBAAiB,KAAK,MAAM,CAAC;AAAA,MAC1F,KAAK,SAAS,UAAU,KAAK,MAAM;AAAA,MACnC,MAAM,YAAY,KAAK;AAAA,MACvB,KAAK,kBAAkB;AAAA,MACvB,KAAK,SAAS,GAAG,QAAQ,UAAU;AAAA,MACnC,aAAa,KAAK,MAAM,gBAAgB,MAAM,eAAe;AAAA,MAC7D,aAAa,KAAK,MAAM,mBAAmB,MAAM,cAAc,MAAM;AAAA,MACrE,KAAK,YAAY,qBAAqB,KAAK,IAAI;AAAA,MAC/C,IAAI,KAAK;AAAA,QACL,kBAAkB,KAAK,IAAI;AAAA,MAC/B,KAAK,iBAAiB;AAAA,MACtB,KAAK,sBAAsB;AAAA,MAC3B,IAAI,KAAK;AAAA,QACL,mBAAmB,KAAK,MAAM,KAAK,QAAQ;AAAA,MAC/C,IAAI,OAAO,KAAK,QAAQ;AAAA,QACpB,KAAK,cAAc,KAAK,IAAI;AAAA,MAChC,kBAAkB,KAAK,IAAI;AAAA,MAC3B,KAAK,kBAAkB;AAAA;AAAA,IAE3B,gBAAgB,GAAG;AAAA,MACf,KAAK,WAAW,QAAQ;AAAA;AAAA,IAE5B,qBAAqB,GAAG;AAAA,MACpB,QAAQ,OAAO,aAAM,aAAa,KAAK;AAAA,MACvC,IAAI,iBAAiB;AAAA,MACrB,IAAI,aAAa,MAAM;AAAA,QACnB,iBAAiB,KAAK,eAAe;AAAA,QACrC,eAAe,KAAK,eAAe;AAAA,QACnC,OAAO,eAAe;AAAA,MAC1B;AAAA,MACA,IAAI,SAAQ;AAAA,QACR,KAAK,cAAc,gBAAgB,eAAe,WAAW,KAAK;AAAA;AAAA,IAE1E,WAAW,GAAG;AAAA,MACV,QAAQ,aAAM,aAAa,KAAK;AAAA,MAChC,OAAQ,KAAK,KAAK,cAAc,OAAO,SAAQ,WAAW,MAAK,aAAa,QAAO;AAAA;AAAA,IAEvF,QAAQ,CAAC,cAET,MACE;AAAA,MACE,IAAI;AAAA,MACJ,IAAI,OAAO,gBAAgB,UAAU;AAAA,QACjC,IAAI,KAAK,UAAU,YAAY;AAAA,QAC/B,IAAI,CAAC;AAAA,UACD,MAAM,IAAI,MAAM,8BAA8B,eAAe;AAAA,MACrE,EACK;AAAA,QACD,IAAI,KAAK,QAAQ,YAAY;AAAA;AAAA,MAEjC,MAAM,QAAQ,EAAE,IAAI;AAAA,MACpB,IAAI,EAAE,YAAY;AAAA,QACd,KAAK,SAAS,EAAE;AAAA,MACpB,OAAO;AAAA;AAAA,IAEX,OAAO,CAAC,QAAQ,OAAO;AAAA,MACnB,MAAM,MAAM,KAAK,WAAW,QAAQ,KAAK;AAAA,MACzC,OAAQ,IAAI,YAAY,KAAK,kBAAkB,GAAG;AAAA;AAAA,IAEtD,YAAY,CAAC,QAAQ,OAAM;AAAA,MACvB,IAAI,OAAO,KAAK,KAAK,cAAc,YAAY;AAAA,QAC3C,MAAM,IAAI,MAAM,yCAAyC;AAAA,MAC7D;AAAA,MACA,QAAQ,eAAe,KAAK;AAAA,MAC5B,OAAO,gBAAgB,KAAK,MAAM,QAAQ,KAAI;AAAA,MAC9C,eAAe,eAAe,CAAC,SAAS,OAAO;AAAA,QAC3C,MAAM,eAAe,KAAK,MAAM,QAAQ,OAAO;AAAA,QAC/C,MAAM,MAAM,KAAK,WAAW,SAAS,KAAK;AAAA,QAC1C,OAAO,IAAI,YAAY,cAAc,KAAK,MAAM,GAAG;AAAA;AAAA,MAEvD,eAAe,cAAc,CAAC,MAAM;AAAA,QAChC,IAAI,QAAQ,CAAC,KAAK,UAAU,IAAI,GAAG;AAAA,UAC/B,MAAM,gBAAgB,KAAK,MAAM,EAAE,KAAK,GAAG,IAAI;AAAA,QACnD;AAAA;AAAA,MAEJ,eAAe,aAAa,CAAC,KAAK;AAAA,QAC9B,IAAI;AAAA,UACA,OAAO,KAAK,kBAAkB,GAAG;AAAA,UAErC,OAAO,GAAG;AAAA,UACN,IAAI,EAAE,aAAa,YAAY;AAAA,YAC3B,MAAM;AAAA,UACV,YAAY,KAAK,MAAM,CAAC;AAAA,UACxB,MAAM,kBAAkB,KAAK,MAAM,EAAE,aAAa;AAAA,UAClD,OAAO,cAAc,KAAK,MAAM,GAAG;AAAA;AAAA;AAAA,MAG3C,SAAS,WAAW,GAAG,eAAe,KAAK,cAAc;AAAA,QACrD,IAAI,KAAK,KAAK,MAAM;AAAA,UAChB,MAAM,IAAI,MAAM,aAAa,qBAAqB,+BAA+B;AAAA,QACrF;AAAA;AAAA,MAEJ,eAAe,iBAAiB,CAAC,KAAK;AAAA,QAClC,MAAM,UAAU,MAAM,YAAY,KAAK,MAAM,GAAG;AAAA,QAChD,IAAI,CAAC,KAAK,KAAK;AAAA,UACX,MAAM,eAAe,KAAK,MAAM,QAAQ,OAAO;AAAA,QACnD,IAAI,CAAC,KAAK,KAAK;AAAA,UACX,KAAK,UAAU,SAAS,KAAK,KAAI;AAAA;AAAA,MAEzC,eAAe,WAAW,CAAC,KAAK;AAAA,QAC5B,MAAM,IAAI,KAAK,SAAS;AAAA,QACxB,IAAI;AAAA,UACA,OAAO;AAAA,QACX,IAAI;AAAA,UACA,OAAO,OAAO,KAAK,SAAS,OAAO,WAAW,GAAG;AAAA,kBAErD;AAAA,UACI,OAAO,KAAK,SAAS;AAAA;AAAA;AAAA;AAAA,IAKjC,SAAS,CAAC,QACV,KACA,OACA,kBAAkB,KAAK,KAAK,gBAC1B;AAAA,MACE,IAAI,MAAM,QAAQ,MAAM,GAAG;AAAA,QACvB,WAAW,OAAO;AAAA,UACd,KAAK,UAAU,KAAK,WAAW,OAAO,eAAe;AAAA,QACzD,OAAO;AAAA,MACX;AAAA,MACA,IAAI;AAAA,MACJ,IAAI,OAAO,WAAW,UAAU;AAAA,QAC5B,QAAQ,aAAa,KAAK;AAAA,QAC1B,KAAK,OAAO;AAAA,QACZ,IAAI,OAAO,aAAa,OAAO,MAAM,UAAU;AAAA,UAC3C,MAAM,IAAI,MAAM,UAAU,yBAAyB;AAAA,QACvD;AAAA,MACJ;AAAA,MACA,OAAO,GAAG,UAAU,aAAa,OAAO,EAAE;AAAA,MAC1C,KAAK,aAAa,GAAG;AAAA,MACrB,KAAK,QAAQ,OAAO,KAAK,WAAW,QAAQ,OAAO,KAAK,iBAAiB,IAAI;AAAA,MAC7E,OAAO;AAAA;AAAA,IAIX,aAAa,CAAC,QAAQ,KACtB,kBAAkB,KAAK,KAAK,gBAC1B;AAAA,MACE,KAAK,UAAU,QAAQ,KAAK,MAAM,eAAe;AAAA,MACjD,OAAO;AAAA;AAAA,IAGX,cAAc,CAAC,QAAQ,iBAAiB;AAAA,MACpC,IAAI,OAAO,UAAU;AAAA,QACjB,OAAO;AAAA,MACX,IAAI;AAAA,MACJ,UAAU,OAAO;AAAA,MACjB,IAAI,YAAY,aAAa,OAAO,WAAW,UAAU;AAAA,QACrD,MAAM,IAAI,MAAM,0BAA0B;AAAA,MAC9C;AAAA,MACA,UAAU,WAAW,KAAK,KAAK,eAAe,KAAK,YAAY;AAAA,MAC/D,IAAI,CAAC,SAAS;AAAA,QACV,KAAK,OAAO,KAAK,2BAA2B;AAAA,QAC5C,KAAK,SAAS;AAAA,QACd,OAAO;AAAA,MACX;AAAA,MACA,MAAM,QAAQ,KAAK,SAAS,SAAS,MAAM;AAAA,MAC3C,IAAI,CAAC,SAAS,iBAAiB;AAAA,QAC3B,MAAM,UAAU,wBAAwB,KAAK,WAAW;AAAA,QACxD,IAAI,KAAK,KAAK,mBAAmB;AAAA,UAC7B,KAAK,OAAO,MAAM,OAAO;AAAA,QAEzB;AAAA,gBAAM,IAAI,MAAM,OAAO;AAAA,MAC/B;AAAA,MACA,OAAO;AAAA;AAAA,IAIX,SAAS,CAAC,QAAQ;AAAA,MACd,IAAI;AAAA,MACJ,OAAO,QAAQ,MAAM,UAAU,KAAK,MAAM,MAAM,MAAM;AAAA,QAClD,SAAS;AAAA,MACb,IAAI,QAAQ,WAAW;AAAA,QACnB,QAAQ,aAAa,KAAK;AAAA,QAC1B,MAAM,OAAO,IAAI,UAAU,UAAU,EAAE,QAAQ,CAAC,GAAG,SAAS,CAAC;AAAA,QAC7D,MAAM,UAAU,cAAc,KAAK,MAAM,MAAM,MAAM;AAAA,QACrD,IAAI,CAAC;AAAA,UACD;AAAA,QACJ,KAAK,KAAK,UAAU;AAAA,MACxB;AAAA,MACA,OAAQ,IAAI,YAAY,KAAK,kBAAkB,GAAG;AAAA;AAAA,IAMtD,YAAY,CAAC,cAAc;AAAA,MACvB,IAAI,wBAAwB,QAAQ;AAAA,QAChC,KAAK,kBAAkB,KAAK,SAAS,YAAY;AAAA,QACjD,KAAK,kBAAkB,KAAK,MAAM,YAAY;AAAA,QAC9C,OAAO;AAAA,MACX;AAAA,MACA,QAAQ,OAAO;AAAA,aACN;AAAA,UACD,KAAK,kBAAkB,KAAK,OAAO;AAAA,UACnC,KAAK,kBAAkB,KAAK,IAAI;AAAA,UAChC,KAAK,OAAO,MAAM;AAAA,UAClB,OAAO;AAAA,aACN,UAAU;AAAA,UACX,MAAM,MAAM,UAAU,KAAK,MAAM,YAAY;AAAA,UAC7C,IAAI,OAAO,OAAO;AAAA,YACd,KAAK,OAAO,OAAO,IAAI,MAAM;AAAA,UACjC,OAAO,KAAK,QAAQ;AAAA,UACpB,OAAO,KAAK,KAAK;AAAA,UACjB,OAAO;AAAA,QACX;AAAA,aACK,UAAU;AAAA,UACX,MAAM,WAAW;AAAA,UACjB,KAAK,OAAO,OAAO,QAAQ;AAAA,UAC3B,IAAI,KAAK,aAAa,KAAK,KAAK;AAAA,UAChC,IAAI,IAAI;AAAA,YACJ,MAAM,GAAG,UAAU,aAAa,EAAE;AAAA,YAClC,OAAO,KAAK,QAAQ;AAAA,YACpB,OAAO,KAAK,KAAK;AAAA,UACrB;AAAA,UACA,OAAO;AAAA,QACX;AAAA;AAAA,UAEI,MAAM,IAAI,MAAM,qCAAqC;AAAA;AAAA;AAAA,IAIjE,aAAa,CAAC,aAAa;AAAA,MACvB,WAAW,OAAO;AAAA,QACd,KAAK,WAAW,GAAG;AAAA,MACvB,OAAO;AAAA;AAAA,IAEX,UAAU,CAAC,UAAU,KACnB;AAAA,MACE,IAAI;AAAA,MACJ,IAAI,OAAO,YAAY,UAAU;AAAA,QAC7B,UAAU;AAAA,QACV,IAAI,OAAO,OAAO,UAAU;AAAA,UACxB,KAAK,OAAO,KAAK,0DAA0D;AAAA,UAC3E,IAAI,UAAU;AAAA,QAClB;AAAA,MACJ,EACK,SAAI,OAAO,YAAY,YAAY,QAAQ,WAAW;AAAA,QACvD,MAAM;AAAA,QACN,UAAU,IAAI;AAAA,QACd,IAAI,MAAM,QAAQ,OAAO,KAAK,CAAC,QAAQ,QAAQ;AAAA,UAC3C,MAAM,IAAI,MAAM,wDAAwD;AAAA,QAC5E;AAAA,MACJ,EACK;AAAA,QACD,MAAM,IAAI,MAAM,gCAAgC;AAAA;AAAA,MAEpD,aAAa,KAAK,MAAM,SAAS,GAAG;AAAA,MACpC,IAAI,CAAC,KAAK;AAAA,SACL,GAAG,OAAO,UAAU,SAAS,CAAC,QAAQ,QAAQ,KAAK,MAAM,GAAG,CAAC;AAAA,QAC9D,OAAO;AAAA,MACX;AAAA,MACA,kBAAkB,KAAK,MAAM,GAAG;AAAA,MAChC,MAAM,aAAa;AAAA,WACZ;AAAA,QACH,OAAO,GAAG,WAAW,cAAc,IAAI,IAAI;AAAA,QAC3C,aAAa,GAAG,WAAW,cAAc,IAAI,UAAU;AAAA,MAC3D;AAAA,OACC,GAAG,OAAO,UAAU,SAAS,WAAW,KAAK,WAAW,IACnD,CAAC,MAAM,QAAQ,KAAK,MAAM,GAAG,UAAU,IACvC,CAAC,MAAM,WAAW,KAAK,QAAQ,CAAC,MAAM,QAAQ,KAAK,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;AAAA,MACjF,OAAO;AAAA;AAAA,IAEX,UAAU,CAAC,SAAS;AAAA,MAChB,MAAM,OAAO,KAAK,MAAM,IAAI;AAAA,MAC5B,OAAO,OAAO,QAAQ,WAAW,KAAK,aAAa,CAAC,CAAC;AAAA;AAAA,IAGzD,aAAa,CAAC,SAAS;AAAA,MAEnB,QAAQ,UAAU;AAAA,MAClB,OAAO,MAAM,SAAS;AAAA,MACtB,OAAO,MAAM,IAAI;AAAA,MACjB,WAAW,SAAS,MAAM,OAAO;AAAA,QAC7B,MAAM,IAAI,MAAM,MAAM,UAAU,CAAC,SAAS,KAAK,YAAY,OAAO;AAAA,QAClE,IAAI,KAAK;AAAA,UACL,MAAM,MAAM,OAAO,GAAG,CAAC;AAAA,MAC/B;AAAA,MACA,OAAO;AAAA;AAAA,IAGX,SAAS,CAAC,MAAM,QAAQ;AAAA,MACpB,IAAI,OAAO,UAAU;AAAA,QACjB,SAAS,IAAI,OAAO,MAAM;AAAA,MAC9B,KAAK,QAAQ,QAAQ;AAAA,MACrB,OAAO;AAAA;AAAA,IAEX,UAAU,CAAC,SAAS,KAAK,UACvB,YAAY,MAAM,UAAU,WAAW,CAAC,GACxC;AAAA,MACE,IAAI,CAAC,UAAU,OAAO,WAAW;AAAA,QAC7B,OAAO;AAAA,MACX,OAAO,OACF,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,gBAAgB,EAAE,SAAS,EACrD,OAAO,CAAC,MAAM,QAAQ,OAAO,YAAY,GAAG;AAAA;AAAA,IAErD,eAAe,CAAC,YAAY,sBAAsB;AAAA,MAC9C,MAAM,QAAQ,KAAK,MAAM;AAAA,MACzB,aAAa,KAAK,MAAM,KAAK,UAAU,UAAU,CAAC;AAAA,MAClD,WAAW,eAAe,sBAAsB;AAAA,QAC5C,MAAM,WAAW,YAAY,MAAM,GAAG,EAAE,MAAM,CAAC;AAAA,QAC/C,IAAI,WAAW;AAAA,QACf,WAAW,OAAO;AAAA,UACd,WAAW,SAAS;AAAA,QACxB,WAAW,OAAO,OAAO;AAAA,UACrB,MAAM,OAAO,MAAM;AAAA,UACnB,IAAI,OAAO,QAAQ;AAAA,YACf;AAAA,UACJ,QAAQ,UAAU,KAAK;AAAA,UACvB,MAAM,SAAS,SAAS;AAAA,UACxB,IAAI,SAAS;AAAA,YACT,SAAS,OAAO,aAAa,MAAM;AAAA,QAC3C;AAAA,MACJ;AAAA,MACA,OAAO;AAAA;AAAA,IAEX,iBAAiB,CAAC,SAAS,OAAO;AAAA,MAC9B,WAAW,UAAU,SAAS;AAAA,QAC1B,MAAM,MAAM,QAAQ;AAAA,QACpB,IAAI,CAAC,SAAS,MAAM,KAAK,MAAM,GAAG;AAAA,UAC9B,IAAI,OAAO,OAAO,UAAU;AAAA,YACxB,OAAO,QAAQ;AAAA,UACnB,EACK,SAAI,OAAO,CAAC,IAAI,MAAM;AAAA,YACvB,KAAK,OAAO,OAAO,IAAI,MAAM;AAAA,YAC7B,OAAO,QAAQ;AAAA,UACnB;AAAA,QACJ;AAAA,MACJ;AAAA;AAAA,IAEJ,UAAU,CAAC,QAAQ,OAAM,QAAQ,iBAAiB,KAAK,KAAK,gBAAgB,YAAY,KAAK,KAAK,eAAe;AAAA,MAC7G,IAAI;AAAA,MACJ,QAAQ,aAAa,KAAK;AAAA,MAC1B,IAAI,OAAO,UAAU,UAAU;AAAA,QAC3B,KAAK,OAAO;AAAA,MAChB,EACK;AAAA,QACD,IAAI,KAAK,KAAK;AAAA,UACV,MAAM,IAAI,MAAM,uBAAuB;AAAA,QACtC,SAAI,OAAO,UAAU;AAAA,UACtB,MAAM,IAAI,MAAM,kCAAkC;AAAA;AAAA,MAE1D,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM;AAAA,MAChC,IAAI,QAAQ;AAAA,QACR,OAAO;AAAA,MACX,UAAU,GAAG,UAAU,aAAa,MAAM,MAAM;AAAA,MAChD,MAAM,YAAY,UAAU,cAAc,KAAK,MAAM,QAAQ,MAAM;AAAA,MACnE,MAAM,IAAI,UAAU,UAAU,EAAE,QAAQ,UAAU,aAAM,QAAQ,UAAU,CAAC;AAAA,MAC3E,KAAK,OAAO,IAAI,IAAI,QAAQ,GAAG;AAAA,MAC/B,IAAI,aAAa,CAAC,OAAO,WAAW,GAAG,GAAG;AAAA,QAEtC,IAAI;AAAA,UACA,KAAK,aAAa,MAAM;AAAA,QAC5B,KAAK,KAAK,UAAU;AAAA,MACxB;AAAA,MACA,IAAI;AAAA,QACA,KAAK,eAAe,QAAQ,IAAI;AAAA,MACpC,OAAO;AAAA;AAAA,IAEX,YAAY,CAAC,IAAI;AAAA,MACb,IAAI,KAAK,QAAQ,OAAO,KAAK,KAAK,KAAK;AAAA,QACnC,MAAM,IAAI,MAAM,0BAA0B,oBAAoB;AAAA,MAClE;AAAA;AAAA,IAEJ,iBAAiB,CAAC,KAAK;AAAA,MACnB,IAAI,IAAI;AAAA,QACJ,KAAK,mBAAmB,GAAG;AAAA,MAE3B;AAAA,kBAAU,cAAc,KAAK,MAAM,GAAG;AAAA,MAE1C,IAAI,CAAC,IAAI;AAAA,QACL,MAAM,IAAI,MAAM,0BAA0B;AAAA,MAC9C,OAAO,IAAI;AAAA;AAAA,IAEf,kBAAkB,CAAC,KAAK;AAAA,MACpB,MAAM,cAAc,KAAK;AAAA,MACzB,KAAK,OAAO,KAAK;AAAA,MACjB,IAAI;AAAA,QACA,UAAU,cAAc,KAAK,MAAM,GAAG;AAAA,gBAE1C;AAAA,QACI,KAAK,OAAO;AAAA;AAAA;AAAA,EAGxB;AAAA,EACA,IAAI,kBAAkB,mBAAmB;AAAA,EACzC,IAAI,kBAAkB,YAAY;AAAA,EAC1B,kBAAU;AAAA,EAClB,SAAS,YAAY,CAAC,WAAW,SAAS,KAAK,OAAM,SAAS;AAAA,IAC1D,WAAW,OAAO,WAAW;AAAA,MACzB,MAAM,MAAM;AAAA,MACZ,IAAI,OAAO;AAAA,QACP,KAAK,OAAO,MAAK,GAAG,eAAe,QAAQ,UAAU,MAAM;AAAA,IACnE;AAAA;AAAA,EAEJ,SAAS,SAAS,CAAC,QAAQ;AAAA,IACvB,UAAU,GAAG,UAAU,aAAa,MAAM;AAAA,IAC1C,OAAO,KAAK,QAAQ,WAAW,KAAK,KAAK;AAAA;AAAA,EAE7C,SAAS,iBAAiB,GAAG;AAAA,IACzB,MAAM,cAAc,KAAK,KAAK;AAAA,IAC9B,IAAI,CAAC;AAAA,MACD;AAAA,IACJ,IAAI,MAAM,QAAQ,WAAW;AAAA,MACzB,KAAK,UAAU,WAAW;AAAA,IAE1B;AAAA,iBAAW,OAAO;AAAA,QACd,KAAK,UAAU,YAAY,MAAM,GAAG;AAAA;AAAA,EAEhD,SAAS,iBAAiB,GAAG;AAAA,IACzB,WAAW,QAAQ,KAAK,KAAK,SAAS;AAAA,MAClC,MAAM,SAAS,KAAK,KAAK,QAAQ;AAAA,MACjC,IAAI;AAAA,QACA,KAAK,UAAU,MAAM,MAAM;AAAA,IACnC;AAAA;AAAA,EAEJ,SAAS,kBAAkB,CAAC,MAAM;AAAA,IAC9B,IAAI,MAAM,QAAQ,IAAI,GAAG;AAAA,MACrB,KAAK,cAAc,IAAI;AAAA,MACvB;AAAA,IACJ;AAAA,IACA,KAAK,OAAO,KAAK,kDAAkD;AAAA,IACnE,WAAW,WAAW,MAAM;AAAA,MACxB,MAAM,MAAM,KAAK;AAAA,MACjB,IAAI,CAAC,IAAI;AAAA,QACL,IAAI,UAAU;AAAA,MAClB,KAAK,WAAW,GAAG;AAAA,IACvB;AAAA;AAAA,EAEJ,SAAS,oBAAoB,GAAG;AAAA,IAC5B,MAAM,WAAW,KAAK,KAAK,KAAK;AAAA,IAChC,WAAW,OAAO;AAAA,MACd,OAAO,SAAS;AAAA,IACpB,OAAO;AAAA;AAAA,EAEX,IAAM,SAAS,EAAE,GAAG,GAAG,IAAK,IAAI,GAAG,IAAK,KAAK,GAAG,GAAI;AAAA,EACpD,SAAS,SAAS,CAAC,QAAQ;AAAA,IACvB,IAAI,WAAW;AAAA,MACX,OAAO;AAAA,IACX,IAAI,WAAW;AAAA,MACX,OAAO;AAAA,IACX,IAAI,OAAO,OAAO,OAAO,QAAQ,OAAO;AAAA,MACpC,OAAO;AAAA,IACX,MAAM,IAAI,MAAM,mDAAmD;AAAA;AAAA,EAEvE,IAAM,eAAe;AAAA,EACrB,SAAS,YAAY,CAAC,SAAS,KAAK;AAAA,IAChC,QAAQ,UAAU;AAAA,KACjB,GAAG,OAAO,UAAU,SAAS,CAAC,QAAQ;AAAA,MACnC,IAAI,MAAM,SAAS;AAAA,QACf,MAAM,IAAI,MAAM,WAAW,wBAAwB;AAAA,MACvD,IAAI,CAAC,aAAa,KAAK,GAAG;AAAA,QACtB,MAAM,IAAI,MAAM,WAAW,sBAAsB;AAAA,KACxD;AAAA,IACD,IAAI,CAAC;AAAA,MACD;AAAA,IACJ,IAAI,IAAI,SAAS,GAAE,UAAU,SAAO,cAAc,OAAM;AAAA,MACpD,MAAM,IAAI,MAAM,uDAAuD;AAAA,IAC3E;AAAA;AAAA,EAEJ,SAAS,OAAO,CAAC,SAAS,YAAY,UAAU;AAAA,IAC5C,IAAI;AAAA,IACJ,MAAM,OAAO,eAAe,QAAQ,eAAoB,YAAS,YAAI,WAAW;AAAA,IAChF,IAAI,YAAY;AAAA,MACZ,MAAM,IAAI,MAAM,6CAA6C;AAAA,IACjE,QAAQ,UAAU;AAAA,IAClB,IAAI,YAAY,OAAO,MAAM,OAAO,MAAM,MAAM,KAAK,GAAG,MAAM,QAAQ,MAAM,QAAQ;AAAA,IACpF,IAAI,CAAC,WAAW;AAAA,MACZ,YAAY,EAAE,MAAM,UAAU,OAAO,CAAC,EAAE;AAAA,MACxC,MAAM,MAAM,KAAK,SAAS;AAAA,IAC9B;AAAA,IACA,MAAM,SAAS,WAAW;AAAA,IAC1B,IAAI,CAAC;AAAA,MACD;AAAA,IACJ,MAAM,OAAO;AAAA,MACT;AAAA,MACA,YAAY;AAAA,WACL;AAAA,QACH,OAAO,GAAG,WAAW,cAAc,WAAW,IAAI;AAAA,QAClD,aAAa,GAAG,WAAW,cAAc,WAAW,UAAU;AAAA,MAClE;AAAA,IACJ;AAAA,IACA,IAAI,WAAW;AAAA,MACX,cAAc,KAAK,MAAM,WAAW,MAAM,WAAW,MAAM;AAAA,IAE3D;AAAA,gBAAU,MAAM,KAAK,IAAI;AAAA,IAC7B,MAAM,IAAI,WAAW;AAAA,KACpB,KAAK,WAAW,gBAAgB,QAAQ,OAAY,aAAa,GAAG,QAAQ,CAAC,QAAQ,KAAK,WAAW,GAAG,CAAC;AAAA;AAAA,EAE9G,SAAS,aAAa,CAAC,WAAW,MAAM,QAAQ;AAAA,IAC5C,MAAM,IAAI,UAAU,MAAM,UAAU,CAAC,UAAU,MAAM,YAAY,MAAM;AAAA,IACvE,IAAI,KAAK,GAAG;AAAA,MACR,UAAU,MAAM,OAAO,GAAG,GAAG,IAAI;AAAA,IACrC,EACK;AAAA,MACD,UAAU,MAAM,KAAK,IAAI;AAAA,MACzB,KAAK,OAAO,KAAK,QAAQ,uBAAuB;AAAA;AAAA;AAAA,EAGxD,SAAS,iBAAiB,CAAC,KAAK;AAAA,IAC5B,MAAM,eAAe;AAAA,IACrB,IAAI,eAAe;AAAA,MACf;AAAA,IACJ,IAAI,IAAI,SAAS,KAAK,KAAK;AAAA,MACvB,aAAa,aAAa,UAAU;AAAA,IACxC,IAAI,iBAAiB,KAAK,QAAQ,YAAY,IAAI;AAAA;AAAA,EAEtD,IAAM,WAAW;AAAA,IACb,MAAM;AAAA,EACV;AAAA,EACA,SAAS,YAAY,CAAC,QAAQ;AAAA,IAC1B,OAAO,EAAE,OAAO,CAAC,QAAQ,QAAQ,EAAE;AAAA;AAAA;;;;ECtmBvC,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,IAAI,GAAG;AAAA,MACH,MAAM,IAAI,MAAM,sDAAsD;AAAA;AAAA,EAE9E;AAAA,EACQ,kBAAU;AAAA;;;;ECPlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,kBAAkB,sBAAmB;AAAA,EAC7C,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,MAAM,OAAO;AAAA,MAClC,QAAQ,QAAQ,WAAW,KAAK,cAAc,MAAM,SAAS;AAAA,MAC7D,QAAQ,SAAS;AAAA,MACjB,KAAK,SAAS,OAAO,SAAS,SAAS,WAAW,KAAK;AAAA,QACnD,OAAO,YAAY;AAAA,MACvB,MAAM,WAAW,UAAU,WAAW,KAAK,MAAM,MAAM,QAAQ,IAAI;AAAA,MACnE,IAAI,aAAa;AAAA,QACb,MAAM,IAAI,YAAY,QAAQ,GAAG,KAAK,aAAa,QAAQ,IAAI;AAAA,MACnE,IAAI,oBAAoB,UAAU;AAAA,QAC9B,OAAO,aAAa,QAAQ;AAAA,MAChC,OAAO,gBAAgB,QAAQ;AAAA,MAC/B,SAAS,WAAW,GAAG;AAAA,QACnB,IAAI,QAAQ;AAAA,UACR,OAAO,QAAQ,KAAK,cAAc,KAAK,IAAI,MAAM;AAAA,QACrD,MAAM,WAAW,IAAI,WAAW,QAAQ,EAAE,KAAK,KAAK,CAAC;AAAA,QACrD,OAAO,QAAQ,KAAM,IAAG,UAAU,KAAM,qBAAqB,MAAM,KAAK,MAAM;AAAA;AAAA,MAElF,SAAS,YAAY,CAAC,KAAK;AAAA,QACvB,MAAM,IAAI,YAAY,KAAK,GAAG;AAAA,QAC9B,QAAQ,KAAK,GAAG,KAAK,IAAI,MAAM;AAAA;AAAA,MAEnC,SAAS,eAAe,CAAC,KAAK;AAAA,QAC1B,MAAM,UAAU,IAAI,WAAW,UAAU,KAAK,KAAK,WAAW,OAAO,EAAE,KAAK,KAAK,OAAO,GAAG,UAAU,WAAW,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;AAAA,QACrI,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,QAC9B,MAAM,SAAS,IAAI,UAAU;AAAA,UACzB,QAAQ;AAAA,UACR,WAAW,CAAC;AAAA,UACZ,YAAY,UAAU;AAAA,UACtB,cAAc;AAAA,UACd,eAAe;AAAA,QACnB,GAAG,KAAK;AAAA,QACR,IAAI,eAAe,MAAM;AAAA,QACzB,IAAI,GAAG,KAAK;AAAA;AAAA;AAAA,EAGxB;AAAA,EACA,SAAS,WAAW,CAAC,KAAK,KAAK;AAAA,IAC3B,QAAQ,QAAQ;AAAA,IAChB,OAAO,IAAI,WACL,IAAI,WAAW,YAAY,EAAE,KAAK,IAAI,SAAS,CAAC,IAC/C,IAAG,UAAU,KAAM,IAAI,WAAW,WAAW,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA,EAE5D,sBAAc;AAAA,EACtB,SAAS,OAAO,CAAC,KAAK,GAAG,KAAK,QAAQ;AAAA,IAClC,QAAQ,KAAK,OAAO;AAAA,IACpB,QAAQ,WAAW,WAAW,KAAK,SAAS;AAAA,IAC5C,MAAM,UAAU,KAAK,cAAc,QAAQ,QAAQ,OAAO,UAAU;AAAA,IACpE,IAAI;AAAA,MACA,aAAa;AAAA,IAEb;AAAA,kBAAY;AAAA,IAChB,SAAS,YAAY,GAAG;AAAA,MACpB,IAAI,CAAC,IAAI;AAAA,QACL,MAAM,IAAI,MAAM,wCAAwC;AAAA,MAC5D,MAAM,QAAQ,IAAI,IAAI,OAAO;AAAA,MAC7B,IAAI,IAAI,MAAM;AAAA,QACV,IAAI,KAAM,IAAG,UAAU,YAAa,GAAG,OAAO,kBAAkB,KAAK,GAAG,OAAO,GAAG;AAAA,QAClF,iBAAiB,CAAC;AAAA,QAClB,IAAI,CAAC;AAAA,UACD,IAAI,OAAO,OAAO,IAAI;AAAA,SAC3B,CAAC,MAAM;AAAA,QACN,IAAI,GAAI,IAAG,UAAU,OAAQ,gBAAgB,GAAG,oBAAoB,MAAM,IAAI,MAAM,CAAC,CAAC;AAAA,QACtF,cAAc,CAAC;AAAA,QACf,IAAI,CAAC;AAAA,UACD,IAAI,OAAO,OAAO,KAAK;AAAA,OAC9B;AAAA,MACD,IAAI,GAAG,KAAK;AAAA;AAAA,IAEhB,SAAS,WAAW,GAAG;AAAA,MACnB,IAAI,QAAQ,GAAG,OAAO,kBAAkB,KAAK,GAAG,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,MAAM,cAAc,CAAC,CAAC;AAAA;AAAA,IAE/G,SAAS,aAAa,CAAC,QAAQ;AAAA,MAC3B,MAAM,OAAQ,IAAG,UAAU,KAAM;AAAA,MACjC,IAAI,OAAO,QAAQ,QAAQ,SAAU,IAAG,UAAU,KAAM,QAAQ,QAAQ,sBAAsB,UAAU,QAAQ,QAAQ,kBAAkB,OAAO;AAAA,MACjJ,IAAI,OAAO,QAAQ,QAAQ,QAAS,IAAG,UAAU,KAAM,QAAQ,QAAQ,gBAAgB;AAAA;AAAA,IAE3F,SAAS,gBAAgB,CAAC,QAAQ;AAAA,MAC9B,IAAI;AAAA,MACJ,IAAI,CAAC,GAAG,KAAK;AAAA,QACT;AAAA,MACJ,MAAM,gBAAgB,KAAK,QAAQ,QAAQ,QAAa,YAAS,YAAI,IAAI,cAAc,QAAQ,OAAY,YAAS,YAAI,GAAG;AAAA,MAE3H,IAAI,GAAG,UAAU,MAAM;AAAA,QACnB,IAAI,gBAAgB,CAAC,aAAa,cAAc;AAAA,UAC5C,IAAI,aAAa,UAAU,WAAW;AAAA,YAClC,GAAG,QAAQ,OAAO,eAAe,MAAM,KAAK,aAAa,OAAO,GAAG,KAAK;AAAA,UAC5E;AAAA,QACJ,EACK;AAAA,UACD,MAAM,QAAQ,IAAI,IAAI,SAAU,IAAG,UAAU,KAAM,wBAAwB;AAAA,UAC3E,GAAG,QAAQ,OAAO,eAAe,MAAM,KAAK,OAAO,GAAG,OAAO,UAAU,IAAI;AAAA;AAAA,MAEnF;AAAA,MACA,IAAI,GAAG,UAAU,MAAM;AAAA,QACnB,IAAI,gBAAgB,CAAC,aAAa,cAAc;AAAA,UAC5C,IAAI,aAAa,UAAU,WAAW;AAAA,YAClC,GAAG,QAAQ,OAAO,eAAe,MAAM,KAAK,aAAa,OAAO,GAAG,KAAK;AAAA,UAC5E;AAAA,QACJ,EACK;AAAA,UACD,MAAM,QAAQ,IAAI,IAAI,SAAU,IAAG,UAAU,KAAM,wBAAwB;AAAA,UAC3E,GAAG,QAAQ,OAAO,eAAe,MAAM,KAAK,OAAO,GAAG,OAAO,UAAU,IAAI;AAAA;AAAA,MAEnF;AAAA;AAAA;AAAA,EAGA,kBAAU;AAAA,EACV,kBAAU;AAAA;;;;ECvHlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,OAAO;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,SAAS,WAAW;AAAA,IACtB;AAAA,IACA,KAAK;AAAA,IACL,MAAM;AAAA,EACV;AAAA,EACQ,kBAAU;AAAA;;;;ECblB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,MAAM,UAAU;AAAA,EACtB,IAAM,OAAO;AAAA,IACT,SAAS,EAAE,OAAO,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,GAAG;AAAA,IAClD,SAAS,EAAE,OAAO,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,GAAG;AAAA,IAClD,kBAAkB,EAAE,OAAO,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AAAA,IAC1D,kBAAkB,EAAE,OAAO,KAAK,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AAAA,EAC9D;AAAA,EACA,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,SAAS,iBAAkB,IAAG,UAAU,eAAgB,KAAK,SAAS,SAAS;AAAA,IAC3F,QAAQ,GAAG,SAAS,iBAAkB,IAAG,UAAU,kBAAmB,KAAK,SAAS,iBAAiB;AAAA,EACzG;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS,OAAO,KAAK,IAAI;AAAA,IACzB,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,SAAS,MAAM,eAAe;AAAA,MACtC,IAAI,UAAW,IAAG,UAAU,KAAM,QAAQ,KAAK,SAAS,QAAQ,uBAAuB,OAAO;AAAA;AAAA,EAEtG;AAAA,EACQ,kBAAU;AAAA;;;;ECxBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,iBAAkB,IAAG,UAAU,2BAA4B;AAAA,IACvE,QAAQ,GAAG,iBAAkB,IAAG,UAAU,kBAAmB;AAAA,EACjE;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,MAAM,YAAY,OAAO;AAAA,MAEtC,MAAM,OAAO,GAAG,KAAK;AAAA,MACrB,MAAM,MAAM,IAAI,IAAI,KAAK;AAAA,MACzB,MAAM,UAAU,OACT,IAAG,UAAU,yBAA0B,UAAU,aAAa,SAC9D,IAAG,UAAU,KAAM,oBAAoB;AAAA,MAC9C,IAAI,UAAW,IAAG,UAAU,MAAO,wBAAwB,SAAS,QAAQ,eAAe,WAAW;AAAA;AAAA,EAE9G;AAAA,EACQ,kBAAU;AAAA;;;;ECvBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAG5D,SAAS,UAAU,CAAC,KAAK;AAAA,IACrB,MAAM,MAAM,IAAI;AAAA,IAChB,IAAI,SAAS;AAAA,IACb,IAAI,MAAM;AAAA,IACV,IAAI;AAAA,IACJ,OAAO,MAAM,KAAK;AAAA,MACd;AAAA,MACA,QAAQ,IAAI,WAAW,KAAK;AAAA,MAC5B,IAAI,SAAS,SAAU,SAAS,SAAU,MAAM,KAAK;AAAA,QAEjD,QAAQ,IAAI,WAAW,GAAG;AAAA,QAC1B,KAAK,QAAQ,WAAY;AAAA,UACrB;AAAA,MACR;AAAA,IACJ;AAAA,IACA,OAAO;AAAA;AAAA,EAEH,kBAAU;AAAA,EAClB,WAAW,OAAO;AAAA;;;;ECrBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,OAAO,GAAG,SAAS,cAAc;AAAA,MAC7B,MAAM,OAAO,YAAY,cAAc,SAAS;AAAA,MAChD,OAAQ,IAAG,UAAU,qBAAsB,aAAa;AAAA;AAAA,IAE5D,QAAQ,GAAG,iBAAkB,IAAG,UAAU,aAAc;AAAA,EAC5D;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS,CAAC,aAAa,WAAW;AAAA,IAClC,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,SAAS,MAAM,YAAY,OAAO;AAAA,MAC1C,MAAM,KAAK,YAAY,cAAc,UAAU,UAAU,KAAK,UAAU,UAAU;AAAA,MAClF,MAAM,MAAM,GAAG,KAAK,YAAY,QAAS,IAAG,UAAU,KAAM,gBAAiB,IAAG,UAAU,MAAO,GAAG,OAAO,SAAS,IAAI,KAAK,aAAa,OAAO,KAAK;AAAA,MACtJ,IAAI,UAAW,IAAG,UAAU,KAAM,OAAO,MAAM,YAAY;AAAA;AAAA,EAEnE;AAAA,EACQ,kBAAU;AAAA;;;;ECxBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,iBAAkB,IAAG,UAAU,2BAA4B;AAAA,IACvE,QAAQ,GAAG,iBAAkB,IAAG,UAAU,eAAgB;AAAA,EAC9D;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,MAAM,OAAO,QAAQ,YAAY,OAAO;AAAA,MAEhD,MAAM,IAAI,GAAG,KAAK,gBAAgB,MAAM;AAAA,MACxC,MAAM,SAAS,QAAS,IAAG,UAAU,iBAAkB,eAAe,SAAS,GAAG,OAAO,YAAY,KAAK,MAAM;AAAA,MAChH,IAAI,UAAW,IAAG,UAAU,MAAO,eAAe,OAAO;AAAA;AAAA,EAEjE;AAAA,EACQ,kBAAU;AAAA;;;;ECrBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,OAAO,GAAG,SAAS,cAAc;AAAA,MAC7B,MAAM,OAAO,YAAY,kBAAkB,SAAS;AAAA,MACpD,OAAQ,IAAG,UAAU,qBAAsB,aAAa;AAAA;AAAA,IAE5D,QAAQ,GAAG,iBAAkB,IAAG,UAAU,aAAc;AAAA,EAC5D;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS,CAAC,iBAAiB,eAAe;AAAA,IAC1C,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,SAAS,MAAM,eAAe;AAAA,MACtC,MAAM,KAAK,YAAY,kBAAkB,UAAU,UAAU,KAAK,UAAU,UAAU;AAAA,MACtF,IAAI,UAAW,IAAG,UAAU,iBAAkB,gBAAgB,MAAM,YAAY;AAAA;AAAA,EAExF;AAAA,EACQ,kBAAU;AAAA;;;;ECrBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,UAAU,wBAAyB,IAAG,UAAU,oCAAqC;AAAA,IACjG,QAAQ,GAAG,UAAU,wBAAyB,IAAG,UAAU,uBAAwB;AAAA,EACvF;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,YAAY,MAAM,OAAO,OAAO;AAAA,MACrD,QAAQ,SAAS;AAAA,MACjB,IAAI,CAAC,SAAS,OAAO,WAAW;AAAA,QAC5B;AAAA,MACJ,MAAM,UAAU,OAAO,UAAU,KAAK;AAAA,MACtC,IAAI,GAAG;AAAA,QACH,cAAc;AAAA,MAEd;AAAA,wBAAgB;AAAA,MACpB,IAAI,KAAK,gBAAgB;AAAA,QACrB,MAAM,QAAQ,IAAI,aAAa;AAAA,QAC/B,QAAQ,sBAAsB,IAAI;AAAA,QAClC,WAAW,eAAe,QAAQ;AAAA,UAC9B,KAAK,UAAU,QAAQ,UAAe,YAAS,YAAI,MAAM,kBAAkB,aAAa,CAAC,kBAAkB,IAAI,WAAW,GAAG;AAAA,YACzH,MAAM,aAAa,GAAG,UAAU,SAAS,GAAG;AAAA,YAC5C,MAAM,MAAM,sBAAsB,mCAAmC;AAAA,aACpE,GAAG,OAAO,iBAAiB,IAAI,KAAK,GAAG,KAAK,cAAc;AAAA,UAC/D;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,SAAS,aAAa,GAAG;AAAA,QACrB,IAAI,WAAW,OAAO;AAAA,UAClB,IAAI,WAAW,UAAU,KAAK,eAAe;AAAA,QACjD,EACK;AAAA,UACD,WAAW,QAAQ,QAAQ;AAAA,aACtB,GAAG,OAAO,wBAAwB,KAAK,IAAI;AAAA,UAChD;AAAA;AAAA;AAAA,MAGR,SAAS,eAAe,GAAG;AAAA,QACvB,MAAM,UAAU,IAAI,IAAI,SAAS;AAAA,QACjC,IAAI,WAAW,OAAO;AAAA,UAClB,MAAM,QAAQ,IAAI,IAAI,SAAS,IAAI;AAAA,UACnC,IAAI,WAAW,OAAO,MAAM,iBAAiB,SAAS,KAAK,CAAC;AAAA,UAC5D,IAAI,GAAG,KAAK;AAAA,QAChB,EACK;AAAA,UACD,IAAI,IAAI,GAAG,OAAO,kBAAkB,KAAK,QAAQ,OAAO,CAAC;AAAA,WACxD,GAAG,OAAO,mBAAmB,KAAK,OAAO;AAAA,UAC1C,IAAI,KAAK;AAAA;AAAA;AAAA,MAGjB,SAAS,eAAe,GAAG;AAAA,QACvB,IAAI,MAAM,QAAQ,YAAY,CAAC,SAAS;AAAA,UACpC,IAAI,UAAU,EAAE,iBAAiB,KAAK,CAAC;AAAA,UACvC,IAAI,IAAI,GAAG,OAAO,kBAAkB,KAAK,MAAM,MAAM,KAAK,aAAa,GAAG,MAAM,IAAI,MAAM,CAAC;AAAA,SAC9F;AAAA;AAAA,MAEL,SAAS,gBAAgB,CAAC,SAAS,OAAO;AAAA,QACtC,IAAI,UAAU,EAAE,iBAAiB,QAAQ,CAAC;AAAA,QAC1C,IAAI,MAAM,SAAS,YAAY,MAAM;AAAA,UACjC,IAAI,OAAO,QAAQ,GAAG,OAAO,gBAAgB,KAAK,MAAM,SAAS,KAAK,aAAa,CAAC;AAAA,UACpF,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,GAAG,MAAM;AAAA,YACpC,IAAI,MAAM;AAAA,YACV,IAAI,MAAM;AAAA,WACb;AAAA,WACF,UAAU,GAAG;AAAA;AAAA;AAAA,EAG5B;AAAA,EACQ,kBAAU;AAAA;;;;EC5ElB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,OAAO,GAAG,SAAS,cAAc;AAAA,MAC7B,MAAM,OAAO,YAAY,aAAa,SAAS;AAAA,MAC/C,OAAQ,IAAG,UAAU,qBAAsB,aAAa;AAAA;AAAA,IAE5D,QAAQ,GAAG,iBAAkB,IAAG,UAAU,aAAc;AAAA,EAC5D;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS,CAAC,YAAY,UAAU;AAAA,IAChC,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,SAAS,MAAM,eAAe;AAAA,MACtC,MAAM,KAAK,YAAY,aAAa,UAAU,UAAU,KAAK,UAAU,UAAU;AAAA,MACjF,IAAI,UAAW,IAAG,UAAU,KAAM,eAAe,MAAM,YAAY;AAAA;AAAA,EAE3E;AAAA,EACQ,kBAAU;AAAA;;;;ECrBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAE5D,IAAM;AAAA,EACN,MAAM,OAAO;AAAA,EACL,kBAAU;AAAA;;;;ECJlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,UAAU,GAAG,UAAW,IAAG,UAAU,+CAAgD,SAAS;AAAA,IAC1G,QAAQ,GAAG,UAAU,GAAG,UAAW,IAAG,UAAU,SAAU,SAAS;AAAA,EACvE;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,MAAM,OAAO,QAAQ,cAAc,YAAY,OAAO;AAAA,MACnE,IAAI,CAAC,SAAS,CAAC;AAAA,QACX;AAAA,MACJ,MAAM,QAAQ,IAAI,IAAI,OAAO;AAAA,MAC7B,MAAM,YAAY,aAAa,SAAS,GAAG,WAAW,gBAAgB,aAAa,KAAK,IAAI,CAAC;AAAA,MAC7F,IAAI,WAAW,OAAO,qBAAsB,IAAG,UAAU,KAAM,sBAAsB;AAAA,MACrF,IAAI,GAAG,KAAK;AAAA,MACZ,SAAS,mBAAmB,GAAG;AAAA,QAC3B,MAAM,IAAI,IAAI,IAAI,KAAM,IAAG,UAAU,KAAM,aAAa;AAAA,QACxD,MAAM,IAAI,IAAI,IAAI,GAAG;AAAA,QACrB,IAAI,UAAU,EAAE,GAAG,EAAE,CAAC;AAAA,QACtB,IAAI,OAAO,OAAO,IAAI;AAAA,QACtB,IAAI,GAAI,IAAG,UAAU,KAAM,SAAS,OAAO,YAAY,IAAI,QAAQ,QAAQ,GAAG,CAAC,CAAC;AAAA;AAAA,MAEpF,SAAS,WAAW,GAAG;AAAA,QACnB,OAAO,UAAU,SAAS,KAAK,CAAC,UAAU,KAAK,CAAC,MAAM,MAAM,YAAY,MAAM,OAAO;AAAA;AAAA,MAEzF,SAAS,KAAK,CAAC,GAAG,GAAG;AAAA,QACjB,MAAM,OAAO,IAAI,KAAK,MAAM;AAAA,QAC5B,MAAM,aAAa,GAAG,WAAW,gBAAgB,WAAW,MAAM,GAAG,KAAK,eAAe,WAAW,SAAS,KAAK;AAAA,QAClH,MAAM,UAAU,IAAI,MAAM,WAAY,IAAG,UAAU,MAAO;AAAA,QAC1D,IAAI,IAAK,IAAG,UAAU,MAAO,QAAQ,MAAM;AAAA,UACvC,IAAI,IAAI,MAAO,IAAG,UAAU,KAAM,QAAQ,IAAI;AAAA,UAC9C,IAAI,GAAG,WAAY,IAAG,UAAU,YAAa;AAAA,UAC7C,IAAI,UAAU,SAAS;AAAA,YACnB,IAAI,GAAI,IAAG,UAAU,YAAa,oBAAqB,IAAG,UAAU,KAAM,aAAa;AAAA,UAC3F,IACK,GAAI,IAAG,UAAU,YAAa,WAAW,qBAAqB,MAAM;AAAA,YACrE,IAAI,OAAO,GAAI,IAAG,UAAU,KAAM,WAAW,OAAO;AAAA,YACpD,IAAI,MAAM;AAAA,YACV,IAAI,OAAO,OAAO,KAAK,EAAE,MAAM;AAAA,WAClC,EACI,KAAM,IAAG,UAAU,KAAM,WAAW,WAAW,GAAG;AAAA,SAC1D;AAAA;AAAA,MAEL,SAAS,MAAM,CAAC,GAAG,GAAG;AAAA,QAClB,MAAM,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,OAAO;AAAA,QACpD,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,QAC9B,IAAI,MAAM,KAAK,EAAE,IAAK,IAAG,UAAU,MAAO,QAAQ,MAAM,IAAI,IAAK,IAAG,UAAU,KAAM,OAAO,MAAM,QAAQ,MAAM,IAAI,GAAI,IAAG,UAAU,KAAM,OAAO,QAAQ,OAAO,QAAQ,OAAO,MAAM;AAAA,UACjL,IAAI,MAAM;AAAA,UACV,IAAI,OAAO,OAAO,KAAK,EAAE,MAAM,KAAK;AAAA,SACvC,CAAC,CAAC;AAAA;AAAA;AAAA,EAGf;AAAA,EACQ,kBAAU;AAAA;;;;EC7DlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS;AAAA,IACT,QAAQ,GAAG,iBAAkB,IAAG,UAAU,oBAAqB;AAAA,EACnE;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,OAAO;AAAA,IACP;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,MAAM,OAAO,YAAY,WAAW;AAAA,MACjD,IAAI,SAAU,UAAU,OAAO,UAAU,UAAW;AAAA,QAChD,IAAI,UAAW,IAAG,UAAU,OAAQ,GAAG,OAAO,SAAS,KAAK,QAAQ,OAAO,KAAK,SAAS,aAAa;AAAA,MAC1G,EACK;AAAA,QACD,IAAI,KAAM,IAAG,UAAU,KAAM,cAAc,MAAM;AAAA;AAAA;AAAA,EAG7D;AAAA,EACQ,kBAAU;AAAA;;;;ECtBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS;AAAA,IACT,QAAQ,GAAG,iBAAkB,IAAG,UAAU,qBAAsB;AAAA,EACpE;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,MAAM,OAAO,QAAQ,YAAY,OAAO;AAAA,MACrD,IAAI,CAAC,SAAS,OAAO,WAAW;AAAA,QAC5B,MAAM,IAAI,MAAM,gCAAgC;AAAA,MACpD,MAAM,UAAU,OAAO,UAAU,GAAG,KAAK;AAAA,MACzC,IAAI;AAAA,MACJ,MAAM,SAAS,MAAO,QAAQ,QAAQ,QAAa,YAAI,MAAO,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,OAAO;AAAA,MAC5G,IAAI;AAAA,MACJ,IAAI,WAAW,OAAO;AAAA,QAClB,QAAQ,IAAI,IAAI,OAAO;AAAA,QACvB,IAAI,WAAW,OAAO,QAAQ;AAAA,MAClC,EACK;AAAA,QAED,IAAI,CAAC,MAAM,QAAQ,MAAM;AAAA,UACrB,MAAM,IAAI,MAAM,0BAA0B;AAAA,QAC9C,MAAM,UAAU,IAAI,MAAM,WAAW,UAAU;AAAA,QAC/C,SAAS,GAAG,UAAU,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,MAAM,UAAU,SAAS,CAAC,CAAC,CAAC;AAAA;AAAA,MAE7E,IAAI,KAAK,KAAK;AAAA,MACd,SAAS,QAAQ,GAAG;AAAA,QAChB,IAAI,OAAO,OAAO,KAAK;AAAA,QACvB,IAAI,MAAM,KAAK,YAAY,CAAC,MAAM,IAAI,GAAI,IAAG,UAAU,KAAM,OAAO,KAAK,SAAS,MAAM,MAAM,IAAI,OAAO,OAAO,IAAI,EAAE,MAAM,CAAC,CAAC;AAAA;AAAA,MAElI,SAAS,SAAS,CAAC,SAAS,GAAG;AAAA,QAC3B,MAAM,MAAM,OAAO;AAAA,QACnB,OAAO,OAAO,QAAQ,YAAY,QAAQ,OACnC,IAAG,UAAU,KAAM,OAAO,KAAK,SAAS,WAAW,QACnD,IAAG,UAAU,KAAM,YAAY;AAAA;AAAA;AAAA,EAGlD;AAAA,EACQ,kBAAU;AAAA;;;;EC7ClB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,aAAa;AAAA,IAEf,cAAc;AAAA,IACd,aAAa;AAAA,IAEb,cAAc;AAAA,IACd,UAAU;AAAA,IAEV,kBAAkB;AAAA,IAClB,WAAW;AAAA,IAEX,aAAa;AAAA,IACb,cAAc;AAAA,IAEd,EAAE,SAAS,QAAQ,YAAY,CAAC,UAAU,OAAO,EAAE;AAAA,IACnD,EAAE,SAAS,YAAY,YAAY,UAAU;AAAA,IAC7C,QAAQ;AAAA,IACR,OAAO;AAAA,EACX;AAAA,EACQ,kBAAU;AAAA;;;;EC9BlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,kCAA+B;AAAA,EACvC,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,UAAU,YAAa,IAAG,UAAU,+BAAgC;AAAA,IAChF,QAAQ,GAAG,UAAU,YAAa,IAAG,UAAU,aAAc;AAAA,EACjE;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,CAAC,WAAW,QAAQ;AAAA,IAChC,QAAQ;AAAA,IACR;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,cAAc,OAAO;AAAA,MAC7B,QAAQ,UAAU;AAAA,MAClB,IAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AAAA,SACtB,GAAG,OAAO,iBAAiB,IAAI,sEAAsE;AAAA,QACtG;AAAA,MACJ;AAAA,MACA,wBAAwB,KAAK,KAAK;AAAA;AAAA,EAE1C;AAAA,EACA,SAAS,uBAAuB,CAAC,KAAK,OAAO;AAAA,IACzC,QAAQ,KAAK,QAAQ,MAAM,SAAS,OAAO;AAAA,IAC3C,GAAG,QAAQ;AAAA,IACX,MAAM,MAAM,IAAI,MAAM,OAAQ,IAAG,UAAU,KAAM,aAAa;AAAA,IAC9D,IAAI,WAAW,OAAO;AAAA,MAClB,IAAI,UAAU,EAAE,KAAK,MAAM,OAAO,CAAC;AAAA,MACnC,IAAI,KAAM,IAAG,UAAU,KAAM,UAAU,MAAM,QAAQ;AAAA,IACzD,EACK,SAAI,OAAO,UAAU,YAAY,EAAE,GAAG,OAAO,mBAAmB,IAAI,MAAM,GAAG;AAAA,MAC9E,MAAM,QAAQ,IAAI,IAAI,SAAU,IAAG,UAAU,KAAM,UAAU,MAAM,QAAQ;AAAA,MAC3E,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,GAAG,MAAM,cAAc,KAAK,CAAC;AAAA,MAC5D,IAAI,GAAG,KAAK;AAAA,IAChB;AAAA,IACA,SAAS,aAAa,CAAC,OAAO;AAAA,MAC1B,IAAI,SAAS,KAAK,MAAM,QAAQ,KAAK,CAAC,MAAM;AAAA,QACxC,IAAI,UAAU,EAAE,SAAS,UAAU,GAAG,cAAc,OAAO,KAAK,IAAI,GAAG,KAAK;AAAA,QAC5E,IAAI,CAAC,GAAG;AAAA,UACJ,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,GAAG,MAAM,IAAI,MAAM,CAAC;AAAA,OAC1D;AAAA;AAAA;AAAA,EAGD,kCAA0B;AAAA,EAC1B,kBAAU;AAAA;;;;EC9ClB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,wBAAqB;AAAA,EAC7B,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,CAAC,UAAU,SAAS,SAAS;AAAA,IACzC,QAAQ;AAAA,IACR,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,QAAQ,OAAO;AAAA,MACvB,IAAI,MAAM,QAAQ,MAAM;AAAA,QACpB,OAAO,cAAc,KAAK,mBAAmB,MAAM;AAAA,MACvD,GAAG,QAAQ;AAAA,MACX,KAAK,GAAG,OAAO,mBAAmB,IAAI,MAAM;AAAA,QACxC;AAAA,MACJ,IAAI,IAAI,GAAG,OAAO,eAAe,GAAG,CAAC;AAAA;AAAA,EAE7C;AAAA,EACA,SAAS,aAAa,CAAC,KAAK,YAAY,SAAS,IAAI,QAAQ;AAAA,IACzD,QAAQ,KAAK,cAAc,MAAM,SAAS,OAAO;AAAA,IACjD,iBAAiB,YAAY;AAAA,IAC7B,IAAI,GAAG,KAAK,eAAe,OAAO,UAAU,GAAG,UAAU,MAAM;AAAA,MAC3D,GAAG,QAAQ,OAAO,eAAe,MAAM,KAAK,OAAO,QAAQ,GAAG,KAAK;AAAA,IACvE;AAAA,IACA,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,IAC9B,MAAM,MAAM,IAAI,MAAM,OAAQ,IAAG,UAAU,KAAM,aAAa;AAAA,IAC9D,OAAO,QAAQ,CAAC,KAAK,MAAM;AAAA,MACvB,KAAK,GAAG,OAAO,mBAAmB,IAAI,GAAG;AAAA,QACrC;AAAA,MACJ,IAAI,GAAI,IAAG,UAAU,KAAM,SAAS,KAAK,MAAM,IAAI,UAAU;AAAA,QACzD;AAAA,QACA,YAAY;AAAA,QACZ,UAAU;AAAA,MACd,GAAG,KAAK,CAAC;AAAA,MACT,IAAI,GAAG,KAAK;AAAA,KACf;AAAA,IACD,SAAS,gBAAgB,CAAC,KAAK;AAAA,MAC3B,QAAQ,MAAM,kBAAkB;AAAA,MAChC,MAAM,IAAI,OAAO;AAAA,MACjB,MAAM,YAAY,MAAM,IAAI,aAAa,MAAM,IAAI,YAAY,IAAI,gBAAgB;AAAA,MACnF,IAAI,KAAK,gBAAgB,CAAC,WAAW;AAAA,QACjC,MAAM,MAAM,IAAI,eAAe,qCAAqC,sDAAsD;AAAA,SACzH,GAAG,OAAO,iBAAiB,IAAI,KAAK,KAAK,YAAY;AAAA,MAC1D;AAAA;AAAA;AAAA,EAGA,wBAAgB;AAAA,EAChB,kBAAU;AAAA;;;;ECjDlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,CAAC,OAAO;AAAA,IACpB,QAAQ;AAAA,IACR,MAAM,CAAC,SAAS,GAAG,QAAQ,eAAe,KAAK,OAAO;AAAA,EAC1D;AAAA,EACQ,kBAAU;AAAA;;;;ECTlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,UAAU,YAAa,IAAG,UAAU,+BAAgC;AAAA,IAChF,QAAQ,GAAG,UAAU,YAAa,IAAG,UAAU,aAAc;AAAA,EACjE;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,CAAC,UAAU,SAAS;AAAA,IAChC,QAAQ;AAAA,IACR;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,QAAQ,cAAc,OAAO;AAAA,MACrC,QAAQ,gBAAgB;AAAA,MACxB,GAAG,QAAQ;AAAA,MACX,KAAK,GAAG,OAAO,mBAAmB,IAAI,MAAM;AAAA,QACxC;AAAA,MACJ,IAAI;AAAA,SACC,GAAG,kBAAkB,yBAAyB,KAAK,WAAW;AAAA,MAE/D;AAAA,YAAI,IAAI,GAAG,OAAO,eAAe,GAAG,CAAC;AAAA;AAAA,EAEjD;AAAA,EACQ,kBAAU;AAAA;;;;EC3BlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,UAAU,KAAK,YAAY,QAAQ,YACxC,IAAG,UAAU,6BAA8B,sBAC3C,IAAG,UAAU,6BAA8B,wBAAwB;AAAA,IAC1E,QAAQ,GAAG,UAAU,KAAK,YAAY,QAAQ,YAAa,IAAG,UAAU,mBAAoB,SAAU,IAAG,UAAU,mBAAoB,qBAAqB;AAAA,EAChK;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,CAAC,UAAU,SAAS;AAAA,IAChC,QAAQ;AAAA,IACR,aAAa;AAAA,IACb;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,cAAc,MAAM,OAAO;AAAA,MAChD,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,QAAQ,aAAa,gBAAgB;AAAA,MACrC,IAAI,GAAG,KAAK,MAAM;AAAA,QACd,MAAM,gBAAgB,YAAY,IAAI;AAAA,QACtC,MAAM;AAAA,MACV,EACK;AAAA,QACD,MAAM;AAAA;AAAA,MAEV,MAAM,MAAM,IAAI,MAAM,OAAQ,IAAG,UAAU,KAAM,aAAa;AAAA,MAC9D,IAAI,UAAU,EAAE,KAAK,IAAI,CAAC;AAAA,MAC1B,IAAI,QAAQ,aAAa,QAAQ,GAAG;AAAA,SAC/B,GAAG,OAAO,iBAAiB,IAAI,sEAAsE;AAAA,QACtG;AAAA,MACJ;AAAA,MACA,IAAI,QAAQ,aAAa,MAAM,KAAK;AAAA,SAC/B,GAAG,OAAO,iBAAiB,IAAI,iDAAiD;AAAA,QACjF,IAAI,KAAK;AAAA,QACT;AAAA,MACJ;AAAA,MACA,KAAK,GAAG,OAAO,mBAAmB,IAAI,MAAM,GAAG;AAAA,QAC3C,IAAI,OAAQ,IAAG,UAAU,KAAM,UAAU;AAAA,QACzC,IAAI,QAAQ;AAAA,UACR,OAAQ,IAAG,UAAU,KAAM,WAAW,UAAU;AAAA,QACpD,IAAI,KAAK,IAAI;AAAA,QACb;AAAA,MACJ;AAAA,MACA,GAAG,QAAQ;AAAA,MACX,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,MAC9B,IAAI,QAAQ,aAAa,QAAQ,GAAG;AAAA,QAChC,cAAc,OAAO,MAAM,IAAI,GAAG,OAAO,MAAM,IAAI,MAAM,CAAC,CAAC;AAAA,MAC/D,EACK,SAAI,QAAQ,GAAG;AAAA,QAChB,IAAI,IAAI,OAAO,IAAI;AAAA,QACnB,IAAI,QAAQ;AAAA,UACR,IAAI,GAAI,IAAG,UAAU,KAAM,mBAAmB,sBAAsB;AAAA,MAC5E,EACK;AAAA,QACD,IAAI,IAAI,OAAO,KAAK;AAAA,QACpB,uBAAuB;AAAA;AAAA,MAE3B,IAAI,OAAO,OAAO,MAAM,IAAI,MAAM,CAAC;AAAA,MACnC,SAAS,sBAAsB,GAAG;AAAA,QAC9B,MAAM,WAAW,IAAI,KAAK,QAAQ;AAAA,QAClC,MAAM,QAAQ,IAAI,IAAI,SAAS,CAAC;AAAA,QAChC,cAAc,UAAU,MAAM,IAAI,GAAG,UAAU,MAAM,YAAY,KAAK,CAAC,CAAC;AAAA;AAAA,MAE5E,SAAS,aAAa,CAAC,QAAQ,OAAO;AAAA,QAClC,IAAI,SAAS,KAAK,GAAG,KAAK,CAAC,MAAM;AAAA,UAC7B,IAAI,UAAU;AAAA,YACV,SAAS;AAAA,YACT,UAAU;AAAA,YACV,cAAc,OAAO,KAAK;AAAA,YAC1B,eAAe;AAAA,UACnB,GAAG,MAAM;AAAA,UACT,MAAM;AAAA,SACT;AAAA;AAAA,MAEL,SAAS,WAAW,CAAC,OAAO;AAAA,QACxB,IAAI,KAAM,IAAG,UAAU,KAAM,SAAS;AAAA,QACtC,IAAI,QAAQ,WAAW;AAAA,UACnB,IAAI,GAAI,IAAG,UAAU,KAAM,YAAY,OAAO,MAAM,IAAI,OAAO,OAAO,IAAI,EAAE,MAAM,CAAC;AAAA,QACvF,EACK;AAAA,UACD,IAAI,GAAI,IAAG,UAAU,KAAM,WAAW,OAAO,MAAM,IAAI,OAAO,OAAO,KAAK,EAAE,MAAM,CAAC;AAAA,UACnF,IAAI,QAAQ;AAAA,YACR,IAAI,OAAO,OAAO,IAAI;AAAA,UAEtB;AAAA,gBAAI,GAAI,IAAG,UAAU,KAAM,YAAY,OAAO,MAAM,IAAI,OAAO,OAAO,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,EAI/F;AAAA,EACQ,kBAAU;AAAA;;;;EC5FlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,6BAA6B,+BAA+B,gBAAa;AAAA,EACjF,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACE,gBAAQ;AAAA,IACZ,SAAS,GAAG,UAAU,UAAU,WAAW,aAAa;AAAA,MACpD,MAAM,eAAe,cAAc,IAAI,aAAa;AAAA,MACpD,OAAQ,IAAG,UAAU,iBAAkB,gBAAgB,sBAAsB;AAAA;AAAA,IAEjF,QAAQ,GAAG,UAAU,UAAU,WAAW,MAAM,wBAAyB,IAAG,UAAU,gBAAiB;AAAA,uBACpF;AAAA,iBACN;AAAA,YACL;AAAA,EACZ;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAe;AAAA,IACf,IAAI,CAAC,KAAK;AAAA,MACN,OAAO,UAAU,WAAW,kBAAkB,GAAG;AAAA,MACjD,qBAAqB,KAAK,QAAQ;AAAA,MAClC,mBAAmB,KAAK,OAAO;AAAA;AAAA,EAEvC;AAAA,EACA,SAAS,iBAAiB,GAAG,UAAU;AAAA,IACnC,MAAM,eAAe,CAAC;AAAA,IACtB,MAAM,aAAa,CAAC;AAAA,IACpB,WAAW,OAAO,QAAQ;AAAA,MACtB,IAAI,QAAQ;AAAA,QACR;AAAA,MACJ,MAAM,OAAO,MAAM,QAAQ,OAAO,IAAI,IAAI,eAAe;AAAA,MACzD,KAAK,OAAO,OAAO;AAAA,IACvB;AAAA,IACA,OAAO,CAAC,cAAc,UAAU;AAAA;AAAA,EAEpC,SAAS,oBAAoB,CAAC,KAAK,eAAe,IAAI,QAAQ;AAAA,IAC1D,QAAQ,KAAK,MAAM,OAAO;AAAA,IAC1B,IAAI,OAAO,KAAK,YAAY,EAAE,WAAW;AAAA,MACrC;AAAA,IACJ,MAAM,UAAU,IAAI,IAAI,SAAS;AAAA,IACjC,WAAW,QAAQ,cAAc;AAAA,MAC7B,MAAM,OAAO,aAAa;AAAA,MAC1B,IAAI,KAAK,WAAW;AAAA,QAChB;AAAA,MACJ,MAAM,eAAe,GAAG,OAAO,gBAAgB,KAAK,MAAM,MAAM,GAAG,KAAK,aAAa;AAAA,MACrF,IAAI,UAAU;AAAA,QACV,UAAU;AAAA,QACV,WAAW,KAAK;AAAA,QAChB,MAAM,KAAK,KAAK,IAAI;AAAA,MACxB,CAAC;AAAA,MACD,IAAI,GAAG,WAAW;AAAA,QACd,IAAI,GAAG,aAAa,MAAM;AAAA,UACtB,WAAW,WAAW,MAAM;AAAA,aACvB,GAAG,OAAO,wBAAwB,KAAK,OAAO;AAAA,UACnD;AAAA,SACH;AAAA,MACL,EACK;AAAA,QACD,IAAI,GAAI,IAAG,UAAU,KAAM,oBAAoB,GAAG,OAAO,kBAAkB,KAAK,MAAM,OAAO,IAAI;AAAA,SAChG,GAAG,OAAO,mBAAmB,KAAK,OAAO;AAAA,QAC1C,IAAI,KAAK;AAAA;AAAA,IAEjB;AAAA;AAAA,EAEI,+BAAuB;AAAA,EAC/B,SAAS,kBAAkB,CAAC,KAAK,aAAa,IAAI,QAAQ;AAAA,IACtD,QAAQ,KAAK,MAAM,SAAS,OAAO;AAAA,IACnC,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,IAC9B,WAAW,QAAQ,YAAY;AAAA,MAC3B,KAAK,GAAG,OAAO,mBAAmB,IAAI,WAAW,KAAK;AAAA,QAClD;AAAA,MACJ,IAAI,IAAI,GAAG,OAAO,gBAAgB,KAAK,MAAM,MAAM,GAAG,KAAK,aAAa,GAAG,MAAM;AAAA,QAC7E,MAAM,SAAS,IAAI,UAAU,EAAE,SAAS,YAAY,KAAK,GAAG,KAAK;AAAA,QACjE,IAAI,oBAAoB,QAAQ,KAAK;AAAA,SACtC,MAAM,IAAI,IAAI,OAAO,IAAI,CAC5B;AAAA,MACA,IAAI,GAAG,KAAK;AAAA,IAChB;AAAA;AAAA,EAEI,6BAAqB;AAAA,EACrB,kBAAU;AAAA;;;;EClFlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS;AAAA,IACT,QAAQ,GAAG,aAAc,IAAG,UAAU,oBAAqB,OAAO;AAAA,EACtE;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,CAAC,UAAU,SAAS;AAAA,IAChC;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,MAAM,OAAO;AAAA,MAClC,KAAK,GAAG,OAAO,mBAAmB,IAAI,MAAM;AAAA,QACxC;AAAA,MACJ,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,MAC9B,IAAI,MAAM,OAAO,MAAM,CAAC,QAAQ;AAAA,QAC5B,IAAI,UAAU,EAAE,cAAc,IAAI,CAAC;AAAA,QACnC,IAAI,UAAU;AAAA,UACV,SAAS;AAAA,UACT,MAAM;AAAA,UACN,WAAW,CAAC,QAAQ;AAAA,UACpB,cAAc;AAAA,UACd,eAAe;AAAA,QACnB,GAAG,KAAK;AAAA,QACR,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,GAAG,MAAM;AAAA,UACpC,IAAI,MAAM,IAAI;AAAA,UACd,IAAI,CAAC,GAAG;AAAA,YACJ,IAAI,MAAM;AAAA,SACjB;AAAA,OACJ;AAAA,MACD,IAAI,GAAG,KAAK;AAAA;AAAA,EAEpB;AAAA,EACQ,kBAAU;AAAA;;;;ECnClB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS;AAAA,IACT,QAAQ,GAAG,aAAc,IAAG,UAAU,0BAA2B,OAAO;AAAA,EAC5E;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM,CAAC,QAAQ;AAAA,IACf,YAAY,CAAC,WAAW,QAAQ;AAAA,IAChC,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,cAAc,MAAM,WAAW,OAAO;AAAA,MAE3D,IAAI,CAAC;AAAA,QACD,MAAM,IAAI,MAAM,0BAA0B;AAAA,MAC9C,QAAQ,WAAW,SAAS;AAAA,MAC5B,GAAG,QAAQ;AAAA,MACX,IAAI,KAAK,qBAAqB,UAAU,GAAG,OAAO,mBAAmB,IAAI,MAAM;AAAA,QAC3E;AAAA,MACJ,MAAM,SAAS,GAAG,OAAO,qBAAqB,aAAa,UAAU;AAAA,MACrE,MAAM,YAAY,GAAG,OAAO,qBAAqB,aAAa,iBAAiB;AAAA,MAC/E,0BAA0B;AAAA,MAC1B,IAAI,GAAI,IAAG,UAAU,KAAM,iBAAiB,QAAQ,QAAQ,QAAQ;AAAA,MACpE,SAAS,yBAAyB,GAAG;AAAA,QACjC,IAAI,MAAM,OAAO,MAAM,CAAC,QAAQ;AAAA,UAC5B,IAAI,CAAC,MAAM,UAAU,CAAC,SAAS;AAAA,YAC3B,uBAAuB,GAAG;AAAA,UAE1B;AAAA,gBAAI,GAAG,aAAa,GAAG,GAAG,MAAM,uBAAuB,GAAG,CAAC;AAAA,SAClE;AAAA;AAAA,MAEL,SAAS,YAAY,CAAC,KAAK;AAAA,QACvB,IAAI;AAAA,QACJ,IAAI,MAAM,SAAS,GAAG;AAAA,UAElB,MAAM,eAAe,GAAG,OAAO,gBAAgB,IAAI,aAAa,YAAY,YAAY;AAAA,UACxF,eAAe,GAAG,OAAO,eAAe,KAAK,aAAa,GAAG;AAAA,QACjE,EACK,SAAI,MAAM,QAAQ;AAAA,UACnB,eAAe,GAAG,UAAU,IAAI,GAAG,MAAM,IAAI,CAAC,MAAO,IAAG,UAAU,KAAM,WAAW,GAAG,CAAC;AAAA,QAC3F,EACK;AAAA,UACD,cAAc,UAAU;AAAA;AAAA,QAE5B,IAAI,SAAS,QAAQ;AAAA,UACjB,eAAe,GAAG,UAAU,IAAI,aAAa,GAAG,SAAS,IAAI,CAAC,MAAO,IAAG,UAAU,MAAO,GAAG,OAAO,YAAY,KAAK,CAAC,UAAU,MAAM,CAAC;AAAA,QAC1I;AAAA,QACA,QAAQ,GAAG,UAAU,KAAK,WAAW;AAAA;AAAA,MAEzC,SAAS,gBAAgB,CAAC,KAAK;AAAA,QAC3B,IAAI,KAAM,IAAG,UAAU,YAAa,QAAQ,MAAM;AAAA;AAAA,MAEtD,SAAS,sBAAsB,CAAC,KAAK;AAAA,QACjC,IAAI,KAAK,qBAAqB,SAAU,KAAK,oBAAoB,WAAW,OAAQ;AAAA,UAChF,iBAAiB,GAAG;AAAA,UACpB;AAAA,QACJ;AAAA,QACA,IAAI,WAAW,OAAO;AAAA,UAClB,IAAI,UAAU,EAAE,oBAAoB,IAAI,CAAC;AAAA,UACzC,IAAI,MAAM;AAAA,UACV,IAAI,CAAC;AAAA,YACD,IAAI,MAAM;AAAA,UACd;AAAA,QACJ;AAAA,QACA,IAAI,OAAO,UAAU,YAAY,EAAE,GAAG,OAAO,mBAAmB,IAAI,MAAM,GAAG;AAAA,UACzE,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,UAC9B,IAAI,KAAK,qBAAqB,WAAW;AAAA,YACrC,sBAAsB,KAAK,OAAO,KAAK;AAAA,YACvC,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,GAAG,MAAM;AAAA,cACpC,IAAI,MAAM;AAAA,cACV,iBAAiB,GAAG;AAAA,aACvB;AAAA,UACL,EACK;AAAA,YACD,sBAAsB,KAAK,KAAK;AAAA,YAChC,IAAI,CAAC;AAAA,cACD,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,GAAG,MAAM,IAAI,MAAM,CAAC;AAAA;AAAA,QAE/D;AAAA;AAAA,MAEJ,SAAS,qBAAqB,CAAC,KAAK,OAAO,QAAQ;AAAA,QAC/C,MAAM,YAAY;AAAA,UACd,SAAS;AAAA,UACT,UAAU;AAAA,UACV,cAAc,OAAO,KAAK;AAAA,QAC9B;AAAA,QACA,IAAI,WAAW,OAAO;AAAA,UAClB,OAAO,OAAO,WAAW;AAAA,YACrB,eAAe;AAAA,YACf,cAAc;AAAA,YACd,WAAW;AAAA,UACf,CAAC;AAAA,QACL;AAAA,QACA,IAAI,UAAU,WAAW,KAAK;AAAA;AAAA;AAAA,EAG1C;AAAA,EACQ,kBAAU;AAAA;;;;ECvGlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,cAAc,MAAM,OAAO;AAAA,MAChD,IAAI,GAAG,KAAK,qBAAqB,SAAS,aAAa,yBAAyB,WAAW;AAAA,QACvF,uBAAuB,QAAQ,KAAK,IAAI,WAAW,WAAW,IAAI,uBAAuB,SAAS,sBAAsB,CAAC;AAAA,MAC7H;AAAA,MACA,MAAM,YAAY,GAAG,OAAO,qBAAqB,MAAM;AAAA,MACvD,WAAW,QAAQ,UAAU;AAAA,QACzB,GAAG,kBAAkB,IAAI,IAAI;AAAA,MACjC;AAAA,MACA,IAAI,GAAG,KAAK,eAAe,SAAS,UAAU,GAAG,UAAU,MAAM;AAAA,QAC7D,GAAG,QAAQ,OAAO,eAAe,MAAM,MAAM,GAAG,OAAO,QAAQ,QAAQ,GAAG,GAAG,KAAK;AAAA,MACtF;AAAA,MACA,MAAM,aAAa,SAAS,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,mBAAmB,IAAI,OAAO,EAAE,CAAC;AAAA,MACvF,IAAI,WAAW,WAAW;AAAA,QACtB;AAAA,MACJ,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,MAC9B,WAAW,QAAQ,YAAY;AAAA,QAC3B,IAAI,WAAW,IAAI,GAAG;AAAA,UAClB,oBAAoB,IAAI;AAAA,QAC5B,EACK;AAAA,UACD,IAAI,IAAI,GAAG,OAAO,gBAAgB,KAAK,MAAM,MAAM,GAAG,KAAK,aAAa,CAAC;AAAA,UACzE,oBAAoB,IAAI;AAAA,UACxB,IAAI,CAAC,GAAG;AAAA,YACJ,IAAI,KAAK,EAAE,IAAI,OAAO,IAAI;AAAA,UAC9B,IAAI,MAAM;AAAA;AAAA,QAEd,IAAI,GAAG,kBAAkB,IAAI,IAAI;AAAA,QACjC,IAAI,GAAG,KAAK;AAAA,MAChB;AAAA,MACA,SAAS,UAAU,CAAC,MAAM;AAAA,QACtB,OAAO,GAAG,KAAK,eAAe,CAAC,GAAG,iBAAiB,OAAO,MAAM,YAAY;AAAA;AAAA,MAEhF,SAAS,mBAAmB,CAAC,MAAM;AAAA,QAC/B,IAAI,UAAU;AAAA,UACV,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,UAAU;AAAA,QACd,GAAG,KAAK;AAAA;AAAA;AAAA,EAGpB;AAAA,EACQ,kBAAU;AAAA;;;;ECnDlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,MAAM,cAAc,OAAO;AAAA,MAChD,QAAQ,SAAS;AAAA,MACjB,MAAM,YAAY,GAAG,OAAO,qBAAqB,MAAM;AAAA,MACvD,MAAM,sBAAsB,SAAS,OAAO,CAAC,OAAO,GAAG,OAAO,mBAAmB,IAAI,OAAO,EAAE,CAAC;AAAA,MAC/F,IAAI,SAAS,WAAW,KACnB,oBAAoB,WAAW,SAAS,WACpC,CAAC,GAAG,KAAK,eAAe,GAAG,UAAU,OAAQ;AAAA,QAClD;AAAA,MACJ;AAAA,MACA,MAAM,kBAAkB,KAAK,gBAAgB,CAAC,KAAK,2BAA2B,aAAa;AAAA,MAC3F,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,MAC9B,IAAI,GAAG,UAAU,QAAQ,EAAE,GAAG,iBAAiB,UAAU,OAAO;AAAA,QAC5D,GAAG,SAAS,GAAG,OAAO,sBAAsB,KAAK,GAAG,KAAK;AAAA,MAC7D;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,0BAA0B;AAAA,MAC1B,SAAS,yBAAyB,GAAG;AAAA,QACjC,WAAW,OAAO,UAAU;AAAA,UACxB,IAAI;AAAA,YACA,wBAAwB,GAAG;AAAA,UAC/B,IAAI,GAAG,WAAW;AAAA,YACd,mBAAmB,GAAG;AAAA,UAC1B,EACK;AAAA,YACD,IAAI,IAAI,OAAO,IAAI;AAAA,YACnB,mBAAmB,GAAG;AAAA,YACtB,IAAI,GAAG,KAAK;AAAA;AAAA,QAEpB;AAAA;AAAA,MAEJ,SAAS,uBAAuB,CAAC,KAAK;AAAA,QAClC,WAAW,QAAQ,iBAAiB;AAAA,UAChC,IAAI,IAAI,OAAO,GAAG,EAAE,KAAK,IAAI,GAAG;AAAA,aAC3B,GAAG,OAAO,iBAAiB,IAAI,YAAY,wBAAwB,mCAAmC;AAAA,UAC3G;AAAA,QACJ;AAAA;AAAA,MAEJ,SAAS,kBAAkB,CAAC,KAAK;AAAA,QAC7B,IAAI,MAAM,OAAO,MAAM,CAAC,QAAQ;AAAA,UAC5B,IAAI,GAAI,IAAG,UAAU,MAAO,GAAG,OAAO,YAAY,KAAK,GAAG,UAAU,QAAQ,MAAM;AAAA,YAC9E,MAAM,cAAc,oBAAoB,SAAS,GAAG;AAAA,YACpD,IAAI,CAAC,aAAa;AAAA,cACd,IAAI,UAAU;AAAA,gBACV,SAAS;AAAA,gBACT,YAAY;AAAA,gBACZ,UAAU;AAAA,gBACV,cAAc,OAAO,KAAK;AAAA,cAC9B,GAAG,KAAK;AAAA,YACZ;AAAA,YACA,IAAI,GAAG,KAAK,eAAe,UAAU,MAAM;AAAA,cACvC,IAAI,OAAQ,IAAG,UAAU,KAAM,SAAS,QAAQ,IAAI;AAAA,YACxD,EACK,SAAI,CAAC,eAAe,CAAC,GAAG,WAAW;AAAA,cAGpC,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,GAAG,MAAM,IAAI,MAAM,CAAC;AAAA,YACvD;AAAA,WACH;AAAA,SACJ;AAAA;AAAA;AAAA,EAGb;AAAA,EACQ,kBAAU;AAAA;;;;ECxElB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,YAAY,CAAC,UAAU,SAAS;AAAA,IAChC,aAAa;AAAA,IACb,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,OAAO;AAAA,MAC5B,KAAK,GAAG,OAAO,mBAAmB,IAAI,MAAM,GAAG;AAAA,QAC3C,IAAI,KAAK;AAAA,QACT;AAAA,MACJ;AAAA,MACA,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,MAC9B,IAAI,UAAU;AAAA,QACV,SAAS;AAAA,QACT,eAAe;AAAA,QACf,cAAc;AAAA,QACd,WAAW;AAAA,MACf,GAAG,KAAK;AAAA,MACR,IAAI,WAAW,OAAO,MAAM,IAAI,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC;AAAA;AAAA,IAE9D,OAAO,EAAE,SAAS,oBAAoB;AAAA,EAC1C;AAAA,EACQ,kBAAU;AAAA;;;;ECvBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,MAAM,OAAO;AAAA,IACb,OAAO,EAAE,SAAS,+BAA+B;AAAA,EACrD;AAAA,EACQ,kBAAU;AAAA;;;;ECTlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS;AAAA,IACT,QAAQ,GAAG,aAAc,IAAG,UAAU,sBAAuB,OAAO;AAAA,EACxE;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,aAAa;AAAA,IACb;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,cAAc,OAAO;AAAA,MAE1C,IAAI,CAAC,MAAM,QAAQ,MAAM;AAAA,QACrB,MAAM,IAAI,MAAM,0BAA0B;AAAA,MAC9C,IAAI,GAAG,KAAK,iBAAiB,aAAa;AAAA,QACtC;AAAA,MACJ,MAAM,SAAS;AAAA,MACf,MAAM,QAAQ,IAAI,IAAI,SAAS,KAAK;AAAA,MACpC,MAAM,UAAU,IAAI,IAAI,WAAW,IAAI;AAAA,MACvC,MAAM,WAAW,IAAI,KAAK,QAAQ;AAAA,MAClC,IAAI,UAAU,EAAE,QAAQ,CAAC;AAAA,MAEzB,IAAI,MAAM,aAAa;AAAA,MACvB,IAAI,OAAO,OAAO,MAAM,IAAI,MAAM,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC;AAAA,MAC1D,SAAS,aAAa,GAAG;AAAA,QACrB,OAAO,QAAQ,CAAC,KAAK,MAAM;AAAA,UACvB,IAAI;AAAA,UACJ,KAAK,GAAG,OAAO,mBAAmB,IAAI,GAAG,GAAG;AAAA,YACxC,IAAI,IAAI,UAAU,IAAI;AAAA,UAC1B,EACK;AAAA,YACD,SAAS,IAAI,UAAU;AAAA,cACnB,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,eAAe;AAAA,YACnB,GAAG,QAAQ;AAAA;AAAA,UAEf,IAAI,IAAI,GAAG;AAAA,YACP,IACK,GAAI,IAAG,UAAU,KAAM,eAAe,OAAO,EAC7C,OAAO,OAAO,KAAK,EACnB,OAAO,SAAU,IAAG,UAAU,MAAO,YAAY,IAAI,EACrD,KAAK;AAAA,UACd;AAAA,UACA,IAAI,GAAG,UAAU,MAAM;AAAA,YACnB,IAAI,OAAO,OAAO,IAAI;AAAA,YACtB,IAAI,OAAO,SAAS,CAAC;AAAA,YACrB,IAAI;AAAA,cACA,IAAI,eAAe,QAAQ,UAAU,IAAI;AAAA,WAChD;AAAA,SACJ;AAAA;AAAA;AAAA,EAGb;AAAA,EACQ,kBAAU;AAAA;;;;ECzDlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,OAAO;AAAA,MAE5B,IAAI,CAAC,MAAM,QAAQ,MAAM;AAAA,QACrB,MAAM,IAAI,MAAM,0BAA0B;AAAA,MAC9C,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,MAC9B,OAAO,QAAQ,CAAC,KAAK,MAAM;AAAA,QACvB,KAAK,GAAG,OAAO,mBAAmB,IAAI,GAAG;AAAA,UACrC;AAAA,QACJ,MAAM,SAAS,IAAI,UAAU,EAAE,SAAS,SAAS,YAAY,EAAE,GAAG,KAAK;AAAA,QACvE,IAAI,GAAG,KAAK;AAAA,QACZ,IAAI,eAAe,MAAM;AAAA,OAC5B;AAAA;AAAA,EAET;AAAA,EACQ,kBAAU;AAAA;;;;ECpBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,aAAc,IAAG,UAAU,mBAAoB,OAAO;AAAA,IAClE,QAAQ,GAAG,aAAc,IAAG,UAAU,sBAAuB,OAAO;AAAA,EACxE;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,YAAY,CAAC,UAAU,SAAS;AAAA,IAChC,aAAa;AAAA,IACb;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,cAAc,OAAO;AAAA,MAClC,IAAI,aAAa,SAAS,aAAa,aAAa,SAAS,WAAW;AAAA,SACnE,GAAG,OAAO,iBAAiB,IAAI,2CAA2C;AAAA,MAC/E;AAAA,MACA,MAAM,UAAU,UAAU,IAAI,MAAM;AAAA,MACpC,MAAM,UAAU,UAAU,IAAI,MAAM;AAAA,MACpC,IAAI,CAAC,WAAW,CAAC;AAAA,QACb;AAAA,MACJ,MAAM,QAAQ,IAAI,IAAI,SAAS,IAAI;AAAA,MACnC,MAAM,WAAW,IAAI,KAAK,QAAQ;AAAA,MAClC,WAAW;AAAA,MACX,IAAI,MAAM;AAAA,MACV,IAAI,WAAW,SAAS;AAAA,QACpB,MAAM,WAAW,IAAI,IAAI,UAAU;AAAA,QACnC,IAAI,UAAU,EAAE,SAAS,CAAC;AAAA,QAC1B,IAAI,GAAG,UAAU,eAAe,QAAQ,QAAQ,GAAG,eAAe,QAAQ,QAAQ,CAAC;AAAA,MACvF,EACK,SAAI,SAAS;AAAA,QACd,IAAI,GAAG,UAAU,eAAe,MAAM,CAAC;AAAA,MAC3C,EACK;AAAA,QACD,IAAI,IAAI,GAAG,UAAU,KAAK,QAAQ,GAAG,eAAe,MAAM,CAAC;AAAA;AAAA,MAE/D,IAAI,KAAK,OAAO,MAAM,IAAI,MAAM,IAAI,CAAC;AAAA,MACrC,SAAS,UAAU,GAAG;AAAA,QAClB,MAAM,SAAS,IAAI,UAAU;AAAA,UACzB,SAAS;AAAA,UACT,eAAe;AAAA,UACf,cAAc;AAAA,UACd,WAAW;AAAA,QACf,GAAG,QAAQ;AAAA,QACX,IAAI,eAAe,MAAM;AAAA;AAAA,MAE7B,SAAS,cAAc,CAAC,SAAS,UAAU;AAAA,QACvC,OAAO,MAAM;AAAA,UACT,MAAM,SAAS,IAAI,UAAU,EAAE,QAAQ,GAAG,QAAQ;AAAA,UAClD,IAAI,OAAO,OAAO,QAAQ;AAAA,UAC1B,IAAI,oBAAoB,QAAQ,KAAK;AAAA,UACrC,IAAI;AAAA,YACA,IAAI,OAAO,UAAW,IAAG,UAAU,KAAM,SAAS;AAAA,UAElD;AAAA,gBAAI,UAAU,EAAE,UAAU,QAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,EAIvD;AAAA,EACA,SAAS,SAAS,CAAC,IAAI,SAAS;AAAA,IAC5B,MAAM,SAAS,GAAG,OAAO;AAAA,IACzB,OAAO,WAAW,aAAa,EAAE,GAAG,OAAO,mBAAmB,IAAI,MAAM;AAAA;AAAA,EAEpE,kBAAU;AAAA;;;;EC/DlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS,CAAC,QAAQ,MAAM;AAAA,IACxB,YAAY,CAAC,UAAU,SAAS;AAAA,IAChC,IAAI,GAAG,SAAS,cAAc,MAAM;AAAA,MAChC,IAAI,aAAa,OAAO;AAAA,SACnB,GAAG,OAAO,iBAAiB,IAAI,IAAI,kCAAkC;AAAA;AAAA,EAElF;AAAA,EACQ,kBAAU;AAAA;;;;ECVlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,SAAS,aAAa,CAAC,YAAY,OAAO;AAAA,IACtC,MAAM,aAAa;AAAA,MAEf,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,WAAW;AAAA,MAEX,gBAAgB;AAAA,MAChB,uBAAuB;AAAA,MACvB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,oBAAoB;AAAA,IACxB;AAAA,IAEA,IAAI;AAAA,MACA,WAAW,KAAK,cAAc,SAAS,YAAY,OAAO;AAAA,IAE1D;AAAA,iBAAW,KAAK,kBAAkB,SAAS,QAAQ,OAAO;AAAA,IAC9D,WAAW,KAAK,WAAW,OAAO;AAAA,IAClC,OAAO;AAAA;AAAA,EAEH,kBAAU;AAAA;;;;ECzClB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,wBAAqB;AAAA,EAC7B,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,MAAM,CAAC,QAAQ,cAAc,KAAK,IAAI,MAAM;AAAA,EAChD;AAAA,EACA,SAAS,aAAa,CAAC,KAAK,QAAQ;AAAA,IAChC,QAAQ,KAAK,OAAO;AAAA,IACpB,GAAG,UAAU,KAAK,eAAe,UAAU;AAAA,IAC3C,MAAM,IAAK,IAAG,UAAU,KAAM,QAAQ,QAAQ,kBAAkB,GAAG,UAAU,aAAa,MAAM;AAAA,IAChG,MAAM,WAAW,GAAG,kBAAkB,MAAM,GAAG,eAAe,aAAa,GAAG;AAAA,IAC9E,IAAI,GAAI,IAAG,UAAU,MAAO,KAAK,MAAM,IAAI,OAAO,GAAG,QAAQ,CAAC;AAAA;AAAA,EAE1D,wBAAgB;AAAA,EACxB,SAAS,YAAY,CAAC,KAAK;AAAA,IACvB,QAAQ,WAAW,QAAQ,SAAS,IAAI;AAAA,IACxC,QAAQ,MAAM,QAAQ,WAAW,gBAAS,UAAU;AAAA,IACpD,QAAQ,aAAa,KAAK;AAAA,IAC1B,MAAM,MAAM,IAAI,UAAU,UAAU,EAAE,QAAQ,UAAU,MAAM,QAAQ,WAAW,YAAK,CAAC;AAAA,IACvF,UAAU,cAAc,KAAK,MAAM,GAAG;AAAA,IACtC,QAAQ,GAAG,MAAM,aAAa,KAAK,GAAG;AAAA;AAAA,EAElC,kBAAU;AAAA;;;;EC3BlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,qBAAkB;AAAA,EAC1B,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,MAAM,CAAC,QAAQ,WAAW,KAAK,IAAI,MAAM;AAAA,EAC7C;AAAA,EACA,SAAS,UAAU,CAAC,KAAK,KAAK;AAAA,IAC1B,QAAQ,KAAK,SAAS,OAAO;AAAA,IAC7B,IAAI,IAAI,OAAO;AAAA,MACX,MAAM,IAAI,MAAM,IAAI,gDAAgD;AAAA,IACxE,MAAM,SAAS,IAAI,MAAM,CAAC;AAAA,IAC1B,IAAI,GAAG,WAAW;AAAA,MACd,YAAY;AAAA,IAChB,EACK;AAAA,MACD,MAAM,QAAQ,IAAI,IAAI,SAAS,KAAK;AAAA,MACpC,YAAY,KAAK;AAAA,MACjB,IAAI,GAAG,KAAK;AAAA;AAAA,IAEhB,SAAS,WAAW,CAAC,OAAO;AAAA,MAOxB,IAAI,GAAG,UAAU,KAAK,eAAe,SAAS;AAAA,QAC1C,MAAM,IAAI,IAAI,IAAI,MAAO,IAAG,UAAU,KAAM,QAAQ,QAAQ,kBAAkB,GAAG,UAAU,aAAa,MAAM,GAAG;AAAA,QACjH,IAAI,GAAG,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,cAAc,KAAK,CAAC;AAAA,MAClE,EACK;AAAA,QACD,SAAS,GAAG,cAAc,KAAK,EAAE;AAAA;AAAA;AAAA,IAGzC,SAAS,QAAQ,CAAC,UAAU,OAAO;AAAA,MAC/B,OAAO,QACD,MAAM,IAAI,MAAM,MAAM;AAAA,SACnB,GAAG,MAAM,SAAS,KAAK,QAAQ;AAAA,QAChC,IAAI,IAAI,OAAO,IAAI;AAAA,OACtB,IACC,OAAO,GAAG,MAAM,SAAS,KAAK,QAAQ;AAAA;AAAA;AAAA,EAG5C,qBAAa;AAAA,EACb,kBAAU;AAAA;;;;EChDlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,IAAI,CAAC,KAAK;AAAA,MACN,IAAI,IAAI;AAAA,SACH,GAAG,gBAAgB,eAAe,KAAK,EAAE;AAAA,MAE1C;AAAA,SAAC,GAAG,OAAO,iBAAiB,IAAI,IAAI,oCAAoC;AAAA;AAAA,EAEpF;AAAA,EACQ,kBAAU;AAAA;;;;ECblB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,MAAM,CAAC,SAAS,GAAG,aAAa,YAAY,KAAK,IAAI,MAAM;AAAA,EAC/D;AAAA,EACQ,kBAAU;AAAA;;;;ECPlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,UAAU,CAAC,gBAAgB,SAAS,aAAa,SAAS,kBAAkB,SAAS,eAAe,OAAO;AAAA,EACzG,kBAAU;AAAA;;;;ECNlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO,eAAe;AAAA,IACtB,MAAM,CAAC,SAAS,GAAG,eAAe,sBAAsB,GAAG;AAAA,EAC/D;AAAA,EACQ,kBAAU;AAAA;;;;ECTlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,MAAM,CAAC,SAAS,GAAG,eAAe,oBAAoB,GAAG;AAAA,EAC7D;AAAA,EACQ,kBAAU;AAAA;;;;ECRlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,MAAM;AAAA,IACR,SAAS,CAAC,eAAe,aAAa;AAAA,IACtC,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,IAAI,GAAG,SAAS,cAAc,MAAM;AAAA,MAChC,IAAI,aAAa,aAAa,WAAW;AAAA,SACpC,GAAG,OAAO,iBAAiB,IAAI,IAAI,wCAAwC;AAAA,MAChF;AAAA;AAAA,EAER;AAAA,EACQ,kBAAU;AAAA;;;;ECZlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,OAAO,CAAC,oBAAoB,SAAS,mBAAmB,SAAS,gBAAgB,OAAO;AAAA,EACtF,kBAAU;AAAA;;;;ECLlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS;AAAA,IACT,QAAQ,GAAG,aAAc,IAAG,UAAU,2BAA4B,OAAO;AAAA,EAC7E;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,CAAC,WAAW,QAAQ;AAAA,IAChC,aAAa;AAAA,IACb;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,MAAM,WAAW,OAAO;AAAA,MAE7C,IAAI,CAAC;AAAA,QACD,MAAM,IAAI,MAAM,0BAA0B;AAAA,MAC9C,QAAQ,WAAW,UAAU;AAAA,MAC7B,IAAI,iBAAiB,UAAU,MAAM;AAAA,QACjC,IAAI,GAAI,IAAG,UAAU,KAAM,kBAAkB,MAAM,IAAI,MAAM,OAAO,MAAM,CAAC,QAAQ,IAAI,GAAG,mBAAmB,OAAO,GAAG,GAAG,MAAM,oBAAoB,GAAG,CAAC,CAAC,CAAC;AAAA,MAC9J,EACK,SAAI,UAAU,MAAM;AAAA,QACrB,IAAI,MAAM,OAAO,MAAM,CAAC,QAAQ,UAAU,YACpC,oBAAoB,GAAG,IACvB,IAAI,GAAG,kBAAkB,OAAO,GAAG,GAAG,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAAA,MAC/E;AAAA,MACA,GAAG,QAAQ;AAAA,MACX,IAAI,GAAI,IAAG,UAAU,KAAM,iBAAiB,QAAQ,QAAQ,QAAQ;AAAA,MACpE,SAAS,mBAAmB,CAAC,KAAK;AAAA,QAC9B,IAAI,WAAW,OAAO;AAAA,UAClB,IAAI,UAAU,EAAE,qBAAqB,IAAI,CAAC;AAAA,UAC1C,IAAI,MAAM;AAAA,UACV,IAAI,CAAC;AAAA,YACD,IAAI,MAAM;AAAA,UACd;AAAA,QACJ;AAAA,QACA,IAAI,EAAE,GAAG,OAAO,mBAAmB,IAAI,MAAM,GAAG;AAAA,UAC5C,MAAM,QAAQ,IAAI,KAAK,OAAO;AAAA,UAC9B,IAAI,UAAU;AAAA,YACV,SAAS;AAAA,YACT,UAAU;AAAA,YACV,cAAc,OAAO,KAAK;AAAA,UAC9B,GAAG,KAAK;AAAA,UACR,IAAI,CAAC;AAAA,YACD,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,GAAG,MAAM,IAAI,MAAM,CAAC;AAAA,QAC3D;AAAA;AAAA,MAEJ,SAAS,kBAAkB,CAAC,gBAAgB,KAAK;AAAA,QAC7C,OAAQ,IAAG,UAAU,MAAO,sBAAsB,kBAAkB;AAAA;AAAA,MAExE,SAAS,iBAAiB,CAAC,gBAAgB,KAAK;AAAA,QAC5C,MAAM,KAAK,CAAC;AAAA,QACZ,WAAW,KAAK,gBAAgB;AAAA,UAC5B,IAAI,eAAe,OAAO;AAAA,YACtB,GAAG,KAAM,IAAG,UAAU,KAAM,WAAW,GAAG;AAAA,QAClD;AAAA,QACA,QAAQ,GAAG,UAAU,KAAK,GAAG,EAAE;AAAA;AAAA;AAAA,EAG3C;AAAA,EACQ,kBAAU;AAAA;;;;EC9DlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,UAAU,YAAa,IAAG,UAAU,+BAAgC;AAAA,IAChF,QAAQ,GAAG,UAAU,YAAa,IAAG,UAAU,aAAc;AAAA,EACjE;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY,CAAC,WAAW,QAAQ;AAAA,IAChC;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,QAAQ,MAAM,OAAO;AAAA,MAClC,MAAM,QAAQ,GAAG,SAAS;AAAA,MAC1B,IAAI,UAAU;AAAA,QACV;AAAA,MACJ,MAAM,MAAM,IAAI,MAAM,OAAQ,IAAG,UAAU,KAAM,aAAa;AAAA,MAC9D,IAAI,WAAW,OAAO;AAAA,QAClB,IAAI,UAAU,EAAE,KAAK,MAAM,CAAC;AAAA,QAC5B,IAAI,KAAM,IAAG,UAAU,KAAM,SAAS,OAAO;AAAA,MACjD,EACK,SAAI,OAAO,UAAU,YAAY,EAAE,GAAG,OAAO,mBAAmB,IAAI,MAAM,GAAG;AAAA,QAC9E,MAAM,QAAQ,IAAI,IAAI,SAAU,IAAG,UAAU,KAAM,UAAU,OAAO;AAAA,QACpE,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,GAAG,MAAM,cAAc,OAAO,KAAK,CAAC;AAAA,QACnE,IAAI,GAAG,KAAK;AAAA,MAChB;AAAA,MACA,GAAG,QAAQ;AAAA,MACX,SAAS,aAAa,CAAC,OAAO,MAAM;AAAA,QAChC,IAAI,SAAS,KAAK,MAAM,KAAK,CAAC,MAAM;AAAA,UAChC,IAAI,UAAU,EAAE,SAAS,oBAAoB,UAAU,GAAG,cAAc,OAAO,KAAK,IAAI,GAAG,KAAK;AAAA,UAChG,IAAI,CAAC,GAAG;AAAA,YACJ,IAAI,IAAI,GAAG,UAAU,KAAK,KAAK,GAAG,MAAM,IAAI,MAAM,CAAC;AAAA,SAC1D;AAAA;AAAA;AAAA,EAGb;AAAA,EACQ,kBAAU;AAAA;;;;ECrClB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,cAAc,CAAC,wBAAwB,SAAS,mBAAmB,OAAO;AAAA,EACxE,kBAAU;AAAA;;;;ECJlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,iBAAkB,IAAG,UAAU,0BAA2B;AAAA,IACtE,QAAQ,GAAG,iBAAkB,IAAG,UAAU,cAAe;AAAA,EAC7D;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM,CAAC,UAAU,QAAQ;AAAA,IACzB,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,IAAI,CAAC,KAAK,UAAU;AAAA,MAChB,QAAQ,KAAK,MAAM,OAAO,QAAQ,YAAY,OAAO;AAAA,MACrD,QAAQ,MAAM,eAAe,WAAW,SAAS;AAAA,MACjD,IAAI,CAAC,KAAK;AAAA,QACN;AAAA,MACJ,IAAI;AAAA,QACA,oBAAoB;AAAA,MAEpB;AAAA,uBAAe;AAAA,MACnB,SAAS,mBAAmB,GAAG;AAAA,QAC3B,MAAM,OAAO,IAAI,WAAW,WAAW;AAAA,UACnC,KAAK,KAAK;AAAA,UACV,MAAM,KAAK,KAAK;AAAA,QACpB,CAAC;AAAA,QACD,MAAM,OAAO,IAAI,MAAM,QAAS,IAAG,UAAU,KAAM,QAAQ,aAAa;AAAA,QACxE,MAAM,QAAQ,IAAI,IAAI,OAAO;AAAA,QAC7B,MAAM,SAAS,IAAI,IAAI,QAAQ;AAAA,QAE/B,IAAI,GAAI,IAAG,UAAU,YAAa,yBAAyB,2BAA2B,MAAM,IAAI,OAAO,OAAQ,IAAG,UAAU,KAAM,uBAAuB,EAAE,OAAO,QAAS,IAAG,UAAU,KAAM,eAAe,GAAG,MAAM,IAAI,OAAO,OAAQ,IAAG,UAAU,YAAa,EAAE,OAAO,QAAQ,IAAI,CAAC;AAAA,QACzR,IAAI,WAAW,GAAG,UAAU,IAAI,WAAW,GAAG,WAAW,CAAC,CAAC;AAAA,QAC3D,SAAS,UAAU,GAAG;AAAA,UAClB,IAAI,KAAK,iBAAiB;AAAA,YACtB,OAAO,UAAU;AAAA,UACrB,OAAQ,IAAG,UAAU,KAAM,kBAAkB;AAAA;AAAA,QAEjD,SAAS,UAAU,GAAG;AAAA,UAClB,MAAM,aAAa,UAAU,SACtB,IAAG,UAAU,MAAO,sBAAsB,UAAU,WAAW,UAAU,WACzE,IAAG,UAAU,KAAM,UAAU;AAAA,UACpC,MAAM,YAAa,IAAG,UAAU,aAAc,0BAA0B,gBAAgB,eAAe;AAAA,UACvG,OAAQ,IAAG,UAAU,KAAM,aAAa,sBAAsB,aAAa,gBAAgB;AAAA;AAAA;AAAA,MAGnG,SAAS,cAAc,GAAG;AAAA,QACtB,MAAM,YAAY,KAAK,QAAQ;AAAA,QAC/B,IAAI,CAAC,WAAW;AAAA,UACZ,cAAc;AAAA,UACd;AAAA,QACJ;AAAA,QACA,IAAI,cAAc;AAAA,UACd;AAAA,QACJ,OAAO,SAAS,QAAQ,UAAU,UAAU,SAAS;AAAA,QACrD,IAAI,YAAY;AAAA,UACZ,IAAI,KAAK,eAAe,CAAC;AAAA,QAC7B,SAAS,aAAa,GAAG;AAAA,UACrB,IAAI,KAAK,iBAAiB,OAAO;AAAA,YAC7B,KAAK,OAAO,KAAK,WAAW,CAAC;AAAA,YAC7B;AAAA,UACJ;AAAA,UACA,MAAM,IAAI,MAAM,WAAW,CAAC;AAAA,UAC5B,SAAS,UAAU,GAAG;AAAA,YAClB,OAAO,mBAAmB,sCAAsC;AAAA;AAAA;AAAA,QAGxE,SAAS,SAAS,CAAC,QAAQ;AAAA,UACvB,MAAM,OAAO,kBAAkB,UACxB,GAAG,UAAU,YAAY,MAAM,IAChC,KAAK,KAAK,UACL,IAAG,UAAU,KAAM,KAAK,KAAK,WAAW,GAAG,UAAU,aAAa,MAAM,MACzE;AAAA,UACV,MAAM,MAAM,IAAI,WAAW,WAAW,EAAE,KAAK,QAAQ,KAAK,QAAQ,KAAK,CAAC;AAAA,UACxE,IAAI,OAAO,UAAU,YAAY,EAAE,kBAAkB,SAAS;AAAA,YAC1D,OAAO,CAAC,OAAO,QAAQ,UAAU,OAAO,UAAW,IAAG,UAAU,KAAM,cAAc;AAAA,UACxF;AAAA,UACA,OAAO,CAAC,UAAU,QAAQ,GAAG;AAAA;AAAA,QAEjC,SAAS,cAAc,GAAG;AAAA,UACtB,IAAI,OAAO,aAAa,YAAY,EAAE,qBAAqB,WAAW,UAAU,OAAO;AAAA,YACnF,IAAI,CAAC,UAAU;AAAA,cACX,MAAM,IAAI,MAAM,6BAA6B;AAAA,YACjD,OAAQ,IAAG,UAAU,WAAY,UAAU;AAAA,UAC/C;AAAA,UACA,OAAO,OAAO,UAAU,aAAc,IAAG,UAAU,KAAM,UAAU,UAAW,IAAG,UAAU,KAAM,eAAe;AAAA;AAAA;AAAA;AAAA,EAIhI;AAAA,EACQ,kBAAU;AAAA;;;;ECzFlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM,SAAS,CAAC,SAAS,OAAO;AAAA,EACxB,kBAAU;AAAA;;;;ECHlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,4BAA4B,6BAA0B;AAAA,EACtD,6BAAqB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,EACQ,4BAAoB;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA;;;;ECfA,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,wBAAwB;AAAA,IAC1B,UAAU;AAAA,IACV,OAAO;AAAA,IACP,aAAa;AAAA,KACZ,GAAG,aAAa,SAAS,IAAI;AAAA,IAC9B,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,IACX,OAAO;AAAA,IACP,cAAc;AAAA,EAClB;AAAA,EACQ,kBAAU;AAAA;;;;ECpBlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,qBAAkB;AAAA,EAC1B,IAAI;AAAA,GACH,QAAS,CAAC,aAAY;AAAA,IACnB,YAAW,SAAS;AAAA,IACpB,YAAW,aAAa;AAAA,KACzB,eAAuB,qBAAa,aAAa,CAAC,EAAE;AAAA;;;;ECNvD,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,QAAQ;AAAA,IACV,SAAS,GAAG,UAAU,YAAY,gBAAgB,eAAe,QAAQ,WAAW,MAC9E,QAAQ,4BACR,iBAAiB;AAAA,IACvB,QAAQ,GAAG,UAAU,YAAY,KAAK,gBAAiB,IAAG,UAAU,aAAc,oBAAoB,sBAAsB;AAAA,EAChI;AAAA,EACA,IAAM,MAAM;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,YAAY;AAAA,IACZ;AAAA,IACA,IAAI,CAAC,KAAK;AAAA,MACN,QAAQ,KAAK,MAAM,QAAQ,cAAc,OAAO;AAAA,MAChD,QAAQ,UAAU;AAAA,MAClB,IAAI,CAAC,GAAG,KAAK,eAAe;AAAA,QACxB,MAAM,IAAI,MAAM,8CAA8C;AAAA,MAClE;AAAA,MACA,MAAM,UAAU,OAAO;AAAA,MACvB,IAAI,OAAO,WAAW;AAAA,QAClB,MAAM,IAAI,MAAM,sCAAsC;AAAA,MAC1D,IAAI,OAAO;AAAA,QACP,MAAM,IAAI,MAAM,yCAAyC;AAAA,MAC7D,IAAI,CAAC;AAAA,QACD,MAAM,IAAI,MAAM,uCAAuC;AAAA,MAC3D,MAAM,QAAQ,IAAI,IAAI,SAAS,KAAK;AAAA,MACpC,MAAM,MAAM,IAAI,MAAM,OAAQ,IAAG,UAAU,KAAM,QAAQ,GAAG,UAAU,aAAa,OAAO,GAAG;AAAA,MAC7F,IAAI,GAAI,IAAG,UAAU,YAAa,mBAAmB,MAAM,gBAAgB,GAAG,MAAM,IAAI,MAAM,OAAO,EAAE,YAAY,QAAQ,WAAW,KAAK,KAAK,QAAQ,CAAC,CAAC;AAAA,MAC1J,IAAI,GAAG,KAAK;AAAA,MACZ,SAAS,eAAe,GAAG;AAAA,QACvB,MAAM,UAAU,WAAW;AAAA,QAC3B,IAAI,GAAG,KAAK;AAAA,QACZ,WAAW,YAAY,SAAS;AAAA,UAC5B,IAAI,OAAQ,IAAG,UAAU,KAAM,WAAW,UAAU;AAAA,UACpD,IAAI,OAAO,OAAO,eAAe,QAAQ,SAAS,CAAC;AAAA,QACvD;AAAA,QACA,IAAI,KAAK;AAAA,QACT,IAAI,MAAM,OAAO,EAAE,YAAY,QAAQ,WAAW,SAAS,KAAK,QAAQ,CAAC;AAAA,QACzE,IAAI,MAAM;AAAA;AAAA,MAEd,SAAS,cAAc,CAAC,YAAY;AAAA,QAChC,MAAM,SAAS,IAAI,KAAK,OAAO;AAAA,QAC/B,MAAM,SAAS,IAAI,UAAU,EAAE,SAAS,SAAS,WAAW,GAAG,MAAM;AAAA,QACrE,IAAI,eAAe,QAAQ,UAAU,IAAI;AAAA,QACzC,OAAO;AAAA;AAAA,MAEX,SAAS,UAAU,GAAG;AAAA,QAClB,IAAI;AAAA,QACJ,MAAM,eAAe,CAAC;AAAA,QACtB,MAAM,cAAc,YAAY,YAAY;AAAA,QAC5C,IAAI,cAAc;AAAA,QAClB,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,UACnC,IAAI,MAAM,MAAM;AAAA,UAChB,KAAK,QAAQ,QAAQ,QAAa,YAAS,YAAI,IAAI,SAAS,EAAE,GAAG,OAAO,sBAAsB,KAAK,GAAG,KAAK,KAAK,GAAG;AAAA,YAC/G,MAAM,MAAM,IAAI;AAAA,YAChB,MAAM,UAAU,WAAW,KAAK,GAAG,MAAM,GAAG,UAAU,MAAM,GAAG,QAAQ,GAAG;AAAA,YAC1E,IAAI,eAAe,UAAU;AAAA,cACzB,MAAM,IAAI;AAAA,YACd,IAAI,QAAQ;AAAA,cACR,MAAM,IAAI,YAAY,QAAQ,GAAG,KAAK,aAAa,GAAG,QAAQ,GAAG;AAAA,UACzE;AAAA,UACA,MAAM,WAAW,KAAK,QAAQ,QAAQ,QAAa,YAAS,YAAI,IAAI,gBAAgB,QAAQ,OAAY,YAAS,YAAI,GAAG;AAAA,UACxH,IAAI,OAAO,WAAW,UAAU;AAAA,YAC5B,MAAM,IAAI,MAAM,iFAAiF,UAAU;AAAA,UAC/G;AAAA,UACA,cAAc,gBAAgB,eAAe,YAAY,GAAG;AAAA,UAC5D,YAAY,SAAS,CAAC;AAAA,QAC1B;AAAA,QACA,IAAI,CAAC;AAAA,UACD,MAAM,IAAI,MAAM,mBAAmB,2BAA2B;AAAA,QAClE,OAAO;AAAA,QACP,SAAS,WAAW,GAAG,YAAY;AAAA,UAC/B,OAAO,MAAM,QAAQ,QAAQ,KAAK,SAAS,SAAS,OAAO;AAAA;AAAA,QAE/D,SAAS,WAAW,CAAC,KAAK,GAAG;AAAA,UACzB,IAAI,IAAI,OAAO;AAAA,YACX,WAAW,IAAI,OAAO,CAAC;AAAA,UAC3B,EACK,SAAI,IAAI,MAAM;AAAA,YACf,WAAW,YAAY,IAAI,MAAM;AAAA,cAC7B,WAAW,UAAU,CAAC;AAAA,YAC1B;AAAA,UACJ,EACK;AAAA,YACD,MAAM,IAAI,MAAM,8BAA8B,sCAAsC;AAAA;AAAA;AAAA,QAG5F,SAAS,UAAU,CAAC,UAAU,GAAG;AAAA,UAC7B,IAAI,OAAO,YAAY,YAAY,YAAY,cAAc;AAAA,YACzD,MAAM,IAAI,MAAM,mBAAmB,wCAAwC;AAAA,UAC/E;AAAA,UACA,aAAa,YAAY;AAAA;AAAA;AAAA;AAAA,EAIzC;AAAA,EACQ,kBAAU;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECrGlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,oBAAoB,CAAC,aAAa;AAAA,EACxC,SAAS,iBAAiB,CAAC,OAAO;AAAA,IAE9B;AAAA,MACI;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,MAAM,MAAM;AAAA,MACtB;AAAA,MACA,UAAU,MAAM,UAAU;AAAA,IAC9B,EAAE,QAAQ,CAAC,QAAQ,KAAK,cAAc,KAAK,WAAW,KAAK,CAAC;AAAA,IAC5D,OAAO;AAAA,IACP,SAAS,SAAS,CAAC,KAAK,KAAK;AAAA,MACzB,OAAO,QAAQ,IAAI,gBAAgB,KAAK,iBAAiB,IAAI;AAAA;AAAA;AAAA,EAG7D,kBAAU;AAAA;;;;EC3BlB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EACpD,0BAA0B,0BAA0B,kBAAkB,eAAe,cAAc,oBAAoB,cAAc,YAAY,qBAAqB,kBAAe;AAAA,EAC7L,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM;AAAA,EACN,IAAM,iBAAiB;AAAA;AAAA,EACvB,MAAM,gBAAgB,OAAO,QAAQ;AAAA,IACjC,WAAW,CAAC,OAAO,CAAC,GAAG;AAAA,MACnB,MAAM;AAAA,WACC;AAAA,QACH,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,aAAa;AAAA,MACjB,CAAC;AAAA;AAAA,IAEL,gBAAgB,GAAG;AAAA,MACf,MAAM,iBAAiB;AAAA,MACvB,YAAY,QAAQ,QAAQ,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC;AAAA,MACxD,IAAI,KAAK,KAAK;AAAA,QACV,KAAK,WAAW,gBAAgB,OAAO;AAAA;AAAA,IAE/C,qBAAqB,GAAG;AAAA,MACpB,MAAM,sBAAsB;AAAA,MAC5B,QAAQ,OAAO,gBAAS,KAAK;AAAA,MAC7B,IAAI,CAAC;AAAA,QACD;AAAA,MACJ,sBAAsB,QAAQ,KAAK,MAAM,KAAK;AAAA,MAC9C,KAAK,KAAK,mCAAmC;AAAA;AAAA,IAEjD,WAAW,GAAG;AAAA,MACV,OAAQ,KAAK,KAAK,cACd,MAAM,YAAY,MAAM,KAAK,UAAU,cAAc,IAAI,iBAAiB;AAAA;AAAA,EAEtF;AAAA,EACQ,kBAAU;AAAA,EAClB,OAAO,UAAU,UAAU;AAAA,EAC3B,OAAO,QAAQ,UAAU;AAAA,EACzB,OAAO,eAAe,SAAS,cAAc,EAAE,OAAO,KAAK,CAAC;AAAA,EAC5D,QAAQ,UAAU;AAAA,EAClB,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,cAAc,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,WAAW;AAAA,IAAc,CAAC;AAAA,EACrH,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,KAAK,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAK,CAAC;AAAA,EAClG,OAAO,eAAe,SAAS,OAAO,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAO,CAAC;AAAA,EACtG,OAAO,eAAe,SAAS,aAAa,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAa,CAAC;AAAA,EAClH,OAAO,eAAe,SAAS,OAAO,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAO,CAAC;AAAA,EACtG,OAAO,eAAe,SAAS,QAAQ,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAQ,CAAC;AAAA,EACxG,OAAO,eAAe,SAAS,WAAW,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,UAAU;AAAA,IAAW,CAAC;AAAA,EAC9G,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,mBAAmB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,mBAAmB;AAAA,IAAW,CAAC;AAAA,EAC/H,IAAI;AAAA,EACJ,OAAO,eAAe,SAAS,mBAAmB,EAAE,YAAY,MAAM,KAAK,QAAS,GAAG;AAAA,IAAE,OAAO,YAAY;AAAA,IAAW,CAAC;AAAA;;;ACrDxH;;;ACAA;AAGA,SAAS,mBAAmB,CAAC,SAAS,CAAC,GAAG;AAAA,EACzC,MAAM,eAAe,OAAO,oBAAoB;AAAA,EAChD,MAAM,cAAc,OAAO,mBAAmB;AAAA,EAC9C,MAAM,kBAAkB,OAAO,uBAAuB;AAAA,EACtD,MAAM,kBAAkB,CAAC,SAAS;AAAA,IACjC,MAAM,OAAO,iBAAM,QAAQ,mBAAQ,OAAO,CAAC;AAAA,IAC3C,IAAI,MAAM;AAAA,MACT,MAAM,cAAc,KAAK,YAAY;AAAA,MACrC,IAAI,8BAAmB,WAAW,GAAG;AAAA,QACpC,MAAM,SAAS;AAAA,WACb,eAAe,YAAY;AAAA,WAC3B,cAAc,YAAY;AAAA,WAC1B,kBAAkB,IAAI,YAAY,WAAW,SAAS,EAAE;AAAA,QAC1D;AAAA,QACA,IAAI,OAAO,gBAAgB;AAAA,UAC1B,MAAM,YAAY,GAAG,OAAO,iBAAiB,OAAO;AAAA,UACpD,IAAI;AAAA,YAAM,OAAO;AAAA,iBACb;AAAA,iBACA;AAAA,YACJ;AAAA,UACA,OAAO;AAAA,QACR;AAAA,QACA,IAAI;AAAA,UAAM,OAAO;AAAA,eACb;AAAA,eACA;AAAA,UACJ;AAAA,QACA,OAAO;AAAA,MACR;AAAA,IACD;AAAA,IACA,OAAO,QAAQ,CAAC;AAAA;AAAA,EAEjB,OAAO;AAAA,IACN,IAAI,OAAO;AAAA,IACX,UAAU,OAAO;AAAA,IACjB,iBAAiB,GAAG,WAAW,gBAAgB,IAAI;AAAA,EACpD;AAAA;;;ACrCD,IAAI,2BAA2B,QAAQ,CAAC,WAAU;AAAA,EACjD,UAAS,UAAU;AAAA,EACnB,UAAS,UAAU;AAAA,EACnB,UAAS,WAAW;AAAA,EACpB,UAAS,WAAW;AAAA,EACpB,UAAS,WAAW;AAAA,EACpB,UAAS,WAAW;AAAA,EACpB,OAAO;AAAA,EACN,CAAC,CAAC;AAIJ,IAAM,mBAAmB;AAAA,GACvB,SAAS,QAAQ;AAAA,GACjB,SAAS,QAAQ;AAAA,GACjB,SAAS,OAAO;AAAA,GAChB,SAAS,OAAO;AAAA,GAChB,SAAS,QAAQ;AAAA,GACjB,SAAS,QAAQ;AACnB;AAIA,IAAM,0BAA0B;AAAA,EAC/B,IAAI,SAAS;AAAA,EACb,IAAI,SAAS;AAAA,EACb,IAAI,SAAS;AAAA,EACb,IAAI,SAAS;AAAA,EACb,IAAI,SAAS;AAAA,EACb,IAAI,SAAS;AACd;AAUA,IAAM,cAAc,OAAO,IAAI,eAAe;AAO9C,IAAM,kBAAkB;AAyCxB,SAAS,MAAM,CAAC,OAAO;AAAA,EACtB,OAAO,SAAS,QAAQ,OAAO,UAAU,YAAY,eAAe;AAAA;AAMrE,SAAS,eAAe,CAAC,KAAK;AAAA,EAC7B,IAAI,QAAQ;AAAA,EACZ,WAAW,OAAO,OAAO,KAAK,GAAG;AAAA,IAAG,IAAI,OAAO,IAAI,IAAI;AAAA,MAAG;AAAA,EAC1D,OAAO;AAAA;AASR,SAAS,iBAAiB,CAAC,KAAK;AAAA,EAC/B,IAAI,UAAU;AAAA,EACd,WAAW,OAAO,OAAO,KAAK,GAAG;AAAA,IAAG,IAAI,OAAO,IAAI,IAAI,GAAG;AAAA,MACzD,UAAU;AAAA,MACV;AAAA,IACD;AAAA,EACA,IAAI,CAAC;AAAA,IAAS,OAAO;AAAA,MACpB,UAAU;AAAA,MACV,QAAQ;AAAA,IACT;AAAA,EACA,MAAM,SAAS,CAAC;AAAA,EAChB,IAAI,SAAS;AAAA,EACb,WAAW,OAAO,OAAO,KAAK,GAAG,GAAG;AAAA,IACnC,MAAM,QAAQ,IAAI;AAAA,IAClB,IAAI,OAAO,KAAK;AAAA,MAAG,IAAI;AAAA,QACtB,OAAO,OAAO,MAAM,aAAa;AAAA,QAChC,OAAO,GAAG;AAAA,QACX,OAAO,OAAO;AAAA,QACd,IAAI,CAAC;AAAA,UAAQ,SAAS,CAAC;AAAA,QACvB,OAAO,KAAK;AAAA,UACX;AAAA,UACA,OAAO;AAAA,QACR,CAAC;AAAA;AAAA,IAEG;AAAA,aAAO,OAAO;AAAA,EACpB;AAAA,EACA,OAAO;AAAA,IACN,UAAU;AAAA,IACV;AAAA,EACD;AAAA;AAMD,SAAS,gBAAgB,CAAC,KAAK;AAAA,EAC9B,WAAW,OAAO,OAAO,KAAK,GAAG;AAAA,IAAG,IAAI,IAAI,gBAAgB;AAAA,MAAS,OAAO;AAAA,EAC5E,OAAO;AAAA;AAQR,SAAS,oBAAoB,CAAC,KAAK;AAAA,EAClC,IAAI,YAAY;AAAA,EAChB,MAAM,SAAS,CAAC;AAAA,EAChB,WAAW,OAAO,OAAO,KAAK,GAAG;AAAA,IAAG,IAAI,IAAI,gBAAgB,SAAS;AAAA,MACpE,OAAO,OAAO;AAAA,MACd,IAAI,CAAC;AAAA,QAAW,YAAY,CAAC;AAAA,MAC7B,UAAU,KAAK,GAAG;AAAA,IACnB,EAAO;AAAA,aAAO,OAAO,IAAI;AAAA,EACzB,IAAI,CAAC;AAAA,IAAW,OAAO;AAAA,MACtB,UAAU;AAAA,MACV,WAAW;AAAA,IACZ;AAAA,EACA,OAAO;AAAA,IACN,UAAU;AAAA,IACV;AAAA,EACD;AAAA;AAQD,eAAe,oBAAoB,CAAC,KAAK;AAAA,EACxC,MAAM,OAAO,OAAO,KAAK,GAAG;AAAA,EAC5B,MAAM,UAAU,MAAM,QAAQ,WAAW,KAAK,IAAI,CAAC,QAAQ,QAAQ,QAAQ,IAAI,IAAI,CAAC,CAAC;AAAA,EACrF,MAAM,SAAS,CAAC;AAAA,EAChB,IAAI,SAAS;AAAA,EACb,SAAS,IAAI,EAAG,IAAI,KAAK,QAAQ,KAAK;AAAA,IACrC,MAAM,IAAI,QAAQ;AAAA,IAClB,IAAI,EAAE,WAAW;AAAA,MAAa,OAAO,KAAK,MAAM,EAAE;AAAA,IAC7C;AAAA,MACJ,OAAO,KAAK,MAAM;AAAA,MAClB,IAAI,CAAC;AAAA,QAAQ,SAAS,CAAC;AAAA,MACvB,OAAO,KAAK;AAAA,QACX,KAAK,KAAK;AAAA,QACV,OAAO,EAAE;AAAA,MACV,CAAC;AAAA;AAAA,EAEH;AAAA,EACA,OAAO;AAAA,IACN,UAAU;AAAA,IACV;AAAA,EACD;AAAA;;;AC3LD,IAAI,gBAAgB,MAAM;AAAA,EAIzB;AAAA,EAIA;AAAA,EAIA;AAAA,EAIA;AAAA,EAIA;AAAA,EACA,WAAW,CAAC,QAAQ;AAAA,IACnB,KAAK,KAAK,OAAO,MAAM,KAAK,IAAI,EAAE,SAAS,IAAI,KAAK,OAAO,EAAE,SAAS;AAAA,IACtE,KAAK,SAAS,OAAO;AAAA,IACrB,KAAK,UAAU,OAAO,WAAW;AAAA,IACjC,KAAK,eAAe,OAAO,gBAAgB;AAAA,IAC3C,KAAK,QAAQ,OAAO,SAAS;AAAA;AAAA,EAK9B,aAAa,CAAC,QAAQ;AAAA,IACrB,IAAI,CAAC,KAAK;AAAA,MAAS;AAAA,IACnB,IAAI,iBAAiB,OAAO,YAAY,iBAAiB,KAAK;AAAA,MAAQ;AAAA,IACtE,MAAM,WAAW,KAAK,aAAa,MAAM;AAAA,IACzC,IAAI,KAAK;AAAA,MAAc,QAAQ,OAAO;AAAA,aAChC,SAAW;AAAA,UACf,QAAQ,KAAK,GAAG,QAAQ;AAAA,UACxB;AAAA,aACI,SAAW;AAAA,UACf,QAAQ,KAAK,GAAG,QAAQ;AAAA,UACxB;AAAA,aACI,SAAW;AAAA,UACf,QAAQ,MAAM,GAAG,QAAQ;AAAA,UACzB;AAAA,aACI,SAAW;AAAA,UACf,QAAQ,MAAM,GAAG,QAAQ;AAAA,UACzB;AAAA,aACI,SAAW;AAAA,UACf,QAAQ,MAAM,GAAG,QAAQ;AAAA,UACzB;AAAA,aACI,SAAW;AAAA,UACf,QAAQ,MAAM,GAAG,QAAQ;AAAA,UACzB;AAAA;AAAA,UACQ,QAAQ,IAAI,GAAG,QAAQ;AAAA;AAAA;AAAA,EAMlC,iBAAiB,GAAG;AAAA,IACnB,OAAO,KAAK;AAAA;AAEd;;;ACrEA,IAAI,iBAAiB,cAAc,cAAc;AAAA,EAChD,WAAW,CAAC,QAAQ;AAAA,IACnB,MAAM,MAAM;AAAA,IACZ,IAAI,OAAO,oBAAyB;AAAA,MAAG,KAAK,OAAO,qBAAqB,OAAO;AAAA,IAC1E;AAAA,WAAK,OAAO,qBAAqB;AAAA;AAAA,EAEvC,YAAY,GAAG,UAAU,UAAU,MAAM,WAAW;AAAA,IACnD,IAAI,QAAQ;AAAA,MAAS,SAAS,KAAK,IAAI;AAAA,IACvC,QAAQ;AAAA,WACF,SAAS;AAAA,QACb,KAAK,OAAO,KAAK,GAAG,QAAQ;AAAA,QAC5B;AAAA,WACI,SAAS;AAAA,QACb,KAAK,OAAO,KAAK,GAAG,QAAQ;AAAA,QAC5B;AAAA,WACI,SAAS;AAAA,QACb,KAAK,OAAO,MAAM,GAAG,QAAQ;AAAA,QAC7B;AAAA,WACI,SAAS;AAAA,QACb,KAAK,OAAO,MAAM,GAAG,QAAQ;AAAA,QAC7B;AAAA,WACI,SAAS;AAAA,QACb,KAAK,OAAO,MAAM,GAAG,QAAQ;AAAA,QAC7B;AAAA,WACI,SAAS;AAAA,QACb,KAAK,OAAO,MAAM,GAAG,QAAQ;AAAA,QAC7B;AAAA;AAAA,IAEF,OAAO;AAAA;AAET;;;ACpBA,IAAI,qCAAqC,QAAQ,CAAC,qBAAoB;AAAA,EACrE,oBAAmB,uBAAuB;AAAA,EAC1C,oBAAmB,qBAAqB;AAAA,EACxC,oBAAmB,wBAAwB;AAAA,EAC3C,oBAAmB,sBAAsB;AAAA,EACzC,oBAAmB,wBAAwB;AAAA,EAC3C,oBAAmB,qBAAqB;AAAA,EACxC,OAAO;AAAA,EACN,CAAC,CAAC;;;ACfJ,IAAI,wBAAwB,MAAM,uBAAsB;AAAA,EACvD,UAAU,CAAC;AAAA,EACX,aAAa;AAAA,EAIb,UAAU,CAAC,UAAS;AAAA,IACnB,IAAI,CAAC,UAAS;AAAA,MACb,KAAK,UAAU,CAAC;AAAA,MAChB,KAAK,aAAa;AAAA,MAClB;AAAA,IACD;AAAA,IACA,KAAK,UAAU;AAAA,IACf,KAAK,aAAa;AAAA;AAAA,EAKnB,aAAa,CAAC,UAAS;AAAA,IACtB,KAAK,UAAU;AAAA,SACX,KAAK;AAAA,SACL;AAAA,IACJ;AAAA,IACA,KAAK,aAAa;AAAA;AAAA,EAKnB,UAAU,GAAG;AAAA,IACZ,OAAO,KAAK;AAAA;AAAA,EAKb,cAAc,GAAG;AAAA,IAChB,OAAO,KAAK;AAAA;AAAA,EAMb,YAAY,CAAC,MAAM;AAAA,IAClB,IAAI,SAAc,WAAG;AAAA,MACpB,KAAK,UAAU,CAAC;AAAA,MAChB,KAAK,aAAa;AAAA,MAClB;AAAA,IACD;AAAA,IACA,MAAM,eAAe,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAAA,IACvD,WAAW,OAAO;AAAA,MAAc,OAAO,KAAK,QAAQ;AAAA,IACpD,KAAK,aAAa,OAAO,KAAK,KAAK,OAAO,EAAE,SAAS;AAAA;AAAA,EAKtD,oBAAoB,GAAG,sBAAsB,uBAAuB;AAAA,IACnE,IAAI,qBAAqB,eAAe,GAAG;AAAA,MAC1C,MAAM,gBAAgB,qBAAqB,WAAW;AAAA,MACtD,oBAAoB,WAAW,KAAK,cAAc,CAAC;AAAA,IACpD;AAAA;AAAA,EAKD,KAAK,GAAG;AAAA,IACP,MAAM,QAAQ,IAAI;AAAA,IAClB,MAAM,WAAW,KAAK,KAAK,QAAQ,CAAC;AAAA,IACpC,MAAM,aAAa,KAAK;AAAA,IACxB,OAAO;AAAA;AAET;AAOA,IAAI,qBAAqB,MAAM,oBAAmB;AAAA,EACjD,UAAU,CAAC,UAAU;AAAA,EACrB,aAAa,CAAC,UAAU;AAAA,EACxB,UAAU,GAAG;AAAA,IACZ,OAAO,CAAC;AAAA;AAAA,EAET,cAAc,GAAG;AAAA,IAChB,OAAO;AAAA;AAAA,EAER,YAAY,CAAC,OAAO;AAAA,EACpB,oBAAoB,CAAC,SAAS;AAAA,EAC9B,KAAK,GAAG;AAAA,IACP,OAAO,IAAI;AAAA;AAEb;;;ACvFA,IAAI,yBAAyB,MAAM,wBAAuB;AAAA,EACzD,wBAAwB;AAAA,IACvB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACR;AAAA,EAKA,QAAQ,CAAC,UAAU;AAAA,IAClB,MAAM,cAAc,iBAAmB;AAAA,IACvC,WAAW,SAAS,OAAO,OAAO,QAAU,GAAG;AAAA,MAC9C,MAAM,WAAW;AAAA,MACjB,MAAM,aAAa,iBAAmB;AAAA,MACtC,KAAK,sBAAsB,YAAY,cAAc;AAAA,IACtD;AAAA;AAAA,EAKD,qBAAqB,CAAC,UAAU;AAAA,IAC/B,MAAM,QAAQ;AAAA,IACd,IAAI,SAAS,KAAK;AAAA,MAAuB,KAAK,sBAAsB,SAAS;AAAA;AAAA,EAK9E,sBAAsB,CAAC,UAAU;AAAA,IAChC,MAAM,QAAQ;AAAA,IACd,IAAI,SAAS,KAAK;AAAA,MAAuB,KAAK,sBAAsB,SAAS;AAAA;AAAA,EAK9E,cAAc,CAAC,UAAU;AAAA,IACxB,MAAM,QAAQ;AAAA,IACd,OAAO,KAAK,sBAAsB;AAAA;AAAA,EAKnC,aAAa,GAAG;AAAA,IACf,WAAW,SAAS,OAAO,KAAK,KAAK,qBAAqB;AAAA,MAAG,KAAK,sBAAsB,SAAS;AAAA;AAAA,EAKlG,cAAc,GAAG;AAAA,IAChB,WAAW,SAAS,OAAO,KAAK,KAAK,qBAAqB;AAAA,MAAG,KAAK,sBAAsB,SAAS;AAAA;AAAA,EAMlG,oBAAoB,GAAG,uBAAuB,wBAAwB;AAAA,IACrE,MAAM,eAAe,sBAAsB;AAAA,IAC3C,IAAI,gCAAgC;AAAA,MAAwB,qBAAqB,wBAAwB,KAAK,aAAa;AAAA;AAAA,EAK5H,KAAK,GAAG;AAAA,IACP,MAAM,QAAQ,IAAI;AAAA,IAClB,MAAM,wBAAwB,KAAK,KAAK,sBAAsB;AAAA,IAC9D,OAAO;AAAA;AAET;AAQA,IAAI,sBAAsB,MAAM,qBAAoB;AAAA,EACnD,QAAQ,CAAC,WAAW;AAAA,EACpB,qBAAqB,CAAC,WAAW;AAAA,EACjC,sBAAsB,CAAC,WAAW;AAAA,EAClC,cAAc,CAAC,WAAW;AAAA,IACzB,OAAO;AAAA;AAAA,EAER,aAAa,GAAG;AAAA,EAChB,cAAc,GAAG;AAAA,EACjB,oBAAoB,CAAC,SAAS;AAAA,EAC9B,KAAK,GAAG;AAAA,IACP,OAAO,IAAI;AAAA;AAEb;;;AC7FA,IAAM,gBAAgB;AAAA,EACrB,mBAAqB;AAAA,EACrB,mBAAqB;AAAA,EACrB,mBAAqB;AAAA,EACrB,mBAAqB;AAAA,EACrB,mBAAqB;AAAA,EACrB,mBAAqB;AACtB;AAKA,IAAI,gBAAgB,MAAM;AAAA,EACzB;AAAA,EACA,oBAAoB,CAAC;AAAA,EACrB,kBAAkB,CAAC;AAAA,EACnB,qBAAqB,CAAC;AAAA,EACtB,mBAAmB,CAAC;AAAA,EACpB,qBAAqB,CAAC;AAAA,EACtB,kBAAkB,CAAC;AAAA,EACnB,WAAW,CAAC,SAAS;AAAA,IACpB,KAAK,aAAa,CAAC;AAAA,IACnB,KAAK,WAAW,OAAO;AAAA,IACvB,KAAK,aAAa;AAAA;AAAA,EAEnB,UAAU,CAAC,SAAS;AAAA,IACnB,WAAW,UAAU,SAAS;AAAA,MAC7B,IAAI,CAAC,OAAO;AAAA,QAAI,OAAO,KAAK,KAAK,IAAI,EAAE,SAAS,IAAI,KAAK,OAAO,EAAE,SAAS;AAAA,MAC3E,IAAI,KAAK,WAAW,OAAO;AAAA,QAAK,MAAM,IAAI,MAAM,6BAA6B,OAAO,oBAAoB;AAAA,MACxG,OAAO,kBAAkB,KAAK,IAAI;AAAA,MAClC,KAAK,WAAW,OAAO,MAAM;AAAA,IAC9B;AAAA;AAAA,EAED,YAAY,GAAG;AAAA,IACd,KAAK,oBAAoB,CAAC;AAAA,IAC1B,KAAK,kBAAkB,CAAC;AAAA,IACxB,KAAK,qBAAqB,CAAC;AAAA,IAC3B,KAAK,mBAAmB,CAAC;AAAA,IACzB,KAAK,qBAAqB,CAAC;AAAA,IAC3B,KAAK,kBAAkB,CAAC;AAAA,IACxB,MAAM,aAAa,OAAO,OAAO,KAAK,UAAU,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,eAAe,EAAE,YAAY;AAAA,IAChG,WAAW,UAAU,YAAY;AAAA,MAChC,IAAI,OAAO;AAAA,QAAU;AAAA,MACrB,WAAW,YAAY;AAAA,QAAe,IAAI,OAAO,aAAa,OAAO;AAAA,UAAI,KAAK,UAAU,KAAK,OAAO,EAAE;AAAA,IACvG;AAAA;AAAA,EAED,UAAU,CAAC,cAAc;AAAA,IACxB,OAAO,KAAK,cAAc,SAAS;AAAA;AAAA,EAEpC,YAAY,CAAC,cAAc;AAAA,IAC1B,IAAI;AAAA,MAAc,OAAO,KAAK,cAAc;AAAA,IAC5C,OAAO,OAAO,KAAK,KAAK,UAAU,EAAE;AAAA;AAAA,EAErC,UAAU,CAAC,SAAS;AAAA,IACnB,KAAK,WAAW,OAAO;AAAA,IACvB,KAAK,aAAa;AAAA;AAAA,EAEnB,YAAY,CAAC,IAAI;AAAA,IAChB,MAAM,SAAS,KAAK,WAAW;AAAA,IAC/B,IAAI;AAAA,MAAQ,OAAO,WAAW;AAAA,IAC9B,KAAK,aAAa;AAAA;AAAA,EAEnB,aAAa,CAAC,IAAI;AAAA,IACjB,MAAM,SAAS,KAAK,WAAW;AAAA,IAC/B,IAAI;AAAA,MAAQ,OAAO,WAAW;AAAA,IAC9B,KAAK,aAAa;AAAA;AAAA,EAEnB,YAAY,CAAC,IAAI;AAAA,IAChB,OAAO,KAAK,WAAW;AAAA,IACvB,KAAK,aAAa;AAAA;AAAA,EAMnB,oBAAoB,CAAC,QAAQ,UAAU;AAAA,IACtC,IAAI,mBAAmB;AAAA,IACvB,WAAW,YAAY,KAAK,mBAAmB;AAAA,MAC9C,MAAM,SAAS,KAAK,WAAW;AAAA,MAC/B,IAAI,OAAO,mBAAmB;AAAA,QAC7B,MAAM,SAAS,OAAO,kBAAkB;AAAA,UACvC,MAAM,OAAO;AAAA,UACb,UAAU,OAAO;AAAA,UACjB,UAAU,OAAO;AAAA,UACjB,OAAO,OAAO;AAAA,UACd,UAAU,OAAO;AAAA,UACjB,SAAS,OAAO;AAAA,QACjB,GAAG,QAAQ;AAAA,QACX,IAAI,WAAW,QAAQ,WAAgB,aAAK,WAAW;AAAA,UAAO,mBAAmB;AAAA,MAClF;AAAA,IACD;AAAA,IACA,OAAO,qBAAqB,QAAQ,qBAA0B,aAAK,qBAAqB,QAAQ,mBAAmB,OAAO;AAAA;AAAA,EAK3H,kBAAkB,CAAC,QAAQ,UAAU;AAAA,IACpC,MAAM,cAAc,KAAK,OAAO;AAAA,IAChC,WAAW,YAAY,KAAK,iBAAiB;AAAA,MAC5C,MAAM,SAAS,KAAK,WAAW;AAAA,MAC/B,IAAI,OAAO,iBAAiB;AAAA,QAC3B,MAAM,SAAS,OAAO,gBAAgB;AAAA,UACrC,MAAM,YAAY;AAAA,UAClB,UAAU,YAAY;AAAA,UACtB,OAAO,YAAY;AAAA,UACnB,UAAU,YAAY;AAAA,UACtB,SAAS,YAAY;AAAA,QACtB,GAAG,QAAQ;AAAA,QACX,IAAI,QAAQ;AAAA,UACX,IAAI,CAAC,YAAY;AAAA,YAAM,YAAY,OAAO,CAAC;AAAA,UAC3C,OAAO,OAAO,YAAY,MAAM,MAAM;AAAA,QACvC;AAAA,MACD;AAAA,IACD;AAAA,IACA,OAAO,YAAY;AAAA;AAAA,EAKpB,qBAAqB,CAAC,QAAQ,UAAU;AAAA,IACvC,OAAO,CAAC,KAAK,mBAAmB,KAAK,CAAC,aAAa;AAAA,MAClD,OAAO,CAAC,KAAK,WAAW,UAAU,qBAAqB,QAAQ,QAAQ;AAAA,KACvE;AAAA;AAAA,EAKF,mBAAmB,CAAC,UAAU,UAAU;AAAA,IACvC,IAAI,OAAO,KAAK,SAAS;AAAA,IACzB,WAAW,YAAY,KAAK,kBAAkB;AAAA,MAC7C,MAAM,SAAS,KAAK,WAAW,UAAU,mBAAmB,MAAM,QAAQ;AAAA,MAC1E,IAAI;AAAA,QAAQ,OAAO;AAAA,MACd;AAAA,eAAO;AAAA,IACb;AAAA,IACA,OAAO;AAAA;AAAA,EAER,qBAAqB,CAAC,QAAQ,UAAU;AAAA,IACvC,IAAI,WAAW,CAAC,GAAG,OAAO,QAAQ;AAAA,IAClC,WAAW,YAAY,KAAK,oBAAoB;AAAA,MAC/C,MAAM,SAAS,KAAK,WAAW,UAAU,qBAAqB;AAAA,QAC7D;AAAA,QACA,UAAU,OAAO;AAAA,MAClB,GAAG,QAAQ;AAAA,MACX,IAAI;AAAA,QAAQ,WAAW;AAAA,IACxB;AAAA,IACA,OAAO;AAAA;AAAA,EAKR,kBAAkB,CAAC,UAAS,UAAU;AAAA,IACrC,IAAI,OAAO,KAAK,SAAQ;AAAA,IACxB,WAAW,YAAY,KAAK,iBAAiB;AAAA,MAC5C,MAAM,SAAS,KAAK,WAAW,UAAU,kBAAkB,MAAM,QAAQ;AAAA,MACzE,IAAI;AAAA,QAAQ,OAAO;AAAA,MACd;AAAA,eAAO;AAAA,IACb;AAAA,IACA,OAAO;AAAA;AAET;AASA,IAAI,WAAW,MAAM,UAAS;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EAKrB;AAAA,EACA,WAAW,CAAC,QAAQ;AAAA,IACnB,KAAK,UAAU;AAAA,SACX;AAAA,MACH,SAAS,OAAO,WAAW;AAAA,IAC5B;AAAA,IACA,KAAK,iBAAiB,IAAI;AAAA,IAC1B,KAAK,kBAAkB,IAAI;AAAA,IAC3B,IAAI,CAAC,KAAK,QAAQ;AAAA,MAAS,KAAK,eAAe;AAAA,IAC/C,KAAK,gBAAgB,IAAI,cAAc,CAAC,GAAG,OAAO,WAAW,CAAC,GAAG,GAAG,cAAc,aAAa,CAAC;AAAA,IAChG,IAAI,CAAC,KAAK,QAAQ;AAAA,MAAgB,KAAK,QAAQ,iBAAiB;AAAA,IAChE,IAAI,CAAC,KAAK,QAAQ;AAAA,MAAoB,KAAK,QAAQ,qBAAqB;AAAA,IACxE,KAAK,sBAAsB,KAAK,QAAQ,SAAS;AAAA,IACjD,KAAK,gBAAgB,OAAO,SAAS,KAAK,OAAO,OAAO,IAAI;AAAA,IAC5D,KAAK,qBAAqB,OAAO,qBAAqB;AAAA,IACtD,KAAK,gBAAgB,OAAO,eAAe,IAAI,IAAI,OAAO,YAAY,IAAI;AAAA,IAC1E,KAAK,gBAAgB;AAAA,IACrB,IAAI,cAAc,iBAAiB,SAAS;AAAA,MAAG,cAAc,iBAAiB,QAAQ,CAAC,UAAU;AAAA,QAChG,IAAI,MAAM;AAAA,UAAa,MAAM,YAAY,MAAM,MAAM;AAAA,OACrD;AAAA;AAAA,EAKF,kBAAkB,CAAC,gBAAgB;AAAA,IAClC,IAAI,KAAK,kBAAkB,OAAO,KAAK,eAAe,OAAO,aAAa;AAAA,MAAY,KAAK,eAAe,OAAO,SAAS;AAAA,IAC1H,KAAK,iBAAiB;AAAA,IACtB,KAAK,oBAAoB,eAAe,eAAe,IAAI,gBAAgB,eAAe,WAAW,CAAC,IAAI;AAAA,IAC1G,OAAO;AAAA;AAAA,EAKR,iBAAiB,GAAG;AAAA,IACnB,OAAO,KAAK;AAAA;AAAA,EAKb,mBAAmB,CAAC,iBAAiB;AAAA,IACpC,IAAI,KAAK,mBAAmB,OAAO,KAAK,gBAAgB,OAAO,aAAa;AAAA,MAAY,KAAK,gBAAgB,OAAO,SAAS;AAAA,IAC7H,KAAK,kBAAkB;AAAA,IACvB,OAAO;AAAA;AAAA,EAKR,kBAAkB,GAAG;AAAA,IACpB,OAAO,KAAK;AAAA;AAAA,EAKb,SAAS,GAAG;AAAA,IACX,OAAO,KAAK;AAAA;AAAA,EAEb,qBAAqB,CAAC,YAAY;AAAA,IACjC,IAAI,KAAK,eAAe;AAAA,MACvB,WAAW,MAAM,KAAK;AAAA,QAAe,IAAI,KAAK,cAAc,OAAO,OAAO,KAAK,cAAc,IAAI,OAAO,aAAa;AAAA,UAAY,KAAK,cAAc,IAAI,OAAO,SAAS;AAAA,IACzK;AAAA,IACA,KAAK,wBAAwB,MAAM,QAAQ,UAAU,KAAK,WAAW,SAAS;AAAA,IAC9E,KAAK,kBAAkB,KAAK,wBAAwB,OAAO,MAAM,QAAQ,UAAU,IAAI,WAAW,KAAK;AAAA,IACvG,IAAI,MAAM,QAAQ,UAAU;AAAA,MAAG,KAAK,gBAAgB,WAAW,OAAO,CAAC,KAAK,cAAc;AAAA,QACzF,IAAI,UAAU,MAAM;AAAA,QACpB,OAAO;AAAA,SACL,CAAC,CAAC;AAAA,IACA;AAAA,WAAK,gBAAgB,GAAG,WAAW,KAAK,WAAW;AAAA;AAAA,EAOzD,UAAU,CAAC,QAAQ;AAAA,IAClB,MAAM,SAAS,KAAK,MAAM;AAAA,IAC1B,OAAO,QAAQ,SAAS;AAAA,IACxB,OAAO;AAAA;AAAA,EAQR,SAAS,CAAC,OAAO;AAAA,IAChB,MAAM,SAAS,KAAK,MAAM;AAAA,IAC1B,MAAM,YAAY,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAAA,IACvD,IAAI,OAAO,iBAAiB;AAAA,MAC3B,MAAM,WAAW,IAAI,IAAI,CAAC,GAAG,OAAO,iBAAiB,GAAG,SAAS,CAAC;AAAA,MAClE,OAAO,kBAAkB,MAAM,KAAK,QAAQ;AAAA,IAC7C,EAAO;AAAA,aAAO,kBAAkB,CAAC,GAAG,SAAS;AAAA,IAC7C,OAAO;AAAA;AAAA,EAOR,QAAQ,CAAC,MAAM,QAAQ;AAAA,IACtB,IAAI,CAAC,KAAK;AAAA,MAAe,KAAK,gBAAgB,CAAC;AAAA,IAC/C,KAAK,cAAc,QAAQ,KAAK,OAAO;AAAA,IACvC,OAAO;AAAA;AAAA,EAOR,WAAW,CAAC,MAAM;AAAA,IACjB,IAAI,KAAK,eAAe;AAAA,MACvB,OAAO,KAAK,cAAc;AAAA,MAC1B,IAAI,OAAO,KAAK,KAAK,aAAa,EAAE,WAAW;AAAA,QAAG,KAAK,gBAAgB;AAAA,IACxE;AAAA,IACA,OAAO;AAAA;AAAA,EAOR,WAAW,CAAC,MAAM;AAAA,IACjB,IAAI,KAAK,gBAAgB;AAAA,MAAO,KAAK,cAAc,QAAQ;AAAA,WACvD,KAAK,cAAc;AAAA,QACtB,SAAS;AAAA,MACV;AAAA,IACA,OAAO;AAAA;AAAA,EAOR,YAAY,CAAC,MAAM;AAAA,IAClB,IAAI,KAAK,gBAAgB;AAAA,MAAO,KAAK,cAAc,QAAQ;AAAA,WACvD,KAAK,cAAc;AAAA,QACtB,SAAS;AAAA,MACV;AAAA,IACA,OAAO;AAAA;AAAA,EAOR,aAAa,CAAC,MAAM,OAAO;AAAA,IAC1B,IAAI,KAAK,gBAAgB;AAAA,MAAO,KAAK,cAAc,QAAQ;AAAA,WACvD,KAAK,cAAc;AAAA,QACtB;AAAA,MACD;AAAA,IACA,OAAO;AAAA;AAAA,EAQR,eAAe,CAAC,QAAQ;AAAA,IACvB,KAAK,gBAAgB,SAAS,IAAI,IAAI,MAAM,IAAI;AAAA,IAChD,OAAO;AAAA;AAAA,EAOR,SAAS,GAAG;AAAA,IACX,OAAO,KAAK,gBAAgB,KAAK,KAAK,cAAc,IAAI,CAAC;AAAA;AAAA,EAY1D,WAAW,CAAC,UAAS;AAAA,IACpB,IAAI,iBAAiB;AAAA,IACrB,IAAI,CAAC,UAAS;AAAA,MACb,IAAI,KAAK,QAAQ;AAAA,QAAc,QAAQ,MAAM,8DAA8D;AAAA,MAC3G,OAAO;AAAA,IACR;AAAA,IACA,IAAI,KAAK,cAAc,WAAW,mBAAqB,eAAe,GAAG;AAAA,MACxE,iBAAiB,KAAK,cAAc,mBAAmB,UAAS,IAAI;AAAA,MACpE,IAAI,CAAC,gBAAgB;AAAA,QACpB,IAAI,KAAK,QAAQ;AAAA,UAAc,QAAQ,MAAM,qEAAqE;AAAA,QAClH,OAAO;AAAA,MACR;AAAA,IACD;AAAA,IACA,MAAM,iBAAiB,KAAK,eAAe,WAAW;AAAA,IACtD,WAAW,OAAO,OAAO,KAAK,cAAc,GAAG;AAAA,MAC9C,MAAM,UAAU,OAAO,kBAAkB,OAAO,eAAe,IAAI;AAAA,MACnE,MAAM,UAAU,OAAO,eAAe,IAAI;AAAA,MAC1C,IAAI,CAAC,WAAW;AAAA,QAAS,KAAK;AAAA,MACzB,SAAI,WAAW,CAAC;AAAA,QAAS,KAAK;AAAA,IACpC;AAAA,IACA,KAAK,eAAe,cAAc,cAAc;AAAA,IAChD,OAAO;AAAA;AAAA,EAMR,YAAY,CAAC,MAAM;AAAA,IAClB,IAAI,SAAc,aAAK,KAAK,oBAAoB,GAAG;AAAA,MAClD,MAAM,WAAU,KAAK,eAAe,WAAW;AAAA,MAC/C,MAAM,eAAe,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAAA,MACvD,WAAW,OAAO;AAAA,QAAc,IAAI,OAAO,YAAW,OAAO,SAAQ,IAAI;AAAA,UAAG,KAAK;AAAA,IAClF,EAAO,SAAI,SAAc;AAAA,MAAG,KAAK,oBAAoB;AAAA,IACrD,KAAK,eAAe,aAAa,IAAI;AAAA,IACrC,OAAO;AAAA;AAAA,EAER,UAAU,CAAC,SAAS;AAAA,IACnB,MAAM,WAAU,KAAK,eAAe,WAAW;AAAA,IAC/C,IAAI,SAAS,OAAO,KAAK,sBAAsB;AAAA,MAAG,OAAO;AAAA,IACzD,QAAQ,UAAU,WAAW,kBAAkB,QAAO;AAAA,IACtD,IAAI;AAAA,MAAQ,KAAK,mBAAmB,QAAQ,SAAS;AAAA,IACrD,QAAQ,UAAU,eAAe,cAAc,qBAAqB,QAAQ;AAAA,IAC5E,IAAI;AAAA,MAAW,KAAK,2BAA2B,SAAS;AAAA,IACxD,OAAO;AAAA;AAAA,EAOR,UAAU,CAAC,SAAS;AAAA,IACnB,KAAK,cAAc,WAAW,OAAO;AAAA;AAAA,EAOtC,YAAY,CAAC,IAAI;AAAA,IAChB,KAAK,cAAc,aAAa,EAAE;AAAA;AAAA,EAOnC,aAAa,CAAC,IAAI;AAAA,IACjB,KAAK,cAAc,cAAc,EAAE;AAAA;AAAA,EAOpC,YAAY,CAAC,IAAI;AAAA,IAChB,KAAK,cAAc,aAAa,EAAE;AAAA;AAAA,EAOnC,YAAY,CAAC,UAAU;AAAA,IACtB,OAAO,IAAI,WAAW,IAAI,EAAE,aAAa,QAAQ;AAAA;AAAA,EAOlD,SAAS,CAAC,OAAO;AAAA,IAChB,OAAO,IAAI,WAAW,IAAI,EAAE,UAAU,KAAK;AAAA;AAAA,EAQ5C,KAAK,GAAG;AAAA,IACP,MAAM,cAAc,IAAI,UAAS;AAAA,SAC7B,KAAK;AAAA,MACR,WAAW,MAAM,QAAQ,KAAK,QAAQ,SAAS,IAAI,CAAC,GAAG,KAAK,QAAQ,SAAS,IAAI,KAAK,QAAQ;AAAA,IAC/F,CAAC,EAAE,kBAAkB,KAAK,aAAa,EAAE,mBAAmB,KAAK,eAAe,MAAM,CAAC,EAAE,oBAAoB,KAAK,gBAAgB,MAAM,CAAC;AAAA,IACzI,KAAK,eAAe,qBAAqB;AAAA,MACxC,sBAAsB,KAAK;AAAA,MAC3B,qBAAqB,YAAY;AAAA,MACjC,cAAc;AAAA,MACd;AAAA,IACD,CAAC;AAAA,IACD,KAAK,gBAAgB,qBAAqB;AAAA,MACzC,uBAAuB,KAAK;AAAA,MAC5B,sBAAsB,YAAY;AAAA,MAClC,cAAc;AAAA,MACd;AAAA,IACD,CAAC;AAAA,IACD,YAAY,oBAAoB,YAAY,eAAe,eAAe,IAAI,gBAAgB,YAAY,eAAe,WAAW,CAAC,IAAI;AAAA,IACzI,YAAY,gBAAgB,KAAK;AAAA,IACjC,YAAY,gBAAgB,KAAK;AAAA,IACjC,YAAY,qBAAqB,KAAK;AAAA,IACtC,YAAY,kBAAkB,KAAK,kBAAkB,CAAC,GAAG,KAAK,eAAe,IAAI;AAAA,IACjF,OAAO;AAAA;AAAA,EAWR,mBAAmB,CAAC,YAAY;AAAA,IAC/B,KAAK,QAAQ,YAAY;AAAA,IACzB,KAAK,sBAAsB,UAAU;AAAA,IACrC,OAAO;AAAA;AAAA,EAYR,YAAY,CAAC,YAAY;AAAA,IACxB,MAAM,gBAAgB,MAAM,QAAQ,UAAU,IAAI,aAAa,CAAC,UAAU;AAAA,IAC1E,MAAM,qBAAqB,MAAM,QAAQ,KAAK,QAAQ,SAAS,IAAI,KAAK,QAAQ,YAAY,CAAC,KAAK,QAAQ,SAAS;AAAA,IACnH,MAAM,kBAAkB,IAAI,IAAI,cAAc,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;AAAA,IAC9D,WAAW,aAAa,eAAe;AAAA,MACtC,MAAM,oBAAoB,KAAK,cAAc,UAAU;AAAA,MACvD,IAAI,qBAAqB,OAAO,kBAAkB,OAAO,aAAa;AAAA,QAAY,kBAAkB,OAAO,SAAS;AAAA,IACrH;AAAA,IACA,MAAM,gBAAgB,CAAC,GAAG,mBAAmB,OAAO,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,aAAa;AAAA,IACxG,KAAK,QAAQ,YAAY;AAAA,IACzB,WAAW,aAAa;AAAA,MAAe,KAAK,cAAc,UAAU,MAAM;AAAA,IAC1E,KAAK,wBAAwB,cAAc,SAAS;AAAA,IACpD,KAAK,kBAAkB,KAAK,wBAAwB,OAAO,cAAc;AAAA,IACzE,OAAO;AAAA;AAAA,EAaR,eAAe,CAAC,IAAI;AAAA,IACnB,MAAM,YAAY,KAAK,cAAc;AAAA,IACrC,IAAI,CAAC;AAAA,MAAW,OAAO;AAAA,IACvB,IAAI,OAAO,UAAU,OAAO,aAAa;AAAA,MAAY,UAAU,OAAO,SAAS;AAAA,IAC/E,OAAO,KAAK,cAAc;AAAA,IAC1B,MAAM,uBAAuB,MAAM,QAAQ,KAAK,QAAQ,SAAS,IAAI,KAAK,QAAQ,YAAY,CAAC,KAAK,QAAQ,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,IACjJ,KAAK,QAAQ,YAAY,oBAAoB,WAAW,IAAI,oBAAoB,KAAK;AAAA,IACrF,KAAK,wBAAwB,oBAAoB,SAAS;AAAA,IAC1D,KAAK,kBAAkB,KAAK,wBAAwB,OAAO,oBAAoB,MAAM;AAAA,IACrF,OAAO;AAAA;AAAA,EAUR,gBAAgB,CAAC,SAAS;AAAA,IACzB,KAAK,QAAQ,UAAU;AAAA,IACvB,KAAK,gBAAgB,IAAI,cAAc,OAAO;AAAA,IAC9C,OAAO;AAAA;AAAA,EAER,iBAAiB,CAAC,eAAe;AAAA,IAChC,KAAK,gBAAgB;AAAA,IACrB,OAAO;AAAA;AAAA,EAOR,SAAS,CAAC,OAAO,MAAM;AAAA,IACtB,MAAM,WAAW,MAAM,YAAY,SAAW;AAAA,IAC9C,IAAI,CAAC,KAAK,eAAe,QAAQ;AAAA,MAAG;AAAA,IACpC,QAAQ,uBAAuB,KAAK;AAAA,IACpC,MAAM,gBAAgB;AAAA,MACrB;AAAA,MACA,KAAK;AAAA,IACN;AAAA,IACA,KAAK,sBAAsB,MAAM,YAAY,SAAS,MAAM,YAAY,SAAS,OAAO;AAAA,MAAS,cAAc,SAAS,CAAC,MAAM,OAAO;AAAA,IACtI,KAAK,WAAW,aAAa;AAAA;AAAA,EAO9B,YAAY,CAAC,UAAU,WAAW,SAAW,MAAM;AAAA,IAClD,IAAI,CAAC,KAAK,eAAe,QAAQ;AAAA,MAAG;AAAA,IACpC,QAAQ,cAAc,iBAAiB,KAAK;AAAA,IAC5C,IAAI;AAAA,MAAc;AAAA,IAClB,IAAI,CAAC,UAAU;AAAA,MACd,IAAI;AAAA,QAAc,QAAQ,MAAM,gEAAgE;AAAA,MAChG;AAAA,IACD;AAAA,IACA,IAAI,OAAO;AAAA,IACX,IAAI,KAAK,cAAc,WAAW,mBAAqB,gBAAgB,GAAG;AAAA,MACzE,OAAO,KAAK,cAAc,oBAAoB,UAAU,IAAI;AAAA,MAC5D,IAAI,CAAC,MAAM;AAAA,QACV,IAAI;AAAA,UAAc,QAAQ,MAAM,sEAAsE;AAAA,QACtG;AAAA,MACD;AAAA,IACD;AAAA,IACA,MAAM,SAAS;AAAA,MACd;AAAA,MACA,UAAU;AAAA,IACX;AAAA,IACA,OAAO,KAAK,WAAW,MAAM;AAAA;AAAA,EAU9B,IAAI,IAAI,UAAU;AAAA,IACjB,IAAI,CAAC,KAAK,eAAe,SAAW,IAAI;AAAA,MAAG;AAAA,IAC3C,KAAK,eAAe,QAAQ;AAAA,IAC5B,KAAK,WAAW;AAAA,MACf,UAAU,SAAW;AAAA,MACrB,QAAQ;AAAA,IACT,CAAC;AAAA;AAAA,EAOF,IAAI,IAAI,UAAU;AAAA,IACjB,IAAI,CAAC,KAAK,eAAe,SAAW,IAAI;AAAA,MAAG;AAAA,IAC3C,KAAK,eAAe,QAAQ;AAAA,IAC5B,KAAK,WAAW;AAAA,MACf,UAAU,SAAW;AAAA,MACrB,QAAQ;AAAA,IACT,CAAC;AAAA;AAAA,EAOF,KAAK,IAAI,UAAU;AAAA,IAClB,IAAI,CAAC,KAAK,eAAe,SAAW,KAAK;AAAA,MAAG;AAAA,IAC5C,KAAK,eAAe,QAAQ;AAAA,IAC5B,KAAK,WAAW;AAAA,MACf,UAAU,SAAW;AAAA,MACrB,QAAQ;AAAA,IACT,CAAC;AAAA;AAAA,EAOF,KAAK,IAAI,UAAU;AAAA,IAClB,IAAI,CAAC,KAAK,eAAe,SAAW,KAAK;AAAA,MAAG;AAAA,IAC5C,KAAK,eAAe,QAAQ;AAAA,IAC5B,KAAK,WAAW;AAAA,MACf,UAAU,SAAW;AAAA,MACrB,QAAQ;AAAA,IACT,CAAC;AAAA;AAAA,EAOF,KAAK,IAAI,UAAU;AAAA,IAClB,IAAI,CAAC,KAAK,eAAe,SAAW,KAAK;AAAA,MAAG;AAAA,IAC5C,KAAK,eAAe,QAAQ;AAAA,IAC5B,KAAK,WAAW;AAAA,MACf,UAAU,SAAW;AAAA,MACrB,QAAQ;AAAA,IACT,CAAC;AAAA;AAAA,EAOF,KAAK,IAAI,UAAU;AAAA,IAClB,IAAI,CAAC,KAAK,eAAe,SAAW,KAAK;AAAA,MAAG;AAAA,IAC5C,KAAK,eAAe,QAAQ;AAAA,IAC5B,KAAK,WAAW;AAAA,MACf,UAAU,SAAW;AAAA,MACrB,QAAQ;AAAA,IACT,CAAC;AAAA;AAAA,EAeF,GAAG,CAAC,UAAU;AAAA,IACb,IAAI,CAAC,KAAK,eAAe,SAAS,QAAQ;AAAA,MAAG;AAAA,IAC7C,MAAM,gBAAgB;AAAA,MACrB,UAAU,SAAS;AAAA,MACnB,QAAQ,SAAS;AAAA,MACjB,UAAU,SAAS;AAAA,MACnB,KAAK,SAAS;AAAA,MACd,SAAS,SAAS;AAAA,IACnB;AAAA,IACA,KAAK,eAAe,SAAS,QAAQ;AAAA,IACrC,OAAO,KAAK,WAAW,aAAa;AAAA;AAAA,EAOrC,cAAc,GAAG;AAAA,IAChB,KAAK,gBAAgB,eAAe;AAAA,IACpC,OAAO;AAAA;AAAA,EAOR,aAAa,GAAG;AAAA,IACf,KAAK,gBAAgB,cAAc;AAAA,IACnC,OAAO;AAAA;AAAA,EAOR,WAAW,GAAG;AAAA,IACb,KAAK,QAAQ,cAAc;AAAA,IAC3B,OAAO;AAAA;AAAA,EAOR,aAAa,GAAG;AAAA,IACf,KAAK,QAAQ,cAAc;AAAA,IAC3B,OAAO;AAAA;AAAA,EAOR,YAAY,GAAG;AAAA,IACd,KAAK,QAAQ,eAAe;AAAA,IAC5B,OAAO;AAAA;AAAA,EAOR,cAAc,GAAG;AAAA,IAChB,KAAK,QAAQ,eAAe;AAAA,IAC5B,OAAO;AAAA;AAAA,EAOR,qBAAqB,CAAC,UAAU;AAAA,IAC/B,KAAK,gBAAgB,sBAAsB,QAAQ;AAAA,IACnD,OAAO;AAAA;AAAA,EAOR,sBAAsB,CAAC,UAAU;AAAA,IAChC,KAAK,gBAAgB,uBAAuB,QAAQ;AAAA,IACpD,OAAO;AAAA;AAAA,EAkBR,QAAQ,CAAC,UAAU;AAAA,IAClB,KAAK,gBAAgB,SAAS,QAAQ;AAAA,IACtC,OAAO;AAAA;AAAA,EAOR,cAAc,CAAC,UAAU;AAAA,IACxB,OAAO,KAAK,gBAAgB,eAAe,QAAQ;AAAA;AAAA,EAEpD,aAAa,CAAC,UAAS;AAAA,IACtB,QAAQ,kBAAkB,gBAAgB,KAAK;AAAA,IAC/C,IAAI,YAAW,OAAO,KAAK,QAAO,EAAE,SAAS,KAAK,CAAC,aAAa;AAAA,MAC/D,IAAI;AAAA,QAAkB,OAAO,GAAG,mBAAmB,KAAK,SAAQ,EAAE;AAAA,MAClE,OAAO,KAAK,SAAQ;AAAA,IACrB;AAAA,IACA,OAAO,CAAC;AAAA;AAAA,EAET,cAAc,CAAC,OAAO,MAAM;AAAA,IAC3B,QAAQ,mBAAmB,iBAAiB,KAAK;AAAA,IACjD,IAAI,QAAQ,CAAC,cAAc;AAAA,MAC1B,IAAI;AAAA,QAAmB,OAAO,GAAG,oBAAoB,KAAK,KAAK,EAAE;AAAA,MACjE,OAAO,KAAK,KAAK;AAAA,IAClB;AAAA,IACA,OAAO,CAAC;AAAA;AAAA,EAOT,iBAAiB,CAAC,IAAI;AAAA,IACrB,MAAM,YAAY,KAAK,cAAc;AAAA,IACrC,IAAI,CAAC;AAAA,MAAW;AAAA,IAChB,OAAO,UAAU,kBAAkB;AAAA;AAAA,EAOpC,eAAe,GAAG;AAAA,IACjB,MAAM,WAAW,OAAO,YAAY,cAAc,QAAQ,KAAK,kBAAuB;AAAA,IACtF,IAAI,CAAC;AAAA,MAAU;AAAA,IACf,MAAM,UAAU,SAAS,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,OAAO;AAAA,IACvE,MAAM,cAAc,CAAC;AAAA,IACrB,WAAW,SAAS,SAAS;AAAA,MAC5B,MAAM,WAAW,MAAM,QAAQ,GAAG;AAAA,MAClC,IAAI,WAAW,GAAG;AAAA,QACjB,MAAM,OAAO,MAAM,MAAM,GAAG,QAAQ;AAAA,QACpC,MAAM,QAAQ,MAAM,MAAM,WAAW,CAAC;AAAA,QACtC,YAAY,KAAK,IAAI;AAAA,QACrB,IAAI,KAAK,gBAAgB;AAAA,UAAO,KAAK,cAAc,QAAQ;AAAA,eACvD,KAAK,cAAc;AAAA,YACtB;AAAA,UACD;AAAA,MACD,EAAO;AAAA,oBAAY,KAAK,KAAK;AAAA,IAC9B;AAAA,IACA,KAAK,gBAAgB,IAAI,IAAI,WAAW;AAAA;AAAA,EAKzC,YAAY,CAAC,cAAc;AAAA,IAC1B,IAAI,KAAK,mBAAmB,cAAc;AAAA,MACzC,MAAM,WAAW,IAAI,IAAI,CAAC,GAAG,KAAK,iBAAiB,GAAG,YAAY,CAAC;AAAA,MACnE,OAAO,MAAM,KAAK,QAAQ;AAAA,IAC3B;AAAA,IACA,OAAO,gBAAgB,KAAK;AAAA;AAAA,EAK7B,oBAAoB,CAAC,aAAa;AAAA,IACjC,IAAI,KAAK,uBAAuB;AAAA,MAAO,OAAO;AAAA,IAC9C,IAAI,KAAK,uBAAuB;AAAA,MAAQ,OAAO;AAAA,IAC/C,OAAO,KAAK,mBAAmB,SAAS,WAAW;AAAA;AAAA,EAKpD,0BAA0B,CAAC,aAAa,UAAU,QAAQ;AAAA,IACzD,IAAI,CAAC,KAAK;AAAA,MAAe,OAAO;AAAA,IAChC,MAAM,kBAAkB,KAAK,aAAa,MAAM;AAAA,IAChD,IAAI,CAAC,mBAAmB,gBAAgB,WAAW;AAAA,MAAG,OAAO,KAAK,qBAAqB,WAAW;AAAA,IAClG,IAAI,qBAAqB;AAAA,IACzB,WAAW,aAAa,iBAAiB;AAAA,MACxC,MAAM,cAAc,KAAK,cAAc;AAAA,MACvC,IAAI,CAAC;AAAA,QAAa;AAAA,MAClB,qBAAqB;AAAA,MACrB,IAAI,YAAY,YAAY;AAAA,QAAO;AAAA,MACnC,IAAI,KAAK,iBAAiB,CAAC,KAAK,cAAc,IAAI,SAAS;AAAA,QAAG;AAAA,MAC9D,IAAI,YAAY,OAAO;AAAA,QACtB,MAAM,qBAAqB,iBAAiB,YAAY;AAAA,QACxD,IAAI,iBAAiB,YAAY;AAAA,UAAoB;AAAA,MACtD;AAAA,MACA,IAAI,YAAY,WAAW,SAAS,WAAW;AAAA,QAAG,OAAO;AAAA,IAC1D;AAAA,IACA,IAAI,CAAC;AAAA,MAAoB,OAAO,KAAK,qBAAqB,WAAW;AAAA,IACrE,OAAO;AAAA;AAAA,EAER,cAAc,CAAC,WAAW,CAAC,GAAG;AAAA,IAC7B,QAAQ,WAAW,KAAK;AAAA,IACxB,IAAI,UAAU,OAAO,SAAS,OAAO;AAAA,MAAU,SAAS,KAAK,GAAG,UAAU,SAAS;AAAA;AAAA,EAEpF,UAAU,GAAG,UAAU,SAAS,CAAC,GAAG,WAAW,MAAM,KAAK,oBAAU,MAAM,SAAS,QAAQ;AAAA,IAC1F,MAAM,aAAa,aAAY,OAAO,WAAU,KAAK,eAAe,WAAW;AAAA,IAC/E,IAAI;AAAA,IACJ,IAAI,KAAK,oBAAoB,KAAK,aAAY,MAAM;AAAA,MACnD,MAAM,gBAAgB,kBAAkB,UAAU;AAAA,MAClD,IAAI,cAAc;AAAA,QAAQ,KAAK,mBAAmB,cAAc,QAAQ,SAAS;AAAA,MACjF,QAAQ,UAAU,cAAc,qBAAqB,cAAc,QAAQ;AAAA,MAC3E,IAAI;AAAA,QAAW,KAAK,2BAA2B,SAAS;AAAA,MACxD,mBAAmB;AAAA,IACpB,EAAO;AAAA,yBAAmB;AAAA,IAC1B,IAAI,iBAAiB;AAAA,IACrB,IAAI,UAAU;AAAA,MACb,MAAM,iBAAiB,kBAAkB,QAAQ;AAAA,MACjD,WAAW,eAAe;AAAA,MAC1B,iBAAiB,eAAe;AAAA,IACjC;AAAA,IACA,IAAI;AAAA,MAAgB,KAAK,mBAAmB,gBAAgB,UAAU;AAAA,IACtE,IAAI,WAAW,iBAAiB,QAAQ,IAAI;AAAA,MAAO,OAAO,KAAK,wBAAwB,UAAU,QAAQ,kBAAkB,UAAU,KAAK,UAAS,MAAM;AAAA,IACzJ,KAAK,YAAY,UAAU,QAAQ,kBAAkB,UAAU,KAAK,UAAS,MAAM;AAAA;AAAA,OAM9E,wBAAuB,CAAC,UAAU,QAAQ,aAAa,UAAU,KAAK,UAAS,QAAQ;AAAA,IAC5F,IAAI,mBAAmB;AAAA,IACvB,IAAI,UAAU;AAAA,MACb,MAAM,iBAAiB,MAAM,qBAAqB,QAAQ;AAAA,MAC1D,mBAAmB,eAAe;AAAA,MAClC,IAAI,eAAe;AAAA,QAAQ,KAAK,mBAAmB,eAAe,QAAQ,UAAU;AAAA,IACrF;AAAA,IACA,KAAK,YAAY,UAAU,QAAQ,aAAa,kBAAkB,KAAK,UAAS,MAAM;AAAA;AAAA,EAMvF,kBAAkB,CAAC,UAAU,QAAQ;AAAA,IACpC,IAAI,KAAK,qBAAqB;AAAA,MAC7B,WAAW,KAAK;AAAA,QAAU,QAAQ,MAAM,uCAAuC,eAAe,EAAE,SAAS,EAAE,KAAK;AAAA,MAChH;AAAA,IACD;AAAA,IACA,KAAK,sBAAsB;AAAA,IAC3B,IAAI;AAAA,MACH,WAAW,WAAW,UAAU;AAAA,QAC/B,MAAM,eAAe,QAAQ,iBAAiB,QAAQ,QAAQ,MAAM,UAAU,OAAO,QAAQ,KAAK;AAAA,QAClG,KAAK,YAAY,SAAW,OAAO,CAAC,yCAAyC,eAAe,QAAQ,SAAS,cAAc,GAAG,CAAC,GAAG,MAAM,QAAQ,iBAAiB,QAAQ,QAAQ,QAAa,WAAG,CAAC,CAAC;AAAA,MACpM;AAAA,cACC;AAAA,MACD,KAAK,sBAAsB;AAAA;AAAA;AAAA,EAO7B,0BAA0B,CAAC,MAAM;AAAA,IAChC,IAAI,KAAK,qBAAqB;AAAA,MAC7B,WAAW,OAAO;AAAA,QAAM,QAAQ,MAAM,mEAAmE,yCAAyC;AAAA,MAClJ;AAAA,IACD;AAAA,IACA,KAAK,sBAAsB;AAAA,IAC3B,IAAI;AAAA,MACH,WAAW,OAAO;AAAA,QAAM,KAAK,YAAY,SAAW,OAAO,CAAC,mEAAmE,yCAAyC,GAAG,CAAC,GAAG,MAAW,WAAG,CAAC,CAAC;AAAA,cAC9L;AAAA,MACD,KAAK,sBAAsB;AAAA;AAAA;AAAA,EAO7B,WAAW,CAAC,UAAU,QAAQ,aAAa,UAAU,KAAK,UAAS,SAAS,MAAM;AAAA,IACjF,QAAQ,iBAAiB,sBAAsB,aAAa,kBAAkB,mBAAmB,mBAAmB,KAAK;AAAA,IACzH,IAAI,aAAa,CAAC,CAAC,aAAa,cAAc,QAAQ,aAAY,OAAO,OAAO,KAAK,QAAO,EAAE,SAAS,IAAI,KAAK,eAAe,eAAe;AAAA,IAC9I,IAAI,IAAI,CAAC;AAAA,IACT,IAAI;AAAA,MAAY,IAAI,oBAAoB,qBAAqB,mBAAmB;AAAA,QAC/E,MAAM,uBAAuB,KAAK,cAAc,WAAW,EAAE;AAAA,QAC7D,MAAM,kBAAkB,KAAK,eAAe,QAAQ,EAAE;AAAA,QACtD,IAAI,GAAG,mBAAmB;AAAA,aACtB;AAAA,aACA;AAAA,QACJ,EAAE;AAAA,MACH,EAAO;AAAA,YAAI;AAAA,aACP,KAAK,cAAc,WAAW;AAAA,aAC9B,KAAK,eAAe,QAAQ;AAAA,QAChC;AAAA,IACA,IAAI,KAAK;AAAA,MACR,MAAM,kBAAkB,kBAAkB,gBAAgB,GAAG,IAAI;AAAA,MACjE,IAAI,wBAAwB,YAAY;AAAA,QAAmB,IAAI,IAAI;AAAA,UAAoB,EAAE,mBAAmB,kBAAkB;AAAA,QACzH;AAAA,cAAI;AAAA,eACL;AAAA,aACF,oBAAoB,GAAG,iBAAiB,gBAAgB;AAAA,UAC1D;AAAA,MACK,SAAI,wBAAwB,CAAC,YAAY;AAAA,QAAmB,IAAI;AAAA,aACjE;AAAA,WACF,oBAAoB,GAAG,iBAAiB,gBAAgB;AAAA,QAC1D;AAAA,MACK;AAAA,YAAI;AAAA,aACL;AAAA,WACF,iBAAiB;AAAA,QACnB;AAAA,MACA,aAAa;AAAA,IACd;AAAA,IACA,IAAI,KAAK,cAAc,WAAW,mBAAqB,eAAe,GAAG;AAAA,MACxE,IAAI,KAAK,cAAc,mBAAmB;AAAA,QACzC,MAAM,aAAa,IAAS;AAAA,QAC5B;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA,SAAS;AAAA,MACV,GAAG,IAAI;AAAA,MACP,IAAI,KAAK,CAAC;AAAA,QAAY,aAAa;AAAA,IACpC;AAAA,IACA,IAAI,KAAK,cAAc,WAAW,mBAAqB,kBAAkB;AAAA,MAAG,SAAS,KAAK,cAAc,sBAAsB;AAAA,QAC7H,UAAU,CAAC,GAAG,MAAM;AAAA,QACpB;AAAA,MACD,GAAG,IAAI;AAAA,IACP,IAAI,KAAK,cAAc,WAAW,mBAAqB,iBAAiB;AAAA,MAAG,WAAW,KAAK,cAAc,qBAAqB;AAAA,QAC7H,MAAM,aAAa,IAAS;AAAA,QAC5B;AAAA,QACA,UAAU,CAAC,GAAG,MAAM;AAAA,QACpB,OAAO;AAAA,QACP;AAAA,QACA,SAAS;AAAA,MACV,GAAG,IAAI;AAAA,IACP,MAAM,kBAAkB,KAAK,aAAa,MAAM,KAAU;AAAA,IAC1D,IAAI,KAAK,uBAAuB;AAAA,MAC/B,MAAM,oBAAoB,KAAK,QAAQ,UAAU,OAAO,CAAC,cAAc;AAAA,QACtE,IAAI,CAAC,UAAU;AAAA,UAAS,OAAO;AAAA,QAC/B,IAAI,CAAC,KAAK,2BAA2B,UAAU,IAAI,UAAU,MAAM;AAAA,UAAG,OAAO;AAAA,QAC7E,OAAO;AAAA,OACP,EAAE,IAAI,OAAO,cAAc;AAAA,QAC3B,MAAM,kBAAkB;AAAA,QACxB,IAAI,KAAK,cAAc,WAAW,mBAAqB,kBAAkB,GAAG;AAAA,UAC3E,IAAI,CAAC,KAAK,cAAc,sBAAsB;AAAA,YAC7C,UAAU,CAAC,GAAG,MAAM;AAAA,YACpB,MAAM,aAAa,IAAS;AAAA,YAC5B,UAAU;AAAA,YACV,aAAa,UAAU;AAAA,YACvB,OAAO;AAAA,YACP;AAAA,YACA,SAAS;AAAA,YACT,QAAQ;AAAA,UACT,GAAG,IAAI;AAAA,YAAG;AAAA,QACX;AAAA,QACA,OAAO,UAAU,cAAc;AAAA,UAC9B,UAAU;AAAA,UACV,UAAU,CAAC,GAAG,MAAM;AAAA,UACpB,MAAM,aAAa,IAAS;AAAA,UAC5B,SAAS;AAAA,UACT,OAAO;AAAA,UACP;AAAA,UACA,SAAS;AAAA,UACT,QAAQ;AAAA,QACT,CAAC;AAAA,OACD;AAAA,MACD,QAAQ,IAAI,iBAAiB,EAAE,MAAM,CAAC,SAAQ;AAAA,QAC7C,IAAI,KAAK,QAAQ;AAAA,UAAc,QAAQ,MAAM,0CAA0C,IAAG;AAAA,OAC1F;AAAA,IACF,EAAO;AAAA,MACN,IAAI,CAAC,KAAK,iBAAiB;AAAA,QAAS;AAAA,MACpC,IAAI,CAAC,KAAK,2BAA2B,KAAK,gBAAgB,IAAI,UAAU,MAAM;AAAA,QAAG;AAAA,MACjF,IAAI,KAAK,cAAc,WAAW,mBAAqB,kBAAkB,GAAG;AAAA,QAC3E,IAAI,CAAC,KAAK,cAAc,sBAAsB;AAAA,UAC7C,UAAU,CAAC,GAAG,MAAM;AAAA,UACpB,MAAM,aAAa,IAAS;AAAA,UAC5B;AAAA,UACA,aAAa,KAAK,gBAAgB;AAAA,UAClC,OAAO;AAAA,UACP;AAAA,UACA,SAAS;AAAA,UACT,QAAQ;AAAA,QACT,GAAG,IAAI;AAAA,UAAG;AAAA,MACX;AAAA,MACA,KAAK,gBAAgB,cAAc;AAAA,QAClC;AAAA,QACA,UAAU,CAAC,GAAG,MAAM;AAAA,QACpB,MAAM,aAAa,IAAS;AAAA,QAC5B,SAAS;AAAA,QACT,OAAO;AAAA,QACP;AAAA,QACA,SAAS;AAAA,QACT,QAAQ;AAAA,MACT,CAAC;AAAA;AAAA;AAGJ;AAQA,IAAI,iBAAiB,MAAM;AAAA,EAC1B,KAAK,IAAI,WAAW;AAAA,EACpB,KAAK,IAAI,WAAW;AAAA,EACpB,IAAI,IAAI,WAAW;AAAA,EACnB,KAAK,IAAI,WAAW;AAAA,EACpB,IAAI,IAAI,WAAW;AAAA,EACnB,KAAK,IAAI,WAAW;AAAA,EACpB,aAAa,GAAG;AAAA,IACf,OAAO;AAAA;AAAA,EAER,cAAc,GAAG;AAAA,IAChB,OAAO;AAAA;AAAA,EAER,YAAY,CAAC,WAAW;AAAA,IACvB,OAAO;AAAA;AAAA,EAER,SAAS,CAAC,QAAQ;AAAA,IACjB,OAAO;AAAA;AAAA,EAER,SAAS,CAAC,QAAQ;AAAA,IACjB,OAAO;AAAA;AAET;AAUA,IAAI,eAAe,MAAM;AAAA,EACxB,iBAAiB,IAAI;AAAA,EACrB,qBAAqB,IAAI;AAAA,EACzB,sBAAsB,IAAI;AAAA,EAC1B,IAAI,IAAI,WAAW;AAAA,EACnB,IAAI,IAAI,WAAW;AAAA,EACnB,KAAK,IAAI,WAAW;AAAA,EACpB,KAAK,IAAI,WAAW;AAAA,EACpB,KAAK,IAAI,WAAW;AAAA,EACpB,KAAK,IAAI,WAAW;AAAA,EACpB,GAAG,CAAC,WAAW;AAAA,EACf,iBAAiB,CAAC,KAAK;AAAA,EACvB,SAAS,CAAC,QAAQ,OAAO;AAAA,EACzB,YAAY,CAAC,WAAW,WAAW;AAAA,EACnC,UAAU,CAAC,UAAU;AAAA,EACrB,YAAY,CAAC,KAAK;AAAA,EAClB,YAAY,CAAC,KAAK;AAAA,EAClB,aAAa,CAAC,KAAK;AAAA,EACnB,UAAU,CAAC,SAAS;AAAA,IACnB,OAAO;AAAA;AAAA,EAER,SAAS,CAAC,QAAQ;AAAA,IACjB,OAAO;AAAA;AAAA,EAER,QAAQ,CAAC,OAAO,SAAS;AAAA,IACxB,OAAO;AAAA;AAAA,EAER,WAAW,CAAC,OAAO;AAAA,IAClB,OAAO;AAAA;AAAA,EAER,WAAW,CAAC,OAAO;AAAA,IAClB,OAAO;AAAA;AAAA,EAER,YAAY,CAAC,OAAO;AAAA,IACnB,OAAO;AAAA;AAAA,EAER,aAAa,CAAC,OAAO,QAAQ;AAAA,IAC5B,OAAO;AAAA;AAAA,EAER,eAAe,CAAC,SAAS;AAAA,IACxB,OAAO;AAAA;AAAA,EAER,SAAS,GAAG;AAAA,IACX,OAAO,CAAC;AAAA;AAAA,EAET,WAAW,CAAC,UAAU;AAAA,IACrB,OAAO;AAAA;AAAA,EAER,SAAS,CAAC,QAAQ;AAAA,IACjB,OAAO,KAAK,eAAe,UAAU,MAAM;AAAA;AAAA,EAE5C,YAAY,CAAC,WAAW;AAAA,IACvB,OAAO,KAAK,eAAe,aAAa,SAAS;AAAA;AAAA,EAElD,UAAU,CAAC,UAAU;AAAA,IACpB,OAAO,CAAC;AAAA;AAAA,EAET,YAAY,CAAC,OAAO;AAAA,IACnB,OAAO;AAAA;AAAA,EAER,aAAa,GAAG;AAAA,IACf,OAAO;AAAA;AAAA,EAER,cAAc,GAAG;AAAA,IAChB,OAAO;AAAA;AAAA,EAER,KAAK,GAAG;AAAA,IACP,OAAO;AAAA;AAAA,EAER,WAAW,GAAG;AAAA,IACb,OAAO;AAAA;AAAA,EAER,aAAa,GAAG;AAAA,IACf,OAAO;AAAA;AAAA,EAER,YAAY,GAAG;AAAA,IACd,OAAO;AAAA;AAAA,EAER,cAAc,GAAG;AAAA,IAChB,OAAO;AAAA;AAAA,EAER,mBAAmB,CAAC,aAAa;AAAA,IAChC,OAAO;AAAA;AAAA,EAER,YAAY,CAAC,aAAa;AAAA,IACzB,OAAO;AAAA;AAAA,EAER,eAAe,CAAC,KAAK;AAAA,IACpB,OAAO;AAAA;AAAA,EAER,gBAAgB,CAAC,UAAU;AAAA,IAC1B,OAAO;AAAA;AAAA,EAER,kBAAkB,CAAC,iBAAiB;AAAA,IACnC,OAAO;AAAA;AAAA,EAER,iBAAiB,GAAG;AAAA,IACnB,OAAO,KAAK;AAAA;AAAA,EAEb,mBAAmB,CAAC,kBAAkB;AAAA,IACrC,OAAO;AAAA;AAAA,EAER,kBAAkB,GAAG;AAAA,IACpB,OAAO,KAAK;AAAA;AAAA,EAEb,SAAS,GAAG;AAAA,IACX,OAAO,CAAC;AAAA;AAAA,EAKT,iBAAiB,CAAC,gBAAgB;AAAA,IACjC,KAAK,iBAAiB;AAAA;AAAA,EAEvB,qBAAqB,CAAC,WAAW;AAAA,IAChC,OAAO;AAAA;AAAA,EAER,sBAAsB,CAAC,WAAW;AAAA,IACjC,OAAO;AAAA;AAAA,EAER,QAAQ,CAAC,WAAW;AAAA,IACnB,OAAO;AAAA;AAAA,EAER,cAAc,CAAC,WAAW;AAAA,IACzB,OAAO;AAAA;AAAA,EAKR,iBAAiB,GAAG;AAAA,IACnB,OAAO,KAAK;AAAA;AAAA,EAKb,mBAAmB,GAAG;AAAA,IACrB,KAAK,iBAAiB,IAAI;AAAA;AAE5B;AAqBA,IAAM,gBAAgB;AAAA,EACrB,kBAAkB,CAAC;AAAA,EACnB,eAAe,CAAC;AAAA,EAChB,oBAAoB,CAAC;AACtB;AA8BA,IAAI,aAAa,MAAM;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,WAAW,CAAC,kBAAkB;AAAA,IAC7B,KAAK,MAAM;AAAA,IACX,KAAK,WAAW,CAAC;AAAA,IACjB,KAAK,mBAAmB;AAAA,IACxB,KAAK,cAAc;AAAA,IACnB,KAAK,gBAAgB,iBAAiB;AAAA,IACtC,IAAI,cAAc,mBAAmB,SAAS;AAAA,MAAG,cAAc,mBAAmB,QAAQ,CAAC,UAAU;AAAA,QACpG,IAAI,MAAM;AAAA,UAAa,MAAM,YAAY,MAAM,gBAAgB;AAAA,OAC/D;AAAA;AAAA,EAOF,YAAY,CAAC,UAAU;AAAA,IACtB,QAAQ,eAAe,oBAAoB,WAAW,qBAAqB;AAAA,IAC3E,IAAI,CAAC,UAAU;AAAA,MACd,IAAI;AAAA,QAAc,QAAQ,MAAM,gEAAgE;AAAA,MAChG,OAAO;AAAA,IACR;AAAA,IACA,IAAI,OAAO;AAAA,IACX,IAAI,cAAc,WAAW,mBAAqB,gBAAgB,GAAG;AAAA,MACpE,OAAO,cAAc,oBAAoB,UAAU,KAAK,gBAAgB;AAAA,MACxE,IAAI,CAAC,MAAM;AAAA,QACV,IAAI;AAAA,UAAc,QAAQ,MAAM,sEAAsE;AAAA,QACtG,OAAO;AAAA,MACR;AAAA,IACD;AAAA,IACA,KAAK,WAAW;AAAA,SACZ,KAAK;AAAA,SACL;AAAA,IACJ;AAAA,IACA,KAAK,cAAc;AAAA,IACnB,OAAO;AAAA;AAAA,EAOR,SAAS,CAAC,OAAO;AAAA,IAChB,KAAK,MAAM;AAAA,IACX,OAAO;AAAA;AAAA,EAOR,SAAS,CAAC,OAAO;AAAA,IAChB,MAAM,YAAY,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAAA,IACvD,IAAI,KAAK,SAAS;AAAA,MACjB,MAAM,WAAW,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,GAAG,SAAS,CAAC;AAAA,MACxD,KAAK,UAAU,MAAM,KAAK,QAAQ;AAAA,IACnC,EAAO;AAAA,WAAK,UAAU,CAAC,GAAG,SAAS;AAAA,IACnC,OAAO;AAAA;AAAA,EAKR,IAAI,IAAI,UAAU;AAAA,IACjB,IAAI,CAAC,KAAK,iBAAiB,eAAe,SAAW,IAAI;AAAA,MAAG;AAAA,IAC5D,KAAK,iBAAiB,eAAe,QAAQ;AAAA,IAC7C,OAAO,KAAK,UAAU,SAAW,MAAM,QAAQ;AAAA;AAAA,EAKhD,IAAI,IAAI,UAAU;AAAA,IACjB,IAAI,CAAC,KAAK,iBAAiB,eAAe,SAAW,IAAI;AAAA,MAAG;AAAA,IAC5D,KAAK,iBAAiB,eAAe,QAAQ;AAAA,IAC7C,OAAO,KAAK,UAAU,SAAW,MAAM,QAAQ;AAAA;AAAA,EAKhD,KAAK,IAAI,UAAU;AAAA,IAClB,IAAI,CAAC,KAAK,iBAAiB,eAAe,SAAW,KAAK;AAAA,MAAG;AAAA,IAC7D,KAAK,iBAAiB,eAAe,QAAQ;AAAA,IAC7C,OAAO,KAAK,UAAU,SAAW,OAAO,QAAQ;AAAA;AAAA,EAQjD,KAAK,IAAI,UAAU;AAAA,IAClB,IAAI,CAAC,KAAK,iBAAiB,eAAe,SAAW,KAAK;AAAA,MAAG;AAAA,IAC7D,KAAK,iBAAiB,eAAe,QAAQ;AAAA,IAC7C,OAAO,KAAK,UAAU,SAAW,OAAO,QAAQ;AAAA;AAAA,EAQjD,KAAK,IAAI,UAAU;AAAA,IAClB,IAAI,CAAC,KAAK,iBAAiB,eAAe,SAAW,KAAK;AAAA,MAAG;AAAA,IAC7D,KAAK,iBAAiB,eAAe,QAAQ;AAAA,IAC7C,OAAO,KAAK,UAAU,SAAW,OAAO,QAAQ;AAAA;AAAA,EAQjD,KAAK,IAAI,UAAU;AAAA,IAClB,IAAI,CAAC,KAAK,iBAAiB,eAAe,SAAW,KAAK;AAAA,MAAG;AAAA,IAC7D,KAAK,iBAAiB,eAAe,QAAQ;AAAA,IAC7C,OAAO,KAAK,UAAU,SAAW,OAAO,QAAQ;AAAA;AAAA,EAKjD,cAAc,GAAG;AAAA,IAChB,KAAK,iBAAiB,eAAe;AAAA,IACrC,OAAO;AAAA;AAAA,EAKR,aAAa,GAAG;AAAA,IACf,KAAK,iBAAiB,cAAc;AAAA,IACpC,OAAO;AAAA;AAAA,EAER,SAAS,CAAC,UAAU,QAAQ;AAAA,IAC3B,QAAQ,iBAAiB,KAAK,iBAAiB;AAAA,IAC/C,MAAM,UAAU,eAAe,QAAQ,KAAK;AAAA,IAC5C,OAAO,KAAK,iBAAiB,WAAW;AAAA,MACvC;AAAA,MACA;AAAA,MACA,UAAU,UAAU,KAAK,WAAW;AAAA,MACpC,KAAK,KAAK;AAAA,MACV,QAAQ,KAAK;AAAA,IACd,CAAC;AAAA;AAEH;;;AC38CA,IAAM,mBAAmB,OAAO,YAAY;AAE5C,SAAS,cAAc,CAAC,QAAQ,KAAK,OAAO;AAAA,EAC3C,OAAO,eAAe,QAAQ,KAAK;AAAA,IAClC;AAAA,IACA,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,cAAc;AAAA,EACf,CAAC;AAAA;AAGF,SAAS,SAAS,CAAC,OAAO;AAAA,EACzB,IAAI,UAAU,WAAW;AAAA,IACxB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,UAAU,MAAM;AAAA,IACnB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,OAAO,UAAU,UAAU;AAAA,IAC9B,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,WAAW;AAAA,IAC5D,OAAO,OAAO,KAAK;AAAA,EACpB;AAAA,EAEA,IAAI,OAAO,UAAU,UAAU;AAAA,IAC9B,OAAO,GAAG;AAAA,EACX;AAAA,EAEA,IAAI,OAAO,UAAU,UAAU;AAAA,IAC9B,OAAO,MAAM,SAAS;AAAA,EACvB;AAAA,EAEA,IAAI,OAAO,UAAU,YAAY;AAAA,IAChC,OAAO,YAAY,MAAM,OAAO,IAAI,MAAM,SAAS;AAAA,EACpD;AAAA,EAGA,IAAI,iBAAiB,OAAO;AAAA,IAC3B,IAAI;AAAA,MACH,OAAO,OAAO,KAAK;AAAA,MAClB,MAAM;AAAA,MACP,OAAO;AAAA;AAAA,EAET;AAAA,EAEA,IAAI;AAAA,IACH,OAAO,KAAK,UAAU,KAAK;AAAA,IAC1B,MAAM;AAAA,IACP,IAAI;AAAA,MACH,OAAO,OAAO,KAAK;AAAA,MAClB,MAAM;AAAA,MACP,OAAO;AAAA;AAAA;AAAA;AAAA;AAKV,MAAqB,iBAAiB,MAAM;AAAA,EAC3C,WAAW,CAAC,SAAQ,YAAY,aAAa,UAAS,CAAC,GAAG;AAAA,IAEzD,IAAI,SAAS,WAAW,KAAK,GAAG;AAAA,MAC/B,OAAO;AAAA,IACR;AAAA,IAEA,IAAI,iBAAiB,OAAO;AAAA,MAC3B,MAAM,IAAI,UAAU,4EAA4E;AAAA,IACjG;AAAA,IAEA,MAAM,oBAAoB,UAAU,KAAK,GAAG;AAAA,IAE5C,IAAI,eAAe,OAAO;AAAA,MAGzB,OAAO,eAAe,MAAM,WAAW,SAAS;AAAA,IACjD;AAAA,IAEA,eAAe,MAAM,QAAQ,UAAU;AAAA,IACvC,eAAe,MAAM,kBAAkB,IAAI;AAAA,IAC3C,eAAe,MAAM,cAAc,IAAI;AAAA,IACvC,eAAe,MAAM,SAAS,KAAK;AAAA;AAAA,SAG7B,UAAU,CAAC,OAAO;AAAA,IACxB,OAAO,QAAQ,sBAAsB;AAAA;AAAA,SAG/B,eAAe,CAAC,UAAU,YAAY;AAAA,IAC5C,IAAI;AAAA,MACH,MAAM,SAAS,SAAS,GAAG,UAAU;AAAA,MAGrC,IAAI,UAAU,OAAO,OAAO,SAAS,YAAY;AAAA,QAChD,QAAQ,YAAY;AAAA,UACnB,IAAI;AAAA,YACH,OAAO,MAAM;AAAA,YACZ,OAAO,OAAO;AAAA,YAEf,IAAI,iBAAiB,OAAO;AAAA,cAC3B,MAAM;AAAA,YACP;AAAA,YAEA,MAAM,IAAI,SAAS,KAAK;AAAA;AAAA,WAEvB;AAAA,MACJ;AAAA,MAEA,OAAO;AAAA,MACN,OAAO,OAAO;AAAA,MAGf,IAAI,iBAAiB,OAAO;AAAA,QAC3B,MAAM;AAAA,MACP;AAAA,MAGA,MAAM,IAAI,SAAS,KAAK;AAAA;AAAA;AAAA,SAInB,GAAG,CAAC,UAAU;AAAA,IACpB,OAAO,SAAS,gBAAgB,UAAU,CAAC,CAAC;AAAA;AAAA,SAGtC,IAAI,CAAC,UAAU;AAAA,IACrB,OAAO,IAAI,eAAe,SAAS,gBAAgB,UAAU,UAAU;AAAA;AAAA,UAIhE,OAAO,YAAY,CAAC,UAAU;AAAA,IACrC,OAAO,SAAS,WAAW,QAAQ;AAAA;AAErC;;;ACtIA,IAAM,OAAO;AAAA,EAEZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA,WAAW;AAAA,EAIX,WAAW;AAAA,EACX,WAAW;AACZ,EAEE,OAAO,OAAO,EACd,IAAI,iBAAe,CAAC,YAAY,MAAM,WAAW,CAAC;AAE7C,IAAM,oBAAoB,IAAI,IAAI,IAAI;AACtC,IAAM,iBAAiB,IAAI;;;ACrBlC,IAAM,kBAAkB;AAAA,EACvB;AAAA,IACC,UAAU;AAAA,IACV,YAAY;AAAA,EACb;AAAA,EACA;AAAA,IACC,UAAU;AAAA,IACV,YAAY;AAAA,EACb;AAAA,EACA;AAAA,IACC,UAAU;AAAA,IACV,YAAY;AAAA,EACb;AAAA,EACA;AAAA,IACC,UAAU;AAAA,IACV,YAAY;AAAA,EACb;AAAA,EACA;AAAA,IACC,UAAU;AAAA,IACV,YAAY;AAAA,EACb;AAAA,EACA;AAAA,IACC,UAAU;AAAA,IACV,YAAY;AAAA,EACb;AACD;AAEA,IAAM,kBAAkB,IAAI;AAE5B,IAAM,SAAS,UAAQ;AAAA,EACtB,gBAAgB,IAAI,IAAI;AAAA,EACxB,MAAM,OAAO,KAAK,OAAO;AAAA,EACzB,gBAAgB,OAAO,IAAI;AAAA,EAC3B,OAAO;AAAA;AAGR,IAAM,WAAW,UAAQ;AAAA,EACxB,IAAI,SAAS,YAAY;AAAA,IACxB,OAAO,IAAI;AAAA,EACZ;AAAA,EAEA,MAAM,UAAU,eAAe,IAAI,IAAI;AAAA,EACvC,IAAI,SAAS;AAAA,IACZ,OAAO,QAAQ;AAAA,EAChB;AAAA,EAEA,MAAM,mBAAmB,kBAAkB,IAAI,IAAI,KAAK;AAAA,EACxD,OAAO,qBAAqB,iBACzB,IAAI,iBAAiB,CAAC,CAAC,IACvB,IAAI;AAAA;AAGR,IAAM,kBAAkB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACK;AAAA,EACL,IAAI,CAAC,IAAI;AAAA,IACR,IAAI,MAAM,QAAQ,IAAI,GAAG;AAAA,MACxB,KAAK,CAAC;AAAA,IACP,EAAO,SAAI,CAAC,aAAa,YAAY,IAAI,GAAG;AAAA,MAC3C,KAAK,SAAS,KAAK,IAAI;AAAA,IACxB,EAAO;AAAA,MACN,KAAK,CAAC;AAAA;AAAA,EAER;AAAA,EAEA,KAAK,IAAI,IAAI;AAAA,EAEb,IAAI,SAAS,UAAU;AAAA,IACtB,KAAK,OAAO,IAAI;AAAA,IAChB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI,aAAa,OAAO,KAAK,WAAW,cAAc,CAAC,gBAAgB,IAAI,IAAI,GAAG;AAAA,IACjF,KAAK,OAAO,IAAI;AAAA,IAChB,OAAO,OAAO,IAAI;AAAA,EACnB;AAAA,EAEA,MAAM,0BAA0B,WAAS,gBAAgB;AAAA,IACxD,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,QAAQ;AAAA,IACf;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EAED,WAAW,OAAO,OAAO,KAAK,IAAI,GAAG;AAAA,IACpC,MAAM,QAAQ,KAAK;AAAA,IAEnB,IAAI,SAAS,iBAAiB,cAAc,MAAM,YAAY,SAAS,UAAU;AAAA,MAChF,GAAG,OAAO,YAAY,oBAAoB;AAAA,MAC1C;AAAA,IACD;AAAA,IAEA,IAAI,UAAU,QAAQ,OAAO,UAAU,YAAY,OAAO,MAAM,SAAS,YAAY;AAAA,MACpF,GAAG,OAAO,YAAY,oBAAoB;AAAA,MAC1C;AAAA,IACD;AAAA,IAEA,IAAI,OAAO,UAAU,YAAY;AAAA,MAChC,IAAI,CAAC,WAAW;AAAA,QACf,GAAG,OAAO;AAAA,MACX;AAAA,MAEA;AAAA,IACD;AAAA,IAEA,IAAI,aAAa,OAAO,UAAU,UAAU;AAAA,MAC3C,GAAG,OAAO,GAAG;AAAA,MACb;AAAA,IACD;AAAA,IAEA,IAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AAAA,MAExC,IAAI;AAAA,QACH,GAAG,OAAO;AAAA,QACT,MAAM;AAAA,MAER;AAAA,IACD;AAAA,IAEA,IAAI,CAAC,KAAK,IAAI,KAAK,GAAG;AAAA,MACrB,GAAG,OAAO,wBAAwB,KAAK;AAAA,MACvC;AAAA,IACD;AAAA,IAEA,GAAG,OAAO;AAAA,EACX;AAAA,EAEA,IAAI,aAAa,cAAc,OAAO;AAAA,IACrC,aAAY,UAAU,gBAAe,iBAAiB;AAAA,MACrD,MAAM,QAAQ,KAAK;AAAA,MACnB,IAAI,UAAU,aAAa,UAAU,MAAM;AAAA,QAC1C;AAAA,MACD;AAAA,MAEA,MAAM,aAAa,OAAO,yBAAyB,IAAI,QAAQ;AAAA,MAC/D,IAAI,YAAY,iBAAiB,OAAO;AAAA,QACvC;AAAA,MACD;AAAA,MAEA,IAAI,iBAAiB;AAAA,MACrB,IAAI,OAAO,UAAU,UAAU;AAAA,QAC9B,iBAAiB,KAAK,IAAI,KAAK,IAC5B,eACA,wBAAwB,KAAK;AAAA,MACjC;AAAA,MAEA,OAAO,eAAe,IAAI,UAAU;AAAA,QACnC,OAAO;AAAA,QACP,YAAY,mBAAmB;AAAA,QAC/B,cAAc;AAAA,QACd,UAAU;AAAA,MACX,CAAC;AAAA,IACF;AAAA,EACD;AAAA,EAEA,KAAK,OAAO,IAAI;AAAA,EAChB,OAAO;AAAA;AAGD,SAAS,cAAc,CAAC,OAAO,UAAU,CAAC,GAAG;AAAA,EACnD;AAAA,IACC,WAAW,OAAO;AAAA,IAClB,YAAY;AAAA,MACT;AAAA,EAEJ,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,IAChD,OAAO,gBAAgB;AAAA,MACtB,MAAM;AAAA,MACN,MAAM,IAAI;AAAA,MACV,iBAAiB;AAAA,MACjB;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA,WAAW;AAAA,IACZ,CAAC;AAAA,EACF;AAAA,EAGA,IAAI,OAAO,UAAU,YAAY;AAAA,IAChC,QAAQ;AAAA,EACT;AAAA,EAEA,OAAO,gBAAgB;AAAA,IACtB,MAAM,IAAI,SAAS,KAAK;AAAA,IACxB,MAAM,IAAI;AAAA,IACV,iBAAiB;AAAA,IACjB;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,WAAW;AAAA,EACZ,CAAC;AAAA;AAwBK,SAAS,WAAW,CAAC,OAAO;AAAA,EAClC,OAAO,QAAQ,KAAK,KAChB,OAAO,UAAU,YACjB,OAAO,MAAM,SAAS,YACtB,OAAO,MAAM,YAAY,YACzB,OAAO,MAAM,UAAU;AAAA;;;ACxOrB,IAAM,kBAAkB;AAAA,EAC3B,OAAO,CAAC,GAAG,CAAC;AAAA,EACZ,MAAM,CAAC,GAAG,EAAE;AAAA,EACZ,KAAK,CAAC,GAAG,EAAE;AAAA,EACX,QAAQ,CAAC,GAAG,EAAE;AAAA,EACd,WAAW,CAAC,GAAG,EAAE;AAAA,EACjB,UAAU,CAAC,IAAI,EAAE;AAAA,EACjB,SAAS,CAAC,GAAG,EAAE;AAAA,EACf,QAAQ,CAAC,GAAG,EAAE;AAAA,EACd,eAAe,CAAC,GAAG,EAAE;AAAA,EACrB,OAAO,CAAC,IAAI,EAAE;AAAA,EACd,KAAK,CAAC,IAAI,EAAE;AAAA,EACZ,OAAO,CAAC,IAAI,EAAE;AAAA,EACd,QAAQ,CAAC,IAAI,EAAE;AAAA,EACf,MAAM,CAAC,IAAI,EAAE;AAAA,EACb,SAAS,CAAC,IAAI,EAAE;AAAA,EAChB,MAAM,CAAC,IAAI,EAAE;AAAA,EACb,OAAO,CAAC,IAAI,EAAE;AAAA,EACd,aAAa,CAAC,IAAI,EAAE;AAAA,EACpB,WAAW,CAAC,IAAI,EAAE;AAAA,EAClB,aAAa,CAAC,IAAI,EAAE;AAAA,EACpB,cAAc,CAAC,IAAI,EAAE;AAAA,EACrB,YAAY,CAAC,IAAI,EAAE;AAAA,EACnB,eAAe,CAAC,IAAI,EAAE;AAAA,EACtB,YAAY,CAAC,IAAI,EAAE;AAAA,EACnB,aAAa,CAAC,IAAI,EAAE;AAAA,EACpB,SAAS,CAAC,IAAI,EAAE;AAAA,EAChB,OAAO,CAAC,IAAI,EAAE;AAAA,EACd,SAAS,CAAC,IAAI,EAAE;AAAA,EAChB,UAAU,CAAC,IAAI,EAAE;AAAA,EACjB,QAAQ,CAAC,IAAI,EAAE;AAAA,EACf,WAAW,CAAC,IAAI,EAAE;AAAA,EAClB,QAAQ,CAAC,IAAI,EAAE;AAAA,EACf,SAAS,CAAC,IAAI,EAAE;AAAA,EAChB,eAAe,CAAC,KAAK,EAAE;AAAA,EACvB,aAAa,CAAC,KAAK,EAAE;AAAA,EACrB,eAAe,CAAC,KAAK,EAAE;AAAA,EACvB,gBAAgB,CAAC,KAAK,EAAE;AAAA,EACxB,cAAc,CAAC,KAAK,EAAE;AAAA,EACtB,iBAAiB,CAAC,KAAK,EAAE;AAAA,EACzB,cAAc,CAAC,KAAK,EAAE;AAAA,EACtB,eAAe,CAAC,KAAK,EAAE;AAC3B;;;ACzCO,SAAS,cAAc,CAAC,UAAU,UAAU,QAAQ,uBAAuB,OAAO;AAAA,EACrF,MAAM,iBAAiB,OAAO,QAAQ;AAAA,EACtC,MAAM,gBAAgB,CAAC,kBAAkB,SAAS,QAAU,KAAK,MAAM,wBAA0B,KAAK;AAAA,EACtG,MAAM,YAAY,CAAC,OAAO,UAAU;AAAA,IAChC,IAAI,SAAS,QAAQ,OAAO,UAAU,UAAU;AAAA,MAC5C,OAAO,cAAc,OAAO,gBAAgB,MAAM;AAAA,IACtD,EACK,SAAI,SAAS,QAAQ,MAAM,QAAQ,KAAK,GAAG;AAAA,MAC5C,OAAO,MAAM,OAAO,CAAC,WAAW,cAAc,UAAU,WAAW,SAAS,GAAG,KAAK;AAAA,IACxF,EACK;AAAA,MACD,IAAI,SAAS,QAAQ,MAAM,MAAM,KAAK,MAAM,MAAM;AAAA,QAC9C,OAAO,UAAU,OAAO,MAAM,MAAM,KAAK,EAAE;AAAA,MAC/C,EACK,SAAI,SAAS,QAAQ,MAAM,QAAQ,MAAM;AAAA,QAC1C,OAAO,UAAU,OAAO,MAAM,IAAI;AAAA,MACtC,EACK;AAAA,QACD,OAAO;AAAA;AAAA;AAAA;AAAA,EAInB,MAAM,eAAe;AAAA,EACrB,OAAO,eAAe,QAAQ,cAAc,CAAC,GAAG,gBAAgB;AAAA,IAC5D,MAAM,QAAQ,OAAO,gBAAgB,OAAO,OAAO,OAAO,YAAY,IAAI,uBAAuB,KAAK;AAAA,IACtG,OAAO,SAAS,kBACV,UAAU,OAAO,UAAU,kBAAkB,gBAAgB,YAAY,IAAI,cAAc,IAAI,gBAAgB,KAAK,IACpH;AAAA,GACT;AAAA;;;AC7BE,SAAS,oBAAoB,CAAC,OAAO,SAAS,GAAG,YAAY,GAAG;AAAA,EACnE,IAAI,SAAS,QAAQ,MAAM,KAAK,GAAG;AAAA,IAC/B,OAAO;AAAA,EACX;AAAA,EACA,QAAQ,SAAS,OAAO,QAAQ,YAAY;AAAA,EAC5C,OAAO,WAAW,IACZ,SAAS,OACL,OACA,QAAQ,KACJ,MAAM,QACN,MAAM,SAAS,IACvB,SAAS,OACL,QACA,QAAQ,KACJ,OAAO,QACP,QAAQ,MACJ,MAAM,QACN,MAAM,SAAS;AAAA;;;ACjB9B,SAAS,WAAW,CAAC,KAAK;AAAA,EAC7B,OAAO;AAAA,IACH,MAAM,IAAI;AAAA,IACV,UAAU,IAAI;AAAA,IACd,UAAU,IAAI;AAAA,IACd,UAAU,IAAI;AAAA,IACd,MAAM,IAAI;AAAA,IACV,UAAU,IAAI;AAAA,IACd,MAAM,IAAI;AAAA,IACV,UAAU,IAAI;AAAA,IACd,QAAQ,IAAI;AAAA,IACZ,cAAc,CAAC,GAAG,IAAI,YAAY,EAAE,IAAI,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE;AAAA,IAC1E,MAAM,IAAI;AAAA,IACV,QAAQ,IAAI;AAAA,EAChB;AAAA;;;ACdJ;AACA,sBAAS;AACT;AAEA,IAAe;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACA,IAAM,OAAO;AAAA,EACT,SAAS;AAAA,EACT,gBAAgB,SAAS;AAAA,EACzB,UAAU,WAAW,SAAS,IAAI;AACtC;AACO,SAAS,OAAO,CAAC,YAAY,cAAc,iBAAiB,+BAA+B,MAAM,aAAa;AAAA,EACjH,OAAO,OAAO,OAAO,CAAC,GAAG,MAAM;AAAA,IAC3B;AAAA,IACA;AAAA,IACA,MAAM,IAAI;AAAA,IACV;AAAA,IACA;AAAA,IACA,MAAM,CAAC,gCAAgC,oBAAoB,eAAe,IAAI;AAAA,EAClF,CAAC;AAAA;AAEE,SAAS,mBAAmB,CAAC,iBAAiB,QAAQ,MAAM,GAAG;AAAA,EAClE,OAAO,sBAAsB,OAAO,OAAO,MAAM;AAAA,CAAI,GAAG,OAAO,CAAC,aAAa,SAAS,SAAS,SAAS,CAAC,IAAI,gBAAgB;AAAA;AAE1H,SAAS,aAAa,CAAC,OAAO;AAAA,EACjC,OAAO,OAAO,OAAO,MAAM;AAAA,CAAI,GAAG,OAAO,CAAC,QAAQ,SAAS;AAAA,IACvD,IAAI,KAAK,SAAS,SAAS,GAAG;AAAA,MAC1B,OAAO,KAAK,sBAAsB,IAAI,CAAC;AAAA,IAC3C;AAAA,IACA,OAAO;AAAA,KACR,CAAC,CAAC;AAAA;AAET,SAAS,qBAAqB,CAAC,MAAM;AAAA,EACjC,MAAM,aAAa;AAAA,IACf,cAAc;AAAA,IACd,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,QAAQ;AAAA,EACZ;AAAA,EACA,IAAI,QAAQ,QAAQ,KAAK,SAAS,SAAS,GAAG;AAAA,IAC1C,OAAO,KAAK,QAAQ,eAAe,EAAE;AAAA,IACrC,MAAM,iBAAiB,KAAK,MAAM,IAAI;AAAA,IACtC,MAAM,eAAe,MAAM,MAAM,EAAE,MAAM,MAAM,MAAM,MAAM,aAAa,IAAI,KAAK;AAAA,IACjF,MAAM,YAAY,cAAc,SAAS,GAAG,IAAI,cAAc,QAAQ,WAAW,EAAE,GAAG,QAAQ,QAAQ,IAAI,GAAG,EAAE,GAAG,MAAM,GAAG,IAAI;AAAA,IAC/H,MAAM,aAAa,WAAW,IAAI;AAAA,IAClC,MAAM,WAAW,WAAW,IAAI;AAAA,IAChC,MAAM,WAAW,WAAW,IAAI;AAAA,IAChC,MAAM,mBAAmB,cAAc,GAAG,YAAY,UAAU;AAAA,IAChE,MAAM,WAAW,UAAU,MAAM,GAAG,GAAG,IAAI;AAAA,IAC3C,MAAM,mBAAmB,GAAG,YAAY;AAAA,IACxC,IAAI,YAAY,QAAQ,SAAS,SAAS,GAAG;AAAA,MACzC,WAAW,eAAe;AAAA,MAC1B,WAAW,WAAW;AAAA,MACtB,WAAW,mBAAmB;AAAA,MAC9B,WAAW,aAAa;AAAA,MACxB,WAAW,WAAW;AAAA,MACtB,WAAW,WAAW;AAAA,MACtB,WAAW,mBAAmB;AAAA,MAC9B,WAAW,SAAS,iBAAiB,MAAM,OAAO,iBAAiB,KAAK;AAAA,IAC5E;AAAA,EACJ;AAAA,EACA,OAAO;AAAA;AAEJ,SAAS,OAAO,CAAC,GAAG;AAAA,EACvB,OAAO,OAAO,iBAAiB,OAAO,MAAM,cAAc,CAAC,IAAI,aAAa;AAAA;AAEzE,SAAS,kBAAkB,CAAC,YAAY,UAAU;AAAA,EACrD,OAAO,WAAW,OAAO,CAAC,QAAQ,QAAQ;AAAA,IACtC,QAAQ,GAAG,IAAI,OAAO,OAAO,KAAK,qBAAqB,KAAK,QAAQ,CAAC,IAAI,OAAO,KAAK,KAAK,GAAG;AAAA,IAC7F,OAAO;AAAA,KACR,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAAA;AAExB,SAAS,oBAAoB,CAAC,OAAO,UAAU;AAAA,EAClD,MAAM,gBAAgB,cAAc,KAAK,EAAE,IAAI,CAAC,eAAe;AAAA,IAC3D,OAAO,eAAe,UAAU,SAAS,0BAA0B,KAAK,WAAW,GAAG,IAAI;AAAA,GAC7F;AAAA,EACD,MAAM,yBAAyB;AAAA,IAC3B,WAAW,IAAI,MAAM;AAAA,IACrB,cAAc,OAAO,oBAAoB,KAAK,EACzC,OAAO,CAAC,QAAQ,QAAQ;AAAA,MACzB,IAAI,QAAQ,SAAS;AAAA,QACjB,OAAO,KAAK,MAAM,IAAI;AAAA,MAC1B;AAAA,MACA,OAAO;AAAA,OACR,CAAC,CAAC,EACA,KAAK,IAAI;AAAA,IACd,YAAY,cAAc,KAAK;AAAA,CAAI;AAAA,EACvC;AAAA,EACA,OAAO,eAAe,UAAU,SAAS,qBAAqB,sBAAsB;AAAA;AAEjF,SAAS,kBAAkB,CAAC,eAAe,SAAS,WAAW,UAAU;AAAA,EAC5E,MAAM,gBAAgB,UAAU,SAAS,KAAK,QAAQ,SAAS,IAAI;AAAA,IAAO,MAAM,UAAU,KAAK;AAAA,CAAI;AAAA,EACnG,SAAS,qBAAqB,SAAS,SAAS;AAAA,EAChD,QAAQ,IAAI,gBAAgB,kBAAkB,SAAS,sBAAsB,GAAG,OAAO,IAAI,YAAY;AAAA;AAEpG,SAAS,aAAa,CAAC,MAAM;AAAA,EAChC,QAAQ,IAAI,uBAAuB,IAAI,CAAC;AAAA,EACxC,SAAS,sBAAsB,CAAC,KAAK;AAAA,IACjC,MAAM,QAAQ,IAAI;AAAA,IAClB,OAAO,KAAK,UAAU,KAAK,CAAC,KAAK,UAAU;AAAA,MACvC,IAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAAA,QAC7C,IAAI,MAAM,IAAI,KAAK,GAAG;AAAA,UAClB,OAAO;AAAA,QACX;AAAA,QACA,MAAM,IAAI,KAAK;AAAA,MACnB;AAAA,MACA,IAAI,OAAO,UAAU,UAAU;AAAA,QAC3B,OAAO,GAAG;AAAA,MACd;AAAA,MACA,IAAI,OAAO,UAAU,aAAa;AAAA,QAC9B,OAAO;AAAA,MACX;AAAA,MACA,OAAO;AAAA,KACV;AAAA;AAAA;AAGF,SAAS,QAAQ,CAAC,KAAK;AAAA,EAC1B,OAAO,OAAO,SAAS,GAAG;AAAA;;AC5HvB,MAAM,WAAW;AAAA,EACpB,WAAW,CAAC,UAAU,QAAQ,kBAAkB,GAAG;AAAA,IAC/C,KAAK,SAAS;AAAA,IACd,KAAK,kBAAkB;AAAA,IACvB,KAAK,UAAU;AAAA,IACf,KAAK,WAAW;AAAA,MACZ,MAAM,UAAU,QAAQ;AAAA,MACxB,MAAM,UAAU;AAAA,MAChB,aAAa,UAAU;AAAA,MACvB,UAAU,UAAU,YAAY;AAAA,MAChC,oBAAoB,UAAU;AAAA,MAC9B,8BAA8B,UAAU,gCAAgC;AAAA,MACxE,mBAAmB,UAAU,qBACzB;AAAA,MACJ,qBAAqB,UAAU,uBAAuB;AAAA;AAAA;AAAA;AAAA,MACtD,0BAA0B,UAAU,4BAA4B;AAAA;AAAA,MAChE,iCAAiC,UAAU,mCAAmC;AAAA,MAC9E,gCAAgC,UAAU,kCAAkC;AAAA,MAC5E,iBAAiB,UAAU,mBAAmB;AAAA,MAC9C,mBAAmB,UAAU,qBAAqB;AAAA,MAClD,iBAAiB,UAAU,mBAAmB;AAAA,QAC1C,cAAc;AAAA,UACV,KAAK,CAAC,QAAQ,SAAS,iBAAiB,KAAK;AAAA,UAC7C,OAAO,CAAC,QAAQ,OAAO;AAAA,UACvB,OAAO,CAAC,QAAQ,aAAa;AAAA,UAC7B,OAAO,CAAC,QAAQ,OAAO;AAAA,UACvB,MAAM,CAAC,QAAQ,MAAM;AAAA,UACrB,MAAM,CAAC,QAAQ,QAAQ;AAAA,UACvB,OAAO,CAAC,QAAQ,KAAK;AAAA,UACrB,OAAO,CAAC,QAAQ,WAAW;AAAA,QAC/B;AAAA,QACA,YAAY;AAAA,QACZ,kBAAkB;AAAA,QAClB,MAAM,CAAC,SAAS,MAAM;AAAA,QACtB,yBAAyB,CAAC,SAAS,MAAM;AAAA,QACzC,yBAAyB,CAAC,SAAS,MAAM;AAAA,QACzC,WAAW,CAAC,QAAQ,eAAe,aAAa;AAAA,QAChD,UAAU,CAAC,QAAQ;AAAA,QACnB,kBAAkB;AAAA,MACtB;AAAA,MACA,sBAAsB,UAAU,wBAAwB;AAAA,QACpD,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,OAAO;AAAA,MACX;AAAA,MACA,cAAc,UAAU,gBAAgB;AAAA,MACxC,iBAAiB,UAAU,mBAAmB;AAAA,MAC9C,kBAAkB,UAAU,oBAAoB,CAAC,UAAU;AAAA,MAC3D,iCAAiC,UAAU,mCAAmC;AAAA,MAC9E,iBAAiB,UAAU;AAAA,MAC3B,QAAQ,CAAC,GAAI,UAAU,UAAU,CAAC,CAAE;AAAA,MACpC,oBAAoB,CAAC,GAAI,UAAU,sBAAsB,CAAC,CAAE;AAAA,MAC5D,WAAW;AAAA,QACP,MAAM,UAAU,WAAW;AAAA,QAC3B,UAAU,UAAU,WAAW;AAAA,QAC/B,SAAS,UAAU,WAAW;AAAA,QAC9B,iBAAiB,UAAU,WAAW;AAAA,QACtC,YAAY,UAAU,WAAW;AAAA,QACjC,cAAc,UAAU,WAAW;AAAA,QACnC,oBAAoB,UAAU,WAAW;AAAA,QACzC,eAAe,UAAU,WAAW;AAAA,MACxC;AAAA,IACJ;AAAA;AAAA,EAEJ,GAAG,CAAC,YAAY,iBAAiB,MAAM;AAAA,IACnC,IAAI,aAAa,KAAK,SAAS,UAAU;AAAA,MACrC;AAAA,IACJ;AAAA,IACA,MAAM,UAAU,CAAC,GAAG,KAAK,SAAS,QAAQ,GAAG,IAAI;AAAA,IACjD,MAAM,aAAa,KAAK,SAAS,WAAW,QAAQ,OAC9C,KAAK,SAAS,WAAW,KAAK,OAAO,IACrC,KAAK,SAAS,oBAAoB,QAAQ,KAAK,SAAS,iBAAiB,SAAS,IAC9E,KAAK,MAAM,OAAO,IAClB;AAAA,IACV,MAAM,aAAa,KAAK,UAAU,OAAO,KAAK,mCAAmC,KAAK,MAAM,IAAI;AAAA,IAChG,MAAM,SAAS,KAAK,SAAS,WAAW,YAAY,OAAO,KAAK,SAAS,WAAW,SAAS,YAAY,UAAU,IAAI,KAAK,UAAU,YAAY,UAAU;AAAA,IAC5J,MAAM,iBAAiB,KAAK,SAAS,WAAW,WAAW,OACrD,KAAK,SAAS,WAAW,QAAQ,QAAQ,YAAY,YAAY,IACjE,KAAK,iBAAiB,QAAQ,YAAY,YAAY;AAAA,IAC5D,IAAI;AAAA,IACJ,IAAI,yBAAyB;AAAA,IAC7B,IAAI,KAAK,SAAS,WAAW,cAAc,MAAM;AAAA,MAC7C,gBAAgB,KAAK,SAAS,WAAW,WAAW,iBAAiB,KAAK,SAAS,aAAa;AAAA,IACpG;AAAA,IACA,IAAI,KAAK,SAAS,WAAW,gBAAgB,MAAM;AAAA,MAC/C,yBAAyB,KAAK,SAAS,WAAW,aAAa,YAAY,KAAK,QAAQ;AAAA,IAC5F;AAAA,IACA,IAAI,KAAK,SAAS,SAAS,UAAU;AAAA,MACjC,gBAAgB,iBAAiB,KAAK,wBAAwB,iBAAiB,KAAK,SAAS,aAAa;AAAA,MAC1G,yBAAyB,0BAA0B,KAAK,QAAQ,mBAAmB,YAAY,KAAK,QAAQ;AAAA,IAChH;AAAA,IACA,IAAI,iBAAiB,QAAQ,0BAA0B,MAAM;AAAA,MACzD,KAAK,SAAS,WAAW,sBAAsB,OACzC,KAAK,SAAS,WAAW,mBAAmB,eAAe,uBAAuB,MAAM,uBAAuB,QAAQ,KAAK,QAAQ,IACpI,KAAK,QAAQ,mBAAmB,eAAe,uBAAuB,MAAM,uBAAuB,QAAQ,KAAK,QAAQ;AAAA,IAClI,EACK;AAAA,MACD,KAAK,SAAS,WAAW,iBAAiB,OACpC,KAAK,SAAS,WAAW,cAAc,cAAc,IACrD,KAAK,SAAS,SAAS,YACnB,KAAK,QAAQ,cAAc,cAAc;AAAA;AAAA,IAGvD,IAAI,KAAK,SAAS,sBAAsB,QAAQ,KAAK,SAAS,mBAAmB,SAAS,GAAG;AAAA,MACzF,KAAK,SAAS,mBAAmB,QAAQ,CAAC,oBAAoB;AAAA,QAC1D,gBAAgB,cAAc;AAAA,OACjC;AAAA,IACL;AAAA,IACA,OAAO;AAAA;AAAA,EAEX,eAAe,CAAC,iBAAiB;AAAA,IAC7B,KAAK,SAAS,mBAAmB,KAAK,eAAe;AAAA;AAAA,EAEzD,YAAY,CAAC,UAAU,QAAQ;AAAA,IAC3B,MAAM,oBAAoB;AAAA,SACnB,KAAK;AAAA,SACL;AAAA,MACH,aAAa,KAAK,UAAU,eAAe,QAAQ,KAAK,UAAU,QAAQ,OACpE,CAAC,GAAG,KAAK,SAAS,aAAa,KAAK,SAAS,IAAI,IACjD,KAAK,UAAU,QAAQ,OACnB,CAAC,KAAK,SAAS,IAAI,IACnB;AAAA,MACV,QAAQ,CAAC,GAAG,KAAK,SAAS,QAAQ,GAAI,UAAU,UAAU,CAAC,CAAE;AAAA,IACjE;AAAA,IACA,MAAM,YAAY,IAAI,KAAK,YAAY,mBAAmB,UAAU,KAAK,QAAQ,KAAK,eAAe;AAAA,IACrG,OAAO;AAAA;AAAA,EAEX,KAAK,CAAC,MAAM;AAAA,IACR,MAAM,mBAAmB,KAAK,SAAS,oCAAoC,OAAO,KAAK,SAAS,mBAAmB,KAAK,SAAS,iBAAiB,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC;AAAA,IAChL,OAAO,MAAM,IAAI,CAAC,QAAQ;AAAA,MACtB,OAAO,KAAK,mCAAmC,KAAK,gBAAgB;AAAA,KACvE;AAAA;AAAA,EAEL,kCAAkC,CAAC,QAAQ,MAAM,OAAO,CAAC,GAAG;AAAA,IACxD,IAAI,KAAK,SAAS,MAAM,GAAG;AAAA,MACvB,OAAO,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,IAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AAAA,MAC/C,KAAK,KAAK,MAAM;AAAA,IACpB;AAAA,IACA,IAAI,KAAK,QAAQ,QAAQ,MAAM,KAAK,KAAK,QAAQ,SAAS,MAAM,GAAG;AAAA,MAC/D,OAAO;AAAA,IACX,EACK,SAAI,kBAAkB,KAAK;AAAA,MAC5B,OAAO,IAAI,IAAI,MAAM;AAAA,IACzB,EACK,SAAI,kBAAkB,KAAK;AAAA,MAC5B,OAAO,IAAI,IAAI,MAAM;AAAA,IACzB,EACK,SAAI,MAAM,QAAQ,MAAM,GAAG;AAAA,MAC5B,OAAO,OAAO,IAAI,CAAC,SAAS,KAAK,mCAAmC,MAAM,MAAM,IAAI,CAAC;AAAA,IACzF,EACK,SAAI,kBAAkB,MAAM;AAAA,MAC7B,OAAO,IAAI,KAAK,OAAO,QAAQ,CAAC;AAAA,IACpC,EACK,SAAI,kBAAkB,KAAK;AAAA,MAC5B,OAAO,YAAY,MAAM;AAAA,IAC7B,EACK,SAAI,WAAW,QAAQ,OAAO,WAAW,UAAU;AAAA,MACpD,MAAM,aAAa,KAAK,QAAQ,QAAQ,MAAM,IAAI,KAAK,YAAY,MAAM,IAAI,OAAO,OAAO,OAAO,eAAe,MAAM,CAAC;AAAA,MACxH,OAAO,OAAO,oBAAoB,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;AAAA,QAC1D,EAAE,QAAQ,KAAK,SAAS,KAAK,UAAU,oCAAoC,OAAO,OAAO,KAAK,YAAY,CAAC,IACrG,KAAK,SAAS,mBACb,MAAM;AAAA,UACL,IAAI;AAAA,YACA,OAAO,KAAK,mCAAmC,OAAO,OAAO,MAAM,IAAI;AAAA,YAE3E,OAAO,GAAG;AAAA,YACN,OAAO;AAAA;AAAA,WAEZ;AAAA,QACP,OAAO;AAAA,SACR,UAAU;AAAA,IACjB,EACK;AAAA,MACD,IAAI,OAAO,WAAW,UAAU;AAAA,QAC5B,IAAI,iBAAiB;AAAA,QACrB,WAAW,SAAS,KAAK,UAAU,mBAAmB,CAAC,GAAG;AAAA,UACtD,iBAAiB,eAAe,QAAQ,OAAO,KAAK,UAAU,mBAAmB,EAAE;AAAA,QACvF;AAAA,QACA,OAAO;AAAA,MACX;AAAA,MACA,OAAO;AAAA;AAAA;AAAA,EAGf,kCAAkC,CAAC,QAAQ,OAAO,CAAC,GAAG;AAAA,IAClD,IAAI,KAAK,gBAAgB,MAAM,KAAK,KAAK,SAAS,MAAM,GAAG;AAAA,MACvD,OAAO,KAAK,YAAY,MAAM;AAAA,IAClC;AAAA,IACA,IAAI,KAAK,gBAAgB,MAAM,GAAG;AAAA,MAC9B,KAAK,KAAK,MAAM;AAAA,IACpB;AAAA,IACA,IAAI,MAAM,QAAQ,MAAM,GAAG;AAAA,MACvB,OAAO,OAAO,IAAI,CAAC,SAAS,KAAK,mCAAmC,MAAM,IAAI,CAAC;AAAA,IACnF,EACK,SAAI,kBAAkB,MAAM;AAAA,MAC7B,OAAO,IAAI,KAAK,OAAO,QAAQ,CAAC;AAAA,IACpC,EACK,SAAI,KAAK,SAAS,MAAM,GAAG;AAAA,MAC5B,OAAO,OAAO,oBAAoB,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;AAAA,QAC1D,MAAM,aAAa,OAAO,yBAAyB,QAAQ,IAAI;AAAA,QAC/D,IAAI,YAAY;AAAA,UACZ,OAAO,eAAe,GAAG,MAAM,UAAU;AAAA,UACzC,MAAM,QAAQ,OAAO;AAAA,UACrB,EAAE,QAAQ,OAAO,UAAU,aAAa,MAAM,IAAI,KAAK,mCAAmC,OAAO,IAAI;AAAA,QACzG;AAAA,QACA,OAAO;AAAA,SACR,OAAO,OAAO,OAAO,eAAe,MAAM,CAAC,CAAC;AAAA,IACnD,EACK;AAAA,MACD,OAAO;AAAA;AAAA;AAAA,EAGf,eAAe,CAAC,OAAO;AAAA,IACnB,OAAO,OAAO,UAAU,YAAY,UAAU;AAAA;AAAA,EAElD,QAAQ,CAAC,OAAO;AAAA,IACZ,OAAO,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,KAAK,UAAU;AAAA;AAAA,EAE3E,WAAW,CAAC,QAAQ;AAAA,IAChB,IAAI,MAAM,QAAQ,MAAM,GAAG;AAAA,MACvB,OAAO,CAAC,GAAG,MAAM;AAAA,IACrB,EACK;AAAA,MACD,OAAO,KAAK,OAAO;AAAA;AAAA;AAAA,EAG3B,SAAS,CAAC,MAAM,eAAe,CAAC,GAAG;AAAA,IAC/B,OAAO,MAAM,IAAI,CAAC,QAAS,KAAK,QAAQ,QAAQ,GAAG,IAAI,KAAK,eAAe,GAAG,IAAI,GAAI;AAAA,IACtF,IAAI,KAAK,SAAS,sBAAsB,MAAM;AAAA,MAC1C,IAAI,KAAK,WAAW,KAAK,CAAC,MAAM,QAAQ,KAAK,EAAE,KAAK,KAAK,QAAQ,SAAS,KAAK,EAAE,MAAM,QAAQ,EAAE,KAAK,cAAc,OAAO;AAAA,QACvH,eAAe,OAAO,KAAK,OAAO,YAAY,KAAK,MAAM,OAAO,KAAK,KAAK,OAAO,aAAa,IAAI,EAAE,GAAG,KAAK,OAAO,aAAa;AAAA,MACpI,EACK;AAAA,QACD,eAAe,KAAK,iBAAiB,KAAK;AAAA;AAAA,IAElD,EACK;AAAA,MACD,eAAe;AAAA,WACR;AAAA,SACF,KAAK,SAAS,qBAAqB;AAAA,MACxC;AAAA;AAAA,IAEJ,OAAO;AAAA;AAAA,EAEX,WAAW,CAAC,OAAO;AAAA,IACf,MAAM,SAAS,IAAI,MAAM;AAAA,IACzB,OAAO,oBAAoB,KAAK,EAAE,QAAQ,CAAC,QAAQ;AAAA,MAC/C,OAAO,OAAO,MAAM;AAAA,KACvB;AAAA,IACD,OAAO;AAAA;AAAA,EAEX,cAAc,CAAC,OAAO;AAAA,IAClB,OAAO;AAAA,MACH,aAAa;AAAA,MACb,MAAM,MAAM,QAAQ;AAAA,MACpB,SAAS,MAAM;AAAA,MACf,OAAO,KAAK,QAAQ,cAAc,KAAK;AAAA,IAC3C;AAAA;AAAA,EAEJ,gBAAgB,CAAC,QAAQ,YAAY,cAAc;AAAA,IAC/C,OAAO;AAAA,SACA;AAAA,OACF,KAAK,SAAS,eAAe,KAAK,QAAQ,QAAQ,YAAY,cAAc,KAAK,iBAAiB,KAAK,SAAS,8BAA8B,KAAK,SAAS,MAAM,KAAK,SAAS,WAAW;AAAA,IAChM;AAAA;AAAA,EAEJ,uBAAuB,CAAC,YAAY;AAAA,IAChC,IAAI,cAAc,MAAM;AAAA,MACpB,OAAO;AAAA,IACX;AAAA,IACA,IAAI,WAAW,KAAK,SAAS;AAAA,IAC7B,MAAM,oBAAoB,CAAC;AAAA,IAC3B,IAAI,SAAS,SAAS,oDAAoD,GAAG;AAAA,MACzE,WAAW,SAAS,QAAQ,sDAAsD,gBAAgB;AAAA,IACtG,EACK;AAAA,MACD,IAAI,KAAK,SAAS,sBAAsB,OAAO;AAAA,QAC3C,kBAAkB,UAAU,YAAY,MAAM,eAAe,KAAK;AAAA,QAClE,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,YAAY,GAAG,GAAG,CAAC;AAAA,QACpF,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,WAAW,GAAG,CAAC;AAAA,QAChF,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,YAAY,GAAG,CAAC;AAAA,QACjF,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,cAAc,GAAG,CAAC;AAAA,QACnF,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,cAAc,GAAG,CAAC;AAAA,QACnF,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,mBAAmB,GAAG,CAAC;AAAA,MAC5F,EACK;AAAA,QACD,kBAAkB,UAAU,YAAY,MAAM,YAAY,KAAK;AAAA,QAC/D,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,SAAS,GAAG,GAAG,CAAC;AAAA,QACjF,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,QAAQ,GAAG,CAAC;AAAA,QAC7E,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,SAAS,GAAG,CAAC;AAAA,QAC9E,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,WAAW,GAAG,CAAC;AAAA,QAChF,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,WAAW,GAAG,CAAC;AAAA,QAChF,kBAAkB,QAAQ,qBAAqB,YAAY,MAAM,gBAAgB,GAAG,CAAC;AAAA;AAAA;AAAA,IAG7F,MAAM,yBAAyB,KAAK,SAAS,sBAAsB,QAAQ,YAAY,OAAO,IAAI,KAAK,YAAY,MAAM,QAAQ,IAAI,YAAY,MAAM,kBAAkB,IAAI,KAAK;AAAA,IAClL,kBAAkB,eAAe,wBAAwB,YAAY;AAAA,IACrE,kBAAkB,gBAAgB,wBAAwB,YAAY,EAAE,QAAQ,KAAK,GAAG,EAAE,QAAQ,KAAK,EAAE;AAAA,IACzG,kBAAkB,kBAAkB,YAAY;AAAA,IAChD,kBAAkB,sBAAsB,YAAY,MAAM,oBAAoB;AAAA,IAC9E,kBAAkB,sBAAsB,YAAY,MAAM,oBAAoB;AAAA,IAC9E,kBAAkB,kBAAkB,YAAY,MAAM,gBAAgB;AAAA,IACtE,IAAI,oBAAoB,KAAK,SAAS,aAAa,KAAK,KAAK,SAAS,+BAA+B;AAAA,IACrG,oBAAoB,qBAAqB,QAAQ,YAAY,QAAQ,OAAO,oBAAoB,KAAK,SAAS,kCAAkC;AAAA,IAChJ,kBAAkB,UAAU,YAAY,QAAQ,QAAQ,qBAAqB,QAAQ,qBAAqB,MAAM,YAAY,OAAa;AAAA,IACzI,kBAAkB,6BACd,kBAAkB,QAAQ,SAAS,IAAI,KAAK,SAAS,iCAAiC,kBAAkB,UAAU;AAAA,IACtH,kBAAkB,6BACd,kBAAkB,QAAQ,SAAS,IAAI,kBAAkB,UAAU,KAAK,SAAS,iCAAiC;AAAA,IACtH,IAAI,KAAK,SAAS,WAAW,mBAAmB,MAAM;AAAA,MAClD,KAAK,SAAS,WAAW,gBAAgB,YAAY,iBAAiB;AAAA,IAC1E;AAAA,IACA,OAAO,eAAe,KAAK,UAAU,UAAU,iBAAiB;AAAA;AAExE;;;AC7TO,MAAM,eAAe,WAAW;AAAA,EACnC,WAAW,CAAC,UAAU,QAAQ;AAAA,IAC1B,MAAM,YAAY,OAAO,WAAW,eAAe,OAAO,aAAa;AAAA,IACvE,MAAM,uBAAuB,YAAY,OAAO,WAAW,aAAa,OAAO,QAAQ,aAAa,OAAO,IAAI,SAAS,SAAS,OAAO,IAAI;AAAA,IAC5I,MAAM,WAAW,YAAY,iCAAiC,KAAK,UAAU,SAAS,IAAI;AAAA,IAC1F,WAAW,YAAY,CAAC;AAAA,IACxB,SAAS,kBAAkB,SAAS,mBAAmB,aAAa,CAAC,uBAAuB,QAAQ,SAAS;AAAA,IAC7G,MAAM,UAAU,QAAQ,WAAW,IAAI,CAAC;AAAA;AAAA,EAE5C,GAAG,CAAC,YAAY,iBAAiB,MAAM;AAAA,IACnC,OAAO,MAAM,IAAI,YAAY,cAAc,GAAG,IAAI;AAAA;AAAA,EAEtD,KAAK,IAAI,MAAM;AAAA,IACX,OAAO,MAAM,IAAI,GAAG,SAAS,GAAG,IAAI;AAAA;AAAA,EAExC,KAAK,IAAI,MAAM;AAAA,IACX,OAAO,MAAM,IAAI,GAAG,SAAS,GAAG,IAAI;AAAA;AAAA,EAExC,KAAK,IAAI,MAAM;AAAA,IACX,OAAO,MAAM,IAAI,GAAG,SAAS,GAAG,IAAI;AAAA;AAAA,EAExC,IAAI,IAAI,MAAM;AAAA,IACV,OAAO,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI;AAAA;AAAA,EAEvC,IAAI,IAAI,MAAM;AAAA,IACV,OAAO,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI;AAAA;AAAA,EAEvC,KAAK,IAAI,MAAM;AAAA,IACX,OAAO,MAAM,IAAI,GAAG,SAAS,GAAG,IAAI;AAAA;AAAA,EAExC,KAAK,IAAI,MAAM;AAAA,IACX,OAAO,MAAM,IAAI,GAAG,SAAS,GAAG,IAAI;AAAA;AAAA,EAExC,YAAY,CAAC,UAAU,QAAQ;AAAA,IAC3B,OAAO,MAAM,aAAa,UAAU,MAAM;AAAA;AAElD;;;AChCA,IAAM,cAAc,IAAI,OAAO;AAAA,EAC9B,MAAuD;AAAA,EACvD,iBAAiB;AAAA,EACjB,UAAU,QAAQ,IAAI,cAAc,UAAU,IAAI;AACnD,CAAC;AAED,IAAM,aAAa,IAAI,SAAS;AAAA,EAC/B,WAAW,CAAC,IAAI,eAAe,EAAE,IAAI,SAAS,QAAQ,YAAY,CAAC,CAAC;AAAA,EACpE,SAAS,CAAC,oBAAoB,CAAC;AAAA,EAC/B,iBAAiB;AAClB,CAAC;AAiBD,IAAI,QAAQ,IAAI,cAAc,SAAS;AAAA,EACtC,WAAW,SAAS,MAAM;AAC3B;;;AnB5BO,IAAM,gCAAgC;AACtC,IAAM,qBAAqB;AAE3B,IAAM,kBAAkB,CAAC,eAAe,cAAc;AACtD,IAAM,yBAAyB;AAAA,EACrC,GAAG;AAAA,EACH;AACD;AACO,IAAM,gBAAgB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AACO,IAAM,eAAe;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAsBA,IAAM,kBAAkB,IAAI,IAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAOM,SAAS,gBAAgB,CAAC,OAAuB;AAAA,EACvD,IAAI,CAAC,OAAO,SAAS,KAAK,GAAG;AAAA,IAC5B,MAAM,IAAI,MAAM,kCAAkC;AAAA,EACnD;AAAA,EACA,IAAI,OAAO,GAAG,OAAO,EAAE,GAAG;AAAA,IACzB,OAAO;AAAA,EACR;AAAA,EACA,MAAM,WAAW,OAAO,KAAK,EAAE,YAAY;AAAA,EAC3C,IAAI,CAAC,SAAS,SAAS,GAAG,GAAG;AAAA,IAC5B,OAAO;AAAA,EACR;AAAA,EACA,OAAO,cAAc,KAAK,eAAe,OAAO,SAAS,MAAM,GAAG;AAAA,EAClE,MAAM,WAAW,OAAO,SAAS,cAAc,EAAE;AAAA,EACjD,MAAM,WAAW,YAAY,WAAW,GAAG;AAAA,EAC3C,MAAM,WAAW,WAAW,YAAY,MAAM,CAAC,IAAI;AAAA,EACnD,OAAO,UAAU,KAAK,WAAW,MAAM,SAAS,MAAM,GAAG;AAAA,EACzD,MAAM,SAAS,GAAG,UAAU;AAAA,EAC5B,MAAM,eAAe,QAAQ,SAAS;AAAA,EACtC,IAAI;AAAA,EACJ,IAAI,gBAAgB,GAAG;AAAA,IACtB,SAAS,KAAK,IAAI,OAAO,CAAC,YAAY,IAAI;AAAA,EAC3C,EAAO,SAAI,gBAAgB,OAAO,QAAQ;AAAA,IACzC,SAAS,GAAG,SAAS,IAAI,OAAO,eAAe,OAAO,MAAM;AAAA,EAC7D,EAAO;AAAA,IACN,SAAS,GAAG,OAAO,MAAM,GAAG,YAAY,KAAK,OAAO,MAAM,YAAY;AAAA;AAAA,EAEvE,OAAO,WAAW,IAAI,WAAW;AAAA;AAKlC,SAAS,cAAc,CACtB,OACA,OACA,MACA,eACO;AAAA,EACP,IAAI,UAAU,MAAM;AAAA,IACnB,KAAK,MAAM;AAAA,IACX;AAAA,EACD;AAAA,EACA,IAAI,OAAO,UAAU,UAAU;AAAA,IAC9B,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,IAC1B;AAAA,EACD;AAAA,EACA,IAAI,OAAO,UAAU,WAAW;AAAA,IAC/B,KAAK,QAAQ,SAAS,OAAO;AAAA,IAC7B;AAAA,EACD;AAAA,EACA,IAAI,OAAO,UAAU,UAAU;AAAA,IAC9B,KAAK,iBAAiB,KAAK,CAAC;AAAA,IAC5B;AAAA,EACD;AAAA,EACA,IAAI,OAAO,UAAU,UAAU;AAAA,IAC9B,KAAK,MAAM,SAAS,EAAE,CAAC;AAAA,IACvB;AAAA,EACD;AAAA,EACA,IAAI,iBAAiB,MAAM;AAAA,IAC1B,IAAI,OAAO,MAAM,MAAM,QAAQ,CAAC,GAAG;AAAA,MAClC,MAAM,IAAI,MAAM,oCAAoC;AAAA,IACrD;AAAA,IACA,KAAK,MAAM,QAAQ,EAAE,SAAS,EAAE,CAAC;AAAA,IACjC;AAAA,EACD;AAAA,EACA,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACzB,IAAI,MAAM,IAAI,KAAK;AAAA,MAAG,MAAM,IAAI,MAAM,kCAAkC;AAAA,IACxE,MAAM,IAAI,KAAK;AAAA,IACf,KAAK,GAAG;AAAA,IACR,SAAS,QAAQ,EAAG,QAAQ,MAAM,QAAQ,SAAS,GAAG;AAAA,MACrD,IAAI,QAAQ;AAAA,QAAG,KAAK,GAAG;AAAA,MACvB,MAAM,QAAQ,MAAM;AAAA,MACpB,IAAI,UAAU;AAAA,QAAW,KAAK,MAAM;AAAA,MAC/B;AAAA,uBAAe,OAAO,OAAO,MAAM,aAAa;AAAA,IACtD;AAAA,IACA,KAAK,GAAG;AAAA,IACR,MAAM,OAAO,KAAK;AAAA,IAClB;AAAA,EACD;AAAA,EACA,IAAI,OAAO,UAAU,UAAU;AAAA,IAC9B,IAAI,MAAM,IAAI,KAAK;AAAA,MAAG,MAAM,IAAI,MAAM,kCAAkC;AAAA,IACxE,MAAM,IAAI,KAAK;AAAA,IACf,MAAM,UAAU,OAAO,QAAQ,KAAgC,EAC7D,OACA,EAAE,KAAK,WACN,UAAU,cAAc,CAAC,iBAAiB,CAAC,gBAAgB,IAAI,GAAG,EACpE,EACC,KAAK,EAAE,QAAQ,WAAW,KAAK,cAAc,KAAK,CAAC;AAAA,IACrD,KAAK,GAAG;AAAA,IACR,SAAS,QAAQ,EAAG,QAAQ,QAAQ,QAAQ,SAAS,GAAG;AAAA,MACvD,IAAI,QAAQ;AAAA,QAAG,KAAK,GAAG;AAAA,MACvB,OAAO,KAAK,SAAS,QAAQ;AAAA,MAC7B,KAAK,KAAK,UAAU,GAAG,CAAC;AAAA,MACxB,KAAK,GAAG;AAAA,MACR,eAAe,OAAO,OAAO,MAAM,aAAa;AAAA,IACjD;AAAA,IACA,KAAK,GAAG;AAAA,IACR,MAAM,OAAO,KAAK;AAAA,IAClB;AAAA,EACD;AAAA,EACA,MAAM,IAAI,MAAM,qCAAqC,OAAO,OAAO;AAAA;AAS7D,SAAS,eAAe,CAAC,OAAwB;AAAA,EACvD,MAAM,OAAO,WAAW,QAAQ;AAAA,EAChC,IAAI,UAAU;AAAA,EACd,eACC,OACA,IAAI,KACJ,CAAC,UAAU;AAAA,IACV,WAAW;AAAA,IACX,IAAI,QAAQ,UAAU,KAAK,MAAM;AAAA,MAChC,KAAK,OAAO,OAAO;AAAA,MACnB,UAAU;AAAA,IACX;AAAA,KAED,IACD;AAAA,EACA,IAAI;AAAA,IAAS,KAAK,OAAO,OAAO;AAAA,EAChC,OAAO,KAAK,OAAO,KAAK;AAAA;AAGlB,SAAS,oBAAoB,CAAC,OAAgB,OAAuB;AAAA,EAC3E,IAAI;AAAA,EACJ,IAAI,iBAAiB,MAAM;AAAA,IAC1B,YAAY,MAAM,QAAQ;AAAA,EAC3B,EAAO,SAAI,OAAO,UAAU,UAAU;AAAA,IACrC,YAAY;AAAA,EACb,EAAO,SAAI,OAAO,UAAU,YAAY,QAAQ,KAAK,MAAM,KAAK,CAAC,GAAG;AAAA,IACnE,YAAY,OAAO,MAAM,KAAK,CAAC;AAAA,EAChC,EAAO,SAAI,OAAO,UAAU,UAAU;AAAA,IACrC,YAAY,KAAK,MAAM,KAAK;AAAA,EAC7B,EAAO;AAAA,IACN,YAAY,OAAO;AAAA;AAAA,EAEpB,IAAI,CAAC,OAAO,cAAc,SAAS,KAAK,YAAY,GAAG;AAAA,IACtD,MAAM,IAAI,MAAM,GAAG,oDAAoD;AAAA,EACxE;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,oBAAoB,CAAC,UAAqC;AAAA,EAClE,IAAI,CAAE,uBAA6C,SAAS,SAAQ,MAAM,GAAG;AAAA,IAC5E,MAAM,IAAI,MAAM,+BAA+B,SAAQ,QAAQ;AAAA,EAChE;AAAA,EACA,IAAI,CAAE,cAAoC,SAAS,SAAQ,IAAI,GAAG;AAAA,IACjE,MAAM,IAAI,MAAM,6BAA6B,SAAQ,MAAM;AAAA,EAC5D;AAAA,EACA,IAAI,CAAE,aAAmC,SAAS,SAAQ,UAAU,GAAG;AAAA,IACtE,MAAM,IAAI,MAAM,4BAA4B,SAAQ,YAAY;AAAA,EACjE;AAAA,EACA,YAAY,OAAO,UAAU;AAAA,IAC5B,CAAC,iBAAiB,SAAQ,YAAY;AAAA,IACtC,CAAC,qBAAqB,SAAQ,eAAe;AAAA,IAC7C,CAAC,YAAY,SAAQ,QAAQ;AAAA,IAC7B,CAAC,UAAU,SAAQ,MAAM;AAAA,IACzB,CAAC,YAAY,SAAQ,QAAQ;AAAA,EAC9B,GAAY;AAAA,IACX,IAAI,CAAC,MAAM,KAAK;AAAA,MAAG,MAAM,IAAI,MAAM,GAAG,yBAAyB;AAAA,EAChE;AAAA;AA6CM,SAAS,iBAAiB,CAChC,UACA,YAC0B;AAAA,EAC1B,qBAAqB,QAAO;AAAA,EAC5B,OAAO;AAAA,IACN,QAAQ,SAAQ;AAAA,IAChB,eAAe,SAAQ;AAAA,IACvB,mBAAmB,SAAQ;AAAA,IAC3B,UAAU,SAAQ,SAAS,KAAK,EAAE,YAAY;AAAA,IAC9C,QAAQ,SAAQ,OAAO,KAAK;AAAA,IAC5B,cACC,SAAQ,aAAa,KAAK,KAAK,SAAQ,OAAO,KAAK,EAAE,QAAQ,KAAK,GAAG;AAAA,IACtE,eAAe,SAAQ,cAAc,KAAK,KAAK,SAAQ,OAAO,KAAK;AAAA,IACnE,YAAY,SAAQ;AAAA,IACpB,MAAM,SAAQ;AAAA,IACd,UAAU,SAAQ;AAAA,IAClB,aAAa,SAAQ;AAAA,IACrB,gBAAgB,WAAW;AAAA,IAC3B,kBAAkB,WAAW;AAAA,IAC7B,gBAAgB,WAAW;AAAA,IAC3B,mBAAmB,WAAW;AAAA,IAC9B,gBAAgB,SAAQ;AAAA,IACxB,oBAAoB,SAAQ;AAAA,IAC5B,cAAc,WAAW;AAAA,IACzB,qBAAqB,SAAQ,qBAAqB,IAAI;AAAA,EACvD;AAAA;;;AoB5SD;AAIA;;;ACJA,uBAAS;;;ACAT,SAAS,gBAAiB,CAAC,OAAO;AAAA,EAChC,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,IACrC,MAAM,OAAO,MAAM,WAAW,CAAC;AAAA,IAE/B,IAAI,QAAQ,SAAU,QAAQ,OAAQ;AAAA,MACpC,IAAI,MAAM,MAAM,SAAS,GAAG;AAAA,QAC1B,OAAO;AAAA,MACT;AAAA,MACA,MAAM,OAAO,MAAM,WAAW,IAAI,CAAC;AAAA,MACnC,IAAI,EAAE,QAAQ,SAAU,QAAQ,QAAS;AAAA,QACvC,OAAO;AAAA,MACT;AAAA,MACA;AAAA,IACF,EAAO,SAAI,QAAQ,SAAU,QAAQ,OAAQ;AAAA,MAC3C,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAGT,SAAwB,YAAa,CAAC,QAAQ,OAAO,IAAI,KAAO;AAAA,EAC9D,IAAI,OAAO,WAAW,YAAY,MAAM,MAAM,GAAG;AAAA,IAC/C,MAAM,IAAI,MAAM,oBAAoB;AAAA,EACtC;AAAA,EAEA,IAAI,OAAO,WAAW,YAAY,CAAC,SAAS,MAAM,GAAG;AAAA,IACnD,MAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AAAA,EAEA,IAAI,OAAO,WAAW,YAAY,iBAAiB,MAAM,GAAG;AAAA,IAC1D,MAAM,IAAI,MAAM,+BAA+B;AAAA,EACjD;AAAA,EAEA,IAAI,WAAW,QAAQ,OAAO,WAAW,UAAU;AAAA,IACjD,OAAO,KAAK,UAAU,MAAM;AAAA,EAC9B;AAAA,EAEA,IAAI,OAAO,OAAO,WAAW,YAAY;AAAA,IACvC,IAAI,KAAK,IAAI,MAAM,GAAG;AAAA,MACpB,MAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AAAA,IACA,KAAK,IAAI,MAAM;AAAA,IACf,MAAM,UAAS,aAAa,OAAO,OAAO,GAAG,IAAI;AAAA,IACjD,KAAK,OAAO,MAAM;AAAA,IAClB,OAAO;AAAA,EACT;AAAA,EAEA,IAAI,KAAK,IAAI,MAAM,GAAG;AAAA,IACpB,MAAM,IAAI,MAAM,6BAA6B;AAAA,EAC/C;AAAA,EACA,KAAK,IAAI,MAAM;AAAA,EAEf,IAAI;AAAA,EACJ,IAAI,MAAM,QAAQ,MAAM,GAAG;AAAA,IACzB,MAAM,SAAS,OAAO,IAAI,CAAC,OAAO;AAAA,MAChC,MAAM,QAAQ,OAAO,aAAa,OAAO,OAAO,WAAW,OAAO;AAAA,MAClE,OAAO,aAAa,OAAO,IAAI;AAAA,KAChC;AAAA,IACD,SAAS,IAAI,OAAO,KAAK,GAAG;AAAA,EAC9B,EAAO;AAAA,IACL,MAAM,QAAQ,CAAC;AAAA,IACf,WAAW,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,GAAG;AAAA,MAC5C,IAAI,OAAO,SAAS,aAAa,OAAO,OAAO,SAAS,UAAU;AAAA,QAChE;AAAA,MACF;AAAA,MACA,MAAM,KAAK,GAAG,aAAa,GAAG,KAAK,aAAa,OAAO,MAAM,IAAI,GAAG;AAAA,IACtE;AAAA,IACA,SAAS,IAAI,MAAM,KAAK,GAAG;AAAA;AAAA,EAG7B,KAAK,OAAO,MAAM;AAAA,EAClB,OAAO;AAAA;;;AD/DF,SAAS,eAAe,CAAC,OAAwB;AAAA,EACvD,MAAM,WAAW,aAAa,KAAK;AAAA,EACnC,IAAI,aAAa,WAAW;AAAA,IAC3B,MAAM,IAAI,UAAU,6CAA6C;AAAA,EAClE;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,SAAS,CAAC,OAAwB;AAAA,EACjD,OAAO,YAAW,QAAQ,EACxB,OAAO,gBAAgB,KAAK,GAAG,MAAM,EACrC,OAAO,KAAK;AAAA;AAGR,SAAS,gBAAmD,CAClE,WACA,aAC6C;AAAA,EAC7C,OAAO,OAAO,YACb,OAAO,QAAQ,SAAQ,EAAE,OAAO,EAAE,SAAS,QAAQ,WAAW,CAC/D;AAAA;AAIM,SAAS,cAAiD,CAChE,WACA,aACS;AAAA,EACT,OAAO,UAAU,iBAAiB,WAAU,WAAW,CAAC;AAAA;AAGlD,SAAS,oBAAuD,CACtE,WACA,aACO;AAAA,EACP,MAAM,WAAW,UAAS,OAAO,WAAW;AAAA,EAC5C,IACC,OAAO,aAAa,YACpB,aAAa,eAAe,WAAU,WAAW,GAChD;AAAA,IACD,MAAM,IAAI,MACT,GAAG,OAAO,WAAW,4CACtB;AAAA,EACD;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEvCM,IAAM,8BACZ;AACM,IAAM,uBACZ;AACM,IAAM,4BACZ;AACM,IAAM,qBACZ;AACM,IAAM,oBAAoB;AAC1B,IAAM,wBACZ;AAED,IAAM,gCAAgC;AAAA,EACrC,WAAW;AAAA,EACX,UAAU;AAAA,EACV,gBAAgB;AAAA,IACf,WAAW;AAAA,IACX,iBAAiB;AAAA,EAClB;AAAA,EACA,oBAAoB;AAAA,IACnB,WAAW;AAAA,IACX,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,4BAA4B;AAAA,EAC7B;AAAA,EACA,UAAU;AAAA,IACT;AAAA,MACC,UAAU;AAAA,MACV,aAAa;AAAA,MACb,MAAM;AAAA,MACN,wBAAwB;AAAA,MACxB,sBAAsB;AAAA,MACtB,iBAAiB;AAAA,MACjB,oBAAoB,CAAC,wBAAwB;AAAA,MAC7C,iBAAiB,CAAC,sBAAsB;AAAA,MACxC,WAAW;AAAA,IACZ;AAAA,EACD;AACD;AAEO,IAAM,2BAA2B,OAAO,OAAO;AAAA,KAClD;AAAA,EACH,eAAe,UAAU,6BAA6B;AACvD,CAAC;AAED,IAAM,0BAA0B;AAAA,KAC5B;AAAA,EACH,WAAW;AAAA,EACX,UAAU;AAAA,IACT,GAAG,8BAA8B,SAAS,IAAI,CAAC,aAAa;AAAA,SACxD;AAAA,MACH,iBAAiB,CAAC,wBAAwB,WAAW;AAAA,IACtD,EAAE;AAAA,IACF;AAAA,MACC,UAAU;AAAA,MACV,aAAa;AAAA,MACb,MAAM;AAAA,MACN,wBAAwB;AAAA,MACxB,sBAAsB;AAAA,MACtB,iBAAiB;AAAA,MACjB,oBAAoB,CAAC,wBAAwB;AAAA,MAC7C,iBAAiB,CAAC,wBAAwB,WAAW;AAAA,MACrD,WAAW;AAAA,IACZ;AAAA,EACD;AACD;AAEO,IAAM,oBAAoB,OAAO,OAAO;AAAA,KAC3C;AAAA,EACH,eAAe,UAAU,uBAAuB;AACjD,CAAC;AAED,IAAM,8BAA8B;AAAA,EACnC,WAAW;AAAA,EACX,QAAQ;AAAA,IACP,WAAW;AAAA,IACX,WAAW,MAAM,OAAO,OAAO;AAAA,IAC/B,UAAU;AAAA,IACV,iBAAiB,KAAK,KAAK,KAAK;AAAA,IAChC,0BAA0B,IAAI,KAAK,KAAK,KAAK;AAAA,EAC9C;AAAA,EACA,gBAAgB;AAAA,IACf,WAAW;AAAA,IACX,eAAe,IAAI,KAAK,KAAK,KAAK;AAAA,IAClC,qBAAqB;AAAA,EACtB;AACD;AAEO,IAAM,yBAAyB,OAAO,OAAO;AAAA,KAChD;AAAA,EACH,eAAe,UAAU,2BAA2B;AACrD,CAAC;AAED,IAAM,wBAAwB;AAAA,KAC1B;AAAA,EACH,WAAW;AAAA,EACX,gBAAgB;AAAA,OACZ,4BAA4B;AAAA,IAC/B,eAAe,KAAK,KAAK,KAAK,KAAK;AAAA,EACpC;AACD;AAEO,IAAM,kBAAkB,OAAO,OAAO;AAAA,KACzC;AAAA,EACH,eAAe,UAAU,qBAAqB;AAC/C,CAAC;AAEM,IAAM,+BAA+B,OAAO,OAAO;AAAA,EACzD,WAAW;AAAA,EACX,eAAe,UAAU,8BAA8B,cAAc;AACtE,CAAC;AAEM,IAAM,mCAAmC,OAAO,OAAO;AAAA,EAC7D,WAAW;AAAA,EACX,eAAe,UAAU,8BAA8B,kBAAkB;AAC1E,CAAC;AAED,IAAM,kBAAkB;AAAA,EACvB,CAAC,+BAA+B,sBAAa;AAAA,EAC7C,CAAC,8BAA8B,qBAAY;AAAA,EAC3C,CAAC,sCAAsC,6BAAmB;AAAA,EAC1D,CAAC,yCAAyC,gCAAsB;AAAA,EAChE,CAAC,yCAAyC,gCAAsB;AACjE;AAEO,IAAM,mBAAmB,OAAO,OACtC,gBAAgB,IAAI,EAAE,MAAM,YAC3B,OAAO,OAAO;AAAA,EACb,WAAW,OAAO;AAAA,EAClB;AAAA,EACA,eAAe,UAAU,MAAM;AAAA,EAC/B;AACD,CAAC,CACF,CACD;AAEA,IAAM,wBAAwB;AAAA,EAC7B,WACC;AAAA,EACD,WAAW,iBAAiB,IAAI,GAAG,WAAW,MAAM,qBAAqB;AAAA,IACxE;AAAA,IACA;AAAA,IACA;AAAA,EACD,EAAE;AACH;AAEO,IAAM,kBAAkB,OAAO,OAAO;AAAA,KACzC;AAAA,EACH,iBAAiB,UAAU,qBAAqB;AACjD,CAAC;AAOM,SAAS,4BAA4B,CAC3C,QACO;AAAA,EACP,IAAI,eAAe,QAAQ,eAAe,MAAM,OAAO,eAAe;AAAA,IACrE,MAAM,IAAI,MAAM,sDAAsD;AAAA,EACvE;AAAA;;;AHjJM,IAAM,6BAA6B,uBAAkB;AACrD,IAAM,2BAA2B,8BAAwB;AACzD,IAAM,8BAA8B,iCAA2B;AAC/D,IAAM,8BAA8B,iCAA2B;AAC/D,IAAM,4BAA4B,sBAAiB;AAsJnD,IAAM,0BAA0B;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAuCA,SAAS,iBAAiB,CAAC,QAAkD;AAAA,EAC5E,QAAQ,UAAU,CAAC,GACjB,IACA,CAAC,UACA,GAAG,MAAM,gBAAgB,OAAO,MAAM,WAAW,cACnD,EACC,KAAK,IAAI;AAAA;AAGZ,SAAS,KAAQ,CAChB,UACA,UACW;AAAA,EACX,OAAO;AAAA,IACN,MAAM,CAAC,OAAmB;AAAA,MACzB,IAAI,CAAC,SAAS,KAAK,GAAG;AAAA,QACrB,MAAM,IAAI,MACT,kCAAkC,kBAAkB,SAAS,MAAM,GACpE;AAAA,MACD;AAAA,MACA,WAAW,KAAU;AAAA,MACrB,OAAO;AAAA;AAAA,IAER,EAAE,CAAC,OAA4B;AAAA,MAC9B,IAAI,CAAC,SAAS,KAAK;AAAA,QAAG,OAAO;AAAA,MAC7B,IAAI;AAAA,QACH,WAAW,KAAU;AAAA,QACrB,OAAO;AAAA,QACN,MAAM;AAAA,QACP,OAAO;AAAA;AAAA;AAAA,EAGV;AAAA;AAGD,SAAS,gBAAgB,CAAC,OAAe,OAAuB;AAAA,EAC/D,MAAM,SAAS,KAAK,MAAM,KAAK;AAAA,EAC/B,IACC,CAAC,OAAO,cAAc,MAAM,KAC5B,IAAI,KAAK,MAAM,EAAE,YAAY,MAAM,OAClC;AAAA,IACD,MAAM,IAAI,MAAM,GAAG,4CAA4C;AAAA,EAChE;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,wBAAwB,CAChC,UACA,OACO;AAAA,EACP,IACC,iBAAiB,SAAS,QAAQ,GAAG,cAAc,KACnD,iBAAiB,SAAS,UAAU,GAAG,gBAAgB,GACtD;AAAA,IACD,MAAM,IAAI,MAAM,GAAG,gDAAgD;AAAA,EACpE;AAAA;AAGD,IAAM,MAAM,IAAI,qBAAQ,EAAE,WAAW,MAAM,QAAQ,KAAK,CAAC;AACzD,IAAI,UAAU,gCAA0B;AACxC,IAAI,UAAU,gCAA0B;AACxC,IAAM,wBAAwB,IAAI,QAAQ,6BAAuB;AACjE,IAAM,2BAA2B,IAAI,UAAU,2BAA2B;AAC1E,IAAM,2BAA2B,IAAI,UAAU,2BAA2B;AAC1E,IAAM,0BAA0B,IAAI,QAAQ,sBAAiB;AAC7D,IAAM,yBAAyB,IAAI,QAAQ,qBAAgB;AAC3D,IAAI,CAAC,4BAA4B,CAAC,0BAA0B;AAAA,EAC3D,MAAM,IAAI,MAAM,iDAAiD;AAClE;AAEO,IAAM,qBAAqB,MACjC,uBACA,CAAC,UAAU;AAAA,EACV,qBAAqB,OAAO,cAAc;AAAA,EAC1C,IAAI,WAAW;AAAA,EACf,MAAM,YAAY,IAAI;AAAA,EACtB,YAAY,OAAO,WAAW,MAAM,QAAQ,QAAQ,GAAG;AAAA,IACtD,MAAM,KAAK,iBACV,OAAO,WACP,WAAW,kBACZ;AAAA,IACA,IAAI,MAAM;AAAA,MACT,MAAM,IAAI,MAAM,oDAAoD;AAAA,IACrE,IAAI,UAAU,IAAI,OAAO,SAAS;AAAA,MACjC,MAAM,IAAI,MAAM,0CAA0C;AAAA,IAC3D,UAAU,IAAI,OAAO,SAAS;AAAA,IAC9B,WAAW;AAAA,EACZ;AAAA,CAEF;AAEO,IAAM,wBAAwB,MACpC,0BACA,CAAC,cAAc;AAAA,EACd,qBAAqB,WAAW,kBAAkB;AAAA,EAClD,UAAU,oBAAoB,QAAQ,CAAC,UAAU,UAAU;AAAA,IAC1D,yBAAyB,UAAU,uBAAuB,QAAQ;AAAA,GAClE;AAAA,EACD,UAAU,mBAAmB,QAAQ,CAAC,UAAU,UAAU;AAAA,IACzD,yBAAyB,UAAU,sBAAsB,QAAQ;AAAA,GACjE;AAAA,EACD,UAAU,QAAQ,QAAQ,CAAC,QAAQ,UAAU;AAAA,IAC5C,yBAAyB,OAAO,UAAU,WAAW,iBAAiB;AAAA,GACtE;AAAA,EACD,IACC,UAAU,mBAAmB,aAC7B,UAAU,mBAAmB,WAAW,GACvC;AAAA,IACD,MAAM,IAAI,MAAM,qDAAqD;AAAA,EACtE;AAAA,CAEF;AAEA,SAAS,uBAAuB,CAC/B,SAC0B;AAAA,EAC1B,OAAO,OAAO,YACb,OAAO,QAAQ,OAAO,EAAE,OACvB,EAAE,SACD,QAAQ,gBACR,QAAQ,+BACR,QAAQ,aACV,CACD;AAAA;AAGM,SAAS,uBAAuB,CACtC,SAOS;AAAA,EACT,OAAO,UAAU,wBAAwB,OAA+B,CAAC;AAAA;AAGnE,IAAM,wBAAwB,MACpC,0BACA,CAAC,YAAY;AAAA,EACZ,yBAAyB,QAAQ,QAAQ,QAAQ;AAAA,EACjD,IACC,wBAAwB,OAAO,MAAM,QAAQ,2BAC5C;AAAA,IACD,MAAM,IAAI,MACT,mEACD;AAAA,EACD;AAAA,EACA,qBAAqB,SAAS,YAAY;AAAA,CAE5C;AAEO,IAAM,sBAAsB,MAClC,wBACA,CAAC,WAAW;AAAA,EACX,qBAAqB,QAAQ,eAAe;AAAA,EAC5C,MAAM,YAAY,iBAAiB,OAAO,YAAY,YAAY;AAAA,EAClE,MAAM,cAAc,iBAAiB,OAAO,cAAc,cAAc;AAAA,EACxE,IAAI,cAAc;AAAA,IACjB,MAAM,IAAI,MAAM,kCAAkC;AAAA,EACnD,IAAI,OAAO,QAAQ;AAAA,IAClB,sBAAsB,OAAO,OAAO,QAAQ,SAAS;AAAA,EACtD,IAAI,OAAO,QAAQ;AAAA,IAClB,sBAAsB,OAAO,OAAO,QAAQ,OAAO;AAAA,EACpD,IACC,OAAO,QAAQ,WAAW,eACzB,CAAC,OAAO,QAAQ,aAAa,CAAC,OAAO,QAAQ,UAC7C;AAAA,IACD,MAAM,IAAI,MAAM,iDAAiD;AAAA,EAClE;AAAA,EACA,IACC,OAAO,QAAQ,WAAW,qBAC1B,CAAC,OAAO,QAAQ,WACf;AAAA,IACD,MAAM,IAAI,MAAM,4CAA4C;AAAA,EAC7D;AAAA,CAEF;AAEA,SAAS,6BAA6B,CACrC,SAGC;AAAA,EACD,OAAO;AAAA,IACN,OAAO,QAAQ;AAAA,IACf,QAAQ,QAAQ;AAAA,IAChB,OAAO,QAAQ;AAAA,IACf,mBAAmB,QAAQ;AAAA,IAC3B,uBAAuB,QAAQ,eAAe;AAAA,IAC9C,iBAAiB,QAAQ;AAAA,IACzB,eAAe,QAAQ;AAAA,IACvB,2BAA2B,QAAQ;AAAA,IACnC,QAAQ,QAAQ;AAAA,EACjB;AAAA;AAGM,IAAM,uBAAuB;AAAA,EACnC,MAAM,CAAC,OAA+C;AAAA,IACrD,IAAI,CAAC,wBAAwB,KAAK,GAAG;AAAA,MACpC,MAAM,IAAI,MACT,kCAAkC,kBAAkB,wBAAwB,MAAM,GACnF;AAAA,IACD;AAAA,IACA,MAAM,UAAU;AAAA,IAChB,sBAAsB,OAAO,QAAQ,iBAAiB;AAAA,IACtD,yBAAyB,QAAQ,QAAQ,QAAQ;AAAA,IACjD,IAAI,QAAQ,oBAAoB,6BAA6B,OAAO,GAAG;AAAA,MACtE,MAAM,IAAI,MACT,0DACD;AAAA,IACD;AAAA,IACA,MAAM,0BAA0B;AAAA,MAC/B;AAAA,MACA;AAAA,IACD,EAAE,KACD,CAAC,WACA,QAAQ,aAAa,kBAAkB,cAAc,OAAO,aAC5D,QAAQ,aAAa,kBAAkB,kBACtC,OAAO,aACV;AAAA,IACA,MAAM,wBAAwB;AAAA,MAC7B;AAAA,MACA;AAAA,IACD,EAAE,KACD,CAAC,WACA,QAAQ,aAAa,gBAAgB,cAAc,OAAO,aAC1D,QAAQ,aAAa,gBAAgB,kBACpC,OAAO,aACV;AAAA,IACA,IAAI,CAAC,2BAA2B,CAAC,uBAAuB;AAAA,MACvD,MAAM,IAAI,MACT,iEACD;AAAA,IACD;AAAA,IACA,IACC,QAAQ,eAAe,aACtB,QAAQ,kBAAkB,eAAe,YAC1C,QAAQ,eAAe,iBACtB,QAAQ,kBAAkB,eAAe,gBAC1C,QAAQ,eAAe,gBACtB,QAAQ,kBAAkB,eAAe,aACzC;AAAA,MACD,MAAM,IAAI,MACT,mEACD;AAAA,IACD;AAAA,IACA,IACC,UAAU,QAAQ,KAAK,MAAM,UAAU,QAAQ,kBAAkB,KAAK,GACrE;AAAA,MACD,MAAM,IAAI,MAAM,gDAAgD;AAAA,IACjE;AAAA,IACA,IACC,UAAU,QAAQ,eAAe,MACjC,UAAU,QAAQ,kBAAkB,eAAe,GAClD;AAAA,MACD,MAAM,IAAI,MACT,0DACD;AAAA,IACD;AAAA,IACA,IAAI,QAAQ,kBAAkB,QAAQ,kBAAkB,eAAe;AAAA,MACtE,MAAM,IAAI,MAAM,wDAAwD;AAAA,IACzE;AAAA,IACA,OAAO,EAAE,MAAM,QAAQ;AAAA;AAAA,EAExB,EAAE,CAAC,OAA8C;AAAA,IAChD,IAAI;AAAA,MACH,KAAK,OAAO,KAAK;AAAA,MACjB,OAAO;AAAA,MACN,MAAM;AAAA,MACP,OAAO;AAAA;AAAA;AAGV;AAEO,SAAS,qBAAqB,CACpC,OACoB;AAAA,EACpB,OAAO,mBAAmB,OAAO;AAAA,OAC7B;AAAA,IACH,cAAc,eAAe,OAAO,cAAc;AAAA,EACnD,CAAC;AAAA;AAGK,SAAS,wBAAwB,CACvC,WACuB;AAAA,EACvB,OAAO,sBAAsB,OAAO;AAAA,OAChC;AAAA,IACH,kBAAkB,eAAe,WAAW,kBAAkB;AAAA,EAC/D,CAAC;AAAA;AAGK,SAAS,sBAAsB,CACrC,QAEwB;AAAA,EACxB,QAAQ,eAAe,kBAAkB,YAAY;AAAA,EACrD,OAAO,oBAAoB,OAAO;AAAA,OAC9B;AAAA,IACH,eAAe,eAAe,SAAS,eAAe;AAAA,EACvD,CAAC;AAAA;AAGK,IAAM,kCACZ;AAGM,IAAM,oCACZ;AACM,IAAM,2BAA2B;AACjC,IAAM,gCACZ;AACM,IAAM,mCACZ;AAED,IAAM,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AACxC,IAAM,SAAS,EAAE,OAAO,EAAE,MAAM,gBAAgB;AAChD,IAAM,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,OAAO,gBAAgB;AAEvE,IAAM,wBAAwB,EACnC,OAAO;AAAA,EACP,eAAe,EAAE,QAAQ,+BAA+B;AAAA,EACxD,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,gBAAgB,EACd,OAAO;AAAA,IACP,UAAU,EAAE,QAAQ,eAAe;AAAA,IACnC,wBAAwB,EAAE,MAAM,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EACxD,CAAC,EACA,OAAO;AAAA,EACT,OAAO,EACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aAAa;AAAA,IACb,cAAc;AAAA,IACd,YAAY,EAAE,KAAK,CAAC,QAAQ,QAAQ,QAAQ,CAAC;AAAA,IAC7C,MAAM,EAAE,QAAQ,WAAW;AAAA,EAC5B,CAAC,EACA,OAAO;AAAA,EACT,QAAQ,EACN,OAAO,EAAE,aAAa,aAAa,WAAW,YAAY,CAAC,EAC3D,OAAO,EACP,OAAO,GAAG,aAAa,gBAAgB,YAAY,aAAa;AAAA,IAChE,SAAS;AAAA,EACV,CAAC;AAAA,EACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACtC,kBAAkB,EAAE,KAAK;AAAA,IACxB;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EACD,wBAAwB,EAAE,MAAM,WAAW,EAAE,IAAI,CAAC,EAAE,IAAI,GAAO;AAAA,EAC/D,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,QAAU;AAAA,EAChE,cAAc,EAAE,KAAK,CAAC,wBAAwB,WAAW,CAAC;AAAA,EAC1D,SAAS,EACP,OAAO;AAAA,IACP,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM;AAAA,IAC5C,UAAU,EACR,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,EACL,IAAI,MAAM,OAAO,OAAO,IAAI;AAAA,IAC9B,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAa;AAAA,IAClD,eAAe,EACb,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,EACL,IAAI,KAAK,KAAK,KAAK,IAAK;AAAA,IAC1B,uBAAuB,EACrB,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,IAAI,IAAI,KAAK,KAAK,KAAK,IAAK;AAAA,EAC/B,CAAC,EACA,OAAO;AAAA,EACT,iBAAiB,EACf,OAAO;AAAA,IACP,aAAa,EAAE,QAAQ,uBAAuB;AAAA,IAC9C,gBAAgB,SAAS,SAAS;AAAA,IAClC,wBAAwB;AAAA,IACxB,mBAAmB,EAAE,QAAQ,0BAA0B;AAAA,EACxD,CAAC,EACA,OAAO;AACV,CAAC,EACA,OAAO,EACP,YAAY,CAAC,SAAS,aAAY;AAAA,EAClC,MAAM,UAAU,QAAQ;AAAA,EACxB,SAAS,QAAQ,EAAG,QAAQ,QAAQ,QAAQ,SAAS,GAAG;AAAA,IACvD,MAAM,SAAS,QAAQ;AAAA,IACvB,IACC,SAAS,QAAQ,OAAO,eACxB,UAAU,QAAQ,OAAO,WACxB;AAAA,MACD,SAAQ,SAAS;AAAA,QAChB,MAAM;AAAA,QACN,MAAM,CAAC,0BAA0B,KAAK;AAAA,QACtC,SAAS;AAAA,MACV,CAAC;AAAA,IACF;AAAA,IACA,IAAI,QAAQ,KAAK,UAAW,QAAQ,QAAQ,IAAe;AAAA,MAC1D,SAAQ,SAAS;AAAA,QAChB,MAAM;AAAA,QACN,MAAM,CAAC,0BAA0B,KAAK;AAAA,QACtC,SAAS;AAAA,MACV,CAAC;AAAA,IACF;AAAA,EACD;AAAA,CACA;AAiBK,SAAS,0BAA0B,CAAC,OAGP;AAAA,EACnC,QAAQ,SAAS,qBAAqB,OAAO,MAAM,OAAO;AAAA,EAC1D,MAAM,gBAAgB,mBAAmB,OAAO,MAAM,aAAa;AAAA,EACnE,IACC,cAAc,aAAa,KAAK,eAAe,YAC/C,cAAc,iBAAiB,KAAK,eAAe,gBACnD,cAAc,QAAQ,WAAW,KAAK,eAAe,aACpD;AAAA,IACD,MAAM,IAAI,MAAM,yDAAyD;AAAA,EAC1E;AAAA,EACA,MAAM,cAAc,iBAAiB,KAAK,OAAO,UAAU,iBAAiB;AAAA,EAC5E,MAAM,YAAY,iBAAiB,KAAK,OAAO,QAAQ,eAAe;AAAA,EACtE,MAAM,yBAAyB,cAAc,QAAQ,IAAI,CAAC,QAAQ,UAAU;AAAA,IAC3E,MAAM,eAAe,iBACpB,OAAO,WACP,0BAA0B,kBAC3B;AAAA,IACA,IAAI,eAAe,eAAe,gBAAgB,WAAW;AAAA,MAC5D,MAAM,IAAI,MAAM,iDAAiD;AAAA,IAClE;AAAA,IACA,OAAO;AAAA,GACP;AAAA,EACD,MAAM,oBAAoB,kBAAkB,SAAS,KACpD,CAAC,YACA,QAAQ,aAAa,KAAK,MAAM,YAChC,QAAQ,gBAAgB,KAAK,MAAM,eACnC,QAAQ,SAAS,KAAK,MAAM,QAC5B,QAAQ,2BAA2B,KAAK,MAAM,YAChD;AAAA,EACA,MAAM,iBAAiB,CAAC,iBAAiB,sBAAsB,EAAE,KAChE,CAAC,WACA,KAAK,aAAa,gBAAgB,cAAc,OAAO,aACvD,KAAK,aAAa,gBAAgB,kBAAkB,OAAO,aAC7D;AAAA,EACA,IAAI,CAAC,gBAAgB;AAAA,IACpB,MAAM,IAAI,MAAM,4CAA4C;AAAA,EAC7D;AAAA,EACA,OAAO;AAAA,IACN,eAAe;AAAA,IACf,WAAW,KAAK;AAAA,IAChB,gBAAgB,KAAK;AAAA,IACrB,gBAAgB;AAAA,MACf,UAAU;AAAA,MACV,wBAAwB;AAAA,QACvB,kBAAkB,eAAe;AAAA,MAClC;AAAA,IACD;AAAA,IACA,OAAO;AAAA,MACN,UAAU,KAAK,MAAM;AAAA,MACrB,aAAa,KAAK,MAAM;AAAA,MACxB,cACC,mBAAmB,mBAAmB,KAAK,MAAM;AAAA,MAClD,YAAY,KAAK,MAAM;AAAA,MACvB,MAAM,KAAK,MAAM;AAAA,IAClB;AAAA,IACA,QAAQ,EAAE,aAAa,UAAU;AAAA,IACjC,OAAO,KAAK;AAAA,IACZ,kBAAkB,KAAK;AAAA,IACvB;AAAA,IACA,mBAAmB,KAAK,gBAAgB;AAAA,IACxC,cAAc,KAAK;AAAA,IACnB,SAAS;AAAA,MACR,UAAU,eAAe,OAAO;AAAA,MAChC,UAAU,eAAe,OAAO;AAAA,MAChC,SAAS,eAAe,OAAO;AAAA,MAC/B,eAAe,eAAe,OAAO;AAAA,MACrC,uBAAuB,KAAK,IAC3B,eAAe,OAAO,0BACtB,kBAAkB,mBAAmB,0BACtC;AAAA,IACD;AAAA,IACA,iBAAiB;AAAA,MAChB,aAAa;AAAA,MACb,wBAAwB;AAAA,MACxB,mBAAmB;AAAA,IACpB;AAAA,IACA,WAAW,KAAK;AAAA,IAChB,QAAQ,KAAK;AAAA,IACb,gBAAgB,KAAK;AAAA,IACrB;AAAA,IACA,kBAAkB,KAAK;AAAA,IACvB,yBAAyB,KAAK;AAAA,IAC9B,aAAa,KAAK;AAAA,IAClB,2BAA2B,KAAK;AAAA,IAChC;AAAA,EACD;AAAA;AAQM,SAAS,sBAAsB,CACrC,SAG4B;AAAA,EAC5B;AAAA,IACC,WAAW;AAAA,IACX,gBAAgB;AAAA,OACb;AAAA,MACA;AAAA,EACJ,OAAO;AAAA;AAgBD,SAAS,4BAA4B,CAAC,SAA0B;AAAA,EACtE,IAAI,CAAC,WAAW,OAAO,YAAY,UAAU;AAAA,IAC5C,MAAM,IAAI,UAAU,oCAAoC;AAAA,EACzD;AAAA,EACA,IAAI,eAAe,SAAS;AAAA,IAC3B,OAAO,UACN,8BACC,OAGD,CACD;AAAA,EACD;AAAA,EACA,OAAO,gBACN,uBACC,OAGD,CACD;AAAA;AAwCD,IAAM,+BAA+B,EACnC,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,EACpC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AACpC,CAAC,EACA,OAAO;AAiDF,IAAM,yBAAsD,EACjE,OAAO;AAAA,EACP,eAAe,EAAE,QAAQ,iCAAiC;AAAA,EAC1D,WAAW;AAAA,EACX,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,QAAQ,EAAE,QAAQ,SAAS;AAAA,EAC3B,QAAQ,EAAE,QAAQ,wBAAwB;AAAA,EAC1C,UAAU,EAAE,QAAQ,eAAe;AAAA,EACnC,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY,EAAE,KAAK,CAAC,QAAQ,QAAQ,QAAQ,CAAC;AAAA,EAC7C,MAAM,EAAE,QAAQ,WAAW;AAAA,EAC3B,aAAa;AAAA,EACb,WAAW;AAAA,EACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACtC,kBAAkB,EAAE,KAAK;AAAA,IACxB;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EACD,wBAAwB;AAAA,EACxB,mBAAmB,EAAE,QAAQ,0BAA0B;AAAA,EACvD,sBAAsB;AAAA,EACtB,yBAAyB;AAAA,EACzB,cAAc;AAAA,EACd,cAAc;AAAA,EACd,cAAc,EAAE,QAAQ,IAAI;AAAA,EAC5B,kBAAkB,EAAE,QAAQ,IAAI;AAAA,EAChC,gBAAgB,EAAE,MAAM,4BAA4B,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM;AAAA,EACvE,oBAAoB;AACrB,CAAC,EACA,OAAO,EACP,OAAO,GAAG,WAAW,kBAAkB,YAAY,aAAa;AAAA,EAChE,SAAS;AACV,CAAC;;;AIl5BK,SAAS,kBAAkB,CAAC,SAAyC;AAAA,EAC3E,OAAO,gBAAgB,OAAO;AAAA;AAG/B,SAAS,8BAA8B,CACtC,QACA,oBACmB;AAAA,EACnB,OAAO,uBAAuB,MAAM;AAAA,OAChC;AAAA,IACH,WAAW,mBAAmB,MAAM;AAAA,IACpC;AAAA,EACD,CAAC;AAAA;AAkBK,SAAS,wBAAwB,CACvC,SACA,oBAC0C;AAAA,EAC1C,IAAI,eAAe,SAAS;AAAA,IAC3B;AAAA,MACC,YAAY;AAAA,MACZ,2BAA2B;AAAA,SACxB;AAAA,QACA;AAAA,IACJ,MAAM,4BACL,wBAAwB,oBAAoB;AAAA,IAC7C,MAAM,UAAU,KAAK,sBAAsB,0BAA0B;AAAA,IACrE,OAAO,sBAAsB,OAAO;AAAA,SAChC;AAAA,MACH,YAAY,eAAe,SAAS,YAAY;AAAA,IACjD,CAAC;AAAA,EACF;AAAA,EACA,IAAI,uBAAuB,WAAW;AAAA,IACrC,MAAM,IAAI,UAAU,sDAAsD;AAAA,EAC3E;AAAA,EACA,OAAO,+BAA+B,SAAS,kBAAkB;AAAA;AAG3D,SAAS,4BAA4B,CAC3C,cACqB;AAAA,EACrB,IAAI,eAAe,cAAc;AAAA,IAChC,MAAM,WAAU,sBAAsB,OAAO,YAAY;AAAA,IACzD,OAAO;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,QACJ,QAAQ,SAAQ;AAAA,QAChB,gBAAgB,SAAQ;AAAA,QACxB,aAAa,SAAQ;AAAA,QACrB,eAAe;AAAA,QACf,wBAAwB,SAAQ;AAAA,QAChC,YAAY,SAAQ;AAAA,QACpB,2BAA2B,SAAQ;AAAA,QACnC,YAAY,SAAQ;AAAA,QACpB,iBAAiB,SAAQ;AAAA,QACzB,QAAQ;AAAA,QACR,mBAAmB,SAAQ;AAAA,QAC3B,UAAU,SAAQ;AAAA,QAClB,iBAAiB,SAAQ;AAAA,QACzB,UAAU,SAAQ,MAAM;AAAA,QACxB,cAAc,SAAQ,MAAM;AAAA,QAC5B,YAAY,SAAQ,MAAM;AAAA,QAC1B,MAAM,SAAQ,MAAM;AAAA,QACpB,iBAAiB,KAAK,MAAM,SAAQ,OAAO,QAAQ;AAAA,QACnD,eAAe,KAAK,MAAM,SAAQ,OAAO,MAAM;AAAA,QAC/C,aAAa,SAAQ;AAAA,QACrB,mBAAmB,SAAQ;AAAA,QAC3B,gBAAgB;AAAA,QAChB,yBAAyB,SAAQ,iBAAiB;AAAA,QAClD,oBAAoB;AAAA,QACpB,sBAAsB,gBAAgB,SAAQ,eAAe;AAAA,QAC7D,kBAAkB,SAAQ;AAAA,QAC1B,sBACC,SAAQ,mBAAmB,kBAAkB;AAAA,QAC9C,0BACC,SAAQ,mBAAmB,kBAAkB;AAAA,QAC9C,oBACC,SAAQ,mBAAmB,gBAAgB;AAAA,QAC5C,wBACC,SAAQ,mBAAmB,gBAAgB;AAAA,QAC5C,mBAAmB,SAAQ,mBAAmB,eAAe;AAAA,QAC7D,uBACC,SAAQ,mBAAmB,eAAe;AAAA,QAC3C,uBACC,SAAQ,mBAAmB,mBAAmB;AAAA,QAC/C,2BACC,SAAQ,mBAAmB,mBAAmB;AAAA,QAC/C,wBAAwB,SAAQ;AAAA,QAChC,2BAA2B,SAAQ;AAAA,QACnC,eAAe,SAAQ;AAAA,QACvB,eAAe,SAAQ;AAAA,QACvB,eAAe;AAAA,QACf,mBAAmB;AAAA,QACnB,sBAAsB,gBAAgB,SAAQ,eAAe;AAAA,QAC7D,cAAc,gBAAgB,QAAO;AAAA,QACrC,sBAAsB,KAAK,MAAM,SAAQ,WAAW;AAAA,MACrD;AAAA,IACD;AAAA,EACD;AAAA,EACA,MAAM,UAAU,uBAAuB,MAAM,YAAY;AAAA,EACzD,IACC,mBACC,OAAO,YACN,OAAO,QAAQ,OAAO,EAAE,OACvB,EAAE,SAAS,QAAQ,eAAe,QAAQ,oBAC3C,CACD,CACD,MAAM,QAAQ,WACb;AAAA,IACD,MAAM,IAAI,MAAM,qCAAqC;AAAA,EACtD;AAAA,EACA,OAAO;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,MACJ,QAAQ,QAAQ;AAAA,MAChB,eAAe;AAAA,MACf,wBAAwB,QAAQ;AAAA,MAChC,YAAY,QAAQ;AAAA,MACpB,YAAY,QAAQ;AAAA,MACpB,iBAAiB,QAAQ;AAAA,MACzB,QAAQ,QAAQ;AAAA,MAChB,mBAAmB,QAAQ;AAAA,MAC3B,UAAU,QAAQ;AAAA,MAClB,iBAAiB,QAAQ;AAAA,MACzB,UAAU,QAAQ;AAAA,MAClB,cAAc,QAAQ;AAAA,MACtB,YAAY,QAAQ;AAAA,MACpB,MAAM,QAAQ;AAAA,MACd,iBAAiB,QAAQ;AAAA,MACzB,eAAe,QAAQ;AAAA,MACvB,aAAa,QAAQ;AAAA,MACrB,mBAAmB,QAAQ;AAAA,MAC3B,gBAAgB,QAAQ;AAAA,MACxB,oBAAoB,QAAQ;AAAA,MAC5B,wBAAwB,QAAQ;AAAA,MAChC,2BAA2B,QAAQ;AAAA,MACnC,eAAe,QAAQ;AAAA,MACvB,eAAe,QAAQ;AAAA,MACvB,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,sBAAsB,KAAK,UAAU,QAAQ,cAAc;AAAA,MAC3D,sBAAsB,QAAQ;AAAA,IAC/B;AAAA,EACD;AAAA;AAGM,SAAS,8BAA8B,CAC7C,KAC0C;AAAA,EAC1C,IAAI,OAAO,IAAI,iBAAiB,YAAY,IAAI,aAAa,SAAS,GAAG;AAAA,IACxE,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,SAAS,KAAK,MAAM,IAAI,YAAY;AAAA,MACnC,MAAM;AAAA,MACP,MAAM,IAAI,MAAM,mCAAmC;AAAA;AAAA,IAEpD,MAAM,WAAU,sBAAsB,OAAO,MAAM;AAAA,IACnD,IACC,SAAQ,eAAe,IAAI,cAC3B,SAAQ,8BAA8B,IAAI,2BACzC;AAAA,MACD,MAAM,IAAI,MAAM,6CAA6C;AAAA,IAC9D;AAAA,IACA,OAAO;AAAA,EACR;AAAA,EACA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,iBAAiB,KAAK,MAAM,OAAO,IAAI,oBAAoB,CAAC;AAAA,IAC3D,MAAM;AAAA,IACP,MAAM,IAAI,MAAM,2CAA2C;AAAA;AAAA,EAE5D,MAAM,UAAU,uBAAuB,MAAM;AAAA,IAC5C,eAAe,IAAI;AAAA,IACnB,WAAW,IAAI;AAAA,IACf,WAAW,IAAI;AAAA,IACf,gBAAgB,IAAI;AAAA,IACpB,QAAQ,IAAI;AAAA,IACZ,QAAQ,IAAI;AAAA,IACZ,UAAU,IAAI;AAAA,IACd,gBAAgB,IAAI;AAAA,IACpB,iBAAiB,IAAI;AAAA,IACrB,UAAU,IAAI;AAAA,IACd,aAAa,IAAI;AAAA,IACjB,YAAY,IAAI;AAAA,IAChB,MAAM,IAAI;AAAA,IACV,aAAa,IAAI;AAAA,IACjB,WAAW,IAAI;AAAA,IACf,OAAO,IAAI;AAAA,IACX,kBAAkB,IAAI;AAAA,IACtB,wBAAwB,IAAI;AAAA,IAC5B,mBAAmB,IAAI;AAAA,IACvB,sBAAsB,IAAI;AAAA,IAC1B,yBAAyB,IAAI;AAAA,IAC7B,cAAc,IAAI;AAAA,IAClB,cAAc,IAAI;AAAA,IAClB,cAAc,IAAI,kBAAkB;AAAA,IACpC,kBAAkB,IAAI,sBAAsB;AAAA,IAC5C;AAAA,IACA,oBAAoB,IAAI;AAAA,EACzB,CAAC;AAAA,EACD;AAAA,IACC;AAAA,IACA,oBAAoB;AAAA,OACjB;AAAA,MACA;AAAA,EACJ,IAAI,mBAAmB,MAAM,MAAM,WAAW;AAAA,IAC7C,MAAM,IAAI,MAAM,qCAAqC;AAAA,EACtD;AAAA,EACA,OAAO;AAAA;;;AC5MR,SAAS,cAAc,CAAC,cAAqB,OAAuB;AAAA,EACnE,IAAI,CAAC,OAAO,cAAc,YAAW,KAAK,eAAc,GAAG;AAAA,IAC1D,MAAM,IAAI,MAAM,GAAG,2CAA2C;AAAA,EAC/D;AAAA,EACA,OAAO,IAAI,KAAK,YAAW,EAAE,YAAY;AAAA;AAG1C,SAAS,mCAAmC,CAC3C,SACA,WACO;AAAA,EACP,IAAI,CAAC,QAAQ,iBAAiB,CAAC,QAAQ,gBAAgB;AAAA,IACtD,MAAM,IAAI,MAAM,uDAAuD;AAAA,EACxE;AAAA,EACA,MAAM,gBAAgB;AAAA,IACrB,UAAU,QAAQ,MAAM;AAAA,IACxB,cAAc,QAAQ,MAAM;AAAA,IAC5B,aAAa,QAAQ,MAAM;AAAA,IAC3B,MAAM,QAAQ,MAAM;AAAA,EACrB;AAAA,EACA,IACC,UAAU,UAAU,KAAK,MAAM,UAAU,aAAa,KACtD,UAAU,eAAe,aAAa,QAAQ,cAAc,YAC5D,UAAU,eAAe,iBACxB,QAAQ,cAAc,gBACvB,UAAU,eAAe,gBACxB,QAAQ,cAAc,QAAQ,UAC/B,UAAU,UAAU,eAAe,MAClC,UAAU,QAAQ,cAAc,KACjC,UAAU,kBAAkB,QAAQ,cACnC;AAAA,IACD,MAAM,IAAI,MAAM,yDAAyD;AAAA,EAC1E;AAAA;AAGD,SAAS,eAAe,CACvB,SACA,SAC0B;AAAA,EAC1B,MAAM,yBAAyB,QAAQ,OACtC,CAAC,WACA,OAAO,kBAAkB,gCACzB,OAAO,eAAe,UAAU,WAClC;AAAA,EACA,MAAM,oBAAoB,QAAQ,OACjC,CAAC,WAAW,OAAO,kBAAkB,oBACtC;AAAA,EACA,IAAI,QAAQ,iBAAiB,wBAAwB;AAAA,IACpD,MAAM,gBAAgB,cAAc,SAAS,sBAAsB;AAAA,IACnE,OAAO,cAAc,WAAW,QAAQ,uBAAuB,SAC5D,yBACA;AAAA,EACJ;AAAA,EACA,OAAO,CAAC,GAAG,mBAAmB,GAAG,sBAAsB;AAAA;AAGxD,SAAS,cAAc,CACtB,SACA,QACS;AAAA,EACT,IAAI,QAAQ,iBAAiB,aAAa;AAAA,IACzC,OAAO,WAAW,uBAAuB,IAAI;AAAA,EAC9C;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,aAAa,CACrB,SACA,SAIE;AAAA,EACF,OAAO,QAAQ,uBAAuB,QAAQ,CAAC,iBAAiB;AAAA,IAC/D,MAAM,aAAa,QAAQ,QAAQ,CAAC,WACnC,OAAO,eACL,OACA,CAAC,WACA,OAAO,oBAAoB,OAAO,mBAClC,OAAO,gBAAgB,gBACvB,eAAe,OAAO,gBAAgB,QAAQ,iBAChD,EACC,IAAI,CAAC,YAAY,EAAE,QAAQ,OAAO,EAAE,CACvC;AAAA,IACA,WAAW,KAAK,CAAC,MAAM,UAAU;AAAA,MAChC,MAAM,SACL,eAAe,SAAS,KAAK,OAAO,aAAa,IACjD,eAAe,SAAS,MAAM,OAAO,aAAa;AAAA,MACnD,IAAI,WAAW;AAAA,QAAG,OAAO;AAAA,MACzB,IAAI,KAAK,OAAO,iBAAiB,MAAM,OAAO,cAAc;AAAA,QAC3D,OAAO,MAAM,OAAO,eAAe,KAAK,OAAO;AAAA,MAChD;AAAA,MACA,OAAO,KAAK,OAAO,gBAAgB,cAClC,MAAM,OAAO,eACd;AAAA,KACA;AAAA,IACD,OAAO,WAAW,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC;AAAA,GAC1C;AAAA;AAGK,SAAS,uBAAuB,CAAC,OAKf;AAAA,EACxB,IAAI,MAAM,oBAAoB,WAAW;AAAA,IACxC,MAAM,SAAS,sBAAsB,OAAO,MAAM,eAAe;AAAA,IACjE,oCAAoC,MAAM,SAAS,MAAM;AAAA,IACzD,OAAO;AAAA,EACR;AAAA,EACA,QAAQ,YAAY;AAAA,EACpB,IAAI,CAAC,QAAQ,iBAAiB,CAAC,QAAQ,gBAAgB;AAAA,IACtD,MAAM,IAAI,MAAM,uDAAuD;AAAA,EACxE;AAAA,EACA,MAAM,WAAW,gBAAgB,SAAS,MAAM,OAAO;AAAA,EACvD,MAAM,gBAAgB,cAAc,SAAS,QAAQ;AAAA,EACrD,MAAM,oBAAoB,IAAI,IAC7B,cAAc,IAAI,GAAG,aAAa,OAAO,eAAe,CACzD;AAAA,EACA,MAAM,kBAAkB,SACtB,OAAO,CAAC,WAAW,kBAAkB,IAAI,OAAO,eAAe,CAAC,EAChE,KAAK,CAAC,MAAM,UAAU;AAAA,IACtB,MAAM,SACL,eAAe,SAAS,KAAK,aAAa,IAC1C,eAAe,SAAS,MAAM,aAAa;AAAA,IAC5C,OACC,UAAU,KAAK,gBAAgB,cAAc,MAAM,eAAe;AAAA,GAEnE;AAAA,EACF,MAAM,oBAAoB,IAAI;AAAA,EAC9B,WAAW,WAAW,eAAe;AAAA,IACpC,MAAM,WAAW,GAAG,QAAQ,OAAO,mBAAmB,QAAQ,OAAO,gBAAgB,QAAQ,OAAO,cAAc,QAAQ,OAAO;AAAA,IACjI,kBAAkB,IAAI,UAAU,OAAO;AAAA,EACxC;AAAA,EACA,MAAM,iBAAiB,CAAC,GAAG,kBAAkB,OAAO,CAAC,EACnD,KACA,CAAC,MAAM,UACN,KAAK,OAAO,eAAe,MAAM,OAAO,gBACxC,KAAK,OAAO,gBAAgB,cAAc,MAAM,OAAO,eAAe,CACxE,EACC,IAAI,GAAG,QAAQ,cAAc;AAAA,IAC7B,mBAAmB,OAAO;AAAA,IAC1B,gBAAgB,OAAO;AAAA,IACvB,aAAa,OAAO;AAAA,IACpB,aAAa,eAAe,OAAO,cAAc,qBAAqB;AAAA,IACtE,6BAA6B,OAAO;AAAA,IACpC,cAAc;AAAA,MACb,gBAAgB,OAAO;AAAA,MACvB,wBACC,OAAO,eAAe,wBAAwB;AAAA,MAC/C,YAAY,OAAO,eAAe,aAAa;AAAA,IAChD;AAAA,EACD,EAAE;AAAA,EACH,MAAM,gBACL,cAAc,WAAW,QAAQ,uBAAuB,SACrD,aACA,SAAS,WAAW,IACnB,YACA;AAAA,EACL,MAAM,eAAe,QAAQ,OAAO;AAAA,EACpC,MAAM,aAAa,QAAQ,OAAO;AAAA,EAClC,OAAO,yBAAyB;AAAA,IAC/B,WAAW;AAAA,IACX,OAAO;AAAA,MACN,UAAU,QAAQ,MAAM;AAAA,MACxB,cAAc,QAAQ,MAAM;AAAA,MAC5B,aAAa,QAAQ,MAAM;AAAA,MAC3B,MAAM,QAAQ,MAAM;AAAA,IACrB;AAAA,IACA,gBAAgB;AAAA,MACf,UAAU,QAAQ,cAAc;AAAA,MAChC,cAAc,QAAQ,cAAc;AAAA,MACpC,aAAa,QAAQ,cAAc,QAAQ;AAAA,IAC5C;AAAA,IACA,iBAAiB,QAAQ;AAAA,IACzB,eAAe,QAAQ;AAAA,IACvB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,MACpB;AAAA,QACC,UAAU,eAAe,cAAc,cAAc;AAAA,QACrD,QAAQ,eAAe,YAAY,YAAY;AAAA,MAChD;AAAA,IACD;AAAA,IACA,oBAAoB,gBAAgB,IAAI,CAAC,YAAY;AAAA,MACpD,UAAU,eACT,KAAK,IAAI,cAAc,OAAO,WAAW,GACzC,yBACD;AAAA,MACA,QAAQ,eACP,KAAK,IAAI,YAAY,OAAO,SAAS,GACrC,uBACD;AAAA,MACA,mBAAmB,OAAO;AAAA,MAC1B,gBAAgB,OAAO;AAAA,IACxB,EAAE;AAAA,IACF,YACC,QAAQ,iBAAiB,cAAc,CAAC,WAAW,QAAQ,IAAI,CAAC,QAAQ;AAAA,IACzE,SAAS,gBAAgB,IAAI,CAAC,YAAY;AAAA,MACzC,mBAAmB,OAAO;AAAA,MAC1B,gBAAgB,OAAO;AAAA,MACvB,UAAU;AAAA,QACT,UAAU,eAAe,OAAO,aAAa,uBAAuB;AAAA,QACpE,QAAQ,eAAe,OAAO,WAAW,qBAAqB;AAAA,MAC/D;AAAA,MACA,eAAe,OAAO,gBACnB;AAAA,QACA,wBAAwB,OAAO,cAAc;AAAA,QAC7C,OAAO;AAAA,QACP,YAAY,OAAO,cAAc;AAAA,QACjC,2BACC,OAAO,cAAc;AAAA,MACvB,IACC;AAAA,IACJ,EAAE;AAAA,IACF,iBAAiB;AAAA,IACjB,aAAa;AAAA,MACZ,GAAG,IAAI,IACN,gBAAgB,QAAQ,CAAC,WACxB,OAAO,gBAAgB,CAAC,OAAO,cAAc,SAAS,IAAI,CAAC,CAC5D,CACD;AAAA,IACD,EAAE,KAAK;AAAA,IACP,yBAAyB;AAAA,MACxB,GAAG,IAAI,IACN,gBAAgB,QAAQ,CAAC,WACxB,OAAO,gBACJ,CAAC,OAAO,cAAc,oBAAoB,IAC1C,CAAC,CACL,CACD;AAAA,IACD,EAAE,KAAK;AAAA,IACP,aAAa,eAAe,MAAM,cAAc,aAAa;AAAA,EAC9D,CAAC;AAAA;AAGK,SAAS,4BAA4B,CAC3C,SACA,gBACqB;AAAA,EACrB,MAAM,YAAY,sBAAsB,OAAO,cAAc;AAAA,EAC7D,IACC,UAAU,eAAe,iBACxB,QAAQ,eAAe,gBACxB,UAAU,kBAAkB,QAAQ,iBACpC,UAAU,UAAU,KAAK,MAAM,UAAU,QAAQ,KAAK,KACtD,UAAU,UAAU,eAAe,MAAM,UAAU,QAAQ,eAAe,GACzE;AAAA,IACD,MAAM,IAAI,MAAM,0CAA0C;AAAA,EAC3D;AAAA,EACA,OAAO;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,MACJ,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,YAAY,QAAQ;AAAA,MACpB,iBAAiB,QAAQ;AAAA,MACzB,kBAAkB,UAAU;AAAA,MAC5B,gBAAgB,UAAU;AAAA,MAC1B,aAAa,UAAU;AAAA,MACvB,cAAc,gBAAgB,OAAO;AAAA,MACrC,gBAAgB,gBAAgB,SAAS;AAAA,MACzC,gBAAgB,KAAK,MAAM,UAAU,WAAW;AAAA,IACjD;AAAA,EACD;AAAA;AAGM,SAAS,8BAA8B,CAC7C,KACuB;AAAA,EACvB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,SAAS,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC;AAAA,IAC9C,gBAAgB,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC;AAAA,IAClD,MAAM;AAAA,IACP,MAAM,IAAI,MAAM,8CAA8C;AAAA;AAAA,EAE/D,MAAM,YAAY,sBAAsB,OAAO,MAAM;AAAA,EACrD,MAAM,UAAU,qBAAqB,OAAO,aAAa,EAAE;AAAA,EAC3D,6BAA6B,SAAS,SAAS;AAAA,EAC/C,IACC,IAAI,WAAW,uBACf,IAAI,kBAAkB,iCACtB,IAAI,eAAe,QAAQ,cAC3B,IAAI,oBAAoB,QAAQ,mBAChC,IAAI,qBAAqB,UAAU,oBACnC,IAAI,mBAAmB,UAAU,kBACjC,gBAAgB,IAAI,WAAW,MAC9B,gBAAgB,UAAU,WAAW,KACtC,IAAI,mBAAmB,KAAK,MAAM,UAAU,WAAW,GACtD;AAAA,IACD,MAAM,IAAI,MAAM,qDAAqD;AAAA,EACtE;AAAA,EACA,OAAO;AAAA;;;ACpUR,IAAM,eAAe;AAAA,EACpB,qCAAqC;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,4CAA4C;AAAA,IAC3C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;AAEA,SAAS,eAAe,CAAC,KAGvB;AAAA,EACD,IACC,IAAI,UAAU,uCACd,IAAI,UAAU,4CACb;AAAA,IACD,MAAM,IAAI,MACT,2DACD;AAAA,EACD;AAAA,EACA,MAAM,OAAO,aAAa,IAAI;AAAA,EAC9B,MAAM,WAAW,IAAI,IAAI;AAAA,EACzB,IAAI,OAAO,aAAa,YAAY,CAAC,iBAAiB,KAAK,QAAQ,GAAG;AAAA,IACrE,MAAM,IAAI,MAAM,0CAA0C;AAAA,EAC3D;AAAA,EACA,MAAM,SAAS,KAAK,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI;AAAA,EAC7C,IACC,OAAO,KACN,CAAC,UACA,OAAO,UAAU,YACjB,OAAO,UAAU,YACjB,UAAU,IACZ,GACC;AAAA,IACD,MAAM,IAAI,MAAM,0CAA0C;AAAA,EAC3D;AAAA,EACA,OAAO;AAAA,IACN,KAAK,GAAG,IAAI,YAAc,KAAK,UAAU,MAAM;AAAA,IAC/C;AAAA,EACD;AAAA;AAGM,SAAS,cAAc,CAAC,MAA6C;AAAA,EAC3E,MAAM,aAAa,KACjB,IAAI,eAAe,EACnB,KAAK,CAAC,MAAM,UACZ,KAAK,QAAQ,MAAM,MAChB,KAAK,SAAS,cAAc,MAAM,QAAQ,IAC1C,KAAK,IAAI,cAAc,MAAM,GAAG,CACpC;AAAA,EACD,OAAO,gBAAgB,UAAU;AAAA;AAGlC,SAAS,mBAAmB,CAC3B,UACA,QACU;AAAA,EACV,IAAI,SAAS,WAAW,OAAO;AAAA,IAAQ,OAAO;AAAA,EAC9C,MAAM,qBAAqB,SACzB,IAAI,eAAe,EACnB,IAAI,GAAG,KAAK,eAAe,GAAG,UAAY,UAAU,EACpD,KAAK;AAAA,EACP,MAAM,mBAAmB,OACvB,IAAI,eAAe,EACnB,IAAI,GAAG,KAAK,eAAe,GAAG,UAAY,UAAU,EACpD,KAAK;AAAA,EACP,OAAO,mBAAmB,MACzB,CAAC,UAAU,UAAU,aAAa,iBAAiB,MACpD;AAAA;AAGD,SAAS,qBAAqB,CAC7B,SACA,MACU;AAAA,EACV,OAAO,KAAK,MACX,GAAG,UACF,IAAI,gBAAgB,QAAQ,SAC5B,IAAI,sBAAsB,QAAQ,oBAClC,IAAI,mBAAmB,QAAQ,gBAAgB,sBACjD;AAAA;AAGD,SAAS,qBAAqB,CAC7B,SACA,MACA,uBACU;AAAA,EACV,MAAM,gBACL,yBACA,KACE,OACA,GAAG,YAAY,UAAU,0CAC1B,EACC,IAAI,GAAG,UAAU,IAAI,cAAc,GAEpC,IAAI,CAAC,UAAU;AAAA,IACf,IACC,OAAO,UAAU,aAChB,OAAO,UAAU,YAAY,CAAC,QAAQ,KAAK,KAAK,IAChD;AAAA,MACD;AAAA,IACD;AAAA,IACA,MAAM,SAAS,OAAO,KAAK;AAAA,IAC3B,OAAO,OAAO,cAAc,MAAM,KAAK,UAAU,IAAI,SAAS;AAAA,GAC9D,EACA,OAAO,CAAC,UAA2B,UAAU,SAAS,EACtD,KAAK,CAAC,MAAM,UAAU,OAAO,KAAK;AAAA,EACpC,OAAO,QAAQ,uBAAuB,MAAM,CAAC,WAAW;AAAA,IACvD,IAAI;AAAA,IACJ,WAAW,cAAc,cAAc;AAAA,MACtC,IAAI,aAAa;AAAA,QAAQ;AAAA,MACzB,QAAQ;AAAA,IACT;AAAA,IACA,OACC,UAAU,aACV,SAAS,SAAS,KAClB,SAAS,SAAS,QAAQ;AAAA,GAE3B;AAAA;AA2BK,SAAS,uBAAuB,CACtC,UAC0B;AAAA,EAC1B,MAAM,0BAA0B,eAAe,SAAS,aAAa;AAAA,EACrE,MAAM,OAAO;AAAA,IACZ;AAAA,IACA,cAAc,SAAS;AAAA,IACvB,cAAc,SAAS;AAAA,IACvB,cAAc,SAAS;AAAA,EACxB;AAAA,EACA,IAAI,CAAC,oBAAoB,SAAS,gBAAgB,SAAS,aAAa,GAAG;AAAA,IAC1E,OAAO;AAAA,SACH;AAAA,MACH,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,kBAAkB;AAAA,IACnB;AAAA,EACD;AAAA,EACA,IAAI,SAAS,kBAAkB,GAAG;AAAA,IACjC,OAAO;AAAA,SACH;AAAA,MACH,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,kBAAkB;AAAA,IACnB;AAAA,EACD;AAAA,EACA,IACC,SAAS,uBAAuB,SAAS,qBACzC,SAAS,uBAAuB,SAAS,mBACxC;AAAA,IACD,OAAO;AAAA,SACH;AAAA,MACH,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,kBAAkB;AAAA,IACnB;AAAA,EACD;AAAA,EACA,IAAI,CAAC,SAAS,cAAc;AAAA,IAC3B,OAAO;AAAA,SACH;AAAA,MACH,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,kBAAkB;AAAA,IACnB;AAAA,EACD;AAAA,EACA,IAAI,CAAC,sBAAsB,SAAS,SAAS,SAAS,aAAa,GAAG;AAAA,IACrE,OAAO;AAAA,SACH;AAAA,MACH,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,kBAAkB;AAAA,IACnB;AAAA,EACD;AAAA,EACA,IAAI,CAAC,SAAS,oBAAoB;AAAA,IACjC,OAAO;AAAA,SACH;AAAA,MACH,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,kBAAkB;AAAA,IACnB;AAAA,EACD;AAAA,EACA,MAAM,mBAAmB,sBACxB,SAAS,SACT,SAAS,eACT,SAAS,qBACV;AAAA,EACA,IAAI,CAAC,kBAAkB;AAAA,IACtB,OAAO;AAAA,SACH;AAAA,MACH,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,kBAAkB;AAAA,IACnB;AAAA,EACD;AAAA,EACA,OAAO;AAAA,OACH;AAAA,IACH,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,kBAAkB;AAAA,EACnB;AAAA;;;ACrND,IAAM,oBACL;AACD,IAAM,mBAAmB;AACzB,IAAM,oBAAoB;AAC1B,IAAM,mBAAmB;AAAA;AAEzB,MAAM,2BAA2B,MAAM;AAAA,EACjB;AAAA,EAArB,WAAW,CAAU,QAAgB;AAAA,IACpC,MAAM,MAAM;AAAA,IADQ;AAAA,IAEpB,KAAK,OAAO;AAAA;AAEd;AAEA,eAAe,YAAY,CAC1B,QACA,QACA,KACA,YACqC;AAAA,EACrC,IAAI;AAAA,IACH,OAAO,MAAM,OAAO,MAAM,KAAK,UAAU;AAAA,IACxC,MAAM;AAAA,IACP,MAAM,IAAI,mBAAmB,MAAM;AAAA;AAAA;AAIrC,SAAS,eAAe,CAAC,SAA0C;AAAA,EAClE,OAAO;AAAA,IACN,UAAU,QAAQ,MAAM;AAAA,IACxB,cAAc,QAAQ,MAAM;AAAA,IAC5B,eAAe,QAAQ,OAAO;AAAA,IAC9B,aAAa,QAAQ,OAAO;AAAA,IAC5B,aAAa,QAAQ;AAAA,IACrB,mBAAmB,QAAQ;AAAA,IAC3B,gBAAgB,QAAQ,gBAAgB;AAAA,EACzC;AAAA;AAGD,SAAS,WAAW,CAAC,QAAQ,IAAI;AAAA,EAChC,MAAM,SAAS,QAAQ,GAAG,WAAW;AAAA,EACrC,OAAO;AAAA,EACN;AAAA,MACI;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAGN,SAAS,WAAW,CAAC,KAA8B,OAAuB;AAAA,EACzE,MAAM,QAAQ,IAAI;AAAA,EAClB,MAAM,SAAS,OAAO,UAAU,WAAW,QAAQ,OAAO,KAAK;AAAA,EAC/D,IAAI,CAAC,OAAO,cAAc,MAAM,KAAK,SAAS,GAAG;AAAA,IAChD,MAAM,IAAI,MAAM,iBAAiB,sCAAsC;AAAA,EACxE;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,WAAW,CACnB,KACA,OACqB;AAAA,EACrB,MAAM,QAAQ,IAAI;AAAA,EAClB,IAAI,UAAU,QAAQ,UAAU;AAAA,IAAW;AAAA,EAC3C,IAAI,OAAO,UAAU,UAAU;AAAA,IAC9B,OAAO,OAAO,cAAc,KAAK,KAAK,SAAS,IAC5C,OAAO,KAAK,IACZ;AAAA,EACJ;AAAA,EACA,IAAI,OAAO,UAAU,YAAY,CAAC,QAAQ,KAAK,KAAK;AAAA,IAAG;AAAA,EACvD,MAAM,SAAS,OAAO,KAAK;AAAA,EAC3B,OAAO,UAAU,wBAA8B,SAAS;AAAA;AAGzD,SAAS,cAAc,CAAC,MAAkD;AAAA,EACzE,OAAO,gBACN,KACE,IAAI,CAAC,SAAS;AAAA,IACd,OAAO,OAAO,IAAI,SAAS,SAAS;AAAA,IACpC,aAAa,OAAO,IAAI,eAAe,EAAE;AAAA,IACzC,gBAAgB,YAAY,KAAK,gBAAgB;AAAA,IACjD,yBAAyB,OAAO,IAAI,2BAA2B,EAAE;AAAA,EAClE,EAAE,EACD,KAAK,CAAC,MAAM,UACZ,KAAK,mBAAmB,MAAM,iBAC3B,KAAK,wBAAwB,cAC7B,MAAM,uBACP,IACC,KAAK,iBAAiB,MAAM,cAChC,CACF;AAAA;AAGD,SAAS,aAAa,CACrB,SACA,MACU;AAAA,EACV,MAAM,QAAQ,KACZ,IAAI,CAAC,QAAQ,YAAY,KAAK,gBAAgB,CAAC,EAC/C,KAAK,CAAC,MAAM,UAAU,OAAO,KAAK;AAAA,EACpC,OAAO,QAAQ,uBAAuB,MAAM,CAAC,WAAW;AAAA,IACvD,IAAI;AAAA,IACJ,WAAW,cAAc,OAAO;AAAA,MAC/B,IAAI,aAAa;AAAA,QAAQ;AAAA,MACzB,QAAQ;AAAA,IACT;AAAA,IACA,OAAO,UAAU,aAAa,SAAS,SAAS,QAAQ;AAAA,GACxD;AAAA;AAGF,SAAS,aAAa,CACrB,OAGA,MACuB;AAAA,EACvB,OAAO,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE;AAAA;AAAA;AAGnC,MAAM,gCAAgC;AAAA,EAE1B;AAAA,EACA;AAAA,EAFlB,WAAW,CACO,QACA,SAChB;AAAA,IAFgB;AAAA,IACA;AAAA;AAAA,OAGZ,iBAAgB,CACrB,SACsC;AAAA,IACtC,MAAM,eAAe,MAAM,aAC1B,KAAK,QACL,yCACA;AAAA;AAAA;AAAA,YAID;AAAA,IACA,IAAI,aAAa,WAAW,GAAG;AAAA,MAC9B,MAAM,IAAI,MACT,8DACD;AAAA,IACD;AAAA,IACA,MAAM,iBAAiB;AAAA,MACtB,aAAa,OAAO,aAAa,IAAI,eAAe,EAAE;AAAA,MACtD,SAAS,OAAO,aAAa,IAAI,WAAW,EAAE;AAAA,IAC/C;AAAA,IACA,MAAM,eAAe,MAAM,aAC1B,KAAK,QACL,2CACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBASa,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAWZ,YAAY;AAAA;AAAA;AAAA;AAAA,QAKzB,gBAAgB,OAAO,CACxB;AAAA,IACA,IACC,aAAa,WAAW,KACxB,CAAC,OAAO,cAAc,OAAO,aAAa,IAAI,SAAS,CAAC,KACxD,OAAO,aAAa,IAAI,SAAS,IAAI,GACpC;AAAA,MACD,MAAM,IAAI,mBAAmB,0CAA0C;AAAA,IACxE;AAAA,IACA,IAAI,OAAO,aAAa,IAAI,SAAS,IAAI,GAAG;AAAA,MAC3C,MAAM,IAAI,mBAAmB,qCAAqC;AAAA,IACnE;AAAA,IACA,MAAM,aAAa,MAAM,aACxB,KAAK,QACL,yCACA;AAAA;AAAA;AAAA,gDAIA,EAAE,iBAAiB,QAAQ,eAAe,CAC3C;AAAA,IACA,IAAI,WAAW,SAAS,GAAG;AAAA,MAC1B,MAAM,aAAa,WAAW,IAAI,CAAC,QAAQ;AAAA,QAC1C,IAAI;AAAA,QACJ,IAAI;AAAA,UACH,SAAS,KAAK,MAAM,OAAO,IAAI,cAAc,CAAC;AAAA,UAC7C,MAAM;AAAA,UACP,MAAM,IAAI,MAAM,0CAA0C;AAAA;AAAA,QAE3D,MAAM,aAAY,sBAAsB,OAAO,MAAM;AAAA,QACrD,IAAI,WAAU,qBAAqB,IAAI,kBAAkB;AAAA,UACxD,MAAM,IAAI,MAAM,gDAAgD;AAAA,QACjE;AAAA,QACA,OAAO;AAAA,OACP;AAAA,MACD,MAAM,YAAY,IAAI,IAAI,WAAW,IAAI,eAAe,CAAC;AAAA,MACzD,IAAI,UAAU,SAAS,GAAG;AAAA,QACzB,MAAM,IAAI,MAAM,4CAA4C;AAAA,MAC7D;AAAA,MACA,MAAM,aAAY,wBAAwB;AAAA,QACzC;AAAA,QACA,SAAS,CAAC;AAAA,QACV,cAAc,KAAK,SAAS,QAAQ,KAAK,KAAK,IAAI;AAAA,QAClD,iBAAiB,WAAW;AAAA,MAC7B,CAAC;AAAA,MACD,MAAM,YAAW,MAAM,KAAK,aAAa,WAAU,WAAW;AAAA,MAC9D,OAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,IAEA,MAAM,aAAa;AAAA,SACf,gBAAgB,OAAO;AAAA,MAC1B,mBAAmB,KAAK,IACvB,GACA,QAAQ,OAAO,cAAc,QAAQ,iBACtC;AAAA,IACD;AAAA,IACA,MAAM,YAAY,MAAM,aACvB,KAAK,QACL,0CACA;AAAA;AAAA,WAEQ;AAAA,YACC,YAAY;AAAA;AAAA;AAAA,8DAIrB,UACD;AAAA,IACA,MAAM,YAAY;AAAA,MACjB,GAAG,IAAI,IAAI,UAAU,IAAI,CAAC,QAAQ,OAAO,IAAI,iBAAiB,CAAC,CAAC;AAAA,IACjE,EAAE,OAAO,OAAO;AAAA,IAChB,MAAM,oBAAoB,MAAM,aAC/B,KAAK,QACL,sCACA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAMA,EAAE,oBAAoB,UAAU,CACjC;AAAA,IACA,MAAM,wBAAwB,IAAI,IACjC,kBAAkB,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,iBAAiB,GAAG,GAAG,CAAC,CACpE;AAAA,IACA,MAAM,aAAa,kBACjB,IAAI,CAAC,QAAQ,OAAO,IAAI,cAAc,EAAE,CAAC,EACzC,OAAO,OAAO;AAAA,IAChB,MAAM,WAAW,MAAM,KAAK,aAAa,UAAU;AAAA,IACnD,MAAM,gBAAgB,IAAI,IACzB,SAAS,IAAI,CAAC,YAAY,QAAQ,UAAU,CAC7C;AAAA,IACA,MAAM,UAAU,IAAI;AAAA,IACpB,WAAW,OAAO,WAAW;AAAA,MAC5B,MAAM,kBAAkB,OAAO,IAAI,iBAAiB;AAAA,MACpD,MAAM,gBACL,OAAO,IAAI,MAAM,MAAM,sBACpB,+BACA;AAAA,MACJ,MAAM,mBAAmB,sBAAsB,IAAI,eAAe;AAAA,MAClE,MAAM,YAAY,OAAO,kBAAkB,cAAc,EAAE;AAAA,MAC3D,MAAM,gBACL,kBAAkB,gCAAgC,mBAC/C;AAAA,QACA,sBAAsB,OACrB,iBAAiB,sBAClB;AAAA,QACA,OAAO,OAAO,iBAAiB,KAAK;AAAA,QAIpC;AAAA,QACA,yBAAyB,OACxB,iBAAiB,yBAClB;AAAA,MACD,IACC;AAAA,MACJ,IACC,kBAAkB,iCACjB,CAAC,iBAAiB,CAAC,cAAc,IAAI,SAAS,IAC9C;AAAA,QACD;AAAA,MACD;AAAA,MACA,MAAM,eAAe,YAAY,KAAK,gBAAgB;AAAA,MACtD,MAAM,cAAc,mBACjB,YAAY,kBAAkB,iBAAiB,IAC/C;AAAA,MACH,MAAM,YAAY,mBACf,YAAY,kBAAkB,eAAe,IAC7C,eAAe;AAAA,MAClB,MAAM,WAAW,QAAQ,IAAI,eAAe,KAAK;AAAA,QAChD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,gBAAgB,CAAC;AAAA,MAClB;AAAA,MACA,SAAS,cAAc,KAAK,IAAI,SAAS,aAAa,WAAW;AAAA,MACjE,SAAS,YAAY,KAAK,IAAI,SAAS,WAAW,SAAS;AAAA,MAC3D,SAAS,eAAe,KAAK;AAAA,QAC5B;AAAA,QACA,cAAc,OAAO,IAAI,cAAc;AAAA,QACvC,YAAY,OAAO,IAAI,WAAW;AAAA,QAClC;AAAA,QACA,2BAA2B,OAAO,IAAI,uBAAuB;AAAA,MAC9D,CAAC;AAAA,MACD,QAAQ,IAAI,iBAAiB,QAAQ;AAAA,IACtC;AAAA,IACA,OAAO,QAAQ,UAAU,MAAM,QAAQ,IAAI;AAAA,MAC1C,KAAK,aAAa,SAAS,QAAQ;AAAA,MACnC,KAAK,aAAa,SAAS,QAAQ;AAAA,IACpC,CAAC;AAAA,IACD,MAAM,YAAY,wBAAwB;AAAA,MACzC;AAAA,MACA,SAAS,CAAC,GAAG,QAAQ,OAAO,CAAC;AAAA,MAC7B,cAAc,KAAK,SAAS,QAAQ,KAAK,KAAK,IAAI;AAAA,IACnD,CAAC;AAAA,IACD,OAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA,sBAAsB;AAAA,QACrB,cAAc,eAAe,MAAM;AAAA,QACnC,cAAc,eAAe,MAAM;AAAA,MACpC;AAAA,IACD;AAAA;AAAA,OAGa,aAAY,CACzB,YACkC;AAAA,IAClC,IAAI,WAAW,WAAW;AAAA,MAAG,OAAO,CAAC;AAAA,IACrC,MAAM,OAAO,MAAM,aAClB,KAAK,QACL,gCACA;AAAA;AAAA;AAAA,0BAIA,EAAE,aAAa,CAAC,GAAG,IAAI,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,CAChD;AAAA,IACA,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,WAAW,KAAK,IAAI,CAAC,QAAQ,+BAA+B,GAAG,CAAC;AAAA,MAC/D,MAAM;AAAA,MACP,MAAM,IAAI,mBAAmB,yBAAyB;AAAA;AAAA,IAEvD,IAAI,SAAS,KAAK,CAAC,YAAY,EAAE,eAAe,QAAQ,GAAG;AAAA,MAC1D,MAAM,IAAI,MACT,4DACD;AAAA,IACD;AAAA,IACA,OAAO;AAAA;AAAA,OAGF,SAAQ,CACb,SAC6B;AAAA,IAC7B,MAAM,aAAa,gBAAgB,OAAO;AAAA,IAC1C,MAAM,YAAY,MAAM,KAAK,OAAO,MACnC;AAAA,WACQ;AAAA,YACC,YAAY;AAAA;AAAA;AAAA,2CAIrB;AAAA,SACI;AAAA,MACH,mBAAmB,KAAK,IACvB,GACA,QAAQ,OAAO,cAAc,QAAQ,iBACtC;AAAA,IACD,CACD;AAAA,IACA,OAAO,QAAQ,UAAU,MAAM,QAAQ,IAAI;AAAA,MAC1C,KAAK,aAAa,SAAS,QAAQ;AAAA,MACnC,KAAK,aAAa,SAAS,QAAQ;AAAA,IACpC,CAAC;AAAA,IACD,OAAO;AAAA,MACN,UAAU,cAAc,SAAS,SAAS;AAAA,MAC1C,gBAAgB,eAAe,SAAS;AAAA,MACxC,cAAc,eAAe,MAAM;AAAA,MACnC,cAAc,eAAe,MAAM;AAAA,IACpC;AAAA;AAAA,EAGO,YAAY,CACnB,SACA,MACqC;AAAA,IACrC,MAAM,WACL,SAAS,WAAW,QAAQ,OAAO,cAAc,QAAQ,OAAO;AAAA,IACjE,MAAM,OAAO,KAAK,IACjB,QAAQ,mBACR,QAAQ,QAAQ,qBACjB;AAAA,IACA,MAAM,gBACL,SAAS,WAAW,KAAK,IAAI,GAAG,WAAW,IAAI,IAAI;AAAA,IACpD,MAAM,cACL,SAAS,WACN,WACA,KAAK,IAAI,OAAO,kBAAkB,WAAW,IAAI;AAAA,IACrD,OAAO,aACN,KAAK,QACL,iCACA;AAAA;AAAA,WAEQ;AAAA,YACC,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAMb;AAAA,YACC,YAAY;AAAA;AAAA;AAAA,2EAIrB;AAAA,SACI,gBAAgB,OAAO;AAAA,MAC1B,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,IAClB,CACD;AAAA;AAAA,OAGK,gBAAe,CACpB,SACA,YACA,iBACA,UACiC;AAAA,IACjC,IAAI,CAAC,SAAS,sBAAsB;AAAA,MACnC,MAAM,IAAI,MAAM,4CAA4C;AAAA,IAC7D;AAAA,IACA,MAAM,aAAa;AAAA,SACf,gBAAgB,OAAO;AAAA,MAC1B,mBAAmB;AAAA,IACpB;AAAA,IACA,OAAO,QAAQ,WAAW,WAAW,QAAQ,UAAU,MAAM,QAAQ,IAAI;AAAA,MACxE,KAAK,OAAO,MACX,iBAAiB;AAAA;AAAA,aAER,YAAY;AAAA;AAAA,mDAGrB,UACD;AAAA,MACA,KAAK,OAAO,MACX,iBAAiB;AAAA;AAAA,aAER,YAAY;AAAA;AAAA,mDAGrB,UACD;AAAA,MACA,KAAK,OAAO,MACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAQA,UACD;AAAA,MACA,KAAK,aAAa,SAAS,QAAQ;AAAA,MACnC,KAAK,aAAa,SAAS,QAAQ;AAAA,IACpC,CAAC;AAAA,IACD,MAAM,cAAc;AAAA,MACnB,GAAG,cAAc,qCAAqC,MAAM;AAAA,MAC5D,GAAG,cAAc,4CAA4C,SAAS;AAAA,IACvE;AAAA,IACA,MAAM,WAAW,wBAAwB;AAAA,MACxC;AAAA,MACA,gBAAgB,WAAW;AAAA,MAC3B,eAAe;AAAA,MACf,eAAe,OAAO,UAAU,IAAI,aAAa,CAAC;AAAA,MAClD,oBAAoB,SAAS,qBAAqB;AAAA,MAClD,mBAAmB,eAAe,MAAM;AAAA,MACxC,oBAAoB,SAAS,qBAAqB;AAAA,MAClD,mBAAmB,eAAe,MAAM;AAAA,MACxC,cAAc,KAAK,cAAc,WAAW;AAAA,MAC5C,oBAAoB,YAAY,MAC/B,GAAG,UACF,OAAO,IAAI,sBAAsB,YACjC,OAAO,IAAI,4BAA4B,QACzC;AAAA,SACI,QAAQ,iBAAiB,cAC1B;AAAA,QACA,uBAAuB;AAAA,UACtB,GAAG,SAAS,UAAU,gBAAgB,IAAI,CAAC,WAC1C,KAAK,MAAM,OAAO,WAAW,CAC9B;AAAA,UACA,GAAG,UAAU,IAAI,CAAC,QAAQ,YAAY,KAAK,gBAAgB,CAAC;AAAA,QAC7D;AAAA,MACD,IACC,CAAC;AAAA,IACL,CAAC;AAAA,IACD,OAAO,KAAK,UAAU,gBAAgB;AAAA;AAAA,EAG/B,aAAa,CAAC,MAA8C;AAAA,IACnE,MAAM,YAAY,KAChB,OAAO,GAAG,YAAY,MAAM,SAAS,eAAe,CAAC,EACrD,IAAI,GAAG,WAAW;AAAA,MAClB,MAAM,YAAY,KAAK,gBAAgB;AAAA,MACvC,UAAU,YAAY,KAAK,UAAU;AAAA,IACtC,EAAE,EACD,KAAK,CAAC,MAAM,UAAU,KAAK,OAAO,MAAM,IAAI;AAAA,IAC9C,SAAS,QAAQ,EAAG,QAAQ,UAAU,QAAQ,SAAS,GAAG;AAAA,MACzD,MAAM,WAAW,UAAU,QAAQ;AAAA,MACnC,MAAM,UAAU,UAAU;AAAA,MAC1B,IAAI,CAAC,YAAY,CAAC,WAAW,QAAQ,OAAO,SAAS;AAAA,QAAM,OAAO;AAAA,MAClE,IACC,SAAS,aAAa,aACtB,QAAQ,aAAa,aACrB,QAAQ,WAAW,SAAS,UAC3B;AAAA,QACD,OAAO;AAAA,MACR;AAAA,IACD;AAAA,IACA,OAAO,UAAU,SAAS;AAAA;AAE5B;AAEO,SAAS,kCAAkC,CAAC,OAK5B;AAAA,EACtB,MAAM,UAAU,MAAM,SAAS;AAAA,EAC/B,MAAM,iBAAiB,CAAC,UAAqC;AAAA,IAC5D,IAAI,CAAC,MAAM,QAAQ,KAAK;AAAA,MAAG,OAAO,OAAO,KAAK;AAAA,IAC9C,OAAO,IAAI,MACT,IAAI,CAAC,UAAU;AAAA,MACf,MAAM,aAAa,KAAK,UAAU,KAAK;AAAA,MACvC,OAAO,IAAI,WAAW,MAAM,GAAG,EAAE,EAAE,WAAW,KAAK,KAAK;AAAA,KACxD,EACA,KAAK,GAAG;AAAA;AAAA,EAEX,OAAO;AAAA,SACA,MAAK,CAAC,KAAK,aAAa,CAAC,GAAG;AAAA,MACjC,MAAM,WAAW,IAAI,IAAI,MAAM,GAAG;AAAA,MAClC,MAAM,mBAAmB,mBAAmB,SAAS,QAAQ;AAAA,MAC7D,MAAM,mBAAmB,mBAAmB,SAAS,QAAQ;AAAA,MAC7D,SAAS,WAAW;AAAA,MACpB,SAAS,WAAW;AAAA,MACpB,SAAS,aAAa,IAAI,YAAY,aAAa;AAAA,MACnD,YAAY,KAAK,UAAU,OAAO,QAAQ,UAAU,GAAG;AAAA,QACtD,SAAS,aAAa,IAAI,SAAS,OAAO,eAAe,KAAK,CAAC;AAAA,MAChE;AAAA,MACA,MAAM,WAAW,MAAM,QAAQ,UAAU;AAAA,QACxC,QAAQ;AAAA,QACR,SAAS;AAAA,UACR,qBAAqB,MAAM,YAAY,oBAAoB;AAAA,UAC3D,oBAAoB,MAAM,YAAY;AAAA,QACvC;AAAA,QACA,MAAM,GAAG,IAAI,KAAK;AAAA;AAAA,MACnB,CAAC;AAAA,MACD,IAAI,CAAC,SAAS,IAAI;AAAA,QACjB,MAAM,IAAI,MAAM,kCAAkC,SAAS,QAAQ;AAAA,MACpE;AAAA,MACA,MAAM,QAAQ,MAAM,SAAS,KAAK,GAAG,KAAK;AAAA,MAC1C,OAAO,OACJ,KACC,MAAM;AAAA,CAAI,EACV,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,CAA4B,IAC1D,CAAC;AAAA;AAAA,EAEN;AAAA;;ACtmBM,IAAM,0BAA0B;AAChC,IAAM,2BAA2B,IAAI,OAAO;AAEnD,SAAS,eAAe,CAAC,OAAwB;AAAA,EAChD,OAAO,IAAI,YAAY,EAAE,OAAO,KAAK,UAAU,KAAK,CAAC,EAAE;AAAA;AAGjD,SAAS,qBAAqB,CAAC,OAMjB;AAAA,EACpB,MAAM,UAAU,MAAM,WAAW;AAAA,EACjC,MAAM,WAAW,MAAM,YAAY;AAAA,EACnC,MAAM,SAAS,IAAI;AAAA,EACnB,WAAW,OAAO,MAAM,MAAM;AAAA,IAC7B,MAAM,QAAQ,OAAO,IAAI,IAAI,KAAK,KAAK,CAAC;AAAA,IACxC,MAAM,KAAK,GAAG;AAAA,IACd,OAAO,IAAI,IAAI,OAAO,KAAK;AAAA,EAC5B;AAAA,EACA,MAAM,UAA4B,CAAC;AAAA,EACnC,WAAW,SAAS,CAAC,GAAG,OAAO,KAAK,CAAC,EAAE,KAAK,GAAG;AAAA,IAC9C,MAAM,OAAO,OAAO,IAAI,KAAK;AAAA,IAC7B,IAAI,QAA8B,CAAC;AAAA,IACnC,IAAI,aAAa;AAAA,IACjB,IAAI,UAAU;AAAA,IACd,MAAM,QAAQ,MAAM;AAAA,MACnB,IAAI,MAAM,WAAW;AAAA,QAAG;AAAA,MACxB,MAAM,UAAU,gBAAgB;AAAA,QAC/B,mBAAmB,MAAM;AAAA,QACzB;AAAA,QACA,eAAe;AAAA,QACf,MAAM;AAAA,MACP,CAAC;AAAA,MACD,QAAQ,KAAK;AAAA,QACZ,QAAQ;AAAA,QACR,eAAe,MAAM;AAAA,QACrB,UAAU;AAAA,QACV,MAAM;AAAA,MACP,CAAC;AAAA,MACD,WAAW;AAAA,MACX,QAAQ,CAAC;AAAA,MACT,aAAa;AAAA;AAAA,IAEd,WAAW,OAAO,MAAM;AAAA,MACvB,MAAM,QAAQ,gBAAgB,GAAG;AAAA,MACjC,IAAI,QAAQ,UAAU;AAAA,QACrB,MAAM,IAAI,MAAM,mCAAmC,OAAO;AAAA,MAC3D;AAAA,MACA,IAAI,MAAM,UAAU,WAAW,aAAa,QAAQ;AAAA,QAAU,MAAM;AAAA,MACpE,MAAM,KAAK,GAAG;AAAA,MACd,cAAc;AAAA,IACf;AAAA,IACA,MAAM;AAAA,EACP;AAAA,EACA,OAAO;AAAA;;AC3CR,IAAM,YAAY;AAClB,IAAM,YAAY;AAClB,IAAM,UAAU;AAChB,IAAM,kBAAkB;AACxB,IAAM,uBAAuB;AAC7B,IAAM,WAAW;AACjB,IAAM,kBAAkB,IAAI,OAAO,EAAE;AACrC,IAAM,QAAQ;AAAA,EACb,UAAU;AAAA,EACV,cAAc;AAAA,EACd,aAAa;AAAA,EACb,MAAM;AACP;AACA,IAAM,UAAS;AAAA,EACd,UAAU;AAAA,EACV,QAAQ;AACT;AACA,IAAM,iBAAiB;AAAA,EACtB,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,wBAAwB;AACzB;AAEA,IAAM,gBAAgB,sBAAsB;AAAA,EAC3C,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS,CAAC,EAAE,WAAW,UAAU,WAAW,2BAA2B,CAAC;AACzE,CAAC;AAED,IAAM,mBAAmB,yBAAyB;AAAA,EACjD,WAAW;AAAA,EACX;AAAA,EACA,gBAAgB;AAAA,IACf,UAAU,cAAc;AAAA,IACxB,cAAc,cAAc;AAAA,IAC5B,aAAa,cAAc,QAAQ;AAAA,EACpC;AAAA,EACA,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB,CAAC,OAAM;AAAA,EAC5B,oBAAoB,CAAC;AAAA,EACrB,YAAY,CAAC,QAAQ;AAAA,EACrB,SAAS,CAAC;AAAA,EACV,iBAAiB,CAAC;AAAA,EAClB,aAAa,CAAC;AAAA,EACd,yBAAyB,CAAC;AAAA,EAC1B,aAAa;AACd,CAAC;AAED,IAAM,iBAAiB;AAAA,EACtB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,QAAQ,EAAE,aAAa,cAAc,SAAS,sBAAsB;AAAA,EACpE,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,IACf,WAAW;AAAA,IACX,UAAU,cAAc;AAAA,IACxB,WAAW;AAAA,IACX,cAAc,cAAc;AAAA,IAC5B,aAAa,cAAc,QAAQ;AAAA,EACpC;AAAA,EACA,mBAAmB;AAAA,EACnB,2BAA2B;AAAA,IAC1B,WAAW;AAAA,IACX,eAAe,IAAI,OAAO,EAAE;AAAA,EAC7B;AAAA,EACA,cAAc;AAAA,IACb,mBAAmB;AAAA,MAClB,WAAW,yBAAyB;AAAA,MACpC,eAAe,yBAAyB;AAAA,IACzC;AAAA,IACA,iBAAiB;AAAA,MAChB,WAAW,uBAAuB;AAAA,MAClC,eAAe,uBAAuB;AAAA,IACvC;AAAA,EACD;AAAA,EACA,6BAA6B;AAC9B;AAEA,IAAM,UAAU;AAAA,KACZ;AAAA,EACH,iBAAiB,6BAA6B,cAAc;AAC7D;AAEA,IAAM,mBAAmB,yBAAyB;AAAA,EACjD,WAAW;AAAA,EACX,aAAa;AAAA,EACb,YAAY,QAAQ;AAAA,EACpB,iBAAiB,QAAQ;AAAA,EACzB,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,IACnB,mBAAmB,QAAQ,aAAa;AAAA,IACxC,iBAAiB,QAAQ,aAAa;AAAA,IACtC,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,EACrB;AAAA,EACA,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA,OAAO,QAAQ;AAAA,EACf,mBAAmB,QAAQ;AAAA,EAC3B,kBAAkB,QAAQ;AAAA,EAC1B,iBAAiB;AAAA,EACjB,kBAAkB,iBAAiB;AAAA,EACnC,wBAAwB,IAAI,OAAO,EAAE;AAAA,EACrC,2BAA2B,IAAI,OAAO,EAAE;AAAA,EACxC,eAAe,IAAI,OAAO,EAAE;AAAA,EAC5B,eAAe,IAAI,OAAO,EAAE;AAAA,EAC5B,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,IAChB;AAAA,MACC,UAAU;AAAA,MACV,UAAU,IAAI,OAAO,EAAE;AAAA,MACvB,OAAO;AAAA,MACP,MAAM;AAAA,IACP;AAAA,EACD;AACD,CAAC;AAED,IAAM,oBAAoB,yBAAyB;AAAA,EAClD,WAAW;AAAA,EACX;AAAA,EACA,gBAAgB,iBAAiB;AAAA,EACjC,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,qBAAqB,CAAC,OAAM;AAAA,EAC5B,oBAAoB;AAAA,IACnB;AAAA,SACI;AAAA,MACH,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,IACjB;AAAA,EACD;AAAA,EACA,YAAY,CAAC,QAAQ;AAAA,EACrB,SAAS;AAAA,IACR;AAAA,MACC,mBAAmB;AAAA,MACnB,gBAAgB;AAAA,MAChB,UAAU;AAAA,MACV,eAAe;AAAA,QACd,wBAAwB;AAAA,QACxB,OAAO;AAAA,QACP,YAAY,iBAAiB;AAAA,QAC7B,2BAA2B,iBAAiB;AAAA,MAC7C;AAAA,IACD;AAAA,EACD;AAAA,EACA,iBAAiB;AAAA,IAChB;AAAA,MACC,mBAAmB;AAAA,MACnB,gBAAgB,IAAI,OAAO,EAAE;AAAA,MAC7B,aAAa,IAAI,OAAO,EAAE;AAAA,MAC1B,aAAa;AAAA,MACb,6BAA6B,IAAI,OAAO,EAAE;AAAA,MAC1C,cAAc;AAAA,QACb,gBAAgB;AAAA,QAChB,wBAAwB;AAAA,QACxB,YAAY,iBAAiB;AAAA,MAC9B;AAAA,IACD;AAAA,EACD;AAAA,EACA,aAAa,CAAC,iBAAiB,UAAU;AAAA,EACzC,yBAAyB,CAAC,oBAAoB;AAAA,EAC9C,aAAa;AACd,CAAC;AAED,IAAM,SAAS,uBAAuB;AAAA,EACrC,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,qBAAqB,IAAI,OAAO,EAAE;AAAA,EAClC,mBAAmB,IAAI,OAAO,EAAE;AAAA,EAChC,wBAAwB,gBAAgB;AAAA,EACxC,aAAa;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB,IAAI,OAAO,EAAE;AAAA,EAC9B;AAAA,EACA,mBAAmB,QAAQ,aAAa;AAAA,EACxC,iBAAiB,QAAQ,aAAa;AAAA,EACtC,OAAO;AAAA,IACN,iBAAiB,IAAI,OAAO,EAAE;AAAA,IAC9B,YAAY;AAAA,EACb;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,SAAS;AAAA,IACR,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,YAAY,QAAQ;AAAA,IACpB,iBAAiB,QAAQ;AAAA,IACzB,QAAQ,QAAQ;AAAA,IAChB,WAAW;AAAA,IACX,SAAS;AAAA,IACT,aAAa,EAAE,eAAe,GAAG;AAAA,EAClC;AACD,CAAC;AAED,IAAM,gBAAgB;AAAA,EACrB,UAAU,CAAC,MAAM,MAAM,KAAK;AAAA,EAC5B,SAAS,CAAC,OAAO,oBAAoB,GAAG,iCAAM,KAAK,KAAK;AAAA,EACxD,QAAQ;AAAA;AACT;AAEO,IAAM,uBAAuB,OAAO,OAAO;AAAA,EACjD,YAAY;AAAA,EACZ,WAAW;AAAA,IACV,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB;AAAA,IACA,mBAAmB;AAAA,IACnB;AAAA,EACD;AAAA,EACA,YAAY;AAAA,IACX,iBAAiB,QAAQ;AAAA,IACzB,cAAc,cAAc;AAAA,IAC5B,0BAA0B,iBAAiB;AAAA,IAC3C,kBAAkB,kBAAkB;AAAA,IACpC,2BAA2B,iBAAiB;AAAA,IAC5C,YAAY,iBAAiB;AAAA,IAC7B,eAAe,OAAO;AAAA,IACtB,0BAA0B,yBAAyB;AAAA,IACnD,wBAAwB,uBAAuB;AAAA,EAChD;AAAA,EACA,iBAAiB;AAAA,EACjB,QAAQ,EAAE,wBAAwB,UAAU,aAAa,EAAE;AAC5D,CAAC;;ACtQD,uBAAS;;;ACET,IAAI,KAAK;AAAT,IAAsB,KAAK;AAA3B,IAAuC,MAAM;AAA7C,IAA0D,MAAM;AAAhE,IAA+F,MAAM;AACrG,IAAI,MAAM,QAAS,CAAC,GAAG,GAAG,GAAG;AAAA,EACzB,IAAI,GAAG,UAAU;AAAA,IACb,OAAO,GAAG,UAAU,MAAM,KAAK,GAAG,GAAG,CAAC;AAAA,EAC1C,IAAI,KAAK,QAAQ,IAAI;AAAA,IACjB,IAAI;AAAA,EACR,IAAI,KAAK,QAAQ,IAAI,EAAE;AAAA,IACnB,IAAI,EAAE;AAAA,EACV,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC;AAAA,EACpB,EAAE,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC;AAAA,EACtB,OAAO;AAAA;AAEX,IAAI,OAAO,QAAS,CAAC,GAAG,GAAG,GAAG,GAAG;AAAA,EAC7B,IAAI,GAAG,UAAU;AAAA,IACb,OAAO,GAAG,UAAU,KAAK,KAAK,GAAG,GAAG,GAAG,CAAC;AAAA,EAC5C,IAAI,KAAK,QAAQ,IAAI;AAAA,IACjB,IAAI;AAAA,EACR,IAAI,KAAK,QAAQ,IAAI,EAAE;AAAA,IACnB,IAAI,EAAE;AAAA,EACV,MAAO,IAAI,GAAG,EAAE;AAAA,IACZ,EAAE,KAAK;AAAA,EACX,OAAO;AAAA;AAEX,IAAI,MAAM,QAAS,CAAC,GAAG,GAAG,GAAG,GAAG;AAAA,EAC5B,IAAI,GAAG,UAAU;AAAA,IACb,OAAO,GAAG,UAAU,WAAW,KAAK,GAAG,GAAG,GAAG,CAAC;AAAA,EAClD,IAAI,KAAK,QAAQ,IAAI;AAAA,IACjB,IAAI;AAAA,EACR,IAAI,KAAK,QAAQ,IAAI,EAAE;AAAA,IACnB,IAAI,EAAE;AAAA,EACV,OAAO,IAAI,GAAG;AAAA,IACV,EAAE,OAAO,EAAE;AAAA,EACf;AAAA;AAcJ,IAAI,KAAK;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACA,IAAI,MAAM,QAAS,CAAC,KAAK,KAAK,IAAI;AAAA,EAC9B,IAAI,IAAI,IAAI,MAAM,OAAO,GAAG,IAAI;AAAA,EAChC,EAAE,OAAO;AAAA,EACT,IAAI,MAAM;AAAA,IACN,MAAM,kBAAkB,GAAG,GAAG;AAAA,EAClC,IAAI,CAAC;AAAA,IACD,MAAM;AAAA,EACV,OAAO;AAAA;AAEX,IAAI,KAAK,QAAS,CAAC,GAAG,GAAG,GAAG;AAAA,EACxB,IAAI,IAAI,GAAG,IAAI;AAAA,EACf,MAAO,IAAI,GAAG,EAAE;AAAA,IACZ,KAAK,EAAE,SAAS,KAAK;AAAA,EACzB,OAAO;AAAA;AAEX,IAAI,KAAK,QAAS,CAAC,GAAG,GAAG;AAAA,EAAE,QAAQ,EAAE,KAAM,EAAE,IAAI,MAAM,IAAM,EAAE,IAAI,MAAM,KAAO,EAAE,IAAI,MAAM,QAAS;AAAA;AAErG,IAAI,OAAO,QAAS,CAAC,KAAK,GAAG;AAAA,EACzB,IAAI,KAAK,IAAI,KAAM,IAAI,MAAM,IAAM,IAAI,MAAM;AAAA,EAC7C,IAAI,MAAM,WAAY,IAAI,MAAM,KAAK;AAAA,IAEjC,IAAI,MAAM,IAAI;AAAA,IAEd,IAAI,KAAM,OAAO,IAAK,GAAG,KAAM,OAAO,IAAK,GAAG,KAAK,MAAM,GAAG,MAAM,OAAO;AAAA,IACzE,IAAI,MAAM;AAAA,MACN,IAAI,CAAC;AAAA,IAET,IAAI,KAAK,IAAI;AAAA,IAEb,IAAI,KAAK,MAAM,IAAI,IAAI;AAAA,IAEvB,IAAI,KAAK,GAAG,KAAK,IAAI,EAAE;AAAA,IACvB,MAAM;AAAA,IAEN,IAAI,MAAM,MAAO,KAAK,MAAO;AAAA,IAE7B,IAAI,MAAM,GAAG,KAAK,IAAI,GAAG,KAAM,OAAO,KAAM;AAAA,IAE5C,IAAI,KAAK;AAAA,IACT,IAAI,CAAC,IAAI;AAAA,MAEL,IAAI,KAAK,KAAM,MAAM,IAAI,MAAM;AAAA,MAC/B,KAAK,MAAM,MAAM,MAAM,IAAI,KAAK;AAAA,IACpC;AAAA,IACA,IAAI,KAAK;AAAA,MACL,IAAI,CAAC;AAAA,IACT,IAAI,MAAM,IAAI,IAAI,KAAK,IAAK,OAAO,KAAM,IAAI,IAAI,MAAM,EAAE;AAAA,IACzD,IAAI,KAAK,GAAG,IAAI,KAAK,GAAG,IAAI,KAAK;AAAA,IACjC,OAAO;AAAA,MACH,GAAG,KAAK;AAAA,MACR,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAI,KAAK,KAAK,IAAK,IAAI,IAAI,SAAS,EAAE;AAAA,MACtC,GAAG;AAAA,MACH,GAAG,IAAI,IAAI,IAAI,QAAQ,GAAG,CAAC;AAAA,MAC3B,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG,KAAK,IAAI,QAAQ,EAAE;AAAA,IAC1B;AAAA,EACJ,EACK,UAAM,MAAM,IAAM,IAAI,MAAM,OAAQ,UAAW;AAAA,IAEhD,OAAO,GAAG,KAAK,CAAC,IAAI;AAAA,EACxB;AAAA,EACA,IAAI,CAAC;AAAA;AAGT,IAAI,MAAM,QAAS,CAAC,KAAK;AAAA,EACrB,IAAI,OAAO;AAAA,EACX,MAAQ,KAAK,QAAS,KAAK,EAAE;AAAA;AAAA,EAE7B,OAAO,OAAO;AAAA;AAGlB,IAAI,OAAO,QAAS,CAAC,KAAK,IAAI,KAAK;AAAA,EAE/B,IAAI,QAAQ,MAAM,KAAK;AAAA,EAEvB,IAAI,MAAM,IAAI,MAAM,MAAM;AAAA,EAC1B,IAAI,KAAK;AAAA,IACL,IAAI,CAAC;AAAA,EAET,IAAI,KAAK,KAAK;AAAA,EAEd,IAAI,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK;AAAA,EAEhD,IAAI,MAAM,IAAI,GAAG,OAAO,MAAM,EAAE;AAAA,EAChC,IAAI,OAAO,IAAI,IAAI,KAAK,GAAG,GAAG;AAAA,EAE9B,IAAI,SAAS,IAAI,IAAI,KAAK,GAAG,GAAG;AAAA,EAChC,IAAI,SAAS,IAAI,IAAI,KAAK,KAAK,EAAE;AAAA,EACjC,IAAI,MAAM,OAAO,MAAM;AAAA,EACvB,IAAI,OAAO,IAAI,GAAG,KAAK,KAAK,EAAE;AAAA,EAC9B,IAAI,QAAQ,IAAI,GAAG,KAAK,MAAM,EAAE;AAAA,EAChC,OAAO,MAAM,OAAO,QAAQ,GAAG;AAAA,IAC3B,IAAI,OAAO,IAAI,QAAQ,CAAC;AAAA,IACxB,IAAI,MAAM,QAAQ;AAAA,IAElB,IAAI,OAAO,KAAM,OAAO,KAAM;AAAA,IAC9B,IAAI,OAAQ,IAAI,OAAQ,IAAI,MAAM,MAAM,IAAM,IAAI,MAAM,MAAM,QAAS,OAAO,KAAM;AAAA,IAEpF,IAAI,UAAU,KAAK,QAAQ;AAAA,IAE3B,IAAI,MAAM,MAAM,QAAQ;AAAA,IAExB,IAAI,OAAO,MAAM;AAAA,IACjB,IAAI,OAAO;AAAA,MACP,QAAQ,MAAM,MAAM;AAAA,IACnB;AAAA,MACD,QAAQ,OAAO;AAAA,MACf,IAAI,MAAM;AAAA,QACN,OAAO;AAAA;AAAA,IAEf,KAAK,EAAE,OAAO,EAAE;AAAA,IAChB,IAAI,OAAO,IAAI;AAAA,MACX,SAAS;AAAA,MACT,KAAK,EAAE,MAAM;AAAA,IACjB,EAEI;AAAA,eAAS;AAAA,IACb,IAAI,CAAC,KAAK;AAAA,MACN,GAAG;AAAA,QAEC,IAAI,MAAM,QAAQ;AAAA,QAClB,MAAO,IAAI,OAAQ,IAAI,MAAM,MAAM,OAAQ,OAAO,KAAM;AAAA,QACxD,QAAQ;AAAA,QACR,OAAO;AAAA,MACX,SAAS,MAAM;AAAA,IACnB;AAAA,EACJ;AAAA,EACA,IAAI,MAAM,OAAO;AAAA,IACb,IAAI,CAAC;AAAA,EACT,IAAI,SAAS;AAAA,EAEb,IAAI,SAAS,MAAM,MAAM,MAAM,KAAK;AAAA,EAEpC,IAAI,QAAQ,KAAK;AAAA,EACjB,SAAS,IAAI,EAAG,KAAK,KAAK,EAAE,GAAG;AAAA,IAC3B,IAAI,KAAK,KAAK;AAAA,IACd,IAAI,KAAK,GAAG;AAAA,MACR,OAAO,KAAK,CAAC;AAAA,MACb;AAAA,IACJ;AAAA,IAEA,KAAK,IAAI,EAAG,IAAI,IAAI,EAAE,GAAG;AAAA,MACrB,KAAK,UAAU;AAAA,MACf,GAAG;AAAA,QACC,SAAU,SAAS,QAAS;AAAA,MAChC,SAAS,UAAU;AAAA,IACvB;AAAA,EACJ;AAAA,EAEA,IAAI;AAAA,IACA,IAAI,CAAC;AAAA,EACT,KAAK,IAAI,EAAG,IAAI,IAAI,EAAE,GAAG;AAAA,IAErB,IAAI,KAAK,OAAO,KAAK;AAAA,IAErB,IAAI,KAAK,MAAM,KAAK,KAAK,IAAI,EAAE;AAAA,IAC/B,OAAO,MAAM,MAAM,MAAM;AAAA,EAC7B;AAAA,EACA,OAAO,CAAE,OAAO,KAAM,GAAG;AAAA,IACjB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACP,CAAC;AAAA;AAGT,IAAI,MAAM,QAAS,CAAC,KAAK,IAAI;AAAA,EAEzB,IAAI,IAAI,GAAG,KAAK;AAAA,EAEhB,IAAI,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,IAAI;AAAA,EAEhC,IAAI,KAAK,IAAI,SAAS,GAAG,GAAG;AAAA,EAE5B,IAAI,KAAK,IAAI,SAAS,KAAK,GAAG;AAAA,EAE9B,IAAI,KAAK,IAAI,IAAI,IAAI,QAAQ,GAAG;AAAA,EAEhC,IAAI,KAAK,KAAK;AAAA,IAEV,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,MAAM,GAAG;AAAA,IACrD,MAAM;AAAA,IACN,IAAI,OAAO,OAAO;AAAA,IAElB,IAAI,KAAK,IAAI;AAAA,IACb,IAAI,CAAC;AAAA,MACD,IAAI,CAAC;AAAA,IAET,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO,IAAI,GAAG,OAAO;AAAA,IAG3C,IAAI,QAAQ,EAAE,MAAM,KAAK,IAAI,IAAI,EAAE;AAAA,IACnC,UAAS;AAAA,MACL,QAAQ;AAAA,MACR,IAAI,OAAO;AAAA,QACP;AAAA,MACJ,IAAI,MAAM,QAAQ;AAAA,MAClB,QAAS,IAAI,OAAQ,IAAI,MAAM,MAAM,OAAQ,OAAO,MAAQ,KAAK,QAAQ;AAAA,MACzE,GAAG,EAAE,MAAM,IAAI,EAAE;AAAA,MACjB,QAAQ;AAAA,MACR,IAAI,OAAO;AAAA,QACP;AAAA,MACJ,MAAM,QAAQ;AAAA,MACd,QAAS,IAAI,OAAQ,IAAI,MAAM,MAAM,OAAQ,OAAO,MAAQ,KAAK,QAAQ;AAAA,MACzE,GAAG,EAAE,MAAM,IAAI,EAAE;AAAA,MACjB,OAAO,IAAI,EAAE;AAAA,MACb,MAAM,IAAI,EAAE;AAAA,MACZ,OAAO,IAAI,EAAE;AAAA,MACb,MAAM,IAAI,EAAE;AAAA,IAChB;AAAA,IACA,IAAI,EAAE,KAAK;AAAA,MACP,IAAI,CAAC;AAAA,EACb,EACK;AAAA,IACD,KAAK,KAAK;AAAA,IACV,MAAO,IAAI,IAAI,KAAK,GAAG;AAAA,MACnB,IAAI,OAAO,IAAI,EAAE;AAAA,MACjB,GAAG,KAAK,QAAQ;AAAA,MAChB,GAAG,IAAI,KAAK,OAAO;AAAA,IACvB;AAAA,IACA,EAAE;AAAA;AAAA,EAGN,IAAI,MAAM;AAAA,EACV,KAAK,IAAI,EAAG,IAAI,IAAI,EAAE,GAAG;AAAA,IACrB,IAAI,KAAK,GAAG;AAAA,IAEZ,IAAI,KAAK;AAAA,MACL,IAAI,CAAC;AAAA,IACT,OAAO,MAAO,KAAM,KAAK;AAAA,EAC7B;AAAA,EAEA,IAAI,KAAK,IAAI,GAAG,IAAI;AAAA,EAEpB,IAAI,KAAK,KAAK;AAAA,EAEd,IAAI,MAAM,KAAK;AAAA,EAEf,IAAI,MAAO,MAAM;AAAA,IACb,IAAI,CAAC;AAAA,EACT,GAAG,QAAQ,IAAI,GAAG,IAAI;AAAA,EACtB,KAAK,IAAI,EAAG,IAAI,IAAI,EAAE,GAAG;AAAA,IACrB,IAAI,KAAK,GAAG;AAAA,IACZ,EAAE,GAAG,GAAG,KAAK,MAAO,KAAK,IAAI;AAAA,EACjC;AAAA,EAEA,IAAI,OAAO,IAAI,GAAG,MAAM,CAAC;AAAA,EAEzB,IAAI,OAAO,KAAK,SAAS,GAAG,EAAE,GAAG,KAAK,KAAK,SAAS,EAAE;AAAA,EACtD,GAAG,MAAM;AAAA,EACT,KAAK,IAAI,GAAI,IAAI,GAAG,EAAE,GAAG;AAAA,IACrB,IAAI,KAAK,GAAG;AAAA,IACZ,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK,KAAK,GAAG,MAAM,KAAM,KAAK,EAAG;AAAA,EAC5D;AAAA,EACA,IAAI,GAAG,MAAM;AAAA,IACT,IAAI,CAAC;AAAA,EACT,KAAK,IAAI,EAAG,IAAI,IAAI,EAAE,GAAG;AAAA,IACrB,IAAI,OAAO,GAAG;AAAA,IACd,IAAI,MAAM;AAAA,MACN,IAAI,OAAO,GAAG;AAAA,MACd,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,QAAQ,KAAM,KAAK,KAAM;AAAA,IAC5D;AAAA,EACJ;AAAA,EACA,OAAO,CAAC,IAAI;AAAA,IACJ,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACP,CAAC;AAAA;AAKT,IAAI,OAAqB,qBAAmB,IAAI,GAAG;AAAA,EAC/C;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AACnF,CAAC,GAAG,GAAG,CAAC,EAAE;AAEV,IAAI,OAAqB,qBAAmB,IAAI,GAAG;AAAA,EAC/C;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAC9G,CAAC,GAAG,GAAG,CAAC,EAAE;AAEV,IAAI,OAAsB,qBAAmB,IAAI,GAAG;AAAA,EAChD;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AACtD,CAAC,GAAG,GAAG,CAAC,EAAE;AAEV,IAAI,OAAO,QAAS,CAAC,GAAG,GAAG;AAAA,EACvB,IAAI,MAAM,EAAE,QAAQ,KAAK,IAAI,IAAI,GAAG;AAAA,EACpC,SAAS,IAAI,EAAG,IAAI,KAAK,EAAE,GAAG;AAAA,IAC1B,GAAG,KAAK;AAAA,IACR,KAAK,KAAK,EAAE;AAAA,EAChB;AAAA,EACA,OAAO;AAAA;AAGX,IAAI,sBAAqB,IAAI,oBAAmB,IAAI,IAAI;AAAA,EACpD;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAU;AAAA,EAAU;AAAA,EAAW;AAAA,EAAW;AAC1D,CAAC,GAAG,QAAQ,GAAG,EAAE;AAEjB,IAAI,uBAAsB,KAAK,KAAK,CAAC;AAErC,IAAI,sBAAqB,IAAI,oBAAmB,IAAI,IAAI;AAAA,EACpD;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAU;AAAA,EAAU;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AACjF,CAAC,GAAG,QAAQ,GAAG,EAAE;AAEjB,IAAI,uBAAsB,KAAK,KAAK,CAAC;AAErC,IAAI,MAAM,QAAS,CAAC,KAAK,KAAK,IAAI;AAAA,EAC9B,IAAI,MAAM,IAAI,QAAQ,KAAK,IAAI,QAAQ,KAAK,IAAI,MAAM,IAAI,OAAO,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG;AAAA,EAC1F,IAAI,CAAC;AAAA,IACD,IAAI,CAAC;AAAA,EACT,IAAI,KAAK,GAAG,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,IAAI,IAAI,EAAE,IAAI,KAAK,IAAI;AAAA,EAClE,MAAO,MAAM,MAAM,IAAI,MAAK;AAAA,IACxB,IAAI,MAAM,OAAO;AAAA,IACjB,IAAI,OAAO,IAAI,OAAQ,IAAI,MAAM,MAAM,IAAM,IAAI,MAAM,MAAM,QAAS,MAAM;AAAA,IAC5E,MAAO,MAAM,MAAO,OAAO;AAAA,IAC3B,IAAI,EAAE,KAAK,GAAG,EAAE;AAAA,IAChB,OAAQ,MAAM,GAAG,EAAE;AAAA,EACvB;AAAA,EACA,IAAI,OAAO,MAAM,IAAI,KAAK;AAAA,IACtB,IAAI,CAAC;AAAA;AAIb,IAAI,OAAO,QAAS,CAAC,KAAK,KAAK,IAAI;AAAA,EAC/B,IAAI,KAAK;AAAA,EACT,IAAI,KAAK,IAAI,QAAQ,MAAO,KAAK,KAAM,GAAG,MAAM,OAAO,GAAG,MAAM,MAAM;AAAA,EACtE,IAAI,IAAI,SAAS,IAAI,MAAM,IAAI,KAAM,IAAI,MAAM,CAAE,GAAG,IAAI,SAAS,GAAG,GAAG,GAAG,EAAE;AAAA,EAC5E,IAAI,IAAI,SAAS,IAAI,MAAM,IAAI,KAAM,IAAI,MAAM,CAAE,GAAG,IAAI,SAAS,KAAK,GAAG,GAAG,EAAE;AAAA,EAC9E,IAAI,IAAI,SAAS,IAAI,MAAM,IAAI,KAAM,IAAI,MAAM,CAAE,GAAG,IAAI,SAAS,KAAK,GAAG,GAAG,EAAE;AAAA,EAC9E,IAAI,IAAI,SAAS,EAAE,GAAG,IAAI,SAAS,GAAG,GAAG,EAAE;AAAA;AAG/C,IAAI,MAAM,QAAS,CAAC,KAAK,IAAI,KAAK;AAAA,EAC9B,IAAI;AAAA,EACJ,IAAI,KAAK,GAAG;AAAA,EAEZ,IAAI,KAAK,IAAI,KAAK,QAAS,MAAM,IAAK;AAAA,EACtC,GAAG,IAAI,KAAK;AAAA,EACZ,IAAI,KAAM,MAAM,IAAM,IAAI,KAAK,MAAM,IAAM,IAAI,KAAK,MAAM;AAAA,EAE1D,IAAI,OAAO,MAAM,KAAK;AAAA,EACtB,IAAI,SAAS,GAAG;AAAA,IACZ,IAAI,MAAM,IAAI;AAAA,MACV;AAAA,IACJ,GAAG,IAAI,KAAK;AAAA,IACZ,IAAI,KAAK;AAAA,MACL,KAAK,KAAK,IAAI,KAAK,GAAG,GAAG,GAAG,KAAK,EAAE;AAAA,MACnC,OAAO;AAAA,IACX;AAAA,IACA,OAAO,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG;AAAA,EACnC;AAAA,EACA,IAAI,MAAM,IAAI;AAAA,IACV;AAAA,EACJ,IAAI,SAAS,GAAG;AAAA,IACZ,GAAG,IAAI;AAAA,IACP,IAAI,KAAK;AAAA,MACL,IAAI,IAAI,IAAI,SAAS,IAAI,GAAG,GAAG,GAAG,CAAC;AAAA,MACnC,GAAG,KAAK;AAAA,MACR,OAAO;AAAA,IACX;AAAA,IACA,OAAO,IAAI,KAAK,IAAI,GAAG;AAAA,EAC3B;AAAA,EACA,IAAI,SAAS,GAAG;AAAA,IAEZ,IAAI,KAAK,IAAI,KAAK,MAAM,KAAK,GAAG,KAAM,MAAM,IAAK;AAAA,IAEjD,IAAI,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK;AAAA,IACjC,IAAI,MAAM,GAAG;AAAA,MACT,IAAI,KAAK;AAAA,QACL,OAAQ,IAAI,EAAE,OAAO,KAAO,KAAK,KAAO,IAAI,EAAE,OAAO;AAAA,MAErD;AAAA,cAAM,MAAM;AAAA,IACpB,EACK;AAAA,MACD,KAAK;AAAA,MACL,IAAI,KAAK;AAAA,QACL,QAAS,IAAI,EAAE,MAAM,OAAO,GAAI,MAAO,IAAI,OAAO,IAAM,IAAI,EAAE,OAAO;AAAA,MACpE,SAAI,MAAM;AAAA,QACX,OAAQ,IAAI,EAAE,OAAO,KAAO,IAAI,EAAE,MAAM,MAAM,IAAK,MAAO,IAAI,OAAO,IAAM,IAAI,EAAE,OAAO;AAAA,MAExF;AAAA,eAAQ,IAAI,EAAE,OAAO,KAAO,IAAI,EAAE,MAAM,OAAO,IAAK,MAAO,IAAI,OAAO,IAAM,IAAI,EAAE,OAAO,IAAM,IAAI,EAAE,OAAO;AAAA;AAAA,IAEpH,EAAE;AAAA,IAEF,IAAI,MAAM,MAAM,IAAI,SAAS,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC;AAAA,IAE7D,IAAI,MAAM,IAAI,SAAS;AAAA,IACvB,IAAI,OAAO;AAAA,MACP,IAAI,IAAI,IAAI,SAAS,IAAI,MAAM,GAAG,GAAG,GAAG;AAAA,IACvC,SAAI,OAAO;AAAA,MACZ,KAAK,KAAK,IAAI,OAAO,GAAG;AAAA,IACvB;AAAA,MAED,IAAI,KAAK,GAAG;AAAA,MACZ,IAAI,OAAO,GAAG;AAAA,QACV,IAAI,MAAM,IAAI,KAAK,EAAE;AAAA,QAErB,OAAO,MAAM,KAAK,IAAI;AAAA,QACtB,GAAG,IAAI,KAAK,IAAI;AAAA,MACpB,EACK,SAAI,CAAC;AAAA,QACN,IAAI,CAAC;AAAA,OACR,KAAK,OAAO,KAAK,IAAI,SAAS,IAAI,MAAM,GAAG,GAAG,IAAI,SAAS,GAAG,GAAG,EAAE;AAAA;AAAA,IAGxE,IAAI,KAAK,IAAI;AAAA,IACb,IAAI,IAAI;AAAA,MACJ,IAAI,MAAM;AAAA,QACN,MAAM,IAAI,QAAS,IAAI,SAAS,KAAM;AAAA,MACrC,SAAI,KAAK;AAAA,QACV,KAAO,KAAK,OAAQ,IAAK,IAAI;AAAA,MAEjC,IAAI,MAAM,IAAI;AAAA,MACd,IAAI,MAAM;AAAA,QACN,IAAI,CAAC;AAAA,MACT,IAAI,MAAM,CAAC,MAAM,MAAM,IAAI;AAAA,MAC3B,SAAS,IAAI,EAAG,IAAI,IAAI,EAAE,GAAG;AAAA,QACzB,IAAI,KAAM,QAAS,KAAK,KAAK,IAAM;AAAA,QACnC,IAAI,MAAM,GAAG;AAAA,UAET,IAAI,OAAO,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC;AAAA,UACnC,IAAI,KAAK;AAAA,YACL,GAAG,KAAK,SAAS,GAAG,CAAC;AAAA,YACrB,GAAG,KAAK,SAAS,GAAG,CAAC;AAAA,YACrB,GAAG,IAAI,IAAI,KAAK,QAAQ,GAAG,CAAC;AAAA,YAC5B,GAAG;AAAA,UACP;AAAA,QACJ,EACK,SAAI,MAAM,GAAG;AAAA,UAEd,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;AAAA,QAC7D,EACK,SAAI,MAAM,GAAG;AAAA,UACd,IAAI,CAAC,GAAG;AAAA,YACJ,IAAI,CAAC;AAAA,UACT,IAAI,KAAK,GAAG,EAAE;AAAA,QAClB;AAAA,MACJ;AAAA,MACA,IAAI,KAAK,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,MAAM,GAAG,IAAI,MAAM,GAAG;AAAA,MACxD,IAAI,KAAK,IAAI,MAAM;AAAA,MACnB,IAAI,CAAC;AAAA,QACD,IAAI,CAAC;AAAA,MACT,IAAI,QAAQ,OAAO,KAAK,IAAI,IAAI,EAAE,IAAI,IAAI,GAAG,MAAM,QAAQ,GAAG,OAAO;AAAA,MACrE,IAAI,OAAQ,IAAI,OAAQ,IAAI,MAAM,MAAM,OAAQ,OAAO,MAAQ,KAAK,IAAI,KAAK;AAAA,MAC7E,OAAO,QAAQ,IAAI,MAAM;AAAA,MACzB,IAAI,OAAQ,IAAI,OAAQ,IAAI,MAAM,MAAM,OAAQ,OAAO,MAAQ,KAAK,IAAI,KAAK;AAAA,MAC7E,OAAO,QAAQ,IAAI,MAAM;AAAA,MACzB,IAAI,OAAQ,IAAI,OAAQ,IAAI,MAAM,MAAM,OAAQ,OAAO,MAAQ,KAAK,IAAI,KAAK;AAAA,MAC7E,KAAK,EAAE,GAAI,EAAE,MAAK;AAAA,QACd,IAAI,MAAM,IAAI,EAAE;AAAA,QAChB,IAAI,OAAO,IAAI,EAAE;AAAA,QACjB,IAAI,MAAM,IAAI,EAAE;AAAA,QAChB,IAAI,OAAO,IAAI,EAAE;AAAA,QACjB,IAAI,MAAM,IAAI,EAAE;AAAA,QAChB,IAAI,OAAO,IAAI,EAAE;AAAA,QACjB,OAAO,QAAQ,QAAQ;AAAA,QACvB,IAAI,MAAM,KAAK;AAAA,QACf,IAAI,MAAM,QAAS,IAAI,OAAQ,IAAI,MAAM,MAAM,IAAM,IAAI,MAAM,MAAM,KAAO,IAAI,MAAM,MAAM,SAAU,OAAO,KAAO,MAAM;AAAA,QAC1H,OAAO,QAAQ,IAAI,SAAS;AAAA,QAC5B,IAAI,KAAK,KAAK,SAAU,IAAI,OAAQ,IAAI,MAAM,MAAM,IAAM,IAAI,MAAM,MAAM,QAAS,OAAO,MAAQ,KAAK,IAAI,QAAQ;AAAA,QACnH,OAAO,QAAQ,IAAI,SAAS;AAAA,QAC5B,IAAI,KAAK,KAAK,SAAU,IAAI,OAAQ,IAAI,MAAM,MAAM,IAAM,IAAI,MAAM,MAAM,QAAS,OAAO,MAAQ,KAAK,IAAI,QAAQ;AAAA,QACnH,OAAO,QAAQ,SAAS;AAAA,QACxB,MAAM,IAAI,EAAE,SAAU,IAAI,OAAQ,IAAI,MAAM,MAAM,OAAQ,OAAO,MAAQ,KAAK,QAAQ;AAAA,QACtF,OAAO,QAAQ,SAAS;AAAA,QACxB,MAAM,IAAI,EAAE,SAAU,IAAI,OAAQ,IAAI,MAAM,MAAM,OAAQ,OAAO,MAAQ,KAAK,QAAQ;AAAA,QACtF,OAAO,QAAQ,SAAS;AAAA,QACxB,MAAM,IAAI,EAAE,SAAU,IAAI,OAAQ,IAAI,MAAM,MAAM,OAAQ,OAAO,MAAQ,KAAK,QAAQ;AAAA,QACtF,IAAI,MAAM,GAAG;AAAA,UACT,GAAG,EAAE,KAAK,GAAG,EAAE;AAAA,UACf,GAAG,EAAE,KAAK,GAAG,EAAE;AAAA,UACf,GAAG,EAAE,KAAK,OAAO;AAAA,QACrB,EACK;AAAA,UACD,IAAI,MAAM,OAAO,MAAM;AAAA,UACvB,IAAI,KAAK;AAAA,YACL,MAAM,OAAO,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE;AAAA,YACpC,IAAI,MAAM;AAAA,cACN,GAAG,EAAE,KAAK,GAAG,EAAE;AAAA,YACnB,GAAG,EAAE,KAAK,GAAG,EAAE;AAAA,YACf,GAAG,EAAE,KAAK;AAAA,UACd,EAEI;AAAA,kBAAM,GAAG,EAAE;AAAA;AAAA,QAEnB,SAAS,IAAI,EAAG,IAAI,IAAI,EAAE,GAAG;AAAA,UACzB,IAAI,OAAO,KAAK,IAAI,MAAM;AAAA,QAC9B;AAAA,QACA,QAAQ,IAAI,OAAO;AAAA,QACnB,IAAI,OAAO,OAAO;AAAA,QAClB,IAAI,OAAO,GAAG;AAAA,UACV,IAAI,MAAM,CAAC;AAAA,UACX,IAAI,KAAK,GAAG,IAAI;AAAA,UAChB,IAAI,MAAM;AAAA,YACN,MAAM;AAAA,UACV,SAAS,IAAI,EAAG,IAAI,KAAK,EAAE,GAAG;AAAA,YAC1B,IAAI,OAAO,KAAK,GAAG,EAAE,KAAK;AAAA,UAC9B;AAAA,UACA,QAAQ,KAAK,MAAM,KAAK,OAAO;AAAA,QACnC;AAAA,QACA,SAAS,IAAI,EAAG,IAAI,IAAI,EAAE,GAAG;AAAA,UACzB,IAAI,OAAO,KAAK,IAAI,OAAO;AAAA,QAC/B;AAAA,QACA,QAAQ;AAAA,MACZ;AAAA,MACA,IAAI,QAAQ,KAAK;AAAA,QACb,OAAO,MAAM,IAAI,QAAQ;AAAA,UACrB,IAAI,UAAU,IAAI;AAAA,QACtB;AAAA,MACJ,EAEI;AAAA,eAAO,IAAI;AAAA,MACf,IAAI;AAAA,QACA,GAAG,KAAK;AAAA,MAER;AAAA,cAAM,IAAI,KAAK,GAAG,IAAI;AAAA,IAC9B,EACK,SAAI,KAAK;AAAA,MACV,GAAG,KAAK;AAAA,MACR,IAAI,KAAK;AAAA,QACL,SAAS,IAAI,EAAG,IAAI,KAAK,EAAE,GAAG;AAAA,UAC1B,IAAI,KAAK,IAAI,MAAM;AAAA,QACvB;AAAA,MACJ;AAAA,IACJ,EACK,SAAI;AAAA,MACL,MAAM,IAAI,KAAK,GAAG;AAAA,IACtB,GAAG,IAAI;AAAA,IACP,OAAO;AAAA,EACX;AAAA,EACA,IAAI,CAAC;AAAA;AAGT,IAAI,MAAM,QAAS,CAAC,MAAM,IAAI;AAAA,EAC1B,IAAI,KAAK,UAAU;AAAA,IACf,OAAO,KAAK;AAAA,EAChB,IAAI,MAAM,IAAI,GAAG,EAAE;AAAA,EACnB,SAAS,IAAI,GAAG,IAAI,EAAG,IAAI,KAAK,QAAQ,EAAE,GAAG;AAAA,IACzC,IAAI,MAAM,KAAK;AAAA,IACf,IAAI,IAAI,KAAK,CAAC;AAAA,IACd,KAAK,IAAI;AAAA,EACb;AAAA,EACA,OAAO;AAAA;AAWJ,SAAS,UAAU,CAAC,KAAK,KAAK;AAAA,EACjC,IAAI,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,EACtB,IAAI,KAAK,GAAG,KAAK;AAAA,EACjB,MAAO,IAAI,UAAS;AAAA,IAChB,IAAI,KAAK,KAAK,KAAK,MAAM,GAAG;AAAA,IAC5B,IAAI,OAAO,MAAM,UAAU;AAAA,MACvB,IAAI,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,IAAI,GAAG,EAAE,UAAU,GAAG,GAAG;AAAA,UACrB,KAAK,KAAK,MAAM,GAAG,CAAC;AAAA,UACpB,MAAM,GAAG;AAAA,QACb;AAAA,MACJ,EACK;AAAA,QACD,KAAK,KAAK,GAAG;AAAA,QACb,GAAG,IAAI;AAAA;AAAA,MAEX,MAAO,CAAC,GAAG,KAAI;AAAA,QACX,IAAI,MAAM,IAAI,KAAK,IAAI,GAAG;AAAA,QAC1B,IAAI,CAAC;AAAA,UACD,IAAI,CAAC;AAAA,QACT,IAAI;AAAA,UACA,GAAG,IAAI,GAAG;AAAA,QACT;AAAA,UACD,KAAK,KAAK,GAAG;AAAA,UACb,MAAM,IAAI;AAAA,UACV,IAAI,GAAG,GAAG,GAAG,IAAI,MAAM;AAAA,UACvB,GAAG,EAAE,IAAI,KAAK,GAAG,EAAE,SAAS,IAAI,MAAM;AAAA;AAAA,MAE9C;AAAA,MACA,KAAK,GAAG,IAAK,GAAG,IAAI;AAAA,IACxB,EAEI;AAAA,WAAK;AAAA,IACT,MAAM,IAAI,SAAS,EAAE;AAAA,EACzB;AAAA,EACA,OAAO,IAAI,MAAM,EAAE;AAAA;;;ACtoBhB,IAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,uBAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AACF;AAGO,IAAM,8BAA8B;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACxFO,SAAS,YAAY,CAAC,QAAQ;AAAA,EACnC,MAAM,QAAQ,SAAS,MAAM;AAAA,EAE7B,IAAI,MAAM,SAAS,GAAG;AAAA,IACpB,OAAO,EAAE,MAAM,SAAS,aAAa,aAAa,QAAQ,KAAK,EAAE;AAAA,EACnE,EAAO,SAAI,MAAM,SAAS,GAAG;AAAA,IAC3B,OAAO,EAAE,MAAM,cAAc,aAAa,SAAS,QAAQ,KAAK,EAAE;AAAA,EACpE,EAAO,SAAI,MAAM,SAAS,GAAG;AAAA,IAC3B,OAAO,EAAE,MAAM,WAAW,aAAa,YAAY,QAAQ,KAAK,EAAE;AAAA,EACpE,EAAO,SAAI,MAAM,SAAS,GAAG;AAAA,IAC3B,MAAM,SAAS,CAAC;AAAA,IAChB,SAAS,IAAI,EAAG,IAAI,MAAM,OAAO,KAAK;AAAA,MACpC,OAAO,KAAK,aAAa,QAAQ,SAAS,MAAM,CAAC,CAAC;AAAA,IACpD;AAAA,IACA,OAAO,EAAE,MAAM,cAAc,aAAa,OAAO;AAAA,EACnD,EAAO,SAAI,MAAM,SAAS,GAAG;AAAA,IAC3B,MAAM,QAAQ,CAAC;AAAA,IACf,SAAS,IAAI,EAAG,IAAI,MAAM,OAAO,KAAK;AAAA,MACpC,MAAM,KAAK,SAAS,QAAQ,SAAS,MAAM,CAAC,CAAC;AAAA,IAC/C;AAAA,IACA,OAAO,EAAE,MAAM,mBAAmB,aAAa,MAAM;AAAA,EACvD,EAAO,SAAI,MAAM,SAAS,GAAG;AAAA,IAC3B,MAAM,WAAW,CAAC;AAAA,IAClB,SAAS,IAAI,EAAG,IAAI,MAAM,OAAO,KAAK;AAAA,MACpC,SAAS,KAAK,YAAY,QAAQ,SAAS,MAAM,CAAC,CAAC;AAAA,IACrD;AAAA,IACA,OAAO,EAAE,MAAM,gBAAgB,aAAa,SAAS;AAAA,EACvD,EAAO,SAAI,MAAM,SAAS,GAAG;AAAA,IAC3B,MAAM,aAAa,CAAC;AAAA,IACpB,SAAS,IAAI,EAAG,IAAI,MAAM,OAAO,KAAK;AAAA,MACpC,WAAW,KAAK,aAAa,MAAM,CAAC;AAAA,IACtC;AAAA,IACA,OAAO,EAAE,MAAM,sBAAsB,WAAW;AAAA,EAClD,EAAO;AAAA,IACL,MAAM,IAAI,MAAM,8BAA8B,MAAM,MAAM;AAAA;AAAA;AAU9D,SAAS,QAAQ,CAAC,QAAQ;AAAA,EACxB,QAAQ,SAAS;AAAA,EACjB,MAAM,eAAe,KAAK,SAAS,OAAO,QAAQ,MAAM;AAAA,EACxD,MAAM,UAAU,KAAK,UAAU,OAAO,QAAQ,YAAY;AAAA,EAC1D,OAAO,UAAU;AAAA,EAEjB,MAAM,OAAO,UAAU;AAAA,EACvB,MAAM,QAAQ,KAAK,MAAM,UAAU,IAAI;AAAA,EAEvC,IAAI,QAAQ;AAAA,EACZ,IAAI,OAAO,KAAK,QAAQ,GAAG;AAAA,IACzB,QAAQ,KAAK,UAAU,OAAO,QAAQ,YAAY;AAAA,IAClD,OAAO,UAAU;AAAA,EACnB;AAAA,EAGA,IAAI,MAAM;AAAA,EACV,IAAI;AAAA,IAAO;AAAA,EACX,IAAI,UAAU;AAAA,IAAG;AAAA,EAEjB,OAAO,EAAE,cAAc,MAAM,KAAK,MAAM;AAAA;AAQ1C,SAAS,YAAY,CAAC,QAAQ,OAAO;AAAA,EACnC,MAAM,SAAS,CAAC;AAAA,EAChB,SAAS,IAAI,EAAG,IAAI,MAAM,KAAK,KAAK;AAAA,IAClC,MAAM,QAAQ,OAAO,KAAK,WAAW,OAAO,QAAQ,MAAM,YAAY;AAAA,IACtE,OAAO,UAAU;AAAA,IACjB,OAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,OAAO;AAAA;AAQT,SAAS,QAAQ,CAAC,QAAQ,OAAO;AAAA,EAC/B,MAAM,SAAS,CAAC;AAAA,EAChB,SAAS,IAAI,EAAG,IAAI,MAAM,OAAO,KAAK;AAAA,IACpC,OAAO,KAAK,aAAa,QAAQ,KAAK,CAAC;AAAA,EACzC;AAAA,EACA,OAAO;AAAA;AAQT,SAAS,WAAW,CAAC,QAAQ,OAAO;AAAA,EAClC,QAAQ,SAAS;AAAA,EACjB,MAAM,QAAQ,CAAC;AAAA,EACf,SAAS,IAAI,EAAG,IAAI,MAAM,OAAO,KAAK;AAAA,IACpC,MAAM,QAAQ,KAAK,UAAU,OAAO,QAAQ,MAAM,YAAY;AAAA,IAC9D,OAAO,UAAU;AAAA,IACjB,MAAM,KAAK,SAAS,QAAQ,KAAK,OAAO,MAAM,CAAC,CAAC;AAAA,EAClD;AAAA,EACA,OAAO;AAAA;;;AC5GT,IAAM,UAAU,IAAI;AAMb,IAAM,kBAAkB;AAAA,EAC7B,yBAAyB,CAAC,QAAQ;AAAA,IAChC,OAAO,IAAI,KAAK,OAAO,MAAM,CAAC;AAAA;AAAA,EAEhC,yBAAyB,CAAC,QAAQ;AAAA,IAChC,OAAO,IAAI,KAAK,OAAO,SAAS,KAAK,CAAC;AAAA;AAAA,EAExC,wBAAwB,CAAC,OAAO;AAAA,IAC9B,OAAO,IAAI,KAAK,OAAO,QAAQ,QAAQ,CAAC;AAAA;AAAA,EAE1C,YAAY,CAAC,MAAM;AAAA,IACjB,OAAO,IAAI,KAAK,OAAO,QAAQ;AAAA;AAAA,EAEjC,eAAe,CAAC,OAAO;AAAA,IACrB,OAAO,SAAS,QAAQ,OAAO,KAAK;AAAA;AAAA,EAEtC,aAAa,CAAC,OAAO;AAAA,IACnB,OAAO,SAAS,KAAK,MAAM,QAAQ,OAAO,KAAK,CAAC;AAAA;AAAA,EAElD,iBAAiB,CAAC,OAAO;AAAA,IACvB,OAAO,SAAS,aAAa,EAAE,MAAM,IAAI,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;AAAA;AAAA,EAElH,kBAAkB,CAAC,OAAO;AAAA,IACxB,OAAO,SAAS,aAAa,EAAE,MAAM,IAAI,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,UAAU,GAAG,QAAQ,EAAE,CAAC;AAAA;AAAA,EAElH,aAAa,CAAC,OAAO;AAAA,IACnB,IAAI,CAAC;AAAA,MAAO;AAAA,IACZ,MAAM,MAAM,MAAM,KAAK,OAAO,OAAK,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAAA,IAC3E,OAAO,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,MAAM,IAAI,EAAE;AAAA;AAEhI;AAWO,SAAS,qBAAqB,CAAC,MAAM,YAAY,UAAU,eAAe;AAAA,EAC/E,IAAI,cAAc,SAAS,SAAS,aAAa,GAAG;AAAA,IAClD,IAAI,SAAS;AAAA,IACb,IAAI,gBAAgB,cAAc,EAAE,sBAAsB,aAAa;AAAA,MAErE,SAAS,IAAI,WAAW,YAAY,KAAK,MAAM;AAAA,IACjD;AAAA,IACA,SAAS,IAAI,EAAG,IAAI,KAAK,QAAQ,KAAK;AAAA,MACpC,OAAO,KAAK,WAAW,KAAK;AAAA,IAC9B;AAAA,IACA,OAAO;AAAA,EACT,EAAO;AAAA,IACL,OAAO,QAAQ,MAAM,aAAa;AAAA;AAAA;AAW/B,SAAS,OAAO,CAAC,MAAM,eAAe;AAAA,EAC3C,QAAQ,SAAS,SAAS,OAAO,MAAM,eAAe;AAAA,EACtD,QAAQ,MAAM,gBAAgB,OAAO,cAAc,UAAU;AAAA,EAC7D,MAAM,WAAW,QAAQ,oBAAoB;AAAA,EAG7C,MAAM,YAAY,YAAY,KAAK,OAAK,EAAE,QAAQ,cAAc,SAAS,SAAS;AAAA,EAClF,IAAI,aAAa,SAAS,gBAAgB,UAAU,UAAU,OAAO,SAAS,UAAU;AAAA,IACtF,OAAO;AAAA,EACT;AAAA,EACA,IAAI,UAAU,WAAW;AAAA,IACvB,MAAM,QAAQ,QAAQ,SAAS;AAAA,IAC/B,MAAM,SAAS,MAAM,CAAC;AAAA,IACtB,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM;AAAA,IACjC,SAAS,IAAI,EAAG,IAAI,IAAI,QAAQ,KAAK;AAAA,MACnC,IAAI,KAAK,cAAc,YAAY;AAAA,QACjC,IAAI,KAAK,aAAa,KAAK,EAAE,IAAI;AAAA,MACnC,EAAO;AAAA,QACL,IAAI,KAAK,OAAO,KAAK,EAAE,IAAI;AAAA;AAAA,IAE/B;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,CAAC,SAAS,SAAS,SAAS;AAAA,IAC9B,OAAO,MAAM,KAAK,IAAI,EAAE,IAAI,OAAK,QAAQ,yBAAyB,gBAAgB,CAAC,CAAC,CAAC;AAAA,EACvF;AAAA,EACA,IAAI,UAAU,QAAQ;AAAA,IACpB,OAAO,MAAM,KAAK,IAAI,EAAE,IAAI,OAAK,QAAQ,aAAa,CAAC,CAAC;AAAA,EAC1D;AAAA,EACA,IAAI,UAAU,oBAAoB;AAAA,IAChC,OAAO,MAAM,KAAK,IAAI,EAAE,IAAI,OAAK,QAAQ,0BAA0B,CAAC,CAAC;AAAA,EACvE;AAAA,EACA,IAAI,UAAU,oBAAoB;AAAA,IAChC,OAAO,MAAM,KAAK,IAAI,EAAE,IAAI,OAAK,QAAQ,0BAA0B,CAAC,CAAC;AAAA,EACvE;AAAA,EACA,IAAI,UAAU,QAAQ;AAAA,IACpB,OAAO,KAAK,IAAI,OAAK,QAAQ,cAAc,CAAC,CAAC;AAAA,EAC/C;AAAA,EACA,IAAI,UAAU,QAAQ;AAAA,IACpB,MAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AAAA,EACA,IAAI,UAAU,YAAY;AAAA,IACxB,MAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AAAA,EACA,IAAI,OAAO,SAAS,YAAY;AAAA,IAC9B,OAAO,KAAK,IAAI,OAAK,QAAQ,kBAAkB,CAAC,CAAC;AAAA,EACnD;AAAA,EACA,IAAI,OAAO,SAAS,aAAa;AAAA,IAC/B,OAAO,KAAK,IAAI,OAAK,QAAQ,mBAAmB,CAAC,CAAC;AAAA,EACpD;AAAA,EACA,IAAI,OAAO,SAAS,QAAQ;AAAA,IAC1B,OAAO,KAAK,IAAI,OAAK,QAAQ,cAAc,CAAC,CAAC;AAAA,EAC/C;AAAA,EACA,IAAI,UAAU,UAAU,OAAO,SAAS,YAAY,QAAQ,SAAS,cAAc;AAAA,IACjF,OAAO,KAAK,IAAI,OAAK,QAAQ,gBAAgB,CAAC,CAAC;AAAA,EACjD;AAAA,EACA,IAAI,UAAU,aAAa,OAAO,SAAS,aAAa,MAAM,aAAa,MAAM,CAAC,MAAM,UAAU;AAAA,IAChG,IAAI,gBAAgB;AAAA,MAAe,OAAO,IAAI,eAAe,KAAK,QAAQ,KAAK,YAAY,KAAK,MAAM;AAAA,IACtG,MAAM,MAAM,WAAW,IAAI,MAAM,KAAK,MAAM,IAAI,IAAI,eAAe,KAAK,MAAM;AAAA,IAC9E,SAAS,IAAI,EAAG,IAAI,IAAI,QAAQ;AAAA,MAAK,IAAI,KAAK,KAAK;AAAA,IACnD,OAAO;AAAA,EACT;AAAA,EACA,IAAI,UAAU,aAAa,OAAO,SAAS,aAAa,MAAM,aAAa,MAAM,CAAC,MAAM,UAAU;AAAA,IAChG,IAAI,gBAAgB;AAAA,MAAY,OAAO,IAAI,YAAY,KAAK,QAAQ,KAAK,YAAY,KAAK,MAAM;AAAA,IAChG,MAAM,MAAM,WAAW,IAAI,MAAM,KAAK,MAAM,IAAI,IAAI,YAAY,KAAK,MAAM;AAAA,IAC3E,SAAS,IAAI,EAAG,IAAI,IAAI,QAAQ,KAAK;AAAA,MACnC,IAAI,KAAK,KAAK,KAAK,IAAI,aAAa,KAAK,KAAK,KAAK;AAAA,IACrD;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,OAAO,SAAS,WAAW;AAAA,IAC7B,OAAO,MAAM,KAAK,IAAI,EAAE,IAAI,YAAY;AAAA,EAC1C;AAAA,EACA,IAAI,OAAO,SAAS,aAAa;AAAA,IAC/B,QAAQ,SAAS;AAAA,IAEjB,IAAI,SAAS,QAAQ;AAAA,IACrB,IAAI,SAAS;AAAA,MAAU,SAAS,QAAQ;AAAA,IACxC,IAAI,SAAS;AAAA,MAAS,SAAS,QAAQ;AAAA,IACvC,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM;AAAA,IACjC,SAAS,IAAI,EAAG,IAAI,IAAI,QAAQ,KAAK;AAAA,MACnC,IAAI,KAAK,OAAO,KAAK,EAAE;AAAA,IACzB;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA;AAOF,SAAS,YAAY,CAAC,OAAO;AAAA,EAClC,IAAI,CAAC,MAAM;AAAA,IAAQ,OAAO;AAAA,EAE1B,IAAI,QAAQ;AAAA,EACZ,WAAW,QAAQ,OAAO;AAAA,IACxB,QAAQ,QAAQ,OAAO,OAAO,IAAI;AAAA,EACpC;AAAA,EAGA,MAAM,OAAO,MAAM,SAAS;AAAA,EAC5B,IAAI,SAAS,MAAM,OAAO,OAAO,CAAC,GAAG;AAAA,IACnC,SAAS,MAAM,OAAO,IAAI;AAAA,EAC5B;AAAA,EAEA,OAAO,OAAO,KAAK;AAAA;AAQrB,SAAS,eAAe,CAAC,OAAO;AAAA,EAC9B,MAAM,QAAQ,SAAS,OAAO;AAAA,EAC9B,MAAM,OAAO,QAAQ;AAAA,EACrB,OAAO,OAAO,kBAAkB;AAAA;AAO3B,SAAS,YAAY,CAAC,OAAO;AAAA,EAClC,IAAI,CAAC;AAAA,IAAO;AAAA,EACZ,MAAM,QAAQ,MAAM,MAAM,IAAI,MAAM;AAAA,EACpC,MAAM,OAAO,SAAS,KAAK,KAAK;AAAA,EAChC,MAAM,MAAM,SAAS,KAAK;AAAA,EAC1B,MAAM,OAAO,QAAQ;AAAA,EACrB,IAAI,QAAQ;AAAA,IAAG,OAAO,OAAO,KAAK,OAAO,OAAO;AAAA,EAChD,IAAI,QAAQ;AAAA,IAAM,OAAO,OAAO,MAAM,OAAO;AAAA,EAC7C,OAAO,OAAO,MAAM,MAAM,OAAO,IAAI,OAAO;AAAA;;;ACxM9C,SAAS,UAAU,CAAC,QAAQ,WAAW,MAAM;AAAA,EAC3C,MAAM,UAAU,OAAO;AAAA,EACvB,MAAM,WAAW,CAAC;AAAA,EAClB,IAAI,QAAQ;AAAA,EAGZ,IAAI,QAAQ,cAAc;AAAA,IACxB,OAAO,SAAS,SAAS,QAAQ,cAAc;AAAA,MAC7C,MAAM,eAAe,OAAO,YAAY;AAAA,MACxC,MAAM,QAAQ,WAAW,QAAQ,YAAY,OAAO,CAAC,GAAG,MAAM,aAAa,IAAI,CAAC;AAAA,MAChF,SAAS,MAAM;AAAA,MACf,SAAS,KAAK,KAAK;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,OAAO,EAAE,OAAO,SAAS,UAAU,KAAK;AAAA;AAUnC,SAAS,aAAa,CAAC,QAAQ,MAAM;AAAA,EAC1C,IAAI,OAAO,WAAW,QAAQ,GAAG,CAAC,CAAC;AAAA,EACnC,MAAM,OAAO,CAAC,IAAI;AAAA,EAClB,WAAW,QAAQ,MAAM;AAAA,IACvB,MAAM,QAAQ,KAAK,SAAS,KAAK,YAAS,OAAM,QAAQ,SAAS,IAAI;AAAA,IACrE,IAAI,CAAC;AAAA,MAAO,MAAM,IAAI,MAAM,qCAAqC,MAAM;AAAA,IACvE,KAAK,KAAK,KAAK;AAAA,IACf,OAAO;AAAA,EACT;AAAA,EACA,OAAO;AAAA;AASF,SAAS,kBAAkB,CAAC,aAAY;AAAA,EAE7C,MAAM,UAAU,CAAC;AAAA,EAEjB,SAAS,QAAQ,CAAC,MAAM;AAAA,IACtB,IAAI,KAAK,SAAS,QAAQ;AAAA,MACxB,WAAW,SAAS,KAAK,UAAU;AAAA,QACjC,SAAS,KAAK;AAAA,MAChB;AAAA,IACF,EAAO;AAAA,MACL,QAAQ,KAAK,KAAK,KAAK,KAAK,GAAG,CAAC;AAAA;AAAA;AAAA,EAGpC,SAAS,WAAU;AAAA,EACnB,OAAO;AAAA;AASF,SAAS,qBAAqB,CAAC,YAAY;AAAA,EAChD,IAAI,WAAW;AAAA,EACf,aAAa,aAAa,YAAY;AAAA,IACpC,IAAI,QAAQ,oBAAoB,YAAY;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AASF,SAAS,qBAAqB,CAAC,YAAY;AAAA,EAChD,IAAI,WAAW;AAAA,EACf,aAAa,aAAa,WAAW,MAAM,CAAC,GAAG;AAAA,IAC7C,IAAI,QAAQ,oBAAoB,YAAY;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AASF,SAAS,UAAU,CAAC,QAAQ;AAAA,EACjC,IAAI,CAAC;AAAA,IAAQ,OAAO;AAAA,EACpB,IAAI,OAAO,QAAQ,mBAAmB;AAAA,IAAQ,OAAO;AAAA,EACrD,IAAI,OAAO,SAAS,SAAS;AAAA,IAAG,OAAO;AAAA,EAEvC,MAAM,aAAa,OAAO,SAAS;AAAA,EACnC,IAAI,WAAW,SAAS,SAAS;AAAA,IAAG,OAAO;AAAA,EAC3C,IAAI,WAAW,QAAQ,oBAAoB;AAAA,IAAY,OAAO;AAAA,EAE9D,OAAO;AAAA;AASF,SAAS,SAAS,CAAC,QAAQ;AAAA,EAChC,IAAI,CAAC;AAAA,IAAQ,OAAO;AAAA,EACpB,IAAI,OAAO,QAAQ,mBAAmB;AAAA,IAAO,OAAO;AAAA,EACpD,IAAI,OAAO,SAAS,SAAS;AAAA,IAAG,OAAO;AAAA,EAEvC,MAAM,aAAa,OAAO,SAAS;AAAA,EACnC,IAAI,WAAW,SAAS,WAAW;AAAA,IAAG,OAAO;AAAA,EAC7C,IAAI,WAAW,QAAQ,oBAAoB;AAAA,IAAY,OAAO;AAAA,EAE9D,MAAM,WAAW,WAAW,SAAS,KAAK,WAAS,MAAM,QAAQ,SAAS,KAAK;AAAA,EAC/E,IAAI,UAAU,QAAQ,oBAAoB;AAAA,IAAY,OAAO;AAAA,EAE7D,MAAM,aAAa,WAAW,SAAS,KAAK,WAAS,MAAM,QAAQ,SAAS,OAAO;AAAA,EACnF,IAAI,YAAY,QAAQ,oBAAoB;AAAA,IAAY,OAAO;AAAA,EAE/D,OAAO;AAAA;AASF,SAAS,YAAY,CAAC,YAAY;AAAA,EACvC,IAAI,WAAW,WAAW;AAAA,IAAG,OAAO;AAAA,EACpC,SAAS,UAAU;AAAA,EACnB,IAAI,OAAO,QAAQ,oBAAoB;AAAA,IAAY,OAAO;AAAA,EAC1D,IAAI,OAAO,SAAS;AAAA,IAAQ,OAAO;AAAA,EACnC,OAAO;AAAA;;;ACpJT,IAAM,OAAO;AACb,IAAM,OAAO;AACb,IAAM,QAAQ;AACd,IAAM,OAAO;AACb,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,MAAM;AACZ,IAAM,SAAS;AACf,IAAM,SAAS;AACf,IAAM,OAAO;AACb,IAAM,SAAS;AAQR,SAAS,2BAA2B,CAAC,QAAQ;AAAA,EAElD,MAAM,QAAQ,CAAC;AAAA,EACf,IAAI,MAAM;AAAA,EAEV,OAAO,OAAO,SAAS,OAAO,KAAK,YAAY;AAAA,IAE7C,MAAM,OAAO,OAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,IACjD,MAAM,OAAO,OAAO;AAAA,IACpB,IAAI,SAAS;AAAA,MAAM;AAAA,IACnB,MAAM,QAAQ,QAAQ;AAAA,IACtB,MAAM,QAAQ,MAAM,QAAQ,WAAW,MAAM;AAAA,IAC7C,MAAM,SAAS,SAAS,YAAY,QAAQ,IAAI;AAAA,EAClD;AAAA,EAEA,OAAO;AAAA;AAUT,SAAS,WAAW,CAAC,QAAQ,MAAM;AAAA,EACjC,QAAQ;AAAA,SACH;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,OAAO,OAAO,KAAK,QAAQ,OAAO,QAAQ;AAAA,SACvC;AAAA,SACA;AAAA,MACH,OAAO,WAAW,MAAM;AAAA,SACrB;AAAA,MACH,OAAO,iBAAiB,MAAM;AAAA,SAC3B,QAAQ;AAAA,MACX,MAAM,QAAQ,OAAO,KAAK,WAAW,OAAO,QAAQ,IAAI;AAAA,MACxD,OAAO,UAAU;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,SACK,QAAQ;AAAA,MACX,MAAM,eAAe,WAAW,MAAM;AAAA,MACtC,MAAM,WAAW,IAAI,WAAW,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,YAAY;AAAA,MACxG,OAAO,UAAU;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,SACK,MAAM;AAAA,MACT,MAAM,OAAO,OAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,MACjD,MAAM,WAAW,OAAO;AAAA,MACxB,IAAI,WAAW,QAAQ;AAAA,MACvB,IAAI,aAAa,IAAI;AAAA,QACnB,WAAW,WAAW,MAAM;AAAA,MAC9B;AAAA,MACA,MAAM,WAAW,aAAa,QAAQ,aAAa;AAAA,MACnD,MAAM,SAAS,IAAI,MAAM,QAAQ;AAAA,MACjC,SAAS,IAAI,EAAG,IAAI,UAAU,KAAK;AAAA,QACjC,OAAO,KAAK,WAAW,YAAY,QAAQ,IAAI,MAAM,IAAI,YAAY,QAAQ,QAAQ;AAAA,MACvF;AAAA,MACA,OAAO;AAAA,IACT;AAAA,SACK;AAAA,MAEH,OAAO,4BAA4B,MAAM;AAAA;AAAA,MAGzC,MAAM,IAAI,MAAM,0BAA0B,MAAM;AAAA;AAAA;AAU7C,SAAS,UAAU,CAAC,QAAQ;AAAA,EACjC,IAAI,UAAS;AAAA,EACb,IAAI,QAAQ;AAAA,EACZ,OAAO,MAAM;AAAA,IAEX,MAAM,OAAO,OAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,IACjD,YAAW,OAAO,QAAS;AAAA,IAC3B,IAAI,EAAE,OAAO,MAAO;AAAA,MAClB,OAAO;AAAA,IACT;AAAA,IACA,SAAS;AAAA,EACX;AAAA;AASF,SAAS,aAAa,CAAC,QAAQ;AAAA,EAC7B,IAAI,UAAS;AAAA,EACb,IAAI,QAAQ;AAAA,EACZ,OAAO,MAAM;AAAA,IACX,MAAM,OAAO,OAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,IACjD,WAAU,OAAO,OAAO,GAAI,KAAK;AAAA,IACjC,IAAI,EAAE,OAAO,MAAO;AAAA,MAClB,OAAO;AAAA,IACT;AAAA,IACA,SAAS;AAAA,EACX;AAAA;AAUK,SAAS,UAAU,CAAC,QAAQ;AAAA,EACjC,MAAM,SAAS,WAAW,MAAM;AAAA,EAChC,OAAO,WAAW,IAAI,EAAE,SAAS;AAAA;AAS5B,SAAS,gBAAgB,CAAC,QAAQ;AAAA,EACvC,MAAM,SAAS,cAAc,MAAM;AAAA,EACnC,OAAO,UAAU,KAAK,EAAE,SAAS;AAAA;;;ACrJ5B,SAAS,cAAc,CAAC,QAAQ,oBAAoB;AAAA,EAGzD,MAAM,UAAU,IAAI;AAAA,EACpB,MAAM,MAAM,oBAAoB,KAAK,GAAG,UAAU,QAAQ,KAAK,GAAG;AAAA,EAClE,MAAM,kBAAkB,OAAO,KAAK,MAAM,GAAG,GAAG,YAAY,CAAC;AAAA,EAC7D,YAAY,MAAM,WAAW,OAAO,QAAQ,cAAc,GAAG;AAAA,IAC3D,IAAI,OAAO,aAAa;AAAA,MAAO;AAAA,IAE/B,MAAM,OAAO,OAAO,UAAU,cAAc,cAAc;AAAA,IAC1D,MAAM,KAAK,OAAO,KAAK,MAAM,OAAO,KAAK,MAAM;AAAA,IAC/C,MAAM,MAAM,KAAK,GAAG,GAAG,aAAa,GAAG,KAAK,SAAS,MAAM;AAAA,IAE3D,QAAQ,IAAI,MAAM,EAAE,MAAM,IAAI,CAAC;AAAA,EACjC;AAAA,EAIA,SAAS,IAAI,EAAG,IAAI,OAAO,QAAQ,KAAK;AAAA,IACtC,QAAQ,cAAc,MAAM,cAAc,SAAS,OAAO;AAAA,IAC1D,IAAI,cAAc;AAAA,MAChB,KAAK;AAAA,MACL;AAAA,IACF;AAAA,IACA,IAAI,SAAS,gBAAgB,CAAC,cAAc;AAAA,MAC1C,OAAO,GAAG,eAAe,QAAQ,IAAI,IAAI;AAAA,IAC3C;AAAA,EACF;AAAA;;;ACtBK,IAAM,0BAA0B,KAAK;AAE5C,IAAM,WAAU,IAAI;AACpB,SAAS,MAAM,CAA2B,OAAO;AAAA,EAC/C,OAAO,SAAS,SAAQ,OAAO,KAAK;AAAA;AA2BtC,eAAsB,oBAAoB,CAAC,eAAe,SAAS,mBAAmB,yBAAyB,aAAa,SAAS,CAAC,GAAG;AAAA,EACvI,IAAI,CAAC,eAAe,EAAE,YAAY,cAAc;AAAA,IAAI,MAAM,IAAI,MAAM,8BAA8B;AAAA,EAGlG,MAAM,eAAe,KAAK,IAAI,GAAG,YAAY,aAAa,gBAAgB;AAAA,EAC1E,MAAM,eAAe,MAAM,YAAY,MAAM,cAAc,YAAY,UAAU;AAAA,EAGjF,MAAM,aAAa,IAAI,SAAS,YAAY;AAAA,EAC5C,IAAI,WAAW,UAAU,aAAa,aAAa,GAAG,IAAI,MAAM,WAAY;AAAA,IAC1E,MAAM,IAAI,MAAM,uCAAuC;AAAA,EACzD;AAAA,EAIA,MAAM,iBAAiB,WAAW,UAAU,aAAa,aAAa,GAAG,IAAI;AAAA,EAC7E,IAAI,iBAAiB,YAAY,aAAa,GAAG;AAAA,IAC/C,MAAM,IAAI,MAAM,2BAA2B,2CAA2C,YAAY,aAAa,GAAG;AAAA,EACpH;AAAA,EAGA,IAAI,iBAAiB,IAAI,kBAAkB;AAAA,IAEzC,MAAM,iBAAiB,YAAY,aAAa,iBAAiB;AAAA,IACjE,MAAM,iBAAiB,MAAM,YAAY,MAAM,gBAAgB,YAAY;AAAA,IAE3E,MAAM,iBAAiB,IAAI,YAAY,iBAAiB,CAAC;AAAA,IACzD,MAAM,eAAe,IAAI,WAAW,cAAc;AAAA,IAClD,aAAa,IAAI,IAAI,WAAW,cAAc,CAAC;AAAA,IAC/C,aAAa,IAAI,IAAI,WAAW,YAAY,GAAG,eAAe,cAAc;AAAA,IAC5E,OAAO,gBAAgB,gBAAgB,EAAE,SAAS,WAAW,CAAC;AAAA,EAChE,EAAO;AAAA,IAEL,OAAO,gBAAgB,cAAc,EAAE,SAAS,WAAW,CAAC;AAAA;AAAA;AAWzD,SAAS,eAAe,CAAC,eAAe,SAAS,aAAa,SAAS,CAAC,GAAG;AAAA,EAChF,IAAI,EAAE,uBAAuB;AAAA,IAAc,MAAM,IAAI,MAAM,8BAA8B;AAAA,EACzF,MAAM,OAAO,IAAI,SAAS,WAAW;AAAA,EAGrC,UAAU,KAAK,oBAAoB,QAAQ;AAAA,EAG3C,IAAI,KAAK,aAAa,GAAG;AAAA,IACvB,MAAM,IAAI,MAAM,2BAA2B;AAAA,EAC7C;AAAA,EACA,IAAI,KAAK,UAAU,KAAK,aAAa,GAAG,IAAI,MAAM,WAAY;AAAA,IAC5D,MAAM,IAAI,MAAM,uCAAuC;AAAA,EACzD;AAAA,EAIA,MAAM,uBAAuB,KAAK,aAAa;AAAA,EAC/C,MAAM,iBAAiB,KAAK,UAAU,sBAAsB,IAAI;AAAA,EAChE,IAAI,iBAAiB,KAAK,aAAa,GAAG;AAAA,IAExC,MAAM,IAAI,MAAM,2BAA2B,2CAA2C,KAAK,aAAa,GAAG;AAAA,EAC7G;AAAA,EAEA,MAAM,iBAAiB,uBAAuB;AAAA,EAC9C,MAAM,SAAS,EAAE,MAAM,QAAQ,eAAe;AAAA,EAC9C,MAAM,WAAW,4BAA4B,MAAM;AAAA,EAGnD,MAAM,UAAU,SAAS;AAAA,EAEzB,MAAM,SAAS,SAAS,QAAQ,IAAI,CAAoB,WAAW;AAAA,IACjE,MAAM,aAAa,MAAM;AAAA,IACzB,aAAa,MAAM;AAAA,IACnB,iBAAiB,qBAAqB,MAAM;AAAA,IAC5C,MAAM,OAAO,MAAM,OAAO;AAAA,IAC1B,cAAc,MAAM;AAAA,IACpB,gBAAgB,eAAe,MAAM;AAAA,IACrC,OAAO,MAAM;AAAA,IACb,WAAW,MAAM;AAAA,IACjB,UAAU,MAAM;AAAA,IAChB,cAAc,YAAY,MAAM,QAAQ;AAAA,EAC1C,EAAE;AAAA,EAEF,MAAM,eAAe,OAAO,OAAO,OAAK,EAAE,IAAI;AAAA,EAC9C,MAAM,WAAW,SAAS;AAAA,EAC1B,MAAM,aAAa,SAAS,QAAQ,IAAI,CAAoB,cAAc;AAAA,IACxE,SAAS,SAAS,QAAQ,IAAI,CAAoB,QAA8B,iBAAiB;AAAA,MAC/F,WAAW,OAAO,OAAO,OAAO;AAAA,MAChC,aAAa,OAAO;AAAA,MACpB,WAAW,OAAO,WAAW;AAAA,QAC3B,MAAM,aAAa,OAAO,QAAQ;AAAA,QAClC,WAAW,OAAO,QAAQ,SAAS,IAAI,CAAuB,MAAM,UAAU,EAAE;AAAA,QAChF,gBAAgB,OAAO,QAAQ,QAAQ,IAAI,MAAM;AAAA,QACjD,OAAO,kBAAkB,OAAO,QAAQ;AAAA,QACxC,YAAY,OAAO,QAAQ;AAAA,QAC3B,yBAAyB,OAAO,QAAQ;AAAA,QACxC,uBAAuB,OAAO,QAAQ;AAAA,QACtC,oBAAoB,OAAO,QAAQ,SAAS,IAAI,CAAoB,QAAQ;AAAA,UAC1E,KAAK,OAAO,GAAG,OAAO;AAAA,UACtB,OAAO,OAAO,GAAG,OAAO;AAAA,QAC1B,EAAE;AAAA,QACF,kBAAkB,OAAO,QAAQ;AAAA,QACjC,mBAAmB,OAAO,QAAQ;AAAA,QAClC,wBAAwB,OAAO,QAAQ;AAAA,QACvC,YAAY,aAAa,OAAO,QAAQ,UAAU,aAAa,cAAc,OAAO;AAAA,QACpF,gBAAgB,OAAO,QAAQ,UAAU,IAAI,CAAoB,kBAAkB;AAAA,UACjF,WAAW,UAAU,aAAa;AAAA,UAClC,UAAU,UAAU,aAAa;AAAA,UACjC,OAAO,aAAa;AAAA,QACtB,EAAE;AAAA,QACF,qBAAqB,OAAO,QAAQ;AAAA,QACpC,qBAAqB,OAAO,QAAQ;AAAA,QACpC,iBAAiB,OAAO,QAAQ,YAAY;AAAA,UAC1C,iCAAiC,OAAO,QAAQ,SAAS;AAAA,UACzD,4BAA4B,OAAO,QAAQ,SAAS;AAAA,UACpD,4BAA4B,OAAO,QAAQ,SAAS;AAAA,QACtD;AAAA,QACA,uBAAuB,OAAO,QAAQ,YAAY;AAAA,UAChD,MAAM,OAAO,QAAQ,SAAS,WAAW;AAAA,YACvC,MAAM,OAAO,QAAQ,SAAS,QAAQ;AAAA,YACtC,MAAM,OAAO,QAAQ,SAAS,QAAQ;AAAA,YACtC,MAAM,OAAO,QAAQ,SAAS,QAAQ;AAAA,YACtC,MAAM,OAAO,QAAQ,SAAS,QAAQ;AAAA,YACtC,MAAM,OAAO,QAAQ,SAAS,QAAQ;AAAA,YACtC,MAAM,OAAO,QAAQ,SAAS,QAAQ;AAAA,YACtC,MAAM,OAAO,QAAQ,SAAS,QAAQ;AAAA,YACtC,MAAM,OAAO,QAAQ,SAAS,QAAQ;AAAA,UACxC;AAAA,UACA,kBAAkB,OAAO,QAAQ,SAAS;AAAA,QAC5C;AAAA,MACF;AAAA,MACA,qBAAqB,OAAO;AAAA,MAC5B,qBAAqB,OAAO;AAAA,MAC5B,qBAAqB,OAAO;AAAA,MAC5B,qBAAqB,OAAO;AAAA,MAC5B,iBAAiB,OAAO;AAAA,MACxB,2BAA2B,OAAO;AAAA,IACpC,EAAE;AAAA,IACF,iBAAiB,SAAS;AAAA,IAC1B,UAAU,SAAS;AAAA,IACnB,iBAAiB,SAAS,SAAS,IAAI,CAAoB,mBAAmB;AAAA,MAC5E,YAAY,cAAc;AAAA,MAC1B,YAAY,cAAc;AAAA,MAC1B,aAAa,cAAc;AAAA,IAC7B,EAAE;AAAA,IACF,aAAa,SAAS;AAAA,IACtB,uBAAuB,SAAS;AAAA,IAChC,SAAS,SAAS;AAAA,EACpB,EAAE;AAAA,EAEF,MAAM,qBAAqB,SAAS,SAAS,IAAI,CAAoB,QAAQ;AAAA,IAC3E,KAAK,OAAO,GAAG,OAAO;AAAA,IACtB,OAAO,OAAO,GAAG,OAAO;AAAA,EAC1B,EAAE;AAAA,EACF,MAAM,aAAa,OAAO,SAAS,OAAO;AAAA,EAE1C,IAAI,YAAY;AAAA,IACd,eAAe,QAAQ,kBAAkB;AAAA,EAC3C;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,EACnB;AAAA;AASK,SAAS,aAAa,GAAG,UAAU;AAAA,EACxC,OAAO,cAAc,QAAQ,CAAC,CAAC,EAAE;AAAA;AAOnC,SAAS,WAAW,CAAC,cAAa;AAAA,EAChC,IAAI,cAAa;AAAA,IAAS,OAAO,EAAE,MAAM,SAAS;AAAA,EAClD,IAAI,cAAa;AAAA,IAAS,OAAO,EAAE,MAAM,MAAM;AAAA,EAC/C,IAAI,cAAa;AAAA,IAAS,OAAO,EAAE,MAAM,OAAO;AAAA,EAChD,IAAI,cAAa;AAAA,IAAS,OAAO,EAAE,MAAM,OAAO;AAAA,EAChD,IAAI,cAAa;AAAA,IAAS,OAAO;AAAA,MAC/B,MAAM;AAAA,MACN,OAAO,aAAY,QAAQ;AAAA,MAC3B,WAAW,aAAY,QAAQ;AAAA,IACjC;AAAA,EACA,IAAI,cAAa;AAAA,IAAS,OAAO,EAAE,MAAM,OAAO;AAAA,EAChD,IAAI,cAAa;AAAA,IAAS,OAAO;AAAA,MAC/B,MAAM;AAAA,MACN,iBAAiB,aAAY,QAAQ;AAAA,MACrC,MAAM,SAAS,aAAY,QAAQ,OAAO;AAAA,IAC5C;AAAA,EACA,IAAI,cAAa;AAAA,IAAS,OAAO;AAAA,MAC/B,MAAM;AAAA,MACN,iBAAiB,aAAY,QAAQ;AAAA,MACrC,MAAM,SAAS,aAAY,QAAQ,OAAO;AAAA,IAC5C;AAAA,EACA,IAAI,cAAa;AAAA,IAAU,OAAO;AAAA,MAChC,MAAM;AAAA,MACN,UAAU,aAAY,SAAS;AAAA,MAC/B,UAAU,aAAY,SAAS;AAAA,IACjC;AAAA,EACA,IAAI,cAAa;AAAA,IAAU,OAAO,EAAE,MAAM,OAAO;AAAA,EACjD,IAAI,cAAa;AAAA,IAAU,OAAO,EAAE,MAAM,OAAO;AAAA,EACjD,IAAI,cAAa;AAAA,IAAU,OAAO,EAAE,MAAM,OAAO;AAAA,EACjD,IAAI,cAAa;AAAA,IAAU,OAAO,EAAE,MAAM,OAAO;AAAA,EACjD,IAAI,cAAa;AAAA,IAAU,OAAO,EAAE,MAAM,UAAU;AAAA,EACpD,IAAI,cAAa;AAAA,IAAU,OAAO;AAAA,MAChC,MAAM;AAAA,MACN,uBAAuB,aAAY,SAAS;AAAA,IAC9C;AAAA,EACA,IAAI,cAAa;AAAA,IAAU,OAAO;AAAA,MAChC,MAAM;AAAA,MACN,KAAK,OAAO,aAAY,SAAS,OAAO;AAAA,IAC1C;AAAA,EACA,IAAI,cAAa;AAAA,IAAU,OAAO;AAAA,MAChC,MAAM;AAAA,MACN,KAAK,OAAO,aAAY,SAAS,OAAO;AAAA,MACxC,WAAW,4BAA4B,aAAY,SAAS;AAAA,IAC9D;AAAA,EACA,OAAO;AAAA;AAOT,SAAS,QAAQ,CAAC,MAAM;AAAA,EACtB,IAAI,KAAK;AAAA,IAAS,OAAO;AAAA,EACzB,IAAI,KAAK;AAAA,IAAS,OAAO;AAAA,EACzB,IAAI,KAAK;AAAA,IAAS,OAAO;AAAA,EACzB,MAAM,IAAI,MAAM,4BAA4B;AAAA;AAW9C,SAAS,YAAY,CAAC,OAAO,QAAQ,SAAS;AAAA,EAC5C,OAAO,SAAS;AAAA,IACd,KAAK,gBAAgB,MAAM,SAAS,QAAQ,OAAO;AAAA,IACnD,KAAK,gBAAgB,MAAM,SAAS,QAAQ,OAAO;AAAA,IACnD,YAAY,MAAM;AAAA,IAClB,gBAAgB,MAAM;AAAA,IACtB,WAAW,gBAAgB,MAAM,SAAS,QAAQ,OAAO;AAAA,IACzD,WAAW,gBAAgB,MAAM,SAAS,QAAQ,OAAO;AAAA,IACzD,oBAAoB,MAAM;AAAA,IAC1B,oBAAoB,MAAM;AAAA,EAC5B;AAAA;AASK,SAAS,eAAe,CAAC,OAAO,QAAQ,SAAS;AAAA,EACtD,QAAQ,MAAM,gBAAgB,iBAAiB;AAAA,EAC/C,IAAI,UAAU;AAAA,IAAW,OAAO;AAAA,EAChC,IAAI,SAAS;AAAA,IAAW,OAAO,MAAM,OAAO;AAAA,EAC5C,IAAI,SAAS;AAAA,IAAc,OAAO,QAAQ,gBAAgB,KAAK;AAAA,EAC/D,MAAM,OAAO,IAAI,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,UAAU;AAAA,EAC1E,IAAI,SAAS,WAAW,KAAK,eAAe;AAAA,IAAG,OAAO,KAAK,WAAW,GAAG,IAAI;AAAA,EAC7E,IAAI,SAAS,YAAY,KAAK,eAAe;AAAA,IAAG,OAAO,KAAK,WAAW,GAAG,IAAI;AAAA,EAC9E,IAAI,SAAS,WAAW,mBAAmB,aAAa,KAAK,eAAe,GAAG;AAAA,IAC7E,OAAO,KAAK,SAAS,GAAG,IAAI,IAAI,MAAM,EAAE,OAAO,SAAS;AAAA,EAC1D;AAAA,EACA,IAAI,SAAS,WAAW,mBAAmB,aAAa,KAAK,eAAe,GAAG;AAAA,IAC7E,OAAO,OAAO,KAAK,YAAY,GAAG,IAAI,CAAC,IAAI,MAAM,EAAE,OAAO,SAAS;AAAA,EACrE;AAAA,EACA,IAAI,SAAS,WAAW,mBAAmB;AAAA,IAAQ,OAAO,QAAQ,aAAa,KAAK,SAAS,GAAG,IAAI,CAAC;AAAA,EACrG,IAAI,SAAS,WAAW,mBAAmB;AAAA,IAAoB,OAAO,QAAQ,0BAA0B,KAAK,YAAY,GAAG,IAAI,CAAC;AAAA,EACjI,IAAI,SAAS,WAAW,mBAAmB;AAAA,IAAoB,OAAO,QAAQ,0BAA0B,KAAK,YAAY,GAAG,IAAI,CAAC;AAAA,EACjI,IAAI,SAAS,WAAW,cAAc,SAAS,eAAe,cAAc,SAAS;AAAA,IAAS,OAAO,QAAQ,yBAAyB,KAAK,YAAY,GAAG,IAAI,CAAC;AAAA,EAC/J,IAAI,SAAS,WAAW,cAAc,SAAS,eAAe,cAAc,SAAS;AAAA,IAAU,OAAO,QAAQ,0BAA0B,KAAK,YAAY,GAAG,IAAI,CAAC;AAAA,EACjK,IAAI,SAAS,WAAW,cAAc,SAAS;AAAA,IAAa,OAAO,QAAQ,0BAA0B,KAAK,YAAY,GAAG,IAAI,CAAC;AAAA,EAC9H,MAAM,WAAW,gBAAgB,WAAW,OAAO,KACjD,cAAc,SAAS,aAAa,CAAC,aAAa;AAAA,EACpD,IAAI,SAAS,WAAW,YAAY,KAAK,eAAe;AAAA,IAAG,OAAO,KAAK,UAAU,GAAG,IAAI;AAAA,EACxF,IAAI,SAAS,WAAW,YAAY,KAAK,eAAe;AAAA,IAAG,OAAO,KAAK,aAAa,GAAG,IAAI;AAAA,EAC3F,IAAI,SAAS,WAAW,KAAK,eAAe;AAAA,IAAG,OAAO,KAAK,SAAS,GAAG,IAAI;AAAA,EAC3E,IAAI,SAAS,WAAW,KAAK,eAAe;AAAA,IAAG,OAAO,KAAK,YAAY,GAAG,IAAI;AAAA,EAC9E,IAAI,mBAAmB;AAAA,IAAW,OAAO,aAAa,KAAK,IAAI,MAAM,EAAE,OAAO,SAAS;AAAA,EACvF,IAAI,cAAc,SAAS;AAAA,IAAW,OAAO,aAAa,KAAK;AAAA,EAC/D,IAAI,cAAc,SAAS;AAAA,IAAQ,OAAO,QAAQ,cAAc,KAAK;AAAA,EACrE,IAAI,SAAS;AAAA,IAAwB,OAAO;AAAA,EAE5C,OAAO;AAAA;;;AC5UF,SAAS,eAAe,CAAC,QAAQ,QAAQ,UAAU,WAAW;AAAA,EACnE,UAAU,KAAK,oBAAoB,QAAQ;AAAA,EAE3C,MAAM,SAAS,4BAA4B,MAAM;AAAA,EACjD,OAAO;AAAA,IACL,YAAY,OAAO;AAAA,IACnB,YAAY,OAAO,QAAQ,IAAI,CAAoB,MAAM,gBAAgB,GAAG,QAAQ,OAAO,CAAC;AAAA,IAC5F,YAAY,OAAO,QAAQ,IAAI,CAAoB,MAAM,gBAAgB,GAAG,QAAQ,OAAO,CAAC;AAAA,IAC5F,gBAAgB,eAAe,OAAO;AAAA,IACtC,aAAa,OAAO;AAAA,IACpB,6BAA6B,OAAO;AAAA,IACpC,6BAA6B,OAAO;AAAA,EACtC;AAAA;AAOK,SAAS,eAAe,CAAC,QAAQ;AAAA,EACtC,MAAM,SAAS,4BAA4B,MAAM;AAAA,EACjD,OAAO;AAAA,IAEL,gBAAgB,OAAO,QAAQ,IAAI,UAAQ;AAAA,MACzC,QAAQ,IAAI;AAAA,MACZ,sBAAsB,IAAI;AAAA,MAC1B,iBAAiB,IAAI;AAAA,IACvB,EAAE;AAAA,IACF,iCAAiC,OAAO;AAAA,EAC1C;AAAA;;;ACzCF,IAAM,OAAO;AACb,IAAM,SAAS;AACf,IAAM,SAAS;AACf,IAAM,SAAS;AACf,IAAM,SAAS;AACf,IAAM,SAAS;AAOf,SAAS,MAAM,CAAC,GAAG,GAAG;AAAA,EACpB,QAAQ,KAAK,IAAI,KAAK,MAAM,KAAK;AAAA;AAQnC,SAAS,KAAK,CAAC,KAAK,KAAK;AAAA,EACvB,MAAM,MAAM,MAAM,SAAS;AAAA,EAC3B,MAAM,OAAO,KAAK,GAAG;AAAA,EACrB,OAAO,MAAM,SAAS;AAAA;AAQxB,SAAS,UAAU,CAAC,KAAK,KAAK;AAAA,EAC5B,OAAO,MAAM,IAAI,GAAG;AAAA,EACpB,OAAO,MAAM,SAAS,SAAS;AAAA;AAU1B,SAAS,QAAQ,CAAC,OAAO,OAAO,IAAI;AAAA,EACzC,MAAM,OAAO,IAAI,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,UAAU;AAAA,EAC1E,MAAM,MAAM,MAAM;AAAA,EAClB,IAAI,SAAS;AAAA,EACb,IAAI;AAAA,EAEJ,IAAI,OAAO,IAAI;AAAA,IACb,IAAI,KAAK,OAAO,SAAS,SAAS;AAAA,IAClC,IAAI,KAAK,OAAO,SAAS;AAAA,IACzB,IAAI,KAAK;AAAA,IACT,IAAI,KAAK,OAAO,SAAS;AAAA,IAEzB,OAAO,SAAS,MAAM,KAAK;AAAA,MACzB,KAAK,MAAM,IAAI,KAAK,aAAa,QAAQ,IAAI,CAAC;AAAA,MAAG,UAAU;AAAA,MAC3D,KAAK,MAAM,IAAI,KAAK,aAAa,QAAQ,IAAI,CAAC;AAAA,MAAG,UAAU;AAAA,MAC3D,KAAK,MAAM,IAAI,KAAK,aAAa,QAAQ,IAAI,CAAC;AAAA,MAAG,UAAU;AAAA,MAC3D,KAAK,MAAM,IAAI,KAAK,aAAa,QAAQ,IAAI,CAAC;AAAA,MAAG,UAAU;AAAA,IAC7D;AAAA,IAEA,MAAM,OAAO,IAAI,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,IAAI,GAAG,IAAI;AAAA,IAC5E,MAAM,WAAW,KAAK,EAAE;AAAA,IACxB,MAAM,WAAW,KAAK,EAAE;AAAA,IACxB,MAAM,WAAW,KAAK,EAAE;AAAA,IACxB,MAAM,WAAW,KAAK,EAAE;AAAA,EAC1B,EAAO;AAAA,IACL,MAAM,OAAO,SAAS;AAAA;AAAA,EAGxB,MAAM,MAAM,OAAO,GAAG,IAAI;AAAA,EAE1B,OAAO,SAAS,KAAK,KAAK;AAAA,IACxB,OAAO,MAAM,IAAI,KAAK,aAAa,QAAQ,IAAI,CAAC;AAAA,IAChD,MAAM,OAAO,KAAK,GAAG,IAAI,SAAS,SAAS;AAAA,IAC3C,UAAU;AAAA,EACZ;AAAA,EAEA,IAAI,SAAS,KAAK,KAAK;AAAA,IACrB,OAAO,OAAO,KAAK,UAAU,QAAQ,IAAI,CAAC,IAAI,SAAS;AAAA,IACvD,MAAM,OAAO,KAAK,GAAG,IAAI,SAAS,SAAS;AAAA,IAC3C,UAAU;AAAA,EACZ;AAAA,EAEA,OAAO,SAAS,KAAK;AAAA,IACnB,OAAO,OAAO,KAAK,SAAS,MAAM,CAAC,IAAI,SAAS;AAAA,IAChD,MAAM,OAAO,KAAK,GAAG,IAAI,SAAS;AAAA,IAClC,UAAU;AAAA,EACZ;AAAA,EAEA,OAAO,OAAO;AAAA,EACd,MAAM,MAAM,SAAS;AAAA,EACrB,OAAO,OAAO;AAAA,EACd,MAAM,MAAM,SAAS;AAAA,EACrB,OAAO,OAAO;AAAA,EACd,OAAO;AAAA;;;ACxFT,IAAM,cAAc,IAAI;AAExB,IAAM,OAAO,IAAI,YAAY;AAAA,EAC3B;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AACtC,CAAC;AASD,SAAS,UAAU,CAAC,MAAM,WAAW;AAAA,EACnC,OAAO,QAAQ,QAAQ,OAAO,OAAO,SAAS,KAAK,GAAG;AAAA;AASxD,SAAS,SAAS,CAAC,MAAM;AAAA,EACvB,MAAM,IAAI,IAAI,YAAY,CAAC;AAAA,EAC3B,MAAM,MAAM,OAAO,OAAO,WAAW,IAAI;AAAA,EACzC,SAAS,IAAI,EAAG,IAAI,GAAG,KAAK;AAAA,IAC1B,EAAE,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM;AAAA,EAC3C;AAAA,EACA,OAAO;AAAA;AAyBF,SAAS,YAAY,CAAC,QAAQ,MAAM;AAAA,EACzC,MAAM,SAAS,WAAW,MAAM,OAAO,UAAU,CAAC,KAAK;AAAA,EACvD,MAAM,IAAI,UAAU,IAAI;AAAA,EACxB,SAAS,IAAI,EAAG,IAAI,GAAG,KAAK;AAAA,IAC1B,KAAK,OAAO,SAAS,KAAK,EAAE,QAAQ;AAAA,MAAG,OAAO;AAAA,EAChD;AAAA,EACA,OAAO;AAAA;AAWF,SAAS,eAAe,CAAC,QAAQ;AAAA,EACtC,MAAM,SAAS,4BAA4B,MAAM;AAAA,EACjD,MAAM,WAAW,OAAO;AAAA,EACxB,IAAI,OAAO,aAAa,YAAY,YAAY,KAAK,WAAW,OAAO;AAAA,IAAG;AAAA,EAE1E,IAAI,CAAC,OAAO,SAAS;AAAA,IAAS;AAAA,EAC9B,IAAI,CAAC,OAAO,SAAS;AAAA,IAAS;AAAA,EAC9B,IAAI,CAAC,OAAO,SAAS;AAAA,IAAS;AAAA,EAE9B,QAAQ,MAAM,WAAW;AAAA,EACzB,IAAI,SAAS,WAAW,KAAK,YAAY;AAAA,IACvC,MAAM,IAAI,MAAM,wCAAwC,wBAAwB,KAAK,aAAa,QAAQ;AAAA,EAC5G;AAAA,EAEA,MAAM,SAAS,IAAI,YAAY,YAAY,CAAC;AAAA,EAC5C,SAAS,IAAI,EAAG,IAAI,OAAO,QAAQ,KAAK;AAAA,IACtC,OAAO,KAAK,KAAK,UAAU,SAAS,IAAI,GAAG,IAAI;AAAA,EACjD;AAAA,EACA,OAAO,SAAS,SAAS;AAAA,EACzB,OAAO,EAAE,UAAU,OAAO;AAAA;AAcrB,SAAS,gBAAgB,CAAC,OAAO,SAAS;AAAA,EAC/C,IAAI,UAAU,QAAQ,UAAU;AAAA,IAAW;AAAA,EAC3C,QAAQ,MAAM,gBAAgB,iBAAiB;AAAA,EAE/C,IAAI,SAAS,WAAW;AAAA,IACtB,IAAI,OAAO,UAAU;AAAA,MAAW;AAAA,IAChC,OAAO,SAAS,IAAI,WAAW,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAA,EACjD;AAAA,EAEA,IAAI,SAAS,SAAS;AAAA,IACpB,IAAI,OAAO,UAAU;AAAA,MAAU;AAAA,IAC/B,MAAM,MAAM,IAAI,YAAY,CAAC;AAAA,IAC7B,IAAI,SAAS,GAAG,EAAE,WAAW,GAAG,OAAO,IAAI;AAAA,IAC3C,OAAO,SAAS,IAAI,WAAW,GAAG,CAAC;AAAA,EACrC;AAAA,EAEA,IAAI,SAAS,UAAU;AAAA,IACrB,IAAI,OAAO,UAAU;AAAA,MAAU;AAAA,IAC/B,MAAM,MAAM,IAAI,YAAY,CAAC;AAAA,IAC7B,IAAI,SAAS,GAAG,EAAE,WAAW,GAAG,OAAO,IAAI;AAAA,IAC3C,OAAO,SAAS,IAAI,WAAW,GAAG,CAAC;AAAA,EACrC;AAAA,EAEA,IAAI,SAAS,SAAS;AAAA,IACpB,IAAI,mBAAmB,UAAU,mBAAmB,aAAa,mBAAmB;AAAA,MAAe;AAAA,IACnG,IAAI,cAAc,SAAS,UAAU,cAAc,SAAS,UAAU,cAAc,SAAS;AAAA,MAAW;AAAA,IACxG,IAAI,OAAO,UAAU,YAAY,CAAC,OAAO,UAAU,KAAK;AAAA,MAAG;AAAA,IAC3D,MAAM,MAAM,IAAI,YAAY,CAAC;AAAA,IAC7B,IAAI,SAAS,GAAG,EAAE,SAAS,GAAG,QAAQ,GAAG,IAAI;AAAA,IAC7C,OAAO,SAAS,IAAI,WAAW,GAAG,CAAC;AAAA,EACrC;AAAA,EAEA,IAAI,SAAS,SAAS;AAAA,IACpB,IAAI,mBAAmB,sBAAsB,mBAAmB;AAAA,MAAoB;AAAA,IACpF,IAAI,mBAAmB,iBAAiB,mBAAmB;AAAA,MAAW;AAAA,IACtE,IAAI,cAAc,SAAS,eAAe,cAAc,SAAS,UAAU,cAAc,SAAS;AAAA,MAAW;AAAA,IAC7G,IAAI;AAAA,IACJ,IAAI,OAAO,UAAU;AAAA,MAAU,WAAW;AAAA,IACrC,SAAI,OAAO,UAAU,YAAY,OAAO,cAAc,KAAK;AAAA,MAAG,WAAW,OAAO,KAAK;AAAA,IACrF;AAAA;AAAA,IACL,MAAM,MAAM,IAAI,YAAY,CAAC;AAAA,IAC7B,IAAI,SAAS,GAAG,EAAE,aAAa,GAAG,OAAO,QAAQ,IAAI,QAAQ,GAAG,IAAI;AAAA,IACpE,OAAO,SAAS,IAAI,WAAW,GAAG,CAAC;AAAA,EACrC;AAAA,EAEA,IAAI,SAAS,cAAc;AAAA,IACzB,IAAI,mBAAmB,UAAU,mBAAmB,UAAU,mBAAmB;AAAA,MAAW;AAAA,IAC5F,IAAI,cAAc,SAAS,UAAU,cAAc,SAAS,UAAU,cAAc,SAAS;AAAA,MAAW;AAAA,IACxG,IAAI,cAAc,SAAS,cAAc,cAAc,SAAS;AAAA,MAAa;AAAA,IAC7E,IAAI,OAAO,UAAU;AAAA,MAAU,OAAO,SAAS,YAAY,OAAO,KAAK,CAAC;AAAA,IACxE,IAAI,iBAAiB;AAAA,MAAY,OAAO,SAAS,KAAK;AAAA,IACtD;AAAA,EACF;AAAA,EAEA,IAAI,SAAS,wBAAwB;AAAA,IACnC,IAAI,mBAAmB,aAAa,mBAAmB;AAAA,MAAY;AAAA,IACnE,IAAI,cAAc,SAAS,aAAa,cAAc,SAAS,UAAU,cAAc,SAAS;AAAA,MAAW;AAAA,IAC3G,IAAI,cAAc,SAAS,cAAc,cAAc,SAAS;AAAA,MAAa;AAAA,IAC7E,IAAI,iBAAiB;AAAA,MAAY,OAAO,SAAS,KAAK;AAAA,IACtD;AAAA,EACF;AAAA,EAGA;AAAA;AAWK,SAAS,oBAAoB,CAAC,QAAQ;AAAA,EAE3C,MAAM,MAAM,IAAI;AAAA,EAChB,kBAAkB,QAAQ,GAAG;AAAA,EAC7B,OAAO;AAAA;AAOT,SAAS,iBAAiB,CAAC,QAAQ,KAAK;AAAA,EACtC,IAAI,CAAC;AAAA,IAAQ;AAAA,EACb,IAAI,UAAU,UAAU,MAAM,QAAQ,OAAO,IAAI,GAAG;AAAA,IAClD,WAAW,OAAO,OAAO;AAAA,MAAM,kBAAkB,KAAK,GAAG;AAAA,IACzD;AAAA,EACF;AAAA,EACA,IAAI,SAAS,UAAU,MAAM,QAAQ,OAAO,GAAG,GAAG;AAAA,IAChD,WAAW,OAAO,OAAO;AAAA,MAAK,kBAAkB,KAAK,GAAG;AAAA,IACxD;AAAA,EACF;AAAA,EAEA,IAAI,UAAU;AAAA,IAAQ;AAAA,EACtB,YAAY,OAAO,cAAc,OAAO,QAAQ,MAAM,GAAG;AAAA,IACvD,IAAI,MAAM,WAAW,GAAG;AAAA,MAAG;AAAA,IAC3B,IAAI,OAAO,cAAc,YAAY,cAAc,QAAQ,CAAC,MAAM,QAAQ,SAAS,GAAG;AAAA,MACpF,IAAI,SAAS,aAAa,SAAS;AAAA,QAAW,IAAI,IAAI,KAAK;AAAA,IAC7D,EAAO;AAAA,MAEL,IAAI,IAAI,KAAK;AAAA;AAAA,EAEjB;AAAA;;;ACzLK,SAAS,MAAM,CAAC,KAAK,KAAK;AAAA,EAC/B,MAAM,QAAQ;AAAA,EACd,SAAS,IAAI,EAAG,IAAI,IAAI,QAAQ,KAAK,OAAO;AAAA,IAC1C,IAAI,KAAK,GAAG,IAAI,MAAM,GAAG,IAAI,KAAK,CAAC;AAAA,EACrC;AAAA;AAWK,SAAS,MAAM,CAAC,GAAG,GAAG,SAAS,MAAM;AAAA,EAE1C,IAAI,SAAS,MAAM,IAAI,KAAK;AAAA,IAAG,OAAO;AAAA,EACtC,IAAI,CAAC,KAAK,CAAC,KAAK,OAAO,MAAM,YAAY,OAAO,MAAM;AAAA,IAAU,OAAO;AAAA,EAEvE,IAAI,aAAa,cAAc,aAAa,YAAY;AAAA,IACtD,IAAI,EAAE,WAAW,EAAE;AAAA,MAAQ,OAAO;AAAA,IAClC,SAAS,IAAI,EAAG,IAAI,EAAE,QAAQ,KAAK;AAAA,MACjC,IAAI,EAAE,OAAO,EAAE;AAAA,QAAI,OAAO;AAAA,IAC5B;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,aAAa,QAAQ,aAAa,MAAM;AAAA,IAC1C,OAAO,aAAa,QAAQ,aAAa,QAAQ,EAAE,QAAQ,MAAM,EAAE,QAAQ;AAAA,EAC7E;AAAA,EACA,IAAI,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,GAAG;AAAA,IACxC,IAAI,EAAE,WAAW,EAAE;AAAA,MAAQ,OAAO;AAAA,IAClC,SAAS,IAAI,EAAG,IAAI,EAAE,QAAQ,KAAK;AAAA,MACjC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,MAAM;AAAA,QAAG,OAAO;AAAA,IAC1C;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,QAAQ,OAAO,KAAK,CAAC;AAAA,EAC3B,IAAI,MAAM,WAAW,OAAO,KAAK,CAAC,EAAE;AAAA,IAAQ,OAAO;AAAA,EACnD,WAAW,KAAK,OAAO;AAAA,IACrB,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,MAAM;AAAA,MAAG,OAAO;AAAA,EAC1C;AAAA,EACA,OAAO;AAAA;AA2MF,SAAS,OAAO,CAAC,QAAQ;AAAA,EAC9B,IAAI,CAAC;AAAA,IAAQ,OAAO,CAAC;AAAA,EACrB,IAAI,OAAO,WAAW;AAAA,IAAG,OAAO,OAAO;AAAA,EAEvC,MAAM,SAAS,CAAC;AAAA,EAChB,WAAW,SAAS,QAAQ;AAAA,IAC1B,OAAO,QAAQ,KAAK;AAAA,EACtB;AAAA,EACA,OAAO;AAAA;;;AC5RT,IAAM,UAAU,IAAI;AAQb,SAAS,oBAAoB,CAAC,QAAQ;AAAA,EAC3C,IAAI,CAAC;AAAA,IAAQ,OAAO,CAAC;AAAA,EAErB,MAAM,QAAQ,CAAC;AAAA,EACf,IAAI,UAAU,UAAU,MAAM,QAAQ,OAAO,IAAI,GAAG;AAAA,IAClD,MAAM,KAAK,GAAG,OAAO,KAAK,QAAQ,oBAAoB,CAAC;AAAA,EACzD,EAAO,SAAI,SAAS,UAAU,MAAM,QAAQ,OAAO,GAAG,GAAG;AAAA,IACvD,MAAM,KAAK,GAAG,OAAO,IAAI,QAAQ,oBAAoB,CAAC;AAAA,EACxD,EAAO,SAAI,UAAU,UAAU,MAAM,QAAQ,OAAO,IAAI,GAAG;AAAA,IACzD,MAAM,KAAK,GAAG,OAAO,KAAK,QAAQ,oBAAoB,CAAC;AAAA,EACzD,EAAO;AAAA,IACL,MAAM,KAAK,GAAG,OAAO,KAAK,MAAM,CAAC;AAAA;AAAA,EAEnC,OAAO,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC;AAAA;AASpB,SAAS,sBAAsB,CAAC,QAAQ;AAAA,EAC7C,OAAO,CAAC,GAAG,IAAI,IAAI,qBAAqB,MAAM,EAAE,IAAI,UAAQ,KAAK,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;AAAA;AAW3E,SAAS,WAAW,CAAC,QAAQ,QAAQ,SAAS,MAAM;AAAA,EACzD,IAAI,UAAU,UAAU,MAAM,QAAQ,OAAO,IAAI,GAAG;AAAA,IAClD,OAAO,OAAO,KAAK,MAAM,cAAY,YAAY,QAAQ,UAAU,MAAM,CAAC;AAAA,EAC5E;AAAA,EACA,IAAI,SAAS,UAAU,MAAM,QAAQ,OAAO,GAAG,GAAG;AAAA,IAChD,OAAO,OAAO,IAAI,KAAK,cAAY,YAAY,QAAQ,UAAU,MAAM,CAAC;AAAA,EAC1E;AAAA,EACA,IAAI,UAAU,UAAU,MAAM,QAAQ,OAAO,IAAI,GAAG;AAAA,IAClD,OAAO,CAAC,OAAO,KAAK,KAAK,cAAY,YAAY,QAAQ,UAAU,MAAM,CAAC;AAAA,EAC5E;AAAA,EAEA,OAAO,OAAO,QAAQ,MAAM,EAAE,MAAM,EAAE,OAAO,eAAe;AAAA,IAC1D,MAAM,QAAQ,QAAQ,QAAQ,KAAK;AAAA,IAGnC,IAAI,OAAO,cAAc,YAAY,cAAc,QAAQ,MAAM,QAAQ,SAAS,GAAG;AAAA,MACnF,OAAO,OAAO,OAAO,WAAW,MAAM;AAAA,IACxC;AAAA,IAEA,OAAO,OAAO,QAAQ,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,YAAY;AAAA,MACnE,IAAI,aAAa;AAAA,QAAO,OAAO,UAAU,QAAQ,UAAU,aAAa,QAAQ;AAAA,MAChF,IAAI,aAAa;AAAA,QAAQ,OAAO,UAAU,QAAQ,UAAU,aAAa,SAAS;AAAA,MAClF,IAAI,aAAa;AAAA,QAAO,OAAO,UAAU,QAAQ,UAAU,aAAa,QAAQ;AAAA,MAChF,IAAI,aAAa;AAAA,QAAQ,OAAO,UAAU,QAAQ,UAAU,aAAa,SAAS;AAAA,MAClF,IAAI,aAAa;AAAA,QAAO,OAAO,OAAO,OAAO,QAAQ,MAAM;AAAA,MAC3D,IAAI,aAAa;AAAA,QAAO,OAAO,CAAC,OAAO,OAAO,QAAQ,MAAM;AAAA,MAC5D,IAAI,aAAa;AAAA,QAAO,OAAO,MAAM,QAAQ,MAAM,KAAK,UAAU,OAAO,QAAQ,MAAM;AAAA,MACvF,IAAI,aAAa;AAAA,QAAQ,OAAO,MAAM,QAAQ,MAAM,KAAK,CAAC,UAAU,OAAO,QAAQ,MAAM;AAAA,MACzF,IAAI,aAAa;AAAA,QAAQ,OAAO,CAAC,YAAY,GAAG,QAAQ,MAAM,GAAG,GAAG,QAAQ,OAAO,GAAG,MAAM;AAAA,MAC5F,OAAO;AAAA,KACR;AAAA,GACF;AAAA;AAWH,SAAS,SAAS,CAAC,OAAO,SAAS,QAAQ;AAAA,EACzC,OAAO,QAAQ,KAAK,YAClB,OAAO,OAAO,QAAQ,MAAM,KAC5B,MAAM,QAAQ,KAAK,KAAK,MAAM,KAAK,aAAW,OAAO,SAAS,QAAQ,MAAM,CAAC,CAAC;AAAA;AAiB3E,SAAS,eAAe,GAAG,UAAU,iBAAiB,QAAQ,SAAS,MAAM,cAAc,kBAAkB;AAAA,EAClH,IAAI,CAAC;AAAA,IAAQ,OAAO;AAAA,EAGpB,IAAI,UAAU,UAAU,MAAM,QAAQ,OAAO,IAAI,GAAG;AAAA,IAElD,OAAO,OAAO,KAAK,KAAK,eAAa,gBAAgB,EAAE,UAAU,iBAAiB,QAAQ,WAAW,QAAQ,cAAc,eAAe,CAAC,CAAC;AAAA,EAC9I;AAAA,EACA,IAAI,SAAS,UAAU,MAAM,QAAQ,OAAO,GAAG,GAAG;AAAA,IAEhD,OAAO,OAAO,IAAI,MAAM,eAAa,gBAAgB,EAAE,UAAU,iBAAiB,QAAQ,WAAW,QAAQ,cAAc,eAAe,CAAC,CAAC;AAAA,EAC9I;AAAA,EACA,IAAI,UAAU,UAAU,MAAM,QAAQ,OAAO,IAAI,GAAG;AAAA,IAGlD,OAAO;AAAA,EACT;AAAA,EAGA,YAAY,OAAO,cAAc,OAAO,QAAQ,MAAM,GAAG;AAAA,IAEvD,MAAM,cAAc,gBAAgB,QAAQ,KAAK;AAAA,IACjD,IAAI,gBAAgB;AAAA,MAAI;AAAA,IAExB,MAAM,QAAQ,SAAS,QAAQ,aAAa,WAAW;AAAA,IACvD,QAAQ,KAAK,KAAK,WAAW,WAAW,YAAY,cAAc,SAAS,CAAC;AAAA,IAC5E,MAAM,SAAS,cAAc,YAAY,YAAY;AAAA,IACrD,MAAM,SAAS,cAAc,YAAY,YAAY;AAAA,IACrD,MAAM,YAAY,WAAW,aAAa,WAAW;AAAA,IAErD,MAAM,QAAQ,eAAe;AAAA,IAC7B,MAAM,UAAU,iBAAiB;AAAA,IACjC,MAAM,gBAAgB,YAAY,EAAE,OAAO,KAAK,GAAG,EAAE,OAAO,UAAU,GAAG,MAAM,MAC5E,cAAc,aAAa,YAAY;AAAA,IAE1C,IAAI,aAAa,CAAC,iBAAiB,aAAa,WAAW,QAAQ,QAAQ,QAAQ,OAAO,GAAG;AAAA,MAC3F,OAAO;AAAA,IACT;AAAA,IAGA,YAAY,UAAU,WAAW,OAAO,QAAQ,aAAa,CAAC,CAAC,GAAG;AAAA,MAEhE,IAAI,SAAS,SAAS;AAAA,QACpB,IAAI,aAAa,OAAO;AAAA,UACtB,MAAM,OAAO,iBAAiB,QAAQ,OAAO;AAAA,UAC7C,IAAI,SAAS,aAAa,CAAC,aAAa,MAAM,QAAQ,IAAI;AAAA,YAAG,OAAO;AAAA,QACtE;AAAA,QACA,IAAI,aAAa,SAAS,MAAM,QAAQ,MAAM,KAAK,OAAO,SAAS,GAAG;AAAA,UACpE,IAAI,YAAY;AAAA,UAChB,WAAW,KAAK,QAAQ;AAAA,YACtB,MAAM,IAAI,iBAAiB,GAAG,OAAO;AAAA,YACrC,IAAI,MAAM,aAAa,aAAa,MAAM,QAAQ,CAAC,GAAG;AAAA,cACpD,YAAY;AAAA,cACZ;AAAA,YACF;AAAA,UACF;AAAA,UACA,IAAI;AAAA,YAAW,OAAO;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAcT,SAAS,YAAY,CAAC,WAAW,QAAQ,QAAQ,QAAQ,SAAS;AAAA,EAChE,IAAI,WAAW,aAAa,WAAW;AAAA,IAAW,OAAO;AAAA,EACzD,MAAM,gBAAgB,SAAS,SAAS,WAAW,SAAS,SAAS,YAAY,SAAS,cAAc,SAAS;AAAA,EACjH,YAAY,UAAU,WAAW,OAAO,QAAQ,aAAa,CAAC,CAAC,GAAG;AAAA,IAChE,MAAM,gBAAgB,qBAAqB,QAAQ,QAAQ,QAAQ,OAAO;AAAA,IAC1E,MAAM,gBAAgB,qBAAqB,QAAQ,QAAQ,QAAQ,OAAO;AAAA,IAK1E,MAAM,eAAe,kBAAkB,cAAc,kBAAkB;AAAA,IACvE,MAAM,0BAA0B,CAAC,iBAAiB,SAAS,SAAS,gBAClE,OAAO,WAAW,YAAY,CAAC,GAAG,MAAM,EAAE,MAAM,eAAa,UAAU,WAAW,CAAC,KAAK,GAAI;AAAA,IAC9F,IAAI,aAAa,SAAS,2BAA2B,kBAAkB,aAAa,iBAAiB;AAAA,MAAG,OAAO;AAAA,IAC/G,IAAI,aAAa,UAAU,2BAA2B,kBAAkB,aAAa,gBAAgB;AAAA,MAAG,OAAO;AAAA,IAC/G,IAAI,aAAa,SAAS,2BAA2B,kBAAkB,aAAa,iBAAiB;AAAA,MAAG,OAAO;AAAA,IAC/G,IAAI,aAAa,UAAU,2BAA2B,kBAAkB,aAAa,gBAAgB;AAAA,MAAG,OAAO;AAAA,IAC/G,IAAI,aAAa,OAAO;AAAA,MACtB,MAAM,sBAAsB,qBAAqB,QAAQ,QAAQ,QAAQ,OAAO;AAAA,MAChF,MAAM,sBAAsB,qBAAqB,QAAQ,QAAQ,QAAQ,OAAO;AAAA,MAChF,IAAI,wBAAwB,aAAa,sBAAsB,KAC3D,wBAAwB,aAAa,sBAAsB;AAAA,QAAG,OAAO;AAAA,IAC3E;AAAA,IACA,IAAI,aAAa,SAAS,CAAC,iBAAiB,OAAO,QAAQ,QAAQ,MAAM,KAAK,OAAO,QAAQ,QAAQ,MAAM;AAAA,MAAG,OAAO;AAAA,IACrH,IAAI,aAAa,SAAS,MAAM,QAAQ,MAAM,KAAK,OAAO,MAAM,WAAS;AAAA,MACvE,MAAM,qBAAqB,qBAAqB,OAAO,QAAQ,QAAQ,OAAO;AAAA,MAC9E,MAAM,qBAAqB,qBAAqB,OAAO,QAAQ,QAAQ,OAAO;AAAA,MAC9E,OAAO,uBAAuB,aAAa,qBAAqB,KAC9D,uBAAuB,aAAa,qBAAqB;AAAA,KAC5D;AAAA,MAAG,OAAO;AAAA,IACX,IAAI,aAAa,UAAU,CAAC,iBAAiB,MAAM,QAAQ,MAAM,KAAK,OAAO,QAAQ,QAAQ,MAAM,KAAK,OAAO,KAAK,WAAS,OAAO,QAAQ,OAAO,MAAM,CAAC;AAAA,MAAG,OAAO;AAAA,EACtK;AAAA,EACA,OAAO;AAAA;AAaT,SAAS,oBAAoB,CAAC,GAAG,GAAG,QAAQ,SAAS;AAAA,EAGnD,IAAI,SAAS,SAAS,cAAc;AAAA,IAClC,IAAI,OAAO,MAAM,YAAY,OAAO,MAAM;AAAA,MAAU;AAAA,IACpD,OAAO,aAAa,QAAQ,OAAO,CAAC,GAAG,QAAQ,OAAO,CAAC,CAAC;AAAA,EAC1D;AAAA,EACA,IAAI,aAAa,cAAc,aAAa,YAAY;AAAA,IACtD,IAAI,EAAE,aAAa,eAAe,EAAE,aAAa;AAAA,MAAa;AAAA,IAC9D,OAAO,aAAa,GAAG,CAAC;AAAA,EAC1B;AAAA,EACA,IAAI,IAAI;AAAA,IAAG,OAAO;AAAA,EAClB,IAAI,IAAI;AAAA,IAAG,OAAO;AAAA,EAClB,IAAI,OAAO,GAAG,GAAG,MAAM;AAAA,IAAG,OAAO;AAAA,EACjC;AAAA;AAQF,SAAS,YAAY,CAAC,GAAG,GAAG;AAAA,EAC1B,MAAM,SAAS,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM;AAAA,EAC1C,SAAS,IAAI,EAAG,IAAI,QAAQ,KAAK;AAAA,IAC/B,IAAI,EAAE,KAAK,EAAE;AAAA,MAAI,OAAO;AAAA,IACxB,IAAI,EAAE,KAAK,EAAE;AAAA,MAAI,OAAO;AAAA,EAC1B;AAAA,EACA,IAAI,EAAE,SAAS,EAAE;AAAA,IAAQ,OAAO;AAAA,EAChC,IAAI,EAAE,SAAS,EAAE;AAAA,IAAQ,OAAO;AAAA,EAChC,OAAO;AAAA;AAUT,SAAS,WAAW,CAAC,WAAW,QAAQ;AAAA,EACtC,OAAO,YAAY,EAAE,OAAO,KAAK,GAAG,EAAE,OAAO,UAAU,GAAG,MAAM;AAAA;AAkB3D,SAAS,gBAAgB,CAAC,QAAQ,aAAa,WAAW,SAAS,MAAM;AAAA,EAC9E,IAAI,CAAC;AAAA,IAAQ;AAAA,EACb,IAAI,UAAU,UAAU,MAAM,QAAQ,OAAO,IAAI,GAAG;AAAA,IAElD,IAAI;AAAA,IACJ,WAAW,aAAa,OAAO,MAAM;AAAA,MACnC,SAAS,gBAAgB,QAAQ,iBAAiB,WAAW,aAAa,WAAW,MAAM,CAAC;AAAA,IAC9F;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,SAAS,UAAU,MAAM,QAAQ,OAAO,GAAG,GAAG;AAAA,IAEhD,IAAI,SAAS,CAAC;AAAA,IACd,WAAW,aAAa,OAAO,KAAK;AAAA,MAClC,MAAM,YAAY,iBAAiB,WAAW,aAAa,WAAW,MAAM;AAAA,MAE5E,IAAI,CAAC;AAAA,QAAW;AAAA,MAChB,SAAS,YAAY,QAAQ,SAAS;AAAA,IACxC;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,IAAI,UAAU,UAAU,MAAM,QAAQ,OAAO,IAAI,GAAG;AAAA,IAElD;AAAA,EACF;AAAA,EAIA,IAAI;AAAA,EACJ,YAAY,OAAO,cAAc,OAAO,QAAQ,MAAM,GAAG;AAAA,IACvD,MAAM,QAAQ,YAAY;AAAA,IAC1B,IAAI,CAAC;AAAA,MAAO;AAAA,IACZ,MAAM,eAAe,YAAY,WAAW,MAAM;AAAA,IAElD,MAAM,OAAO,CAAC;AAAA,IACd,SAAS,IAAI,EAAG,IAAI,MAAM,WAAW,QAAQ,KAAK;AAAA,MAChD,MAAM,QAAQ,MAAM,WAAW;AAAA,MAC/B,MAAM,MAAM,IAAI,IAAI,MAAM,WAAW,SAAS,MAAM,WAAW,IAAI,KAAK;AAAA,MACxE,MAAM,YAAY,MAAM,aAAa;AAAA,MAGrC,MAAM,gBAAgB,iBAAiB,cAAc,aAAa,YAAY;AAAA,MAC9E,MAAM,OAAO,CAAC,MAAM,UAAU,MAAM,CAAC,iBACnC,aAAa,WAAW,MAAM,UAAU,IAAI,MAAM,UAAU,IAAI,QAAQ,MAAM,OAAO;AAAA,MACvF,IAAI,CAAC,MAAM;AAAA,QACT,MAAM,OAAO,KAAK,KAAK,SAAS;AAAA,QAChC,IAAI,QAAQ,KAAK,OAAO;AAAA,UAAO,KAAK,KAAK;AAAA,QACpC;AAAA,eAAK,KAAK,CAAC,OAAO,GAAG,CAAC;AAAA,MAC7B;AAAA,IACF;AAAA,IACA,UAAS,gBAAgB,SAAQ,IAAI;AAAA,EACvC;AAAA,EACA,OAAO;AAAA;AAUF,SAAS,eAAe,CAAC,GAAG,GAAG;AAAA,EACpC,IAAI,CAAC;AAAA,IAAG,OAAO;AAAA,EACf,IAAI,CAAC;AAAA,IAAG,OAAO;AAAA,EAEf,MAAM,MAAM,CAAC;AAAA,EACb,IAAI,IAAI;AAAA,EACR,IAAI,IAAI;AAAA,EACR,OAAO,IAAI,EAAE,UAAU,IAAI,EAAE,QAAQ;AAAA,IACnC,MAAM,QAAQ,KAAK,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;AAAA,IACvC,MAAM,MAAM,KAAK,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;AAAA,IACrC,IAAI,QAAQ;AAAA,MAAK,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC;AAAA,IACtC,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG;AAAA,MAAI;AAAA,IAClB;AAAA;AAAA,EACP;AAAA,EACA,OAAO;AAAA;AAUF,SAAS,WAAW,CAAC,GAAG,GAAG;AAAA,EAEhC,MAAM,MAAM,CAAC;AAAA,EACb,IAAI,IAAI;AAAA,EACR,IAAI,IAAI;AAAA,EACR,OAAO,IAAI,EAAE,UAAU,IAAI,EAAE,QAAQ;AAAA,IACnC,MAAM,OAAO,KAAK,EAAE,UAAU,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE;AAAA,IAC9E,MAAM,OAAO,IAAI,IAAI,SAAS;AAAA,IAC9B,IAAI,QAAQ,KAAK,MAAM,KAAK;AAAA,MAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE;AAAA,IAC9D;AAAA,UAAI,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;AAAA,EAClC;AAAA,EACA,OAAO;AAAA;AAUT,SAAS,OAAO,CAAC,QAAQ,MAAM;AAAA,EAC7B,IAAI,QAAQ;AAAA,EACZ,WAAW,QAAQ,KAAK,MAAM,GAAG,GAAG;AAAA,IAClC,QAAQ,QAAQ;AAAA,EAClB;AAAA,EACA,OAAO;AAAA;;;ACxYT,IAAM,WAAW,KAAK;AASf,SAAS,WAAW,GAAG,UAAU,WAAW,GAAG,SAAS,UAAU,SAAS,QAAQ,eAAe,MAAM,iBAAiB,OAAO,qBAAqB,gBAAgB,mBAAmB,wBAAwB;AAAA,EACrN,IAAI,CAAC;AAAA,IAAU,MAAM,IAAI,MAAM,+BAA+B;AAAA,EAE9D,MAAM,SAAS,CAAC;AAAA,EAEhB,MAAM,UAAU,CAAC;AAAA,EAEjB,MAAM,UAAU,CAAC;AAAA,EACjB,MAAM,cAAa,cAAc,QAAQ;AAAA,EACzC,MAAM,kBAAkB,mBAAmB,WAAU;AAAA,EACrD,MAAM,iBAAiB,SAAS;AAAA,OAC3B,uBAAuB,WAAU;AAAA,OACjC;AAAA,EACL,IAAI;AAAA,EAGJ,IAAI,aAAa;AAAA,EACjB,IAAI,QAAQ;AAAA,EACZ,WAAW,YAAY,SAAS,YAAY;AAAA,IAC1C,MAAM,YAAY,OAAO,SAAS,QAAQ;AAAA,IAC1C,MAAM,WAAW,aAAa;AAAA,IAC9B,MAAM,eAAe,sBAAsB;AAAA,IAE3C,IAAI,YAAY,KAAK,WAAW,YAAY,aAAa,UAAU,CAAC,gBAAgB,EAAE,UAAU,iBAAiB,QAAQ,QAAQ,cAAc,cAAc,gBAAgB,eAAe,CAAC,GAAG;AAAA,MAC9L,MAAM,cAAc,KAAK,IAAI,WAAW,YAAY,CAAC;AAAA,MACrD,MAAM,YAAY,KAAK,IAAI,SAAS,YAAY,SAAS;AAAA,MAIzD,MAAM,aAAa,oBAAoB;AAAA,MACvC,MAAM,gBAAgB,uBAAuB;AAAA,MAE7C,IAAI,YAAY,aACZ,WACC,IAAI,EAAE,OAAO,SAAS;AAAA,QAErB,MAAM,QAAQ,CAAC,KAAK,IAAI,OAAO,WAAW,GAAG,KAAK,IAAI,KAAK,SAAS,CAAC;AAAA,QACrE,OAAO;AAAA,OACR,EACA,OAAO,EAAE,OAAO,SAAS,QAAQ,GAAG,IACrC,CAAC,CAAC,aAAa,SAAS,CAAC;AAAA,MAI7B,IAAI,UAAU,SAAS,GAAG;AAAA,QACxB,MAAM,WAAW,SAAS,QAAQ,MAAM,WAAS;AAAA,UAC/C,MAAM,aAAa,MAAM,WAAW,eAAe;AAAA,UACnD,MAAM,aAAa,MAAM,WAAW,eAAe,KAAK,GAAG;AAAA,UAC3D,IAAI,WAAW,cAAc,CAAC,QAAQ,SAAS,UAAU;AAAA,YAAG,OAAO;AAAA,UACnE,OAAO,CAAC,EAAE,MAAM,uBAAuB,MAAM,wBAAwB,CAAC,EAAE,cAAc,gBAAgB;AAAA,SACvG;AAAA,QACD,IAAI,CAAC,UAAU;AAAA,UACb,YAAY,CAAC,CAAC,UAAU,GAAG,IAAI,UAAU,UAAU,SAAS,GAAG,EAAE,CAAC;AAAA,QACpE,EAAO;AAAA,UACL,YAAY,8BAA8B,WAAW,UAAU,SAAS,aAAa;AAAA;AAAA,MAEzF;AAAA,MAEA,IAAI,UAAU,QAAQ;AAAA,QAEpB,MAAM,SAAS,CAAC;AAAA,QAEhB,MAAM,WAAW,UAAU,SAAS,KAClC,UAAU,GAAG,KAAK,KAAK,UAAU,GAAG,KAAK;AAAA,QAE3C,WAAW,SAAS,SAAS,SAAS;AAAA,UACpC,MAAM,QAAO,MAAM;AAAA,UACnB,IAAI,MAAM;AAAA,YAAW,MAAM,IAAI,MAAM,iCAAiC;AAAA,UACtE,IAAI,CAAC;AAAA,YAAM,MAAM,IAAI,MAAM,sCAAsC;AAAA,UAEjE,IAAI,CAAC,WAAW,QAAQ,SAAS,MAAK,eAAe,EAAE,GAAG;AAAA,YAExD,MAAM,eAAe,MAAK,0BAA0B,MAAK;AAAA,YACzD,MAAM,YAAY,OAAO,YAAY;AAAA,YACrC,MAAM,UAAU,OAAO,eAAe,MAAK,qBAAqB;AAAA,YAChE,MAAM,qBAAqB,gBAAgB,MAAK,eAAe,KAAK,GAAG;AAAA,YAEvE,IAAI,sBAAsB,UAAU;AAAA,cAElC,OAAO,KAAK;AAAA,gBACV,gBAAgB;AAAA,gBAChB,eAAe;AAAA,gBACf,OAAO,EAAE,WAAW,QAAQ;AAAA,cAC9B,CAAC;AAAA,YACH,EAAO,UAAK,kBAAkB,eAAe,MAAM,uBAAuB,MAAM,uBAAuB,UAAU;AAAA,cAC/G,MAAM,mBAAmB,OAAO,MAAM,mBAAmB;AAAA,cACzD,OAAO,KAAK;AAAA,gBACV,gBAAgB;AAAA,gBAChB,aAAa;AAAA,kBACX,WAAW;AAAA,kBACX,SAAS,mBAAmB,MAAM;AAAA,gBACpC;AAAA,gBACA,OAAO,EAAE,WAAW,QAAQ;AAAA,cAC9B,CAAC;AAAA,YACH,EAAO;AAAA,cACL,OAAO,KAAK;AAAA,gBACV,gBAAgB;AAAA,gBAChB,OAAO,EAAE,WAAW,QAAQ;AAAA,cAC9B,CAAC;AAAA;AAAA,UAGL;AAAA,QACF;AAAA,QAEA,YAAY,UAAU,WAAW,WAAW;AAAA,UAC1C,OAAO,KAAK,EAAE,QAAQ,UAAU,YAAY,WAAW,aAAa,UAAU,WAAW,OAAO,CAAC;AAAA,QACnG;AAAA,QAIA,IAAI;AAAA,QACJ,WAAW,SAAS,QAAQ;AAAA,UAC1B,IAAI,mBAAmB,OAAO,CAE9B,EAAO,SAAI,iBAAiB,OAAO;AAAA,YACjC,QAAQ,KAAK,MAAM,WAAW;AAAA,UAChC,EAAO;AAAA,YACL,QAAQ,UAAU;AAAA,YAClB,IAAI,SAAS;AAAA,cACX,QAAQ,KAAK,KAAK;AAAA,YACpB,EAAO,SAAI,OAAO,MAAM,UAAU,IAAI,aAAa,UAAU;AAAA,cAE3D,IAAI,UAAU,MAAM;AAAA,YACtB,EAAO;AAAA,cAEL,IAAI;AAAA,gBAAK,QAAQ,KAAK,GAAG;AAAA,cACzB,MAAM,KAAK,MAAM;AAAA;AAAA;AAAA,QAGvB;AAAA,QACA,IAAI;AAAA,UAAK,QAAQ,KAAK,GAAG;AAAA,MAC3B;AAAA,IACF;AAAA,IAEA,aAAa;AAAA,IACb;AAAA,EACF;AAAA,EACA,IAAI,CAAC,SAAS,MAAM;AAAA,IAAG,SAAS;AAAA,EAChC,QAAQ,KAAK,GAAG,OAAO;AAAA,EAEvB,OAAO,EAAE,UAAU,UAAU,QAAQ,SAAS,SAAS,OAAO;AAAA;AAahE,SAAS,6BAA6B,CAAC,QAAQ,UAAU,SAAS,eAAe;AAAA,EAC/E,MAAM,sBAAsB,SAAS,QAClC,OAAO,WAAS,CAAC,WAAW,QAAQ,SAAS,MAAM,WAAW,eAAe,MAAM,EAAE,CAAC,EACtF,IAAI,WAAS,gBAAgB,MAAM,WAAW,eAAe,KAAK,GAAG,KAAK,GAAG;AAAA,EAGhF,MAAM,SAAS,CAAC;AAAA,EAChB,WAAW,SAAS,QAAQ;AAAA,IAC1B,MAAM,OAAO,OAAO,OAAO,SAAS;AAAA,IACpC,MAAM,eAAe,QAAQ,oBAAoB,KAAK,WAAS;AAAA,MAC7D,IAAI,CAAC;AAAA,QAAO,OAAO;AAAA,MACnB,MAAM,YAAY,cAAc,MAAM,OAAO,OAAO,SAAS,QAAQ,CAAC;AAAA,MACtE,MAAM,aAAa,cAAc,OAAO,OAAO,OAAO,SAAS,QAAQ,CAAC;AAAA,MACxE,OAAO,UAAU,MAAM,WAAW,MAAM,WAAW,MAAM,UAAU;AAAA,KACpE;AAAA,IACD,IAAI,QAAQ;AAAA,MAAc,KAAK,KAAK,MAAM;AAAA,IACrC;AAAA,aAAO,KAAK,CAAC,GAAG,KAAK,CAAC;AAAA,EAC7B;AAAA,EACA,OAAO;AAAA;AAYT,SAAS,aAAa,EAAE,YAAY,WAAW,OAAO,WAAW;AAAA,EAC/D,IAAI,QAAQ;AAAA,EACZ,IAAI,OAAO;AAAA,EACX,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,IACrC,MAAM,YAAY,OAAO,MAAM,GAAG,eAAe;AAAA,IACjD,MAAM,UAAU,IAAI,IAAI,MAAM,SAAS,OAAO,MAAM,IAAI,GAAG,eAAe,IAAI;AAAA,IAC9E,IAAI,UAAU,cAAc,YAAY,UAAU;AAAA,MAChD,QAAQ,KAAK,IAAI,OAAO,CAAC;AAAA,MACzB,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,OAAO,CAAC,OAAO,IAAI;AAAA;AAiBrB,eAAsB,oBAAoB,GAAG,MAAM,UAAU,QAAQ,eAAe,QAAQ;AAAA,EAC1F,MAAM,UAAS,SAAS,WAAW,IAAI,OAAkD,CAAC,EAAE;AAAA,EAC5F,MAAM,eAAe,qBAAqB,MAAM;AAAA,EAChD,IAAI,aAAa,SAAS;AAAA,IAAG,OAAO;AAAA,EACpC,MAAM,kBAAkB,mBAAmB,cAAc,QAAQ,CAAC;AAAA,EAGlE,MAAM,QAAQ,CAAC;AAAA,EACf,SAAS,WAAW,QAAQ,CAAC,UAAU,UAAU;AAAA,IAC/C,IAAI,gBAAgB,EAAE,UAAU,iBAAiB,QAAQ,QAAQ,aAAa,CAAC;AAAA,MAAG;AAAA,IAClF,WAAW,WAAW,cAAc;AAAA,MAClC,MAAM,YAAY,gBAAgB,QAAQ,OAAO;AAAA,MACjD,IAAI,cAAc;AAAA,QAAI;AAAA,MACtB,MAAM,QAAO,SAAS,QAAQ,YAAY;AAAA,MAC1C,IAAI,CAAC,OAAM,uBAAuB,CAAC,MAAK;AAAA,QAAqB;AAAA,MAC7D,MAAM,QAAQ,OAAO,MAAK,mBAAmB;AAAA,MAC7C,MAAM,MAAM,QAAQ,MAAK;AAAA,MACzB,MAAM,MAAM,YAAY;AAAA,QACtB,MAAM,SAAS,MAAM,KAAK,MAAM,OAAO,GAAG;AAAA,QAC1C,MAAM,QAAQ,gBAAgB,EAAE,MAAM,IAAI,SAAS,MAAM,GAAG,QAAQ,EAAE,CAAC;AAAA,QACvE,IAAI;AAAA,UAAO,QAAO,OAAO,WAAW;AAAA,SACnC,CAAC;AAAA,IACN;AAAA,GACD;AAAA,EAED,IAAI,MAAM;AAAA,IAAQ,MAAM,QAAQ,IAAI,KAAK;AAAA,EACzC,OAAO;AAAA;AA6BT,eAAsB,mBAAmB,GAAG,MAAM,UAAU,QAAQ,eAAe,MAAM,WAAW,GAAG,SAAS,UAAU,SAAS,qBAAqB,gBAAgB,WAAW;AAAA,EAEjL,MAAM,oBAAoB,SAAS,WAAW,IAAI,MAAG;AAAA,IAAG;AAAA,GAAS;AAAA,EACjE,MAAM,uBAAuB,SAAS,WAAW,IAAI,OAAqD,CAAC,EAAE;AAAA,EAC7G,IAAI,UAAU,UAAU,UAAU,MAAM,QAAQ,OAAO,IAAI,GAAG;AAAA,IAC5D,OAAO,EAAE,mBAAmB,qBAAqB;AAAA,EACnD;AAAA,EACA,MAAM,gBAAgB,qBAAqB,MAAM;AAAA,EACjD,IAAI,CAAC,cAAc;AAAA,IAAQ,OAAO,EAAE,mBAAmB,qBAAqB;AAAA,EAC5E,MAAM,cAAa,cAAc,QAAQ;AAAA,EACzC,MAAM,kBAAkB,mBAAmB,WAAU;AAAA,EACrD,MAAM,iBAAiB;AAAA,OAClB,uBAAuB,WAAU;AAAA,OACjC;AAAA,EACL;AAAA,EAGA,MAAM,cAAc,CAAC;AAAA,EAErB,MAAM,aAAa,CAAC;AAAA,EAEpB,MAAM,kBAAkB,CAAC;AAAA,EACzB,IAAI,aAAa;AAAA,EACjB,SAAS,WAAW,QAAQ,CAAC,UAAU,UAAU;AAAA,IAC/C,MAAM,YAAY,OAAO,SAAS,QAAQ;AAAA,IAC1C,MAAM,WAAW,aAAa;AAAA,IAC9B,MAAM,WAAW,YAAY,KAAK,WAAW,YAAY,aAAa;AAAA,IACtE,aAAa;AAAA,IACb,IAAI,CAAC;AAAA,MAAU;AAAA,IACf,IAAI,gBAAgB,EAAE,UAAU,iBAAiB,QAAQ,QAAQ,cAAc,cAAc,sBAAsB,QAAQ,gBAAgB,eAAe,CAAC;AAAA,MAAG;AAAA,IAG9J,MAAM,cAAc,CAAC;AAAA,IACrB,IAAI,kBAAkB;AAAA,IACtB,MAAM,uBAAuB,IAAI;AAAA,IACjC,IAAI,iBAAiB;AAAA,IACrB,WAAW,cAAc,eAAe;AAAA,MACtC,MAAM,YAAY,gBAAgB,QAAQ,UAAU;AAAA,MACpD,IAAI,cAAc;AAAA,QAAI;AAAA,MACtB,MAAM,QAAQ,SAAS,QAAQ;AAAA,MAC/B,MAAM,QAAO,OAAO;AAAA,MACpB,IAAI,CAAC;AAAA,QAAM;AAAA,MACX,IAAI,CAAC,MAAM,uBAAuB,CAAC,MAAM;AAAA,QAAqB;AAAA,MAC9D,IAAI,CAAC,MAAM,uBAAuB,CAAC,MAAM;AAAA,QAAqB;AAAA,MAC9D,MAAM,UAAU,eAAe;AAAA,MAC/B,IAAI,CAAC;AAAA,QAAS;AAAA,MACd,iBAAiB;AAAA,MACjB,qBAAqB,IAAI,UAAU;AAAA,MACnC,MAAM,mBAAmB,OAAO,MAAM,mBAAmB;AAAA,MACzD,MAAM,mBAAmB,OAAO,MAAM,mBAAmB;AAAA,MACzD,MAAM,iBAAiB,mBAAmB,MAAM;AAAA,MAChD,MAAM,iBAAiB,mBAAmB,MAAM;AAAA,MAChD,YAAY,KACV,EAAE,WAAW,kBAAkB,SAAS,eAAe,GACvD,EAAE,WAAW,kBAAkB,SAAS,eAAe,CACzD;AAAA,MACA;AAAA,MACA,WAAW,KAAK,OAAM,mBAAkB;AAAA,QACtC,OAAO,mBAAmB,qBAAqB,MAAM,QAAQ,IAAI;AAAA,UAC/D,eAAe,MAAM,kBAAkB,cAAc;AAAA,UACrD,eAAe,MAAM,kBAAkB,cAAc;AAAA,QACvD,CAAC;AAAA,QACD,MAAM,cAAc,gBAAgB,EAAE,MAAM,IAAI,SAAS,iBAAiB,GAAG,QAAQ,EAAE,GAAG,SAAS,OAAO;AAAA,QAC1G,MAAM,cAAc,gBAAgB,EAAE,MAAM,IAAI,SAAS,iBAAiB,GAAG,QAAQ,EAAE,CAAC;AAAA,QACxF,qBAAqB,OAAO,cAAc,YAAY;AAAA,QACtD,YAAY,cAAc;AAAA,UACxB,WAAW,YAAY;AAAA,UACvB,WAAW,YAAY;AAAA,UACvB,WAAW,YAAY;AAAA,UACvB,YAAY,YAAY;AAAA,UACxB,YAAY,YAAY,eAAe,IAAI,UAAQ,OAAO,KAAK,eAAe,CAAC;AAAA,UAC/E;AAAA,QACF;AAAA,OACD;AAAA,IACH;AAAA,IAIA,IAAI,gBAAgB;AAAA,MAClB,WAAW,SAAS,SAAS,SAAS;AAAA,QACpC,MAAM,QAAO,MAAM;AAAA,QACnB,IAAI,CAAC;AAAA,UAAM;AAAA,QACX,MAAM,aAAa,MAAK,eAAe;AAAA,QACvC,MAAM,aAAa,MAAK,eAAe,KAAK,GAAG;AAAA,QAC/C,IAAI,WAAW,CAAC,QAAQ,SAAS,UAAU;AAAA,UAAG;AAAA,QAC9C,IAAI,qBAAqB,IAAI,UAAU;AAAA,UAAG;AAAA,QAC1C,IAAI,CAAC,MAAM,uBAAuB,CAAC,MAAM;AAAA,UAAqB;AAAA,QAC9D,qBAAqB,IAAI,UAAU;AAAA,QACnC,MAAM,mBAAmB,OAAO,MAAM,mBAAmB;AAAA,QACzD,MAAM,iBAAiB,mBAAmB,MAAM;AAAA,QAChD,YAAY,KAAK,EAAE,WAAW,kBAAkB,SAAS,eAAe,CAAC;AAAA,QACzE;AAAA,QACA,WAAW,KAAK,OAAM,mBAAkB;AAAA,UACtC,MAAM,oBAAoB,MAAM,eAAe,MAAM,kBAAkB,cAAc;AAAA,UACrF,MAAM,cAAc,gBAAgB,EAAE,MAAM,IAAI,SAAS,iBAAiB,GAAG,QAAQ,EAAE,CAAC;AAAA,UACxF,qBAAqB,OAAO,cAAc,YAAY;AAAA,SACvD;AAAA,MACH;AAAA,IACF;AAAA,IACA,IAAI,iBAAiB;AAAA,MACnB,gBAAgB,KAAK,EAAE,OAAO,WAAW,YAAY,CAAC;AAAA,IACxD;AAAA,GACD;AAAA,EAED,IAAI,WAAW,QAAQ;AAAA,IACrB,MAAM,iBAAiB,oBAAoB,MAAM,EAAE,SAAS,mBAAmB,WAAW,EAAE,CAAC;AAAA,IAC7F,MAAM,QAAQ,IAAI,WAAW,IAAI,UAAQ,KAAK,cAAc,CAAC,CAAC;AAAA,IAC9D,aAAa,OAAO,WAAW,iBAAiB,iBAAiB;AAAA,MAC/D,kBAAkB,SAAS,iBAAiB,QAAQ,aAAa,WAAW,YAAY;AAAA,IAC1F;AAAA,EACF;AAAA,EACA,OAAO,EAAE,mBAAmB,qBAAqB;AAAA;AASnD,SAAS,kBAAkB,CAAC,QAAQ;AAAA,EAClC,MAAM,SAAS,OACZ,IAAI,YAAU,KAAK,MAAM,EAAE,EAC3B,KAAK,CAAC,GAAG,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO;AAAA,EAEpE,MAAM,SAAS,CAAC;AAAA,EAChB,WAAW,SAAS,QAAQ;AAAA,IAC1B,MAAM,OAAO,OAAO,OAAO,SAAS;AAAA,IACpC,IAAI,QAAQ,MAAM,aAAa,KAAK,SAAS;AAAA,MAC3C,KAAK,UAAU,KAAK,IAAI,KAAK,SAAS,MAAM,OAAO;AAAA,IACrD,EAAO;AAAA,MACL,OAAO,KAAK,KAAK;AAAA;AAAA,EAErB;AAAA,EACA,OAAO;AAAA;AAST,SAAS,sBAAsB,CAAC,aAAY;AAAA,EAE1C,MAAM,WAAW,CAAC;AAAA,EAElB,SAAS,QAAQ,CAAC,MAAM;AAAA,IACtB,IAAI,KAAK,SAAS,QAAQ;AAAA,MACxB,WAAW,SAAS,KAAK;AAAA,QAAU,SAAS,KAAK;AAAA,IACnD,EAAO;AAAA,MACL,SAAS,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK;AAAA;AAAA;AAAA,EAGzC,SAAS,WAAU;AAAA,EACnB,OAAO;AAAA;AAUF,SAAS,mBAAmB,CAAC,QAAQ,WAAW;AAAA,EAErD,MAAM,WAAW,QAAQ,IAAI,GAAG,WAAW,cAAc,KAAK,MAAM,WAAW,OAAO,CAAC;AAAA,EACvF,OAAO;AAAA,IACL,YAAY,KAAK;AAAA,IACjB,KAAK,CAAC,OAAO,MAAM,KAAK,YAAY;AAAA,MAElC,MAAM,QAAQ,QAAQ,UAAU,GAAG,WAAW,cAAc,aAAa,SAAS,OAAO,OAAO;AAAA,MAChG,IAAI,QAAQ,GAAG;AAAA,QAEb,OAAO,KAAK,MAAM,OAAO,GAAG;AAAA,MAC9B;AAAA,MACA,IAAI,QAAQ,OAAO,cAAc,SAAS,QAAQ,OAAO,YAAY,KAAK;AAAA,QAExE,MAAM,cAAc,QAAQ,QAAQ,OAAO;AAAA,QAC3C,MAAM,YAAY,MAAM,QAAQ,OAAO;AAAA,QACvC,IAAI,SAAS,kBAAkB,SAAS;AAAA,UACtC,OAAO,SAAS,OAAO,KAAK,YAAU,OAAO,MAAM,aAAa,SAAS,CAAC;AAAA,QAC5E,EAAO;AAAA,UACL,OAAO,SAAS,OAAO,MAAM,aAAa,SAAS;AAAA;AAAA,MAEvD,EAAO;AAAA,QACL,OAAO,SAAS;AAAA;AAAA;AAAA,EAGtB;AAAA;;;ACtdF,IAAM,WAAU,IAAI;AAEpB,IAAM,gBAAgB,IAAI;AASnB,SAAS,mBAAmB,CAAC,OAAO,UAAU,iBAAiB;AAAA,EACpE,IAAI,MAAM,QAAQ,KAAK,GAAG;AAAA,IACxB,OAAO,MAAM,IAAI,WAAS,oBAAoB,OAAO,OAAO,CAAC;AAAA,EAC/D;AAAA,EACA,IAAI,OAAO,UAAU;AAAA,IAAU,OAAO;AAAA,EAEtC,IAAI,cAAc,OAAO;AAAA,IACvB,MAAM,WAAW,qBAAqB,MAAM,QAAQ;AAAA,IAGpD,MAAM,iBAAiB,MAAM,eAAe,iBAAiB,MAAM,aAAa,UAAU,OAAO;AAAA,IAGjG,MAAM,cAAc,MAAM,SAAS,YAAY,WAAW,MAAM,KAAK,GAAG,UAAU,OAAO;AAAA,IAGzF,IAAI,kBAAkB,aAAa;AAAA,MACjC,OAAO,KAAK,gBAAgB,eAAe;AAAA,IAC7C;AAAA,IACA,OAAO,kBAAkB;AAAA,EAC3B;AAAA,EAEA,OAAO;AAAA;AAWT,SAAS,gBAAgB,CAAC,YAAY,UAAU,SAAS;AAAA,EACvD,IAAI,sBAAsB;AAAA,IAAM,OAAO;AAAA,EAGvC,IAAI,cAAc,OAAO,eAAe,YAAY,CAAC,MAAM,QAAQ,UAAU,KAAK,EAAE,sBAAsB,aAAa;AAAA,IACrH,IAAI,iBAAiB,cAAc,WAAW,gBAAgB,QAAQ,WAAW,gBAAgB,WAAW;AAAA,MAC1G,OAAO,iBAAiB,WAAW,aAAa,UAAU,OAAO;AAAA,IACnE;AAAA,IACA,IAAI,WAAW,cAAc,WAAW,iBAAiB,YAAY;AAAA,MACnE,OAAO,YAAY,WAAW,WAAW,KAAK,GAAG,UAAU,OAAO;AAAA,IACpE;AAAA,IACA,IAAI,iBAAiB,cAAc,WAAW,YAAY;AAAA,MAExD,OAAO;AAAA,IACT;AAAA,IAGA,MAAM,UAAS,CAAC;AAAA,IAChB,YAAY,KAAK,UAAU,OAAO,QAAQ,UAAU,GAAG;AAAA,MACrD,IAAI,CAAC,SAAS,WAAW,SAAS,GAAG;AAAA,QAAG;AAAA,MACxC,QAAO,OAAO,iBAAiB,OAAO,UAAU,OAAO;AAAA,IACzD;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EAGA,IAAI,sBAAsB,YAAY;AAAA,IACpC,OAAO,YAAY,WAAW,UAAU,GAAG,UAAU,OAAO;AAAA,EAC9D;AAAA,EAGA,IAAI,MAAM,QAAQ,UAAU,GAAG;AAAA,IAC7B,OAAO,WAAW,IAAI,aAAW,iBAAiB,SAAS,UAAU,OAAO,CAAC;AAAA,EAC/E;AAAA,EAEA,OAAO;AAAA;AAOT,SAAS,UAAU,CAAC,OAAO;AAAA,EACzB,OAAO,EAAE,MAAM,IAAI,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,UAAU,GAAG,QAAQ,EAAE;AAAA;AAS3F,SAAS,oBAAoB,CAAC,OAAO;AAAA,EACnC,IAAI,cAAc,cAAc,IAAI,MAAM,MAAM;AAAA,EAChD,IAAI,CAAC,aAAa;AAAA,IAChB,cAAc,IAAI;AAAA,IAClB,cAAc,IAAI,MAAM,QAAQ,WAAW;AAAA,EAC7C;AAAA,EACA,MAAM,MAAM,GAAG,MAAM,cAAc,MAAM;AAAA,EACzC,MAAM,SAAS,YAAY,IAAI,GAAG;AAAA,EAClC,IAAI;AAAA,IAAQ,OAAO;AAAA,EAEnB,MAAM,SAAS,WAAW,KAAK;AAAA,EAC/B,MAAM,SAAS,OAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,EACnD,MAAM,UAAU,SAAS;AAAA,EACzB,IAAI,YAAY;AAAA,IAAG,MAAM,IAAI,MAAM,iDAAiD,SAAS;AAAA,EAC7F,MAAM,UAAU,UAAU,IAAI,OAAS;AAAA,EACvC,MAAM,cAAc,UAAU,IAAI,KAAO;AAAA,EAEzC,MAAM,iBAAiB,aAAa,QAAQ,UAAU;AAAA,EAEtD,MAAM,UAAU,IAAI,MAAM,iBAAiB,CAAC;AAAA,EAC5C,SAAS,IAAI,EAAG,IAAI,QAAQ,QAAQ,KAAK;AAAA,IACvC,QAAQ,KAAK,aAAa,QAAQ,UAAU;AAAA,EAC9C;AAAA,EAEA,MAAM,OAAO,OAAO;AAAA,EACpB,MAAM,aAAa,IAAI,MAAM,cAAc;AAAA,EAC3C,SAAS,IAAI,EAAG,IAAI,gBAAgB,KAAK;AAAA,IACvC,MAAM,QAAQ,QAAQ;AAAA,IACtB,MAAM,MAAM,QAAQ,IAAI;AAAA,IACxB,MAAM,WAAW,IAAI,WAAW,MAAM,QAAQ,MAAM,aAAa,OAAO,OAAO,MAAM,KAAK;AAAA,IAC1F,WAAW,KAAK,SAAQ,OAAO,QAAQ;AAAA,EACzC;AAAA,EAEA,MAAM,WAAW,EAAE,YAAY,OAAO;AAAA,EACtC,YAAY,IAAI,KAAK,QAAQ;AAAA,EAC7B,OAAO;AAAA;AAQT,SAAS,YAAY,CAAC,QAAQ,WAAW;AAAA,EACvC,IAAI,QAAQ;AAAA,EACZ,SAAS,IAAI,EAAG,IAAI,WAAW,KAAK;AAAA,IAClC,SAAS,OAAO,KAAK,SAAS,OAAO,SAAS,CAAC,KAAK,IAAI;AAAA,EAC1D;AAAA,EACA,OAAO,UAAU;AAAA,EACjB,OAAO;AAAA;AAST,SAAS,WAAW,CAAC,QAAQ,UAAU,SAAS;AAAA,EAC9C,MAAM,WAAW,OAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,EACrD,MAAM,YAAY,WAAW;AAAA,EAC7B,MAAM,SAAS,YAAY;AAAA,EAC3B,IAAI,cAAc;AAAA,IAAG,OAAO,qBAAqB,QAAQ,QAAQ,OAAO;AAAA,EACxE,IAAI,cAAc;AAAA,IAAG,OAAO,kBAAkB,QAAQ,QAAQ,UAAU,OAAO;AAAA,EAC/E,IAAI,cAAc;AAAA,IAAG,OAAO,iBAAiB,QAAQ,QAAQ,UAAU,OAAO;AAAA,EAE9E,MAAM,QAAQ,IAAI,WAAW,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,MAAM;AAAA,EAC/F,OAAO,UAAU;AAAA,EACjB,OAAO,SAAQ,OAAO,KAAK;AAAA;AAS7B,SAAS,oBAAoB,CAAC,QAAQ,QAAQ,SAAS;AAAA,EACrD,QAAQ;AAAA,SACH;AAAA,MAAG,OAAO;AAAA,SACV;AAAA,MAAG,OAAO;AAAA,SACV;AAAA,MAAG,OAAO;AAAA,SACV,GAAG;AAAA,MACN,MAAM,QAAQ,OAAO,KAAK,QAAQ,OAAO,MAAM;AAAA,MAC/C,OAAO,UAAU;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,SACK,GAAG;AAAA,MACN,MAAM,QAAQ,OAAO,KAAK,SAAS,OAAO,QAAQ,IAAI;AAAA,MACtD,OAAO,UAAU;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,SACK,GAAG;AAAA,MACN,MAAM,QAAQ,OAAO,KAAK,SAAS,OAAO,QAAQ,IAAI;AAAA,MACtD,OAAO,UAAU;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,SACK,GAAG;AAAA,MACN,MAAM,QAAQ,OAAO,KAAK,YAAY,OAAO,QAAQ,IAAI;AAAA,MACzD,OAAO,UAAU;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,SACK,GAAG;AAAA,MACN,MAAM,QAAQ,OAAO,KAAK,WAAW,OAAO,QAAQ,IAAI;AAAA,MACxD,OAAO,UAAU;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,SACK;AAAA,MACH,OAAO,mBAAmB,QAAQ,CAAC;AAAA,SAChC;AAAA,MACH,OAAO,mBAAmB,QAAQ,CAAC;AAAA,SAChC;AAAA,MACH,OAAO,mBAAmB,QAAQ,EAAE;AAAA,SACjC,IAAI;AAAA,MACP,MAAM,QAAQ,OAAO,KAAK,SAAS,OAAO,QAAQ,IAAI;AAAA,MACtD,OAAO,UAAU;AAAA,MACjB,OAAO,QAAQ,aAAa,KAAK;AAAA,IACnC;AAAA,SACK;AAAA,SACA,IAAI;AAAA,MACP,MAAM,QAAQ,OAAO,KAAK,YAAY,OAAO,QAAQ,IAAI;AAAA,MACzD,OAAO,UAAU;AAAA,MACjB,OAAO,QAAQ,0BAA0B,KAAK;AAAA,IAChD;AAAA,SACK,IAAI;AAAA,MACP,MAAM,QAAQ,OAAO,KAAK,WAAW,OAAO,QAAQ,IAAI;AAAA,MACxD,OAAO,UAAU;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,SACK;AAAA,MACH,OAAO,kBAAkB,MAAM;AAAA,SAC5B,IAAI;AAAA,MACP,MAAM,QAAQ,kBAAkB,MAAM;AAAA,MACtC,OAAO,SAAQ,OAAO,KAAK;AAAA,IAC7B;AAAA,SACK,IAAI;AAAA,MAEP,MAAM,QAAQ,OAAO,KAAK,YAAY,OAAO,QAAQ,IAAI;AAAA,MACzD,OAAO,UAAU;AAAA,MACjB,OAAO;AAAA,IACT;AAAA,SACK;AAAA,SACA,IAAI;AAAA,MACP,MAAM,QAAQ,OAAO,KAAK,YAAY,OAAO,QAAQ,IAAI;AAAA,MACzD,OAAO,UAAU;AAAA,MACjB,OAAO,QAAQ,yBAAyB,KAAK;AAAA,IAC/C;AAAA,SACK,IAAI;AAAA,MACP,MAAM,QAAQ,IAAI,WAAW,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,EAAE;AAAA,MAC3F,OAAO,UAAU;AAAA,MACjB,MAAM,MAAM,MAAM,KAAK,OAAO,OAAK,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAAA,MAC3E,OAAO,GAAG,IAAI,MAAM,GAAG,CAAC,KAAK,IAAI,MAAM,GAAG,EAAE,KAAK,IAAI,MAAM,IAAI,EAAE,KAAK,IAAI,MAAM,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE;AAAA,IACzG;AAAA;AAAA,MAEE,MAAM,IAAI,MAAM,+CAA+C,QAAQ;AAAA;AAAA;AAW3E,SAAS,iBAAiB,CAAC,QAAQ,QAAQ,UAAU,SAAS;AAAA,EAC5D,MAAM,eAAe,SAAS,KAAO;AAAA,EACrC,MAAM,WAAW,UAAU,IAAI,KAAO;AAAA,EACtC,MAAM,UAAU,UAAU,IAAI;AAAA,EAC9B,MAAM,cAAc,UAAU,aAAa,QAAQ,CAAC,IAAI,OAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,EAG5F,MAAM,WAAW,IAAI,MAAM,WAAW;AAAA,EACtC,SAAS,IAAI,EAAG,IAAI,aAAa,KAAK;AAAA,IACpC,SAAS,KAAK,aAAa,QAAQ,OAAO;AAAA,EAC5C;AAAA,EAEA,MAAM,UAAU,IAAI,MAAM,cAAc,CAAC;AAAA,EACzC,SAAS,IAAI,EAAG,IAAI,QAAQ,QAAQ,KAAK;AAAA,IACvC,QAAQ,KAAK,aAAa,QAAQ,WAAW;AAAA,EAC/C;AAAA,EAGA,MAAM,MAAM,CAAC;AAAA,EACb,SAAS,IAAI,EAAG,IAAI,aAAa,KAAK;AAAA,IACpC,MAAM,MAAM,SAAS,WAAW,SAAS;AAAA,IAEzC,MAAM,cAAc;AAAA,MAClB,MAAM,OAAO;AAAA,MACb,QAAQ,OAAO,SAAS,QAAQ;AAAA,IAClC;AAAA,IACA,IAAI,OAAO,YAAY,aAAa,UAAU,OAAO;AAAA,EACvD;AAAA,EACA,OAAO,UAAU,QAAQ,QAAQ,SAAS;AAAA,EAC1C,OAAO;AAAA;AAUT,SAAS,gBAAgB,CAAC,QAAQ,QAAQ,UAAU,SAAS;AAAA,EAC3D,MAAM,kBAAkB,SAAS;AAAA,EACjC,MAAM,UAAU,UAAU,IAAI;AAAA,EAC9B,MAAM,cAAc,kBAAkB;AAAA,EACtC,MAAM,cAAc,aAAa,QAAQ,UAAU,IAAI,CAAC;AAAA,EAExD,MAAM,UAAU,IAAI,MAAM,cAAc,CAAC;AAAA,EACzC,SAAS,IAAI,EAAG,IAAI,QAAQ,QAAQ,KAAK;AAAA,IACvC,QAAQ,KAAK,aAAa,QAAQ,WAAW;AAAA,EAC/C;AAAA,EAEA,MAAM,cAAc,OAAO;AAAA,EAC3B,MAAM,UAAS,IAAI,MAAM,WAAW;AAAA,EACpC,SAAS,IAAI,EAAG,IAAI,aAAa,KAAK;AAAA,IACpC,MAAM,cAAc;AAAA,MAClB,MAAM,OAAO;AAAA,MACb,QAAQ,cAAc,QAAQ;AAAA,IAChC;AAAA,IACA,QAAO,KAAK,YAAY,aAAa,UAAU,OAAO;AAAA,EACxD;AAAA,EACA,OAAO,SAAS,cAAc,QAAQ,QAAQ,SAAS;AAAA,EACvD,OAAO;AAAA;AAQT,SAAS,kBAAkB,CAAC,QAAQ,OAAO;AAAA,EACzC,MAAM,QAAQ,OAAO,KAAK,SAAS,OAAO,MAAM;AAAA,EAChD,OAAO,UAAU;AAAA,EACjB,IAAI;AAAA,EACJ,IAAI,UAAU,GAAG;AAAA,IACf,WAAW,OAAO,OAAO,KAAK,SAAS,OAAO,QAAQ,IAAI,CAAC;AAAA,IAC3D,OAAO,UAAU;AAAA,EACnB,EAAO,SAAI,UAAU,GAAG;AAAA,IACtB,WAAW,OAAO,KAAK,YAAY,OAAO,QAAQ,IAAI;AAAA,IACtD,OAAO,UAAU;AAAA,EACnB,EAAO;AAAA,IACL,MAAM,MAAM,OAAO,KAAK,aAAa,OAAO,QAAQ,IAAI;AAAA,IACxD,MAAM,OAAO,OAAO,KAAK,YAAY,OAAO,SAAS,GAAG,IAAI;AAAA,IAC5D,WAAW,QAAQ,MAAM;AAAA,IACzB,OAAO,UAAU;AAAA;AAAA,EAGnB,OAAO,OAAO,QAAQ,IAAI,MAAM,CAAC;AAAA;AAOnC,SAAS,iBAAiB,CAAC,QAAQ;AAAA,EACjC,MAAM,SAAS,OAAO,KAAK,UAAU,OAAO,QAAQ,IAAI;AAAA,EACxD,OAAO,UAAU;AAAA,EACjB,MAAM,QAAQ,IAAI,WAAW,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,MAAM;AAAA,EAC/F,OAAO,UAAU;AAAA,EACjB,OAAO;AAAA;;;AC9VF,SAAS,aAAa,CAAC,QAAQ,kBAAkB,kBAAkB,QAAQ,YAAY;AAAA,EAC5F,MAAM,qBAAqB,sBAAsB,UAAU;AAAA,EAE3D,IAAI,CAAC,kBAAkB,UAAU,CAAC,iBAAiB,QAAQ;AAAA,IACzD,IAAI,CAAC,sBAAsB,CAAC,OAAO;AAAA,MAAQ,OAAO;AAAA,IAClD,mBAAmB,IAAI,MAAM,OAAO,MAAM,EAAE,KAAK,kBAAkB;AAAA,EACrE;AAAA,EACA,MAAM,IAAI,kBAAkB,UAAU,iBAAiB;AAAA,EACvD,MAAM,iBAAiB,WAAW,IAAI,GAAG,cAAc,QAAQ,eAAe;AAAA,EAC9E,IAAI,aAAa;AAAA,EAGjB,MAAM,iBAAiB,CAAC,MAAM;AAAA,EAC9B,IAAI,mBAAmB;AAAA,EACvB,IAAI,eAAe;AAAA,EACnB,IAAI,kBAAkB;AAAA,EACtB,IAAI,kBAAkB;AAAA,EAEtB,IAAI,iBAAiB,IAAI;AAAA,IAEvB,OAAO,eAAe,eAAe,SAAS,KAAK,kBAAkB,iBAAiB,IAAI;AAAA,MACxF;AAAA,MACA,IAAI,eAAe,kBAAkB,YAAY;AAAA,QAE/C,mBAAmB,iBAAiB,GAAG,EAAE;AAAA,QACzC,eAAe,KAAK,gBAAgB;AAAA,QACpC;AAAA,MACF;AAAA,MACA,IAAI,eAAe,kBAAkB;AAAA,QAAY;AAAA,IACnD;AAAA,EACF;AAAA,EAEA,SAAS,IAAI,EAAG,IAAI,GAAG,KAAK;AAAA,IAE1B,MAAM,MAAM,kBAAkB,SAAS,iBAAiB,KAAK;AAAA,IAC7D,MAAM,MAAM,iBAAiB;AAAA,IAG7B,OAAO,iBAAiB,MAAM,mBAAmB,eAAe,kBAAkB,aAAa;AAAA,MAC7F,IAAI,eAAe,kBAAkB,YAAY;AAAA,QAC/C,eAAe,IAAI;AAAA,QACnB;AAAA,MACF;AAAA,MACA,IAAI,eAAe,kBAAkB;AAAA,QAAY;AAAA,MACjD;AAAA,IACF;AAAA,IAEA,mBAAmB,eAAe,GAAG,EAAE;AAAA,IAGvC,QACG,eAAe,eAAe,SAAS,KAAK,eAAe,eAAe,OAAO,gBACjF,kBAAkB,OAAO,eAAe,eAAe,OAAO,aAC/D;AAAA,MACA;AAAA,MACA,IAAI,eAAe,kBAAkB,YAAY;AAAA,QAE/C,MAAM,UAAU,CAAC;AAAA,QACjB,iBAAiB,KAAK,OAAO;AAAA,QAC7B,mBAAmB;AAAA,QACnB,eAAe,KAAK,OAAO;AAAA,QAC3B;AAAA,MACF;AAAA,MACA,IAAI,eAAe,kBAAkB;AAAA,QAAY;AAAA,IACnD;AAAA,IAGA,IAAI,QAAQ,oBAAoB;AAAA,MAE9B,iBAAiB,KAAK,OAAO,aAAa;AAAA,IAC5C,EAAO,SAAI,iBAAiB,eAAe,SAAS,GAAG;AAAA,MACrD,iBAAiB,KAAK,IAAI;AAAA,IAC5B,EAAO;AAAA,MACL,iBAAiB,KAAK,CAAC,CAAC;AAAA;AAAA,EAE5B;AAAA,EAGA,IAAI,CAAC,OAAO,QAAQ;AAAA,IAElB,SAAS,IAAI,EAAG,IAAI,oBAAoB,KAAK;AAAA,MAE3C,MAAM,UAAU,CAAC;AAAA,MACjB,iBAAiB,KAAK,OAAO;AAAA,MAC7B,mBAAmB;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,OAAO;AAAA;AAWF,SAAS,cAAc,CAAC,eAAe,QAAQ,SAAS,QAAQ,GAAG;AAAA,EACxE,MAAM,OAAO,OAAO,KAAK,KAAK,GAAG;AAAA,EACjC,MAAM,WAAW,OAAO,QAAQ,oBAAoB;AAAA,EACpD,MAAM,YAAY,WAAW,QAAQ,IAAI;AAAA,EAEzC,IAAI,WAAW,MAAM,GAAG;AAAA,IACtB,IAAI,UAAU,OAAO,SAAS;AAAA,IAC9B,IAAI,WAAW;AAAA,IACf,IAAI,QAAQ,SAAS,WAAW,GAAG;AAAA,MACjC,UAAU,QAAQ,SAAS;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,eAAe,eAAe,SAAS,SAAS,QAAQ;AAAA,IAExD,MAAM,YAAY,QAAQ,KAAK,KAAK,GAAG;AAAA,IACvC,MAAM,SAAS,cAAc,IAAI,SAAS;AAAA,IAC1C,IAAI,CAAC;AAAA,MAAQ,MAAM,IAAI,MAAM,oCAAoC;AAAA,IACjE,IAAI;AAAA,MAAU,eAAe,QAAQ,KAAK;AAAA,IAC1C,cAAc,IAAI,MAAM,MAAM;AAAA,IAC9B,cAAc,OAAO,SAAS;AAAA,IAC9B;AAAA,EACF;AAAA,EAEA,IAAI,UAAU,MAAM,GAAG;AAAA,IACrB,MAAM,UAAU,OAAO,SAAS,GAAG,QAAQ;AAAA,IAG3C,eAAe,eAAe,OAAO,SAAS,GAAG,SAAS,IAAI,SAAS,YAAY,CAAC;AAAA,IACpF,eAAe,eAAe,OAAO,SAAS,GAAG,SAAS,IAAI,SAAS,YAAY,CAAC;AAAA,IAEpF,MAAM,OAAO,cAAc,IAAI,GAAG,QAAQ,aAAa;AAAA,IACvD,MAAM,SAAS,cAAc,IAAI,GAAG,QAAQ,eAAe;AAAA,IAE3D,IAAI,CAAC;AAAA,MAAM,MAAM,IAAI,MAAM,iCAAiC;AAAA,IAC5D,IAAI,CAAC;AAAA,MAAQ,MAAM,IAAI,MAAM,mCAAmC;AAAA,IAChE,IAAI,KAAK,WAAW,OAAO,QAAQ;AAAA,MACjC,MAAM,IAAI,MAAM,8CAA8C;AAAA,IAChE;AAAA,IAEA,MAAM,MAAM,aAAa,MAAM,QAAQ,SAAS;AAAA,IAChD,IAAI;AAAA,MAAU,eAAe,KAAK,KAAK;AAAA,IAEvC,cAAc,OAAO,GAAG,QAAQ,aAAa;AAAA,IAC7C,cAAc,OAAO,GAAG,QAAQ,eAAe;AAAA,IAC/C,cAAc,IAAI,MAAM,GAAG;AAAA,IAC3B;AAAA,EACF;AAAA,EAGA,IAAI,OAAO,SAAS,QAAQ;AAAA,IAE1B,MAAM,cAAc,OAAO,QAAQ,oBAAoB,aAAa,QAAQ,QAAQ;AAAA,IAEpF,MAAM,SAAS,CAAC;AAAA,IAChB,WAAW,SAAS,OAAO,UAAU;AAAA,MACnC,eAAe,eAAe,OAAO,SAAS,WAAW;AAAA,MACzD,MAAM,YAAY,cAAc,IAAI,MAAM,KAAK,KAAK,GAAG,CAAC;AAAA,MACxD,IAAI,CAAC;AAAA,QAAW,MAAM,IAAI,MAAM,mCAAmC;AAAA,MACnE,OAAO,MAAM,QAAQ,QAAQ;AAAA,IAC/B;AAAA,IAEA,WAAW,SAAS,OAAO,UAAU;AAAA,MACnC,cAAc,OAAO,MAAM,KAAK,KAAK,GAAG,CAAC;AAAA,IAC3C;AAAA,IAGA,IAAI,WAAW,aAAa,QAAQ,WAAW;AAAA,IAC/C,IAAI,OAAO,QAAQ,cAAc,SAAS,WAAW;AAAA,MACnD,WAAW,oBAAoB,UAAU,OAAO;AAAA,IAClD;AAAA,IACA,IAAI;AAAA,MAAU,eAAe,UAAU,KAAK;AAAA,IAC5C,cAAc,IAAI,MAAM,QAAQ;AAAA,EAClC;AAAA;AAQF,SAAS,cAAc,CAAC,KAAK,OAAO;AAAA,EAClC,SAAS,IAAI,EAAG,IAAI,IAAI,QAAQ,KAAK;AAAA,IACnC,IAAI,OAAO;AAAA,MACT,eAAe,IAAI,IAAI,QAAQ,CAAC;AAAA,IAClC,EAAO;AAAA,MACL,IAAI,KAAK,IAAI,GAAG;AAAA;AAAA,EAEpB;AAAA;AASF,SAAS,YAAY,CAAC,MAAM,QAAQ,OAAO;AAAA,EACzC,MAAM,MAAM,CAAC;AAAA,EACb,SAAS,IAAI,EAAG,IAAI,KAAK,QAAQ,KAAK;AAAA,IACpC,IAAI,OAAO;AAAA,MACT,IAAI,KAAK,aAAa,KAAK,IAAI,OAAO,IAAI,QAAQ,CAAC,CAAC;AAAA,IACtD,EAAO;AAAA,MACL,IAAI,KAAK,IAAI;AAAA,QAEX,MAAM,MAAM,CAAC;AAAA,QACb,SAAS,IAAI,EAAG,IAAI,KAAK,GAAG,QAAQ,KAAK;AAAA,UACvC,MAAM,QAAQ,OAAO,GAAG;AAAA,UACxB,IAAI,KAAK,GAAG,MAAM,UAAU,YAAY,OAAO;AAAA,QACjD;AAAA,QACA,IAAI,KAAK,GAAG;AAAA,MACd,EAAO;AAAA,QACL,IAAI,KAAK,SAAS;AAAA;AAAA;AAAA,EAGxB;AAAA,EACA,OAAO;AAAA;AAUT,SAAS,YAAY,CAAC,QAAQ,OAAO;AAAA,EACnC,MAAM,OAAO,OAAO,KAAK,MAAM;AAAA,EAC/B,MAAM,SAAS,OAAO,KAAK,KAAK;AAAA,EAChC,MAAM,MAAM,CAAC;AAAA,EACb,SAAS,IAAI,EAAG,IAAI,QAAQ,KAAK;AAAA,IAE/B,MAAM,MAAM,CAAC;AAAA,IACb,WAAW,OAAO,MAAM;AAAA,MACtB,IAAI,OAAO,KAAK,WAAW;AAAA,QAAQ,MAAM,IAAI,MAAM,8BAA8B;AAAA,MACjF,IAAI,OAAO,OAAO,KAAK;AAAA,IACzB;AAAA,IACA,IAAI,OAAO;AAAA,MACT,IAAI,KAAK,aAAa,KAAK,QAAQ,CAAC,CAAC;AAAA,IACvC,EAAO;AAAA,MACL,IAAI,KAAK,GAAG;AAAA;AAAA,EAEhB;AAAA,EACA,OAAO;AAAA;;;ACpPF,SAAS,iBAAiB,CAAC,QAAQ,OAAO,QAAQ;AAAA,EACvD,MAAM,QAAQ,kBAAkB;AAAA,EAChC,MAAM,YAAY,WAAW,MAAM;AAAA,EACnC,MAAM,oBAAoB,WAAW,MAAM;AAAA,EAC3C,WAAW,MAAM;AAAA,EACjB,IAAI,QAAQ,iBAAiB,MAAM;AAAA,EACnC,IAAI,cAAc;AAAA,EAClB,OAAO,iBAAiB,QAAQ,OAAO,KAAK,IAAI;AAAA,EAEhD,MAAM,qBAAqB,YAAY;AAAA,EAEvC,OAAO,cAAc,OAAO;AAAA,IAE1B,MAAM,WAAW,iBAAiB,MAAM;AAAA,IACxC,MAAM,YAAY,IAAI,WAAW,iBAAiB;AAAA,IAClD,SAAS,IAAI,EAAG,IAAI,mBAAmB,KAAK;AAAA,MAC1C,UAAU,KAAK,OAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,IACrD;AAAA,IAEA,SAAS,IAAI,EAAG,IAAI,qBAAqB,cAAc,OAAO,KAAK;AAAA,MAEjE,MAAM,WAAW,OAAO,UAAU,EAAE;AAAA,MACpC,IAAI,UAAU;AAAA,QACZ,IAAI,aAAa;AAAA,QACjB,IAAI,iBAAiB;AAAA,QACrB,MAAM,QAAQ,MAAM,YAAY;AAAA,QAChC,OAAO,kBAAkB,cAAc,OAAO;AAAA,UAC5C,IAAI,OAAO,OAAO,OAAO,KAAK,SAAS,OAAO,MAAM,CAAC,KAAK,aAAa;AAAA,UACvE,cAAc;AAAA,UACd,OAAO,cAAc,GAAG;AAAA,YACtB,cAAc;AAAA,YACd,OAAO;AAAA,YACP,IAAI,YAAY;AAAA,cACd,QAAQ,OAAO,OAAO,KAAK,SAAS,OAAO,MAAM,CAAC,KAAK,WAAW,aAAa;AAAA,YACjF;AAAA,UACF;AAAA,UACA,MAAM,QAAQ,WAAW;AAAA,UACzB,SAAS;AAAA,UACT,OAAO,iBAAiB,QAAQ,OAAO,KAAK,IAAI;AAAA,UAChD;AAAA,QACF;AAAA,QACA,IAAI,gBAAgB;AAAA,UAElB,OAAO,UAAU,KAAK,MAAM,iBAAiB,OAAO,QAAQ,IAAI,OAAO,UAAU,KAAK,CAAC;AAAA,QACzF;AAAA,MACF,EAAO;AAAA,QACL,SAAS,IAAI,EAAG,IAAI,sBAAsB,cAAc,OAAO,KAAK;AAAA,UAClE,SAAS;AAAA,UACT,OAAO,iBAAiB,QAAQ,OAAO,KAAK,IAAI;AAAA,QAClD;AAAA;AAAA,IAEJ;AAAA,EACF;AAAA;AAQK,SAAS,oBAAoB,CAAC,QAAQ,OAAO,QAAQ;AAAA,EAC1D,MAAM,UAAU,IAAI,WAAW,KAAK;AAAA,EACpC,kBAAkB,QAAQ,OAAO,OAAO;AAAA,EACxC,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC9B,OAAO,KAAK,IAAI,WAAW,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,QAAQ,EAAE;AAAA,IACjG,OAAO,UAAU,QAAQ;AAAA,EAC3B;AAAA;AAQK,SAAS,cAAc,CAAC,QAAQ,OAAO,QAAQ;AAAA,EACpD,MAAM,aAAa,IAAI,WAAW,KAAK;AAAA,EACvC,kBAAkB,QAAQ,OAAO,UAAU;AAAA,EAC3C,MAAM,aAAa,IAAI,WAAW,KAAK;AAAA,EACvC,kBAAkB,QAAQ,OAAO,UAAU;AAAA,EAE3C,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC9B,MAAM,SAAS,IAAI,WAAW,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,WAAW,EAAE;AAAA,IACvG,IAAI,WAAW,IAAI;AAAA,MAEjB,OAAO,KAAK,IAAI,WAAW,WAAW,KAAK,WAAW,EAAE;AAAA,MACxD,OAAO,GAAG,IAAI,OAAO,IAAI,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC;AAAA,MACtD,OAAO,GAAG,IAAI,QAAQ,WAAW,EAAE;AAAA,IACrC,EAAO;AAAA,MACL,OAAO,KAAK;AAAA;AAAA,IAEd,OAAO,UAAU,WAAW;AAAA,EAC9B;AAAA;;;ACtFK,SAAS,sBAAsB,CAAC,QAAQ,OAAO,QAAQ,QAAQ;AAAA,EACpE,IAAI,WAAW,WAAW;AAAA,IACxB,SAAS,OAAO,KAAK,UAAU,OAAO,QAAQ,IAAI;AAAA,IAClD,OAAO,UAAU;AAAA,EACnB;AAAA,EACA,MAAM,cAAc,OAAO;AAAA,EAC3B,IAAI,OAAO;AAAA,EACX,OAAO,OAAO,OAAO,QAAQ;AAAA,IAC3B,MAAM,SAAS,WAAW,MAAM;AAAA,IAChC,IAAI,SAAS,GAAG;AAAA,MAEd,OAAO,cAAc,QAAQ,QAAQ,OAAO,QAAQ,IAAI;AAAA,IAC1D,EAAO;AAAA,MAEL,MAAM,QAAQ,WAAW;AAAA,MACzB,QAAQ,QAAQ,OAAO,OAAO,QAAQ,IAAI;AAAA,MAC1C,QAAQ;AAAA;AAAA,EAEZ;AAAA,EACA,OAAO,SAAS,cAAc;AAAA;AAYhC,SAAS,OAAO,CAAC,QAAQ,OAAO,UAAU,QAAQ,MAAM;AAAA,EACtD,MAAM,QAAQ,WAAW,KAAK;AAAA,EAC9B,IAAI,QAAQ;AAAA,EACZ,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC9B,SAAS,OAAO,KAAK,SAAS,OAAO,QAAQ,MAAM,KAAK;AAAA,EAC1D;AAAA,EAIA,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC9B,OAAO,OAAO,KAAK;AAAA,EACrB;AAAA;AAcF,SAAS,aAAa,CAAC,QAAQ,QAAQ,UAAU,QAAQ,MAAM;AAAA,EAC7D,IAAI,QAAQ,UAAU,KAAK;AAAA,EAC3B,MAAM,QAAQ,KAAK,YAAY;AAAA,EAE/B,IAAI,OAAO;AAAA,EACX,IAAI,OAAO,SAAS,OAAO,KAAK,YAAY;AAAA,IAC1C,OAAO,OAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,EAC7C,EAAO,SAAI,MAAM;AAAA,IAEf,MAAM,IAAI,MAAM,0BAA0B,OAAO,qBAAqB;AAAA,EACxE;AAAA,EACA,IAAI,OAAO;AAAA,EACX,IAAI,QAAQ;AAAA,EAGZ,OAAO,OAAO;AAAA,IAEZ,IAAI,QAAQ,GAAG;AAAA,MACb,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ,EAAO,SAAI,OAAO,QAAQ,UAAU;AAAA,MAElC,QAAQ,OAAO,KAAK,SAAS,OAAO,MAAM,KAAK;AAAA,MAC/C,OAAO;AAAA,MACP,QAAQ;AAAA,IACV,EAAO;AAAA,MACL,IAAI,OAAO,OAAO,QAAQ;AAAA,QAExB,OAAO,UAAU,QAAQ,QAAQ;AAAA,MACnC;AAAA,MACA;AAAA,MACA,SAAS;AAAA;AAAA,EAEb;AAAA,EAEA,OAAO;AAAA;AAUF,SAAS,eAAe,CAAC,QAAQ,OAAO,MAAM,YAAY;AAAA,EAC/D,MAAM,QAAQ,UAAU,MAAM,UAAU;AAAA,EACxC,MAAM,QAAQ,IAAI,WAAW,QAAQ,KAAK;AAAA,EAC1C,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC9B,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,MAC9B,MAAM,IAAI,QAAQ,KAAK,OAAO,KAAK,SAAS,OAAO,QAAQ;AAAA,IAC7D;AAAA,EACF;AAAA,EAEA,IAAI,SAAS;AAAA,IAAS,OAAO,IAAI,aAAa,MAAM,MAAM;AAAA,EACrD,SAAI,SAAS;AAAA,IAAU,OAAO,IAAI,aAAa,MAAM,MAAM;AAAA,EAC3D,SAAI,SAAS;AAAA,IAAS,OAAO,IAAI,WAAW,MAAM,MAAM;AAAA,EACxD,SAAI,SAAS;AAAA,IAAS,OAAO,IAAI,cAAc,MAAM,MAAM;AAAA,EAC3D,SAAI,SAAS,wBAAwB;AAAA,IAExC,MAAM,QAAQ,IAAI,MAAM,KAAK;AAAA,IAC7B,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,MAC9B,MAAM,KAAK,MAAM,SAAS,IAAI,QAAQ,IAAI,KAAK,KAAK;AAAA,IACtD;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EACA,MAAM,IAAI,MAAM,+CAA+C,MAAM;AAAA;AAQvE,SAAS,SAAS,CAAC,MAAM,YAAY;AAAA,EACnC,QAAQ;AAAA,SACH;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,SACA;AAAA,MACH,OAAO;AAAA,SACJ;AAAA,MACH,IAAI,CAAC;AAAA,QAAY,MAAM,IAAI,MAAM,uCAAuC;AAAA,MACxE,OAAO;AAAA;AAAA,MAEP,MAAM,IAAI,MAAM,6BAA6B,MAAM;AAAA;AAAA;;;ACtJhD,SAAS,SAAS,CAAC,QAAQ,MAAM,OAAO,aAAa;AAAA,EAC1D,IAAI,UAAU;AAAA,IAAG,OAAO,CAAC;AAAA,EACzB,IAAI,SAAS,WAAW;AAAA,IACtB,OAAO,iBAAiB,QAAQ,KAAK;AAAA,EACvC,EAAO,SAAI,SAAS,SAAS;AAAA,IAC3B,OAAO,eAAe,QAAQ,KAAK;AAAA,EACrC,EAAO,SAAI,SAAS,SAAS;AAAA,IAC3B,OAAO,eAAe,QAAQ,KAAK;AAAA,EACrC,EAAO,SAAI,SAAS,SAAS;AAAA,IAC3B,OAAO,eAAe,QAAQ,KAAK;AAAA,EACrC,EAAO,SAAI,SAAS,SAAS;AAAA,IAC3B,OAAO,eAAe,QAAQ,KAAK;AAAA,EACrC,EAAO,SAAI,SAAS,UAAU;AAAA,IAC5B,OAAO,gBAAgB,QAAQ,KAAK;AAAA,EACtC,EAAO,SAAI,SAAS,cAAc;AAAA,IAChC,OAAO,mBAAmB,QAAQ,KAAK;AAAA,EACzC,EAAO,SAAI,SAAS,wBAAwB;AAAA,IAC1C,IAAI,CAAC;AAAA,MAAa,MAAM,IAAI,MAAM,8BAA8B;AAAA,IAChE,OAAO,wBAAwB,QAAQ,OAAO,WAAW;AAAA,EAC3D,EAAO;AAAA,IACL,MAAM,IAAI,MAAM,2BAA2B,MAAM;AAAA;AAAA;AAWrD,SAAS,gBAAgB,CAAC,QAAQ,OAAO;AAAA,EACvC,MAAM,SAAS,IAAI,MAAM,KAAK;AAAA,EAC9B,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC9B,MAAM,aAAa,OAAO,UAAU,IAAI,IAAI;AAAA,IAC5C,MAAM,YAAY,IAAI;AAAA,IACtB,MAAM,OAAO,OAAO,KAAK,SAAS,UAAU;AAAA,IAC5C,OAAO,MAAM,OAAO,KAAK,eAAe;AAAA,EAC1C;AAAA,EACA,OAAO,UAAU,KAAK,KAAK,QAAQ,CAAC;AAAA,EACpC,OAAO;AAAA;AAUT,SAAS,cAAc,CAAC,QAAQ,OAAO;AAAA,EACrC,MAAM,UAAU,OAAO,KAAK,aAAa,OAAO,UAAU,IACtD,IAAI,WAAW,MAAM,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,QAAQ,CAAC,CAAC,IAC3F,IAAI,WAAW,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,KAAK;AAAA,EACpF,OAAO,UAAU,QAAQ;AAAA,EACzB,OAAO;AAAA;AAUT,SAAS,cAAc,CAAC,QAAQ,OAAO;AAAA,EACrC,MAAM,UAAU,OAAO,KAAK,aAAa,OAAO,UAAU,IACtD,IAAI,cAAc,MAAM,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,QAAQ,CAAC,CAAC,IAC9F,IAAI,cAAc,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,KAAK;AAAA,EACvF,OAAO,UAAU,QAAQ;AAAA,EACzB,OAAO;AAAA;AAUT,SAAS,cAAc,CAAC,QAAQ,OAAO;AAAA,EACrC,MAAM,SAAS,IAAI,MAAM,KAAK;AAAA,EAC9B,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC9B,MAAM,MAAM,OAAO,KAAK,YAAY,OAAO,SAAS,IAAI,IAAI,IAAI;AAAA,IAChE,MAAM,OAAO,OAAO,KAAK,SAAS,OAAO,SAAS,IAAI,KAAK,GAAG,IAAI;AAAA,IAClE,OAAO,KAAK,OAAO,IAAI,KAAK,MAAM;AAAA,EACpC;AAAA,EACA,OAAO,UAAU,QAAQ;AAAA,EACzB,OAAO;AAAA;AAUT,SAAS,cAAc,CAAC,QAAQ,OAAO;AAAA,EACrC,MAAM,UAAU,OAAO,KAAK,aAAa,OAAO,UAAU,IACtD,IAAI,aAAa,MAAM,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,QAAQ,CAAC,CAAC,IAC7F,IAAI,aAAa,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,KAAK;AAAA,EACtF,OAAO,UAAU,QAAQ;AAAA,EACzB,OAAO;AAAA;AAUT,SAAS,eAAe,CAAC,QAAQ,OAAO;AAAA,EACtC,MAAM,UAAU,OAAO,KAAK,aAAa,OAAO,UAAU,IACtD,IAAI,aAAa,MAAM,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,QAAQ,CAAC,CAAC,IAC7F,IAAI,aAAa,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,KAAK;AAAA,EACtF,OAAO,UAAU,QAAQ;AAAA,EACzB,OAAO;AAAA;AAUT,SAAS,kBAAkB,CAAC,QAAQ,OAAO;AAAA,EACzC,MAAM,SAAS,IAAI,MAAM,KAAK;AAAA,EAC9B,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC9B,MAAM,SAAS,OAAO,KAAK,UAAU,OAAO,QAAQ,IAAI;AAAA,IACxD,OAAO,UAAU;AAAA,IACjB,OAAO,KAAK,IAAI,WAAW,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,MAAM;AAAA,IAC7F,OAAO,UAAU;AAAA,EACnB;AAAA,EACA,OAAO;AAAA;AAWT,SAAS,uBAAuB,CAAC,QAAQ,OAAO,aAAa;AAAA,EAE3D,MAAM,SAAS,IAAI,MAAM,KAAK;AAAA,EAC9B,SAAS,IAAI,EAAG,IAAI,OAAO,KAAK;AAAA,IAC9B,OAAO,KAAK,IAAI,WAAW,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,WAAW;AAAA,IAClG,OAAO,UAAU;AAAA,EACnB;AAAA,EACA,OAAO;AAAA;AAYT,SAAS,KAAK,CAAC,QAAQ,QAAQ,MAAM;AAAA,EACnC,MAAM,UAAU,IAAI,YAAY,IAAI;AAAA,EACpC,IAAI,WAAW,OAAO,EAAE,IAAI,IAAI,WAAW,QAAQ,QAAQ,IAAI,CAAC;AAAA,EAChE,OAAO;AAAA;;;AC5KT,IAAM,YAAY,CAAC,GAAG,KAAM,OAAQ,UAAU,UAAU;AAWxD,SAAS,SAAS,CAAC,WAAW,SAAS,SAAS,OAAO,QAAQ;AAAA,EAC7D,SAAS,IAAI,EAAG,IAAI,QAAQ,KAAK;AAAA,IAC/B,QAAQ,QAAQ,KAAK,UAAU,UAAU;AAAA,EAC3C;AAAA;AAUK,SAAS,gBAAgB,CAAC,OAAO,QAAQ;AAAA,EAC9C,MAAM,cAAc,MAAM;AAAA,EAC1B,MAAM,eAAe,OAAO;AAAA,EAC5B,IAAI,MAAM;AAAA,EACV,IAAI,SAAS;AAAA,EAGb,OAAO,MAAM,aAAa;AAAA,IACxB,MAAM,IAAI,MAAM;AAAA,IAChB;AAAA,IACA,IAAI,IAAI,KAAK;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA,EACA,IAAI,gBAAgB,OAAO,aAAa;AAAA,IACtC,MAAM,IAAI,MAAM,8BAA8B;AAAA,EAChD;AAAA,EAEA,OAAO,MAAM,aAAa;AAAA,IACxB,MAAM,IAAI,MAAM;AAAA,IAChB,IAAI,MAAM;AAAA,IACV;AAAA,IAEA,IAAI,OAAO,aAAa;AAAA,MACtB,MAAM,IAAI,MAAM,oBAAoB;AAAA,IACtC;AAAA,IAGA,KAAK,IAAI,OAAS,GAAG;AAAA,MAEnB,IAAI,QAAO,MAAM,KAAK;AAAA,MAEtB,IAAI,OAAM,IAAI;AAAA,QACZ,IAAI,MAAM,KAAK,aAAa;AAAA,UAC1B,MAAM,IAAI,MAAM,6CAA6C;AAAA,QAC/D;AAAA,QACA,MAAM,aAAa,OAAM;AAAA,QACzB,OAAM,MAAM,QACP,MAAM,MAAM,MAAM,MAClB,MAAM,MAAM,MAAM,OAClB,MAAM,MAAM,MAAM;AAAA,QACvB,QAAO,OAAM,UAAU,eAAe;AAAA,QACtC,OAAO;AAAA,MACT;AAAA,MACA,IAAI,MAAM,OAAM,aAAa;AAAA,QAC3B,MAAM,IAAI,MAAM,2CAA2C;AAAA,MAC7D;AAAA,MACA,UAAU,OAAO,KAAK,QAAQ,QAAQ,IAAG;AAAA,MACzC,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,EAAO;AAAA,MAEL,IAAI,SAAS;AAAA,MACb,QAAQ,IAAI;AAAA,aACP;AAAA,UAEH,OAAO,MAAM,IAAI,KAAO;AAAA,UACxB,SAAS,MAAM,QAAQ,MAAM,KAAK;AAAA,UAClC;AAAA,UACA;AAAA,aACG;AAAA,UAEH,IAAI,eAAe,MAAM,GAAG;AAAA,YAC1B,MAAM,IAAI,MAAM,2BAA2B;AAAA,UAC7C;AAAA,UACA,OAAO,MAAM,KAAK;AAAA,UAClB,SAAS,MAAM,QAAQ,MAAM,MAAM,MAAM;AAAA,UACzC,OAAO;AAAA,UACP;AAAA,aACG;AAAA,UAEH,IAAI,eAAe,MAAM,GAAG;AAAA,YAC1B,MAAM,IAAI,MAAM,2BAA2B;AAAA,UAC7C;AAAA,UACA,OAAO,MAAM,KAAK;AAAA,UAClB,SAAS,MAAM,QACV,MAAM,MAAM,MAAM,MAClB,MAAM,MAAM,MAAM,OAClB,MAAM,MAAM,MAAM;AAAA,UACvB,OAAO;AAAA,UACP;AAAA;AAAA,UAEA;AAAA;AAAA,MAEF,IAAI,WAAW,KAAK,MAAM,MAAM,GAAG;AAAA,QACjC,MAAM,IAAI,MAAM,kBAAkB,cAAc,mBAAmB,aAAa;AAAA,MAClF;AAAA,MACA,IAAI,SAAS,QAAQ;AAAA,QACnB,MAAM,IAAI,MAAM,yCAAyC;AAAA,MAC3D;AAAA,MACA,UAAU,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,GAAG;AAAA,MACtD,UAAU;AAAA;AAAA,EAEd;AAAA,EAEA,IAAI,WAAW;AAAA,IAAc,MAAM,IAAI,MAAM,wBAAwB;AAAA;;;AC3GhE,SAAS,YAAY,CAAC,OAAO,QAAQ,MAAM,SAAS,cAAc;AAAA,EACvE,MAAM,OAAO,IAAI,SAAS,MAAM,QAAQ,MAAM,YAAY,MAAM,UAAU;AAAA,EAC1E,MAAM,SAAS,EAAE,MAAM,QAAQ,EAAE;AAAA,EAEjC,IAAI;AAAA,EAGJ,MAAM,mBAAmB,qBAAqB,QAAQ,MAAM,UAAU;AAAA,EAEtE,QAAQ,kBAAkB,aAAa,qBAAqB,QAAQ,MAAM,UAAU;AAAA,EAIpF,MAAM,UAAU,KAAK,aAAa;AAAA,EAClC,IAAI,KAAK,aAAa,SAAS;AAAA,IAC7B,WAAW,UAAU,QAAQ,MAAM,SAAS,QAAQ,WAAW;AAAA,EACjE,EAAO,SACL,KAAK,aAAa,sBAClB,KAAK,aAAa,oBAClB,KAAK,aAAa,OAClB;AAAA,IACA,MAAM,WAAW,SAAS,YAAY,IAAI,KAAK,SAAS,OAAO,QAAQ;AAAA,IACvE,IAAI,UAAU;AAAA,MACZ,WAAW,IAAI,MAAM,OAAO;AAAA,MAC5B,IAAI,SAAS,WAAW;AAAA,QACtB,uBAAuB,QAAQ,UAAU,QAAQ;AAAA,QACjD,WAAW,SAAS,IAAI,OAAK,CAAC,CAAC,CAAC;AAAA,MAClC,EAAO;AAAA,QAEL,uBAAuB,QAAQ,UAAU,UAAU,KAAK,aAAa,OAAO,MAAM;AAAA;AAAA,IAEtF,EAAO;AAAA,MACL,WAAW,IAAI,WAAW,OAAO;AAAA;AAAA,EAErC,EAAO,SAAI,KAAK,aAAa,qBAAqB;AAAA,IAChD,WAAW,gBAAgB,QAAQ,SAAS,MAAM,QAAQ,WAAW;AAAA,EACvE,EAAO,SAAI,KAAK,aAAa,uBAAuB;AAAA,IAClD,MAAM,QAAQ,SAAS;AAAA,IACvB,WAAW,QAAQ,IAAI,WAAW,OAAO,IAAI,IAAI,cAAc,OAAO;AAAA,IACtE,kBAAkB,QAAQ,SAAS,QAAQ;AAAA,EAC7C,EAAO,SAAI,KAAK,aAAa,2BAA2B;AAAA,IACtD,WAAW,IAAI,MAAM,OAAO;AAAA,IAC5B,qBAAqB,QAAQ,SAAS,QAAQ;AAAA,EAChD,EAAO;AAAA,IACL,MAAM,IAAI,MAAM,iCAAiC,KAAK,UAAU;AAAA;AAAA,EAGlE,OAAO,EAAE,kBAAkB,kBAAkB,SAAS;AAAA;AASxD,SAAS,oBAAoB,CAAC,QAAQ,MAAM,YAAY;AAAA,EACtD,IAAI,WAAW,SAAS,GAAG;AAAA,IACzB,MAAM,qBAAqB,sBAAsB,UAAU;AAAA,IAC3D,IAAI,oBAAoB;AAAA,MACtB,MAAM,SAAS,IAAI,MAAM,KAAK,UAAU;AAAA,MACxC,uBAAuB,QAAQ,SAAS,kBAAkB,GAAG,MAAM;AAAA,MACnE,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,OAAO,CAAC;AAAA;AASV,SAAS,oBAAoB,CAAC,QAAQ,MAAM,YAAY;AAAA,EACtD,MAAM,qBAAqB,sBAAsB,UAAU;AAAA,EAC3D,IAAI,CAAC;AAAA,IAAoB,OAAO,EAAE,kBAAkB,CAAC,GAAG,UAAU,EAAE;AAAA,EAEpE,MAAM,mBAAmB,IAAI,MAAM,KAAK,UAAU;AAAA,EAClD,uBAAuB,QAAQ,SAAS,kBAAkB,GAAG,gBAAgB;AAAA,EAG7E,IAAI,WAAW,KAAK;AAAA,EACpB,WAAW,OAAO,kBAAkB;AAAA,IAClC,IAAI,QAAQ;AAAA,MAAoB;AAAA,EAClC;AAAA,EACA,IAAI,aAAa;AAAA,IAAG,iBAAiB,SAAS;AAAA,EAE9C,OAAO,EAAE,kBAAkB,SAAS;AAAA;AAU/B,SAAS,cAAc,CAAC,iBAAiB,wBAAwB,QAAO,aAAa;AAAA,EAE1F,IAAI;AAAA,EACJ,MAAM,qBAAqB,cAAc;AAAA,EACzC,IAAI,WAAU,gBAAgB;AAAA,IAC5B,OAAO;AAAA,EACT,EAAO,SAAI,oBAAoB;AAAA,IAC7B,OAAO,mBAAmB,iBAAiB,sBAAsB;AAAA,EACnE,EAAO,SAAI,WAAU,UAAU;AAAA,IAC7B,OAAO,IAAI,WAAW,sBAAsB;AAAA,IAC5C,iBAAiB,iBAAiB,IAAI;AAAA,EACxC,EAAO;AAAA,IACL,MAAM,IAAI,MAAM,0CAA0C,QAAO;AAAA;AAAA,EAEnE,IAAI,MAAM,WAAW,wBAAwB;AAAA,IAC3C,MAAM,IAAI,MAAM,oCAAoC,MAAM,gCAAgC,wBAAwB;AAAA,EACpH;AAAA,EACA,OAAO;AAAA;AAYF,SAAS,cAAc,CAAC,iBAAiB,IAAI,eAAe;AAAA,EACjE,MAAM,OAAO,IAAI,SAAS,gBAAgB,QAAQ,gBAAgB,YAAY,gBAAgB,UAAU;AAAA,EACxG,MAAM,SAAS,EAAE,MAAM,QAAQ,EAAE;AAAA,EACjC,QAAQ,MAAM,SAAS,YAAY,eAAO,gBAAgB;AAAA,EAC1D,MAAM,QAAQ,GAAG;AAAA,EACjB,IAAI,CAAC;AAAA,IAAO,MAAM,IAAI,MAAM,0CAA0C;AAAA,EAGtE,MAAM,mBAAmB,uBAAuB,QAAQ,OAAO,UAAU;AAAA,EACzE,OAAO,SAAS,MAAM;AAAA,EAGtB,MAAM,mBAAmB,uBAAuB,QAAQ,OAAO,UAAU;AAAA,EAGzE,MAAM,uBAAuB,GAAG,yBAAyB,MAAM,gCAAgC,MAAM;AAAA,EAErG,IAAI,OAAO,gBAAgB,SAAS,OAAO,MAAM;AAAA,EACjD,IAAI,MAAM,kBAAkB,OAAO;AAAA,IACjC,OAAO,eAAe,MAAM,sBAAsB,QAAO,WAAW;AAAA,EACtE;AAAA,EACA,MAAM,WAAW,IAAI,SAAS,KAAK,QAAQ,KAAK,YAAY,KAAK,UAAU;AAAA,EAC3E,MAAM,aAAa,EAAE,MAAM,UAAU,QAAQ,EAAE;AAAA,EAI/C,IAAI;AAAA,EACJ,MAAM,UAAU,MAAM,aAAa,MAAM;AAAA,EACzC,IAAI,MAAM,aAAa,SAAS;AAAA,IAC9B,WAAW,UAAU,YAAY,MAAM,SAAS,QAAQ,WAAW;AAAA,EACrE,EAAO,SAAI,MAAM,aAAa,OAAO;AAAA,IAEnC,WAAW,IAAI,MAAM,OAAO;AAAA,IAC5B,uBAAuB,YAAY,GAAG,QAAQ;AAAA,IAC9C,WAAW,SAAS,IAAI,OAAK,CAAC,CAAC,CAAC;AAAA,EAClC,EAAO,SACL,MAAM,aAAa,sBACnB,MAAM,aAAa,kBACnB;AAAA,IACA,MAAM,WAAW,SAAS,SAAS,WAAW,QAAQ;AAAA,IACtD,WAAW,IAAI,MAAM,OAAO;AAAA,IAC5B,uBAAuB,YAAY,UAAU,UAAU,uBAAuB,CAAC;AAAA,EACjF,EAAO,SAAI,MAAM,aAAa,uBAAuB;AAAA,IACnD,MAAM,QAAQ,SAAS;AAAA,IACvB,WAAW,QAAQ,IAAI,WAAW,OAAO,IAAI,IAAI,cAAc,OAAO;AAAA,IACtE,kBAAkB,YAAY,SAAS,QAAQ;AAAA,EACjD,EAAO,SAAI,MAAM,aAAa,2BAA2B;AAAA,IACvD,WAAW,IAAI,MAAM,OAAO;AAAA,IAC5B,qBAAqB,YAAY,SAAS,QAAQ;AAAA,EACpD,EAAO,SAAI,MAAM,aAAa,oBAAoB;AAAA,IAChD,WAAW,IAAI,MAAM,OAAO;AAAA,IAC5B,eAAe,YAAY,SAAS,QAAQ;AAAA,EAC9C,EAAO,SAAI,MAAM,aAAa,qBAAqB;AAAA,IACjD,WAAW,gBAAgB,YAAY,SAAS,MAAM,QAAQ,WAAW;AAAA,EAC3E,EAAO;AAAA,IACL,MAAM,IAAI,MAAM,iCAAiC,MAAM,UAAU;AAAA;AAAA,EAGnE,OAAO,EAAE,kBAAkB,kBAAkB,SAAS;AAAA;AASxD,SAAS,sBAAsB,CAAC,QAAQ,OAAO,YAAY;AAAA,EACzD,MAAM,qBAAqB,sBAAsB,UAAU;AAAA,EAC3D,IAAI,CAAC;AAAA,IAAoB,OAAO,CAAC;AAAA,EAEjC,MAAM,SAAS,IAAI,MAAM,MAAM,UAAU;AAAA,EACzC,uBAAuB,QAAQ,SAAS,kBAAkB,GAAG,QAAQ,MAAM,6BAA6B;AAAA,EACxG,OAAO;AAAA;AAST,SAAS,sBAAsB,CAAC,QAAQ,OAAO,YAAY;AAAA,EACzD,MAAM,qBAAqB,sBAAsB,UAAU;AAAA,EAC3D,IAAI,oBAAoB;AAAA,IAEtB,MAAM,SAAS,IAAI,MAAM,MAAM,UAAU;AAAA,IACzC,uBAAuB,QAAQ,SAAS,kBAAkB,GAAG,QAAQ,MAAM,6BAA6B;AAAA,IACxG,OAAO;AAAA,EACT;AAAA;AASF,SAAS,QAAQ,CAAC,OAAO;AAAA,EACvB,OAAO,KAAK,KAAK,MAAM,KAAK;AAAA;;;AC/NvB,SAAS,UAAU,CAAC,UAAU,YAAY,aAAa,aAAa,eAAe,QAAQ;AAAA,EAChG,QAAQ,cAAc,eAAe;AAAA,EACrC,MAAM,SAAS,aAAa,UAAU;AAAA,EAEtC,MAAM,SAAS,CAAC;AAAA,EAEhB,IAAI,aAAa;AAAA,EAEjB,IAAI,YAAY;AAAA,EAChB,IAAI,WAAW;AAAA,EACf,IAAI,UAAU;AAAA,EAEd,MAAM,gBAAgB,WAAW,MAAM;AAAA,IACrC,aAAa,OAAO;AAAA,MAClB;AAAA,MACA,YAAY;AAAA,MACZ,UAAU,aAAa,WAAW,UAAU;AAAA,MAC5C,QAAQ,aAAa;AAAA,IACvB,CAAC;AAAA;AAAA,EAGH,OAAO,SAAS,WAAW,YAAY,OAAO,SAAS,OAAO,KAAK,aAAa,GAAG;AAAA,IACjF,IAAI,OAAO,UAAU,OAAO,KAAK,aAAa;AAAA,MAAG;AAAA,IAGjD,MAAM,SAAS,cAAc,MAAM;AAAA,IACnC,IAAI,OAAO,SAAS,mBAAmB;AAAA,MACrC,QAAQ,SAAS,SAAS,QAAQ,QAAQ,eAAe,YAAY,WAAW,CAAC;AAAA,MACjF,IAAI;AAAA,QAAM,aAAa,QAAQ,MAAM,aAAa;AAAA,IACpD,EAAO;AAAA,MACL,MAAM,kBAAkB,WAAW,UAAU;AAAA,MAC7C,MAAM,UAAS,SAAS,QAAQ,QAAQ,eAAe,YAAY,WAAW,cAAc,QAAQ;AAAA,MACpG,IAAI,QAAO,SAAS;AAAA,QAElB,IAAI,CAAC,OAAO,QAAQ;AAAA,UAClB,WAAW,QAAO;AAAA,QACpB;AAAA,QACA,YAAY,QAAO;AAAA,MACrB,EAAO,SAAI,QAAO,QAAQ,cAAc,QAAO,MAAM;AAAA,QAEnD,YAAY,QAAO,KAAK,SAAS;AAAA,MACnC,EAAO,SAAI,QAAO,QAAQ,QAAO,KAAK,QAAQ;AAAA,QAC5C,gBAAgB;AAAA,QAChB,OAAO,KAAK,QAAO,IAAI;AAAA,QACvB,YAAY,QAAO,KAAK;AAAA,QACxB,YAAY,QAAO;AAAA,MACrB;AAAA;AAAA,EAEJ;AAAA,EACA,gBAAgB;AAAA,EAEhB,OAAO,EAAE,MAAM,QAAQ,QAAQ;AAAA;AAc1B,SAAS,QAAQ,CAAC,QAAQ,QAAQ,eAAe,YAAY,eAAe,WAAW;AAAA,EAC5F,QAAQ,MAAM,SAAS,YAAY,eAAO,gBAAgB;AAAA,EAE1D,MAAM,kBAAkB,IAAI,WAC1B,OAAO,KAAK,QAAQ,OAAO,KAAK,aAAa,OAAO,QAAQ,OAAO,oBACrE;AAAA,EACA,OAAO,UAAU,OAAO;AAAA,EAGxB,IAAI,OAAO,SAAS,aAAa;AAAA,IAC/B,MAAM,OAAO,OAAO;AAAA,IACpB,IAAI,CAAC;AAAA,MAAM,MAAM,IAAI,MAAM,uCAAuC;AAAA,IAGlE,IAAI,YAAY,KAAK,cAAc,aAAa,UAAU,GAAG;AAAA,MAC3D,OAAO,EAAE,SAAS,KAAK,WAAW;AAAA,IACpC;AAAA,IAEA,MAAM,OAAO,eAAe,iBAAiB,OAAO,OAAO,sBAAsB,GAAG,QAAO,WAAW;AAAA,IACtG,QAAQ,kBAAkB,kBAAkB,aAAa,aAAa,MAAM,MAAM,aAAa;AAAA,IAI/F,MAAM,SAAS,sBAAsB,UAAU,YAAY,KAAK,UAAU,aAAa;AAAA,IACvF,MAAM,SAAS,MAAM,QAAQ,aAAa,IAAI,gBAAgB,CAAC;AAAA,IAC/D,MAAM,YAAY,cAAc,QAAQ,kBAAkB,kBAAkB,QAAQ,UAAU;AAAA,IAC9F,OAAO,EAAE,SAAS,GAAG,MAAM,UAAU;AAAA,EACvC,EAAO,SAAI,OAAO,SAAS,gBAAgB;AAAA,IACzC,MAAM,QAAQ,OAAO;AAAA,IACrB,IAAI,CAAC;AAAA,MAAO,MAAM,IAAI,MAAM,0CAA0C;AAAA,IAGtE,IAAI,YAAY,MAAM,UAAU;AAAA,MAC9B,OAAO,EAAE,SAAS,MAAM,WAAW;AAAA,IACrC;AAAA,IAEA,QAAQ,kBAAkB,kBAAkB,aAC1C,eAAe,iBAAiB,QAAQ,aAAa;AAAA,IAGvD,MAAM,SAAS,sBAAsB,UAAU,YAAY,MAAM,UAAU,aAAa;AAAA,IACxF,MAAM,SAAS,MAAM,QAAQ,aAAa,IAAI,gBAAgB,CAAC;AAAA,IAC/D,MAAM,YAAY,cAAc,QAAQ,kBAAkB,kBAAkB,QAAQ,UAAU;AAAA,IAC9F,OAAO,EAAE,SAAS,GAAG,MAAM,UAAU;AAAA,EACvC,EAAO,SAAI,OAAO,SAAS,mBAAmB;AAAA,IAC5C,MAAM,OAAO,OAAO;AAAA,IACpB,IAAI,CAAC;AAAA,MAAM,MAAM,IAAI,MAAM,6CAA6C;AAAA,IAExE,MAAM,OAAO,eACX,iBAAiB,OAAO,OAAO,sBAAsB,GAAG,QAAO,WACjE;AAAA,IAEA,MAAM,UAAS,EAAE,MAAM,IAAI,SAAS,KAAK,QAAQ,KAAK,YAAY,KAAK,UAAU,GAAG,QAAQ,EAAE;AAAA,IAC9F,MAAM,YAAY,UAAU,SAAQ,MAAM,KAAK,YAAY,QAAQ,WAAW;AAAA,IAC9E,OAAO,EAAE,SAAS,GAAG,MAAM,UAAU;AAAA,EACvC,EAAO;AAAA,IACL,MAAM,IAAI,MAAM,kCAAkC,OAAO,MAAM;AAAA;AAAA;AAUnE,SAAS,aAAa,CAAC,QAAQ;AAAA,EAC7B,MAAM,SAAS,4BAA4B,MAAM;AAAA,EAGjD,MAAM,OAAO,UAAU,OAAO;AAAA,EAC9B,MAAM,yBAAyB,OAAO;AAAA,EACtC,MAAM,uBAAuB,OAAO;AAAA,EACpC,MAAM,MAAM,OAAO;AAAA,EACnB,MAAM,mBAAmB,OAAO,WAAW;AAAA,IACzC,YAAY,OAAO,QAAQ;AAAA,IAC3B,UAAU,UAAU,OAAO,QAAQ;AAAA,IACnC,2BAA2B,UAAU,OAAO,QAAQ;AAAA,IACpD,2BAA2B,UAAU,OAAO,QAAQ;AAAA,IACpD,YAAY,OAAO,QAAQ,WAAW;AAAA,MACpC,KAAK,OAAO,QAAQ,QAAQ;AAAA,MAC5B,KAAK,OAAO,QAAQ,QAAQ;AAAA,MAC5B,YAAY,OAAO,QAAQ,QAAQ;AAAA,MACnC,gBAAgB,OAAO,QAAQ,QAAQ;AAAA,MACvC,WAAW,OAAO,QAAQ,QAAQ;AAAA,MAClC,WAAW,OAAO,QAAQ,QAAQ;AAAA,IACpC;AAAA,EACF;AAAA,EACA,MAAM,oBAAoB,OAAO;AAAA,EACjC,MAAM,yBAAyB,OAAO,WAAW;AAAA,IAC/C,YAAY,OAAO,QAAQ;AAAA,IAC3B,UAAU,UAAU,OAAO,QAAQ;AAAA,IACnC,WAAW,OAAO,QAAQ;AAAA,EAC5B;AAAA,EACA,MAAM,sBAAsB,OAAO,WAAW;AAAA,IAC5C,YAAY,OAAO,QAAQ;AAAA,IAC3B,WAAW,OAAO,QAAQ;AAAA,IAC1B,UAAU,OAAO,QAAQ;AAAA,IACzB,UAAU,UAAU,OAAO,QAAQ;AAAA,IACnC,+BAA+B,OAAO,QAAQ;AAAA,IAC9C,+BAA+B,OAAO,QAAQ;AAAA,IAC9C,eAAe,OAAO,QAAQ,YAAY,YAAY,OAAO,OAAO,QAAQ;AAAA,IAC5E,YAAY,OAAO,QAAQ;AAAA,EAC7B;AAAA,EAEA,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA;;;ACrLK,SAAS,YAAY,CAAC,WAAW,YAAY,WAAW;AAAA,EAE7D,MAAM,eAAe,CAAC;AAAA,EAGtB,WAAW,SAAS,UAAU,QAAQ;AAAA,IACpC,QAAQ,gBAAgB,iBAAiB,MAAM;AAAA,IAC/C,MAAM,aAAa,cAAc,SAAS,QAAQ,YAAY;AAAA,IAC9D,MAAM,gBAAgB;AAAA,MACpB;AAAA,MACA,SAAS,WAAW,WAAW,SAAS,GAAG;AAAA,MAC3C;AAAA,MACA,SAAS,KAAK,oBAAoB,QAAQ,QAAQ;AAAA,SAC/C;AAAA,SACA,MAAM;AAAA,IACX;AAAA,IACA,QAAQ,WAAW,YAAY,MAAM;AAAA,IAErC,IAAI,mBAAmB,OAAO;AAAA,MAE5B,aAAa,KAAK;AAAA,QAChB;AAAA,QACA,MAAM,kBAAkB,SAAS,WAAW,OAAO,MAAM,eAAe,aAAa;AAAA,MACvF,CAAC;AAAA,IACH,EAAO,SAAI,iBAAiB,OAAO;AAAA,MACjC,aAAa,KAAK;AAAA,QAChB;AAAA,QAEA,MAAM,QAAQ,QAAQ,QAAQ,KAAK,MAAM,MAAM,YAAY,WAAW,MAAM,YAAY,OAAO,CAAC,EAC7F,KAAK,iBAAe;AAAA,UACnB,MAAM,QAAQ,gBAAgB,EAAE,MAAM,IAAI,SAAS,WAAW,GAAG,QAAQ,EAAE,CAAC,EAAE;AAAA,UAC9E,OAAO,kBAAkB,SAAS,WAAW,OAAO,OAAO,aAAa;AAAA,SACzE;AAAA,MACL,CAAC;AAAA,IACH,EAAO;AAAA,MAEL,aAAa,KAAK;AAAA,QAChB;AAAA,QACA,MAAM,QAAQ,QAAQ,QAAQ,KAAK,MAAM,WAAW,OAAO,CAAC,EACzD,KAAK,YAAU;AAAA,UACd,MAAM,SAAS,EAAE,MAAM,IAAI,SAAS,MAAM,GAAG,QAAQ,EAAE;AAAA,UACvD,OAAO,WAAW,QAAQ,WAAW,eAAe,QAAQ,MAAM;AAAA,SACnE;AAAA,MACL,CAAC;AAAA;AAAA,EAEL;AAAA,EAEA,OAAO;AAAA,IACL,YAAY,UAAU;AAAA,IACtB,WAAW,UAAU;AAAA,IACrB,aAAa,UAAU;AAAA,IACvB,WAAW,UAAU;AAAA,IACrB;AAAA,EACF;AAAA;AAcF,eAAe,iBAAiB,CAAC,SAAS,WAAW,OAAO,OAAO,eAAe;AAAA,EAChF,QAAQ,kBAAkB,2BAA2B,MAAM;AAAA,EAC3D,QAAQ,aAAa,cAAc;AAAA,EACnC,MAAM,WAAW,YAAY,MAAM;AAAA,EACnC,IAAI,UAAU;AAAA,EAEd,MAAM,UAAU,0BAA0B,mBAAmB,MAAM,GAAG;AAAA,EACtE,SAAS,IAAI,EAAG,IAAI,MAAM,QAAQ,KAAK;AAAA,IACrC,MAAM,OAAO,MAAM;AAAA,IACnB,MAAM,YAAY,OAAO,KAAK,eAAe;AAAA,IAC7C,MAAM,UAAU,IAAI,IAAI,MAAM,SAC1B,OAAO,MAAM,IAAI,GAAG,eAAe,IACnC,UAAU;AAAA,IAEd,IAAI,UAAU,KAAK,UAAU,aAAa;AAAA,MACxC,YAAY,OAAO,KAAK,MAAM;AAAA,MAC9B,UAAU;AAAA,IACZ;AAAA,IACA,IAAI,YAAY,WAAW;AAAA,MACzB,UAAU,OAAO,KAAK,MAAM,IAAI,KAAK;AAAA,IACvC;AAAA,EACF;AAAA,EACA,IAAI,UAAU;AAAA,IAAG,UAAU;AAAA,EAE3B,IAAI;AAAA,EACJ,IAAI,WAAW,SAAS;AAAA,IAGtB,MAAM,aAAa,OAAO,MAAM,GAAG,MAAM,IAAI,MAAM,MAAM;AAAA,IACzD,OAAO,YAAY,cAAc,MAAM,QAAQ,IAAI;AAAA,MACjD,QAAQ,KAAK,MAAM,MAAM,MAAM,WAAW,OAAO,MAAM,GAAG,MAAM,CAAC;AAAA,MACjE,QAAQ,KAAK,MAAM,WAAW,OAAO;AAAA,IACvC,CAAC;AAAA,IAED,MAAM,WAAW,IAAI,WAAW,aAAa,WAAW,UAAU;AAAA,IAClE,SAAS,IAAI,IAAI,WAAW,YAAY,GAAG,UAAU,CAAC;AAAA,IACtD,SAAS,IAAI,IAAI,WAAW,UAAU,GAAG,UAAU;AAAA,IACnD,OAAO,IAAI,SAAS,SAAS,MAAM;AAAA,EACrC,EAAO,SAAI,SAAS;AAAA,IAElB,OAAO,IAAI,SAAS,MAAM,QAAQ,KAAK,MAAM,MAAM,MAAM,WAAW,OAAO,CAAC;AAAA,EAC9E,EAAO;AAAA,IACL,OAAO,IAAI,SAAS,MAAM,QAAQ,KAAK,MAAM,WAAW,OAAO,CAAC;AAAA;AAAA,EAElE,MAAM,SAAS,EAAE,MAAM,QAAQ,EAAE;AAAA,EAEjC,MAAM,oBAAoB,UAAU;AAAA,OAC/B;AAAA,IACH,YAAY,UAAU,aAAa;AAAA,IACnC,aAAa,UAAU,cAAc;AAAA,IACrC,WAAW,UAAU,YAAY;AAAA,EACnC,IAAI;AAAA,EACJ,QAAQ,MAAM,SAAS,kBAAkB,WAAW,QAAQ,mBAAmB,eAAe,QAAQ,MAAM;AAAA,EAC5G,OAAO;AAAA,IACL;AAAA,IACA,SAAS,UAAU;AAAA,EACrB;AAAA;AA6BF,eAAsB,gBAAgB,GAAG,gBAAgB,aAAa,WAAW,SAAS,WAAW;AAAA,EAEnG,MAAM,aAAa,MAAM,QAAQ,IAAI,aAAa,IAAI,YACpD,OAAO,KAAK,KAAK,GAAG,SAAS,YAAY,EAAE,SAAS,MAAM,QAAQ,IAAI,EAAE,EAAE,CAC5E,CAAC;AAAA,EAGD,MAAM,cAAc,YAAY;AAAA,EAChC,IAAI,cAAc,UAAU;AAAA,IAE1B,MAAM,aAAY,MAAM,WAAW;AAAA,IACnC,SAAS,YAAY,EAAG,YAAY,aAAa,aAAa;AAAA,MAG5D,MAAM,UAAU,CAAC;AAAA,MACjB,SAAS,IAAI,EAAG,IAAI,aAAa,QAAQ,KAAK;AAAA,QAC5C,QAAQ,MAAM,YAAY,WAAW;AAAA,QACrC,QAAQ,aAAa,GAAG,aAAa,MAAM,KAAK,cAAc,YAAY;AAAA,MAC5E;AAAA,MACA,WAAU,aAAa;AAAA,IACzB;AAAA,IACA,OAAO;AAAA,EACT;AAAA,EAGA,MAAM,sBAAsB,aACzB,IAAI,WAAS,MAAM,aAAa,EAAE,EAClC,OAAO,UAAQ,CAAC,WAAW,QAAQ,SAAS,IAAI,CAAC;AAAA,EACpD,MAAM,cAAc,WAAW;AAAA,EAC/B,MAAM,gBAAgB,YAAY,IAAI,UAAQ,aAAa,UAAU,YAAU,OAAO,aAAa,OAAO,IAAI,CAAC;AAAA,EAG/G,MAAM,YAAY,MAAM,WAAW;AAAA,EACnC,SAAS,YAAY,EAAG,YAAY,aAAa,aAAa;AAAA,IAE5D,MAAM,UAAU,MAAM,aAAa,MAAM;AAAA,IACzC,SAAS,IAAI,EAAG,IAAI,YAAY,QAAQ,KAAK;AAAA,MAC3C,MAAM,SAAS,cAAc;AAAA,MAC7B,IAAI,SAAS;AAAA,QAAG,MAAM,IAAI,MAAM,6BAA6B,YAAY,IAAI;AAAA,MAC7E,QAAQ,MAAM,YAAY,WAAW;AAAA,MACrC,QAAQ,KAAK,KAAK,cAAc,YAAY;AAAA,IAC9C;AAAA,IACA,UAAU,aAAa;AAAA,EACzB;AAAA,EACA,OAAO;AAAA;AAWF,SAAS,aAAa,CAAC,eAAe,aAAY,SAAS;AAAA,EAChE,QAAQ,iBAAiB;AAAA,EACzB,UAAU,KAAK,oBAAoB,QAAQ;AAAA,EAE3C,MAAM,YAAY,CAAC;AAAA,EACnB,WAAW,SAAS,YAAW,UAAU;AAAA,IACvC,IAAI,MAAM,SAAS,QAAQ;AAAA,MACzB,MAAM,eAAe,aAAa,OAAO,YAAU,OAAO,aAAa,OAAO,MAAM,QAAQ,IAAI;AAAA,MAChG,IAAI,CAAC,aAAa;AAAA,QAAQ;AAAA,MAE1B,UAAU,KAAK;AAAA,QACb,cAAc,MAAM;AAAA,QACpB,OAAO,YAAY;AAAA,UAGjB,MAAM,WAAW,MAAM,QAAQ,IAAI,aAAa,IAAI,OAAK,EAAE,IAAI,CAAC;AAAA,UAEhE,MAAM,gBAAgB,IAAI;AAAA,UAC1B,MAAM,YAAY,SAAS,IAAI,GAAG,WAAW,QAAQ,IAAI,CAAC;AAAA,UAC1D,MAAM,UAAU,KAAK,IAAI,GAAG,SAAS,IAAI,aAAU,QAAO,OAAO,CAAC;AAAA,UAClE,MAAM,MAAM,KAAK,IAAI,GAAG,SAAS,IAAI,CAAC,SAAQ,MAAM,QAAO,UAAU,UAAU,GAAG,MAAM,CAAC;AAAA,UACzF,SAAS,IAAI,EAAG,IAAI,aAAa,QAAQ,KAAK;AAAA,YAG5C,MAAM,QAAQ,UAAU,SAAS,GAAG;AAAA,YACpC,MAAM,SAAS,KAAK,IAAI,GAAG,MAAM,OAAO;AAAA,YACxC,cAAc,IACZ,aAAa,GAAG,aAAa,KAAK,GAAG,GACrC,UAAU,GAAG,MAAM,OAAO,QAAQ,MAAM,CAC1C;AAAA,UACF;AAAA,UAEA,eAAe,eAAe,OAAO,OAAO;AAAA,UAC5C,MAAM,aAAY,cAAc,IAAI,MAAM,QAAQ,IAAI;AAAA,UACtD,IAAI,CAAC;AAAA,YAAW,MAAM,IAAI,MAAM,mCAAmC;AAAA,UACnE,OAAO,EAAE,MAAM,CAAC,UAAS,GAAG,QAAQ;AAAA,WACnC;AAAA,MACL,CAAC;AAAA,IACH,EAAO;AAAA,MAEL,MAAM,cAAc,aAAa,KAAK,YAAU,OAAO,aAAa,OAAO,MAAM,QAAQ,IAAI;AAAA,MAC7F,IAAI;AAAA,QAAa,UAAU,KAAK,WAAW;AAAA;AAAA,EAE/C;AAAA,EACA,OAAO,KAAK,eAAe,cAAc,UAAU;AAAA;;;ACxPrD,eAAsB,WAAW,CAAC,SAAS;AAAA,EAEzC,QAAQ,aAAa,MAAM,qBAAqB,QAAQ,MAAM,OAAO;AAAA,EAErE,QAAQ,WAAW,GAAG,QAAQ,SAAS,SAAS,YAAY,WAAW,QAAQ,eAAe,SAAS;AAAA,EAGvG,IAAI,UAAU,cAAc,UAAU;AAAA,IACpC,MAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AAAA,EAGA,MAAM,gBAAgB,uBAAuB,MAAM;AAAA,EACnD,IAAI,cAAc,QAAQ;AAAA,IACxB,MAAM,gBAAgB,cAAc,QAAQ,QAAQ,EAAE,SAAS,IAAI,OAAK,EAAE,QAAQ,IAAI;AAAA,IACtF,MAAM,iBAAiB,cAAc,OAAO,OAAK,CAAC,cAAc,SAAS,CAAC,CAAC;AAAA,IAC3E,IAAI,eAAe,QAAQ;AAAA,MACzB,MAAM,IAAI,MAAM,qCAAqC,eAAe,KAAK,IAAI,GAAG;AAAA,IAClF;AAAA,EACF;AAAA,EACA,IAAI,cAAc;AAAA,EAClB,IAAI,qBAAqB;AAAA,EACzB,IAAI,WAAW,QAAQ;AAAA,IACrB,MAAM,uBAAuB,cAAc,OAAO,OAAK,CAAC,QAAQ,SAAS,CAAC,CAAC;AAAA,IAC3E,IAAI,qBAAqB,QAAQ;AAAA,MAC/B,cAAc,CAAC,GAAG,SAAS,GAAG,oBAAoB;AAAA,MAClD,qBAAqB;AAAA,IACvB;AAAA,EACF;AAAA,EAGA,IAAI,cAAc,gBAAgB,UAAU,KAAK,SAAS,SAAS,YAAY,IAAI;AAAA,EACnF,cAAc,MAAM,iBAAiB,WAAW;AAAA,EAChD,cAAc,MAAM,gBAAgB,WAAW;AAAA,EAC/C,MAAM,cAAc,iBAAiB,WAAW;AAAA,EAGhD,IAAI,CAAC,cAAc,CAAC,SAAS;AAAA,IAC3B,MAAM,gBAAgB,WAAW;AAAA,IACjC;AAAA,EACF;AAAA,EAGA,MAAM,cAAa,cAAc,QAAQ,QAAQ;AAAA,EACjD,MAAM,YAAY,YAAY,IAAI,SAAO,cAAc,KAAK,aAAY,QAAQ,OAAO,CAAC;AAAA,EAGxF,IAAI,SAAS;AAAA,IACX,WAAW,cAAc,WAAW;AAAA,MAClC,WAAW,eAAe,WAAW,cAAc;AAAA,QACjD,YAAY,KAAK,KAAK,GAAG,MAAM,cAAc;AAAA,UAC3C,IAAI,YAAW,WAAW,aAAa;AAAA,UACvC,WAAW,cAAc,MAAM;AAAA,YAC7B,QAAQ;AAAA,cACN,YAAY,YAAY,aAAa;AAAA,cACrC;AAAA,cACA;AAAA,cACA,QAAQ,YAAW,WAAW;AAAA,YAChC,CAAC;AAAA,YACD,aAAY,WAAW;AAAA,UACzB;AAAA,WACC,MAAM,EAAE;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAAA,EAGA,IAAI,YAAY;AAAA,IAEd,MAAM,gBAAgB,SAAS;AAAA,IAG/B,MAAM,OAAO,CAAC;AAAA,IACd,WAAW,cAAc,WAAW;AAAA,MAGlC,MAAM,cAAc,WAAW,eAAe,KAAK,IAAI,WAAW,WAAW,YAAY,CAAC;AAAA,MAC1F,MAAM,YAAY,WAAW,aAAa,KAAK,KAAK,UAAU,YAAY,WAAW,YAAY,WAAW,SAAS;AAAA,MAErH,MAAM,YAAY,cAAc,WAC9B,MAAM,iBAAiB,YAAY,aAAa,WAAW,aAAa,QAAQ,IAChF,MAAM,iBAAiB,YAAY,aAAa,WAAW,SAAS,OAAO;AAAA,MAG7E,IAAI,QAAQ;AAAA,QAEV,WAAW,OAA6C,WAAY;AAAA,UAClE,IAAI,YAAY,KAAK,QAAQ,YAAY,GAAG;AAAA,YAC1C,IAAI,sBAAsB,SAAS;AAAA,cACjC,WAAW,OAAO,eAAe;AAAA,gBAC/B,IAAI,CAAC,QAAQ,SAAS,GAAG;AAAA,kBAAG,OAAO,IAAI;AAAA,cACzC;AAAA,YACF;AAAA,YACA,KAAK,KAAK,GAAG;AAAA,UACf;AAAA,QACF;AAAA,MACF,EAAO;AAAA,QACL,OAAO,MAAM,SAAS;AAAA;AAAA,IAE1B;AAAA,IACA,WAAW,IAAI;AAAA,EACjB,EAAO;AAAA,IAEL,MAAM,gBAAgB,SAAS;AAAA;AAAA;AAWnC,eAAe,eAAe,CAAC,aAAa;AAAA,EAC1C,MAAM,MAAM,YAAY,QAAQ,OAAK,EAAE,aAAa,IAAI,OAAK,EAAE,IAAI,CAAC;AAAA,EACpE,MAAM,UAAU,MAAM,QAAQ,WAAW,GAAG;AAAA,EAC5C,MAAM,SAAS,QAAQ,KAAK,OAAK,EAAE,WAAW,UAAU;AAAA,EACxD,IAAI;AAAA,IAAQ,MAAM,OAAO;AAAA;AAOpB,SAAS,gBAAgB,CAAC,SAAS;AAAA,EACxC,IAAI,CAAC,QAAQ;AAAA,IAAU,MAAM,IAAI,MAAM,2BAA2B;AAAA,EAIlE,MAAM,OAAO,YAAY,OAAO;AAAA,EAChC,QAAQ,OAAO,oBAAoB,QAAQ,MAAM,IAAI;AAAA,EAGrD,OAAO,KAAK,OAAO,IAAI,eAAa,aAAa,SAAS,MAAM,SAAS,CAAC;AAAA;AA2C5E,eAAe,gBAAgB,CAAC,SAAS;AAAA,EACvC,IAAI,CAAC,QAAQ;AAAA,IAAiB,OAAO;AAAA,EACrC,IAAI,CAAC,QAAQ,UAAU,CAAC,QAAQ;AAAA,IAAU,OAAO;AAAA,EACjD,MAAM,cAAa,cAAc,QAAQ,QAAQ;AAAA,EAEjD,MAAM,iBAAiB,CAAC;AAAA,EACxB,WAAW,SAAS,YAAW;AAAA,IAAU,eAAe,MAAM,QAAQ,QAAQ,MAAM;AAAA,EACpF,MAAM,sBAAsB,MAAM,qBAAqB;AAAA,IACrD,MAAM,QAAQ;AAAA,IACd,UAAU,QAAQ;AAAA,IAClB,QAAQ,QAAQ;AAAA,IAChB,cAAc,QAAQ;AAAA,EACxB,CAAC;AAAA,EAED,OAA8C,KAAK,SAAS,qBAAqB,eAAe;AAAA;AAalG,eAAe,eAAe,CAAC,SAAS;AAAA,EACtC,IAAI,CAAC,QAAQ;AAAA,IAAc,OAAO;AAAA,EAClC,IAAI,CAAC,QAAQ,UAAU,CAAC,QAAQ;AAAA,IAAU,OAAO;AAAA,EACjD,QAAQ,mBAAmB,yBAAyB,MAAM,oBAAoB;AAAA,IAC5E,MAAM,QAAQ;AAAA,IACd,UAAU,QAAQ;AAAA,IAClB,QAAQ,QAAQ;AAAA,IAChB,cAAc,QAAQ;AAAA,IACtB,UAAU,QAAQ;AAAA,IAClB,QAAQ,QAAQ;AAAA,IAChB,SAAS,QAAQ;AAAA,IAEjB,qBAAqB,QAAQ;AAAA,IAE7B,gBAAgB,QAAQ;AAAA,IACxB,SAAS,QAAQ;AAAA,EACnB,CAAC;AAAA,EACD,MAAM,cAAc,KAAK,SAAS,mBAAmB,qBAAqB;AAAA,EAC1E,OAAO;AAAA;AAUF,SAAS,kBAAkB,CAAC,SAAS;AAAA,EAC1C,OAAO,IAAI,QAAQ,CAAC,YAAY,WAAW;AAAA,IACzC,YAAY;AAAA,SACP;AAAA,MACH,WAAW;AAAA,MACX;AAAA,IACF,CAAC,EAAE,MAAM,MAAM;AAAA,GAChB;AAAA;;ACzPI,MAAM,iCAAiC,MAAM;AAAA,EAC1C;AAAA,EAET,WAAW,CAAC,QAAgB;AAAA,IAC3B,MAAM,gCAAgC,QAAQ;AAAA,IAC9C,KAAK,OAAO;AAAA,IACZ,KAAK,SAAS;AAAA;AAEhB;AAUA,SAAS,aAAa,CACrB,OAC8B;AAAA,EAC9B,IAAI,UAAU;AAAA,IAAW;AAAA,EACzB,IAAI,OAAO,UAAU,UAAU;AAAA,IAC9B,IAAI,OAAO,cAAc,KAAK,KAAK,SAAS;AAAA,MAAG,OAAO;AAAA,IACtD,MAAM,IAAI,yBACT,yCACD;AAAA,EACD;AAAA,EACA,IAAI,OAAO,UAAU,YAAY,CAAC,QAAQ,KAAK,KAAK,GAAG;AAAA,IACtD,MAAM,IAAI,yBACT,yCACD;AAAA,EACD;AAAA,EACA,MAAM,SAAS,OAAO,KAAK;AAAA,EAC3B,IAAI,SAAS,uBAA6B;AAAA,IACzC,MAAM,IAAI,yBAAyB,yBAAyB;AAAA,EAC7D;AAAA,EACA,OAAO,OAAO,SAAS,EAAE;AAAA;AAG1B,SAAS,YAAY,CACpB,MACA,QACA,YACe;AAAA,EACf,IAAI,OAAO,WAAW,GAAG;AAAA,IACxB,MAAM,IAAI,yBAAyB,GAAG,sBAAsB;AAAA,EAC7D;AAAA,EACA,MAAM,WAAW,OAAO,MAAM,GAAG,UAAU;AAAA,EAC3C,SAAS,QAAQ,EAAG,QAAQ,SAAS,QAAQ,SAAS,GAAG;AAAA,IACxD,MAAM,QAAQ,SAAS;AAAA,IACvB,MAAM,QAAQ,QAAQ;AAAA,IACtB,MAAM,SAAS,QAAQ;AAAA,IACvB,IACC,CAAC,MAAM,QAAQ,KAAK,KACpB,MAAM,SAAS,KACf,UAAU,aACV,WAAW,aACX,CAAC,OAAO,SAAS,KAAK,KACtB,CAAC,OAAO,SAAS,MAAM,KACvB,SAAS,KACT,UAAU,GACT;AAAA,MACD,MAAM,IAAI,yBACT,GAAG,cAAc,qDAClB;AAAA,IACD;AAAA,IACA,IAAI,QAAQ,GAAG;AAAA,MACd,MAAM,WAAW,SAAS,QAAQ,KAAK;AAAA,MACvC,IACC,aAAa,cACZ,SAAS,QAAQ,SAAS,WAAW,SAAS,WAC9C;AAAA,QACD,MAAM,IAAI,yBACT,GAAG,gCAAgC,SAAS,QAAQ,eAAe,aACpE;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EACA,OAAO,SAAS,IAAI,EAAE,OAAO,aAAa;AAAA,IACzC;AAAA,IACA;AAAA,EACD,EAAE;AAAA;AAGH,SAAS,eAAe,CAAC,OAAgD;AAAA,EACxE,MAAM,QAAQ,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EACvC,WAAW,QAAQ,OAAO;AAAA,IACzB,IAAI,CAAC,OAAO,SAAS,IAAI,KAAK,QAAQ,KAAK,CAAC,OAAO,UAAU,IAAI,GAAG;AAAA,MACnE,MAAM,IAAI,yBACT,yDACD;AAAA,IACD;AAAA,EACD;AAAA,EACA,OAAO,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,UAAU,OAAO,KAAK;AAAA;AAG9D,SAAS,WAAW,CAAC,KAAuD;AAAA,EAC3E,OAAO,KAAK,KAAK,yBAAyB,gBAAgB,GAAG,EAAE;AAAA;AAGhE,SAAS,oBAAoB,CAC5B,UACA,YACA,OAO0B;AAAA,EAC1B,OAAO;AAAA,OACH,kBAAkB,UAAS,UAAU;AAAA,IACxC,gBAAgB,MAAM;AAAA,IACtB,kBAAkB,MAAM;AAAA,IACxB,aAAa,MAAM;AAAA,IACnB,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,aAAa,MAAM;AAAA,IACnB,UAAU,MAAM;AAAA,IAChB,kCAAkC;AAAA,EACnC;AAAA;AAGM,SAAS,2BAA2B,CAAC,OAOjB;AAAA,EAC1B,IACC,CAAC,OAAO,cAAc,MAAM,UAAU,KACtC,MAAM,cAAc,KACpB,MAAM,aAAa,KAClB;AAAA,IACD,MAAM,IAAI,yBACT,kDACD;AAAA,EACD;AAAA,EACA,IAAI,MAAM,QAAQ,SAAS,aAAa;AAAA,IACvC,MAAM,IAAI,yBAAyB,uCAAuC;AAAA,EAC3E;AAAA,EACA,IAAI,MAAM,qBAAqB,2BAA2B;AAAA,IACzD,MAAM,IAAI,yBACT,kEACD;AAAA,EACD;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,cAAc,qBACb,MAAM,SAAS,WACf,gBACD;AAAA,IACA,iBAAiB,qBAChB,MAAM,SAAS,mBACf,kBACD;AAAA,IACC,OAAO,OAAO;AAAA,IACf,MAAM,IAAI,yBACT,iBAAiB,QAAQ,MAAM,UAAU,mBAC1C;AAAA;AAAA,EAED,IAAI,iBAAiB,aAAa;AAAA,IACjC,MAAM,IAAI,yBACT,8CACD;AAAA,EACD;AAAA,EAEA,MAAM,OAAO,aAAa,OAAO,MAAM,SAAS,MAAM,MAAM,UAAU;AAAA,EACtE,MAAM,OAAO,aAAa,OAAO,MAAM,SAAS,MAAM,MAAM,UAAU;AAAA,EACtE,MAAM,UAAU,KAAK;AAAA,EACrB,MAAM,UAAU,KAAK;AAAA,EACrB,IAAI,QAAQ,SAAS,QAAQ,OAAO;AAAA,IACnC,MAAM,IAAI,yBAAyB,2BAA2B;AAAA,EAC/D;AAAA,EACA,MAAM,WAAW,cAAc,MAAM,SAAS,QAAQ;AAAA,EACtD,MAAM,YAAY,QAAQ,QAAQ,QAAQ,SAAS;AAAA,EACnD,MAAM,SAAS,QAAQ,QAAQ,QAAQ;AAAA,EACvC,MAAM,YAAa,SAAS,WAAY;AAAA,EACxC,MAAM,aAAa,gBAAgB;AAAA,IAClC,UAAU,MAAM,QAAQ,SAAS,KAAK,EAAE,YAAY;AAAA,IACpD,cAAc,MAAM,QAAQ,OAAO,KAAK,EAAE,QAAQ,KAAK,GAAG;AAAA,IAC1D,gBAAgB;AAAA,IAChB;AAAA,IACA,aAAa,MAAM;AAAA,IACnB;AAAA,IACA;AAAA,IACA,gBAAgB,MAAM,QAAQ;AAAA,EAC/B,CAAC;AAAA,EACD,MAAM,SAAS,qBAAqB,MAAM,SAAS,MAAM,YAAY;AAAA,IACpE;AAAA,IACA;AAAA,IACA,YAAY,MAAM;AAAA,IAClB;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EAED,MAAM,SACL;AAAA,IACC,CAAC,OAAO,IAAI;AAAA,IACZ,CAAC,OAAO,IAAI;AAAA,EACb,EACC,QAAQ,EAAE,MAAM,gBACjB,WAAW,IAAI,GAAG,OAAO,UAAU,eAAe;AAAA,IACjD,MAAM,MAAM,YAAY;AAAA,SACpB;AAAA,MACH;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA,UAAU,QAAQ;AAAA,MAClB,WAAW;AAAA,MACX,qBAAqB,KAAK,KAAK,QAAQ,YAAY,QAAQ,IAAI;AAAA,IAChE,CAAC;AAAA,IACD,OAAO,EAAE,OAAO,qCAAqC,IAAI;AAAA,GACzD,CACF;AAAA,EAEA,MAAM,QAAQ,gBAAgB,MAAM,mBAAmB;AAAA,EACvD,MAAM,WAAW,MAAM,IAAI,CAAC,SAAS;AAAA,IACpC,MAAM,eAAe,QAAQ,SAAS,IAAI,OAAO;AAAA,IACjD,OAAO,KACL,OAAO,GAAG,YAAY,SAAS,YAAY,EAC3C,OAAO,CAAC,OAAO,aAAa,MAAM,QAAQ,CAAC;AAAA,GAC7C;AAAA,EACD,MAAM,WAAW,MAAM,IAAI,CAAC,SAAS;AAAA,IACpC,MAAM,eAAe,QAAQ,SAAS,IAAI,OAAO;AAAA,IACjD,OAAO,KACL,OAAO,GAAG,YAAY,SAAS,YAAY,EAC3C,OAAO,CAAC,OAAO,aAAa,MAAM,QAAQ,CAAC;AAAA,GAC7C;AAAA,EACD,MAAM,aAAa,YAAY;AAAA,OAC3B;AAAA,IACH,UAAU,QAAQ;AAAA,IAClB,UAAU,QAAQ;AAAA,IAClB,iBAAiB,QAAQ;AAAA,IACzB,iBAAiB,QAAQ;AAAA,IACzB,WAAW;AAAA,IACX;AAAA,IACA,YAAY;AAAA,IACZ,cAAc,iBAAiB;AAAA,IAC/B,iBAAiB,KAAK;AAAA,IACtB,iBAAiB,KAAK;AAAA,IACtB,uBAAuB;AAAA,IACvB,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,EACpB,CAAC;AAAA,EAED,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,SAAS;AAAA,MACR,OAAO;AAAA,MACP,KAAK;AAAA,IACN;AAAA,EACD;AAAA;;;AzBvPM,IAAM,gCACZ;AACM,IAAM,wBAAwB;AACrC,IAAM,iCAAiC,KAAK,IAAI,MAAM,GAAG,EAAE;AAC3D,IAAM,UAAU,KAAK,KAAK;AAwBnB,IAAM,6CACZ,OAAO,OAAO;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,mBAAmB,CAAC,wBAAwB;AAAA,EAC5C,gBAAgB,CAAC,sBAAsB;AACxC,CAAC;AAIK,IAAM,yCACZ,OAAO,OAAO;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,mBAAmB,CAAC,wBAAwB;AAAA,EAC5C,gBAAgB,CAAC,wBAAwB,WAAW;AACrD,CAAC;AAKK,IAAM,yCACZ,OAAO,OAAO;AAAA,EACb,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,mBAAmB,CAAC,wBAAwB;AAAA,EAC5C,gBAAgB,CAAC,wBAAwB,WAAW;AACrD,CAAC;AAAA;AAEK,MAAM,2BAA2B,MAAM;AAAA,EACxB;AAAA,EAArB,WAAW,CAAU,QAAgB;AAAA,IACpC,MAAM,kCAAkC,QAAQ;AAAA,IAD5B;AAAA,IAEpB,KAAK,OAAO;AAAA;AAEd;AA+BO,SAAS,0BAA0B,CACzC,UACA,WAAsD,CAAC,GACtB;AAAA,EACjC,IACC,SAAQ,eAAe,aAAa,mBACpC,SAAQ,MAAM,SAAS,eACvB,SAAQ,MAAM,SAAS,KAAK,EAAE,YAAY,MAAM,QAC/C;AAAA,IACD;AAAA,EACD;AAAA,EACA,MAAM,UAAU,SAAS,KACxB,CAAC,cACA,UAAU,aAAa,SAAQ,MAAM,SAAS,KAAK,EAAE,YAAY,KACjE,UAAU,gBAAgB,SAAQ,MAAM,eACxC,UAAU,iBAAiB,SAAQ,MAAM,gBACzC,UAAU,eAAe,SAAQ,MAAM,cACvC,UAAU,kBAAkB,SAAS,SAAQ,gBAAyB,KACtE,UAAU,eAAe,SAAS,SAAQ,YAAqB,KAC/D,SAAQ,OAAO,eAAe,UAAU,kBACxC,SAAQ,SAAS,UAAU,QAC7B;AAAA,EACA,IAAI,CAAC;AAAA,IAAS;AAAA,EACd,OAAO;AAAA,IACN,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,oBAAoB,QAAQ;AAAA,IAC5B,gBAAgB,QAAQ;AAAA,EACzB;AAAA;AAGD,SAAS,WAAW,CAAC,QAAgD;AAAA,EACpE,MAAM,OAAO,IAAI,KAAK,MAAM;AAAA,EAC5B,OAAO;AAAA,IACN,MAAM,GAAG,KAAK,eAAe,KAAK,OAAO,KAAK,YAAY,IAAI,CAAC,EAAE,SAAS,GAAG,GAAG,KAAK,OAAO,KAAK,WAAW,CAAC,EAAE,SAAS,GAAG,GAAG;AAAA,IAC9H,MAAM,OAAO,KAAK,YAAY,CAAC,EAAE,SAAS,GAAG,GAAG;AAAA,EACjD;AAAA;AAGM,SAAS,6BAA6B,CAC5C,UACA,oBACA,gBACW;AAAA,EACX,IAAI,SAAQ,iBAAiB,aAAa;AAAA,IACzC,MAAM,QAAQ,IAAI;AAAA,IAClB,WAAW,gBAAgB,SAAQ,wBAAwB;AAAA,MAC1D,MAAM,aACL,KAAK,MACJ,KAAK,IAAI,GAAG,eAAe,SAAQ,QAAQ,qBAAqB,IAC/D,OACF,IAAI;AAAA,MACL,MAAM,WAAW,KAAK,MAAM,eAAe,OAAO,IAAI;AAAA,MACtD,SAAS,SAAS,WAAW,UAAU,UAAU,UAAU,SAAS;AAAA,QACnE,MAAM,IAAI,MAAM;AAAA,MACjB;AAAA,IACD;AAAA,IACA,OAAO,CAAC,GAAG,KAAK,EACd,KAAK,CAAC,MAAM,UAAU,OAAO,KAAK,EAClC,IAAI,CAAC,WAAW;AAAA,MAChB,MAAM,MAAM,YAAY,MAAM;AAAA,MAC9B,OAAO,GAAG,sBAAsB,IAAI,QAAQ,IAAI,QAAQ;AAAA,KACxD;AAAA,EACH;AAAA,EACA,MAAM,YACL,KAAK,OACH,SAAQ,OAAO,cAAc,SAAQ,QAAQ,yBAC7C,OACF,IAAI;AAAA,EACL,MAAM,UAAoB,CAAC;AAAA,EAC3B,SACK,SAAS,KAAK,IAAI,GAAG,SAAS,EAClC,SAAS,SAAQ,OAAO,WACxB,UAAU,SACT;AAAA,IACD,MAAM,MAAM,YAAY,MAAM;AAAA,IAC9B,QAAQ,KACP,GAAG,sBAAsB,IAAI,QAAQ,IAAI,QAAQ,sCAClD;AAAA,EACD;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,0BAA0B,CAClC,UACA,cACU;AAAA,EACV,QAAQ,SAAQ,kBAAkB,mBAAmB,CAAC,GAAG,KAAK,CAAC,WAAW;AAAA,IACzE,MAAM,eAAe,KAAK,MAAM,OAAO,WAAW;AAAA,IAClD,OACC,OAAO,cAAc,YAAY,KACjC,gBAAgB,gBAChB,eAAe,gBAAgB,SAAQ;AAAA,GAExC;AAAA;AAGK,SAAS,0BAA0B,CACzC,UACkC;AAAA,EAClC,IAAI,SAAQ,iBAAiB;AAAA,IAAa,OAAO;AAAA,EACjD,MAAM,yBAAyB,SAAQ,uBAAuB,OAC7D,CAAC,iBAAiB,CAAC,2BAA2B,UAAS,YAAY,CACpE;AAAA,EACA,IAAI,uBAAuB,WAAW,GAAG;AAAA,IACxC,MAAM,IAAI,mBAAmB,0CAA0C;AAAA,EACxE;AAAA,EACA,OAAO,KAAK,UAAS,uBAAuB;AAAA;AAG7C,SAAS,cAAc,CACtB,OACA,OACA,WAAW,OACU;AAAA,EACrB,IAAI,UAAU,QAAQ,UAAU,WAAW;AAAA,IAC1C,IAAI;AAAA,MAAU,MAAM,IAAI,mBAAmB,UAAU,eAAe;AAAA,IACpE;AAAA,EACD;AAAA,EACA,MAAM,WAAW,OAAO,KAAK;AAAA,EAC7B,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG;AAAA,IAC5B,MAAM,IAAI,mBAAmB,UAAU,eAAe;AAAA,EACvD;AAAA,EACA,MAAM,SAAS,OAAO,QAAQ;AAAA,EAC9B,IAAI,SAAS,uBAA6B;AAAA,IACzC,MAAM,IAAI,mBAAmB,UAAU,sBAAsB;AAAA,EAC9D;AAAA,EACA,OAAO,OAAO,SAAS,EAAE;AAAA;AAG1B,SAAS,YAAW,CACnB,OACA,OACS;AAAA,EACT,MAAM,WAAW,OAAO,KAAK;AAAA,EAC7B,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG;AAAA,IAC5B,MAAM,IAAI,mBAAmB,UAAU,eAAe;AAAA,EACvD;AAAA,EACA,MAAM,MAAM,OAAO,QAAQ;AAAA,EAC3B,MAAM,eAAe,UAAU,kBAAkB,MAAM,WAAa;AAAA,EACpE,IAAI,eAAe,OAAO,OAAO,gBAAgB,GAAG;AAAA,IACnD,MAAM,IAAI,mBAAmB,UAAU,cAAc;AAAA,EACtD;AAAA,EACA,OAAO,OAAO,YAAY;AAAA;AAG3B,SAAS,OAAO,CAAC,OAAe,OAAe,WAA4B;AAAA,EAC1E,IAAI,CAAC,6BAA6B,KAAK,KAAK,GAAG;AAAA,IAC9C,MAAM,IAAI,mBAAmB,UAAU,eAAe;AAAA,EACvD;AAAA,EACA,MAAM,SAAS,OAAO,KAAK;AAAA,EAC3B,IAAI,CAAC,OAAO,SAAS,MAAM,MAAM,YAAY,SAAS,IAAI,UAAU,IAAI;AAAA,IACvE,MAAM,IAAI,mBAAmB,UAAU,eAAe;AAAA,EACvD;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,YAAY,CACpB,UACA,KAIC;AAAA,EACD,IAAI,IAAI,WAAW,SAAQ,MAAM,cAAc;AAAA,IAC9C,MAAM,IAAI,mBAAmB,wBAAwB;AAAA,EACtD;AAAA,EACA,IAAI,IAAI,eAAe,cAAc,IAAI,eAAe,UAAU;AAAA,IACjE,MAAM,IAAI,mBAAmB,2BAA2B;AAAA,EACzD;AAAA,EACA,IAAI,IAAI,SAAS,SAAS,IAAI,SAAS,OAAO;AAAA,IAC7C,MAAM,IAAI,mBAAmB,qBAAqB;AAAA,EACnD;AAAA,EACA,QAAQ,IAAI,OAAO,SAAS,KAAK;AAAA,EACjC,QAAQ,IAAI,UAAU,YAAY,IAAI;AAAA,EACtC,IAAI,CAAC,iBAAiB,KAAK,IAAI,uBAAuB,GAAG;AAAA,IACxD,MAAM,IAAI,mBAAmB,gCAAgC;AAAA,EAC9D;AAAA,EACA,MAAM,cAAc,aAAY,IAAI,YAAY,YAAY;AAAA,EAC5D,MAAM,iBAAiB,aAAY,IAAI,eAAe,eAAe;AAAA,EACrE,IAAI,iBAAiB,aAAa;AAAA,IACjC,MAAM,IAAI,mBAAmB,mCAAmC;AAAA,EACjE;AAAA,EACA,OAAO,KAAK,KAAK,aAAa,eAAe;AAAA;AAG9C,SAAS,QAAQ,CAChB,KACA,SACS;AAAA,EACT,MAAM,WACL,IAAI,eAAe,aAChB,QAAQ,qBAAqB,sCAC5B,eAAe,IAAI,iBAAiB,mBAAmB,IAAI,IAC3D,eAAe,IAAI,gBAAgB,kBAAkB,IAAI,IAC1D,eAAe,IAAI,iBAAiB,mBAAmB,IAAI;AAAA,EAC/D,OAAO;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ;AAAA,IACA,IAAI;AAAA,EACL,EAAE,KAAK,MAAQ;AAAA;AAGhB,SAAS,MAAM,CAAC,OAA6D;AAAA,EAC5E,OAAO,UAAU,QAAQ,UAAU;AAAA;AAGpC,SAAS,gBAAgB,CACxB,KACA,SACS;AAAA,EACT,IAAI,QAAQ,sBAAsB,0BAA0B;AAAA,IAC3D,IAAI,OAAO,IAAI,cAAc,MAAM,MAAM;AAAA,MACxC,MAAM,IAAI,mBAAmB,yCAAyC;AAAA,IACvE;AAAA,IACA,IAAI,CAAC,OAAO,IAAI,eAAe,KAAK,CAAC,OAAO,IAAI,oBAAoB,GAAG;AAAA,MACtE,MAAM,IAAI,mBAAmB,0BAA0B;AAAA,IACxD;AAAA,IACA,OAAO,eACN,IAAI,iBACJ,mBACA,IACD;AAAA,EACD;AAAA,EACA,OAAO,eAAe,IAAI,gBAAgB,kBAAkB,IAAI;AAAA;AAajE,SAAS,UAAU,CAClB,QACA,MACa;AAAA,EACb,OAAO,CAAC,GAAG,OAAO,QAAQ,CAAC,EACzB,IAAI,EAAE,OAAO,cAAc,CAAC,OAAO,KAAK,GAAG,QAAQ,CAAC,EACpD,KAAK,CAAC,MAAM,UACZ,SAAS,QACL,MAAM,KAAiB,KAAK,KAC5B,KAAK,KAAiB,MAAM,EACjC;AAAA;AAGF,SAAS,SAAS,CACjB,OACA,MACO;AAAA,EACP,WAAW,OAAO,MAAM;AAAA,IACvB,MAAM,SAAS,IAAI,SAAS,QAAQ,MAAM,OAAO,MAAM;AAAA,IACvD,MAAM,WAAW,QAAQ,IAAI,UAAU,YAAY,IAAI;AAAA,IACvD,IAAI,aAAa;AAAA,MAAG,OAAO,OAAO,IAAI,KAAK;AAAA,IACtC;AAAA,aAAO,IAAI,IAAI,OAAO,QAAQ;AAAA,EACpC;AAAA;AAGM,SAAS,kCAAkC,CACjD,UACA,WACA,UAA0C,4CACX;AAAA,EAC/B,MAAM,OAAO,UACX,IAAI,CAAC,KAAK,WAAW;AAAA,OAClB,aAAa,UAAS,GAAG;AAAA,IAC5B,eAAe;AAAA,EAChB,EAAE,EACD,KACA,CAAC,MAAM,UACN,KAAK,cAAc,MAAM,eACzB,KAAK,gBAAgB,MAAM,aAC7B;AAAA,EACD,MAAM,SAAmD,CAAC;AAAA,EAC1D,WAAW,OAAO,MAAM;AAAA,IACvB,MAAM,UAAU,OAAO,GAAG,EAAE;AAAA,IAC5B,IACC,CAAC,WACD,SAAS,QAAQ,IAAuC,OAAO,MAC9D,SAAS,KAAK,OAAO,GACrB;AAAA,MACD,OAAO,KAAK,CAAC,GAAG,CAAC;AAAA,IAClB,EAAO;AAAA,MACN,QAAQ,KAAK,GAAG;AAAA;AAAA,EAElB;AAAA,EAEA,MAAM,uBAAuB,KAAK,IAAI,GAAG,SAAQ,sBAAsB;AAAA,EACvE,MAAM,qBAAqB,KAAK,IAAI,GAAG,SAAQ,sBAAsB;AAAA,EACrE,MAAM,cAAc,OAAO,UAAU,CAAC,UAAU;AAAA,IAC/C,MAAM,QAAQ,MAAM;AAAA,IACpB,OACC,MAAM,eAAe,cACrB,MAAM,eAAe;AAAA,GAEtB;AAAA,EACD,IAAI,cAAc,GAAG;AAAA,IACpB,MAAM,IAAI,mBAAmB,wBAAwB;AAAA,EACtD;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM,SAAsB,CAAC;AAAA,EAC7B,WAAW,SAAS,OAAO,MAAM,WAAW,GAAG;AAAA,IAC9C,MAAM,QAAQ,MAAM;AAAA,IACpB,IAAI,MAAM,cAAc;AAAA,MAAoB;AAAA,IAC5C,IAAI,MAAM,eAAe,YAAY;AAAA,MACpC,MAAM,WAAW,iBAAiB,OAAO,OAAO;AAAA,MAChD,WAAW,OAAO,OAAO;AAAA,QACxB,IAAI,iBAAiB,KAAK,OAAO,MAAM,UAAU;AAAA,UAChD,MAAM,IAAI,mBAAmB,0BAA0B;AAAA,QACxD;AAAA,MACD;AAAA,MACA,IACC,QAAQ,sBAAsB,oBAC9B,0BAA0B,aAC1B,OAAO,QAAQ,IAAI,uBAClB;AAAA,QACD,MAAM,IAAI,mBAAmB,8BAA8B;AAAA,MAC5D;AAAA,MACA,QAAQ;AAAA,QACP,MAAM,IAAI;AAAA,QACV,MAAM,IAAI;AAAA,QACV;AAAA,QACA,cAAc,MAAM;AAAA,QACpB,gBAAgB,KAAK,IACpB,GAAG,MAAM,IAAI,GAAG,qBAAqB,cAAc,CACpD;AAAA,QACA,uBAAuB,MAAM;AAAA,QAC7B,uBAAuB,MAAM;AAAA,MAC9B;AAAA,MACA,UAAU,OAAO,KAAK;AAAA,MACtB,wBAAwB,OAAO,QAAQ;AAAA,IACxC,EAAO;AAAA,MACN,IAAI,CAAC,SAAS,0BAA0B,WAAW;AAAA,QAClD,MAAM,IAAI,mBAAmB,wBAAwB;AAAA,MACtD;AAAA,MACA,MAAM,cAAc,OACnB,eACC,MAAM,iBACN,mBACA,IACD,CACD;AAAA,MACA,IAAI,QAAQ,sBAAsB,0BAA0B;AAAA,QAC3D,IACC,CAAC,OAAO,MAAM,eAAe,KAC7B,CAAC,OAAO,MAAM,oBAAoB,GACjC;AAAA,UACD,MAAM,IAAI,mBAAmB,wBAAwB;AAAA,QACtD;AAAA,QACA,MAAM,WAAW,eAChB,MAAM,gBACN,kBACA,IACD;AAAA,QACA,WAAW,OAAO,OAAO;AAAA,UACxB,IACC,CAAC,OAAO,IAAI,eAAe,KAC3B,CAAC,OAAO,IAAI,oBAAoB,KAChC,eAAe,IAAI,iBAAiB,mBAAmB,IAAI,MAC1D,YAAY,SAAS,KACtB,eAAe,IAAI,gBAAgB,kBAAkB,IAAI,MACxD,UACA;AAAA,YACD,MAAM,IAAI,mBAAmB,wBAAwB;AAAA,UACtD;AAAA,QACD;AAAA,QACA,IAAI,OAAO,QAAQ,MAAM,uBAAuB;AAAA,UAC/C,MAAM,IAAI,mBAAmB,kBAAkB;AAAA,QAChD;AAAA,MACD,EAAO;AAAA,QACN,MAAM,cAAc,OACnB,eACC,MAAM,iBACN,mBACA,IACD,CACD;AAAA,QACA,MAAM,WAAW,eAChB,MAAM,sBACN,sBACD;AAAA,QACA,WAAW,OAAO,OAAO;AAAA,UACxB,IACC,eAAe,IAAI,iBAAiB,mBAAmB,IAAI,MAC1D,YAAY,SAAS,KACtB,eAAe,IAAI,iBAAiB,mBAAmB,IAAI,MAC1D,YAAY,SAAS,KACtB,eAAe,IAAI,sBAAsB,sBAAsB,MAC9D,UACA;AAAA,YACD,MAAM,IAAI,mBAAmB,wBAAwB;AAAA,UACtD;AAAA,QACD;AAAA,QACA,MAAM,WAAW,wBAAwB;AAAA,QACzC,IACC,cAAc,YACd,cAAc,YACb,aAAa,aAAa,OAAO,QAAQ,MAAM,uBAC/C;AAAA,UACD,MAAM,IAAI,mBAAmB,kBAAkB;AAAA,QAChD;AAAA;AAAA,MAED,UAAU,OAAO,KAAK;AAAA,MACtB,MAAM,WAAW,YAAY,SAAS;AAAA,MACtC,MAAM,eAAe,MAAM;AAAA,MAC3B,MAAM,iBAAiB,KAAK,IAC3B,GAAG,MAAM,IAAI,GAAG,qBAAqB,cAAc,CACpD;AAAA,MACA,MAAM,wBAAwB,MAAM;AAAA,MACpC,MAAM,wBAAwB,MAAM;AAAA,MACpC,wBAAwB;AAAA;AAAA,IAEzB,IAAI,OAAO;AAAA,MACV,OAAO,KAAK;AAAA,WACR;AAAA,QACH,MAAM,IAAI,IAAI,MAAM,IAAI;AAAA,QACxB,MAAM,IAAI,IAAI,MAAM,IAAI;AAAA,MACzB,CAAC;AAAA,IACF;AAAA,EACD;AAAA,EAEA,MAAM,UAAwC,CAAC;AAAA,EAC/C,WAAW,gBAAgB,SAAQ,wBAAwB;AAAA,IAC1D,IAAI;AAAA,IACJ,WAAW,aAAa,QAAQ;AAAA,MAC/B,IAAI,UAAU,eAAe;AAAA,QAAc;AAAA,MAC3C,QAAQ;AAAA,IACT;AAAA,IACA,IACC,CAAC,SACD,eAAe,MAAM,eAAe,SAAQ,mBAC3C;AAAA,MACD,MAAM,IAAI,mBAAmB,sCAAsC;AAAA,IACpE;AAAA,IACA,MAAM,OAAO,WAAW,MAAM,MAAM,KAAK,EAAE,MAAM,GAAG,SAAQ,KAAK;AAAA,IACjE,MAAM,OAAO,WAAW,MAAM,MAAM,KAAK,EAAE,MAAM,GAAG,SAAQ,KAAK;AAAA,IACjE,IAAI,KAAK,WAAW,KAAK,KAAK,WAAW,GAAG;AAAA,MAC3C,MAAM,IAAI,mBAAmB,mBAAmB;AAAA,IACjD;AAAA,IACA,IAAK,KAAK,KAAK,MAAkB,KAAK,KAAK,IAAe;AAAA,MACzD,MAAM,IAAI,mBAAmB,wBAAwB;AAAA,IACtD;AAAA,IACA,QAAQ,KAAK;AAAA,MACZ;AAAA,MACA,cAAc,MAAM;AAAA,MACpB,gBAAgB,MAAM;AAAA,MACtB,UAAU,MAAM;AAAA,MAChB;AAAA,MACA;AAAA,MACA,uBAAuB,MAAM;AAAA,MAC7B,uBAAuB,MAAM;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,WAAW,CAAC,OAA2B;AAAA,EAC/C,OAAO,YAAW,QAAQ,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK;AAAA;AAGvD,eAAsB,0BAA0B,CAC/C,OACqC;AAAA,EACrC,MAAM,UAAU,WAAW,KAAK;AAAA,EAChC,MAAM,SAAS,QAAQ,OAAO,MAC7B,QAAQ,YACR,QAAQ,aAAa,QAAQ,UAC9B;AAAA,EACA,OAAO,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAAA;AAW3C,SAAS,gBAAgB,CACxB,OACA,QAC4B;AAAA,EAC5B,OAAO;AAAA,IACN,eAAe,MAAM;AAAA,IACrB,YAAY,MAAM;AAAA,IAClB,kBAAkB,MAAM;AAAA,IAMxB,QAAQ,MAAM;AAAA,IACd,YAAY,MAAM;AAAA,IAClB,iBAAiB,MAAM;AAAA,IAMvB,iBAAiB,MAAM;AAAA,IAMvB,sBAAsB,MAAM;AAAA,IAM5B,gBAAgB,MAAM;AAAA,IAMtB,MAAM,MAAM;AAAA,IACZ,OAAO,MAAM;AAAA,IACb,UAAU,MAAM;AAAA,IAChB,aAAa,MAAM;AAAA,IAMnB,yBAAyB,OAAO;AAAA,IAChC,yBAAyB,OAAO;AAAA,EACjC;AAAA;AAGD,eAAe,iBAAiB,CAC/B,UACA,gBACsB;AAAA,EACtB,IAAI,CAAC,SAAS;AAAA,IAAM,OAAO,IAAI;AAAA,EAC/B,MAAM,SAAS,SAAS,KAAK,UAAU;AAAA,EACvC,MAAM,SAAuB,CAAC;AAAA,EAC9B,IAAI,QAAQ;AAAA,EACZ,OAAO,MAAM;AAAA,IACZ,QAAQ,MAAM,UAAU,MAAM,OAAO,KAAK;AAAA,IAC1C,IAAI;AAAA,MAAM;AAAA,IACV,SAAS,MAAM;AAAA,IACf,IAAI,QAAQ,gBAAgB;AAAA,MAC3B,MAAM,OAAO,OAAO;AAAA,MACpB,MAAM,IAAI,mBAAmB,2BAA2B;AAAA,IACzD;AAAA,IACA,OAAO,KAAK,KAAK;AAAA,EAClB;AAAA,EACA,MAAM,QAAQ,IAAI,WAAW,KAAK;AAAA,EAClC,IAAI,SAAS;AAAA,EACb,WAAW,SAAS,QAAQ;AAAA,IAC3B,MAAM,IAAI,OAAO,MAAM;AAAA,IACvB,UAAU,MAAM;AAAA,EACjB;AAAA,EACA,OAAO;AAAA;AAAA;AAGD,MAAM,qBAAqB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EAEjB,WAAW,CAAC,UAAuC,CAAC,GAAG;AAAA,IACtD,KAAK,UAAU,QAAQ,WAAW;AAAA,IAClC,KAAK,UAAU,QAAQ,SAAS;AAAA,IAChC,KAAK,QAAQ,QAAQ,SAAS,KAAK;AAAA,IACnC,KAAK,SAAS,QAAQ,UAAU;AAAA,IAChC,KAAK,WAAW,QAAQ,YAAY,CAAC;AAAA;AAAA,EAGtC,aAAa,CACZ,UACiC;AAAA,IACjC,OAAO,2BAA2B,UAAS,KAAK,QAAQ;AAAA;AAAA,OAGnD,gBAAe,CAAC,oBAA+C;AAAA,IACpE,IAAI,CAAC,eAAe,KAAK,kBAAkB,GAAG;AAAA,MAC7C,MAAM,IAAI,mBAAmB,mCAAmC;AAAA,IACjE;AAAA,IACA,MAAM,WAAW,IAAI,IAAI,YAAY,KAAK,OAAO;AAAA,IACjD,SAAS,aAAa,IAAI,YAAY,kBAAkB;AAAA,IACxD,SAAS,aAAa,IAAI,aAAa,WAAW;AAAA,IAClD,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,WAAW,MAAM,KAAK,QAAQ,QAAQ;AAAA,MACrC,MAAM;AAAA,MACP,MAAM,IAAI,mBAAmB,yBAAyB;AAAA;AAAA,IAEvD,IAAI,CAAC,SAAS,IAAI;AAAA,MACjB,MAAM,IAAI,mBAAmB,yBAAyB;AAAA,IACvD;AAAA,IACA,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,OAAO,MAAM,SAAS,KAAK;AAAA,MAC1B,MAAM;AAAA,MACP,MAAM,IAAI,mBAAmB,mCAAmC;AAAA;AAAA,IAEjE,MAAM,SAAS;AAAA,IACf,IACC,CAAC,QACD,OAAO,SAAS,YAChB,MAAM,QAAQ,IAAI,KAClB,OAAO,OAAO,QAAQ,EAAE,YAAY,MAAM,sBAC1C,OAAO,OAAO,SAAS,EAAE,YAAY,MAAM,eAC3C,CAAC,MAAM,QAAQ,OAAO,OAAO,KAC7B,CAAC,OAAO,QAAQ,MACf,CAAC,WAAW,OAAO,WAAW,YAAY,gBAAgB,KAAK,MAAM,CACtE,GACC;AAAA,MACD,MAAM,IAAI,mBAAmB,mCAAmC;AAAA,IACjE;AAAA,IACA,OAAO,CAAC,GAAG,IAAI,IAAI,OAAO,OAAmB,CAAC,EAAE,KAAK;AAAA;AAAA,OAGhD,QAAO,CACZ,UACA,YACA,YACsD;AAAA,IACtD,MAAM,SACL,cAAc,OAAO,eAAe,WAChC,WAAoC,SACrC;AAAA,IACJ,IAAI,OAAO,WAAW,YAAY,OAAO,WAAW,GAAG;AAAA,MACtD,MAAM,IAAI,mBAAmB,qBAAqB;AAAA,IACnD;AAAA,IACA,MAAM,QAAQ,8BACb,UACA,WAAW,oBACX,WAAW,cACZ;AAAA,IACA,IAAI,MAAM,SAAS,SAAQ,QAAQ,UAAU;AAAA,MAC5C,MAAM,IAAI,mBAAmB,2BAA2B;AAAA,IACzD;AAAA,IACA,MAAM,UAAU,KAAK,MAAM;AAAA,IAC3B,MAAM,gBAAgB,MAAM,KAAK,QAAQ,GAAG,KAAK,qBAAqB;AAAA,MACrE,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,oBAAoB,aAAa,OAAO;AAAA,IACpE,CAAC;AAAA,IACD,IAAI,CAAC,cAAc;AAAA,MAAI,MAAM,IAAI,mBAAmB,qBAAqB;AAAA,IACzE,MAAM,YAAa,MAAM,cAAc,KAAK;AAAA,IAC5C,IAAI,OAAO,UAAU,cAAc,YAAY,CAAC,UAAU,WAAW;AAAA,MACpE,MAAM,IAAI,mBAAmB,sBAAsB;AAAA,IACpD;AAAA,IAEA,IAAI,aAAa;AAAA,IACjB,IAAI,YAAY;AAAA,IAChB,MAAM,UAAoC,CAAC;AAAA,IAC3C,MAAM,OAAoC,CAAC;AAAA,IAC3C,WAAW,QAAQ,OAAO;AAAA,MACzB,IAAI,KAAK,MAAM,IAAI,UAAU,SAAQ,QAAQ,eAAe;AAAA,QAC3D,MAAM,IAAI,mBAAmB,8BAA8B;AAAA,MAC5D;AAAA,MACA,MAAM,WAAW,IAAI,IAAI,aAAa,KAAK,OAAO;AAAA,MAClD,SAAS,aAAa,IAAI,QAAQ,IAAI;AAAA,MACtC,MAAM,WAAW,MAAM,KAAK,QAAQ,UAAU;AAAA,QAC7C,SAAS,EAAE,eAAe,UAAU,UAAU,YAAY;AAAA,MAC3D,CAAC;AAAA,MACD,IAAI,CAAC,SAAS;AAAA,QAAI,MAAM,IAAI,mBAAmB,wBAAwB;AAAA,MACvE,MAAM,gBAAgB,OAAO,SAAS,QAAQ,IAAI,gBAAgB,CAAC;AAAA,MACnE,IACC,OAAO,SAAS,aAAa,KAC7B,aAAa,gBAAgB,SAAQ,QAAQ,UAC5C;AAAA,QACD,MAAM,IAAI,mBAAmB,2BAA2B;AAAA,MACzD;AAAA,MACA,MAAM,QAAQ,MAAM,kBACnB,UACA,SAAQ,QAAQ,WAAW,UAC5B;AAAA,MACA,cAAc,MAAM;AAAA,MACpB,IAAI,aAAa,SAAQ,QAAQ,UAAU;AAAA,QAC1C,MAAM,IAAI,mBAAmB,2BAA2B;AAAA,MACzD;AAAA,MACA,MAAM,UAAU,MAAM,KAAK,OAAO,KAAK;AAAA,MACvC,aAAa,QAAQ;AAAA,MACrB,IAAI,YAAY,SAAQ,QAAQ,SAAS;AAAA,QACxC,MAAM,IAAI,mBAAmB,0BAA0B;AAAA,MACxD;AAAA,MACA,MAAM,SAAS;AAAA,QACd,UAAU;AAAA,QACV,UAAU,YAAY,KAAK;AAAA,QAC3B,OAAO,MAAM;AAAA,QACb,MAAM,QAAQ;AAAA,MACf;AAAA,MACA,QAAQ,KAAK,MAAM;AAAA,MACnB,WAAW,cAAc,SAAS;AAAA,QACjC,MAAM,SAAS,iBAAiB,YAAY,MAAM;AAAA,QAClD,aAAa,UAAS,MAAM;AAAA,QAC5B,KAAK,KAAK,MAAM;AAAA,MACjB;AAAA,IACD;AAAA,IACA,IAAI,KAAK,MAAM,IAAI,UAAU,SAAQ,QAAQ,eAAe;AAAA,MAC3D,MAAM,IAAI,mBAAmB,8BAA8B;AAAA,IAC5D;AAAA,IACA,OAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,sBAAsB,gBAAgB,IAAI;AAAA,IAC3C;AAAA;AAAA,OAGK,UAAS,CACd,UACA,YACA,SACA,kBAC8B;AAAA,IAC9B,MAAM,UAAU,KAAK,SAAS,KAC7B,CAAC,cACA,UAAU,aAAa,SAAQ,MAAM,SAAS,KAAK,EAAE,YAAY,KACjE,UAAU,gBAAgB,SAAQ,MAAM,eACxC,UAAU,iBAAiB,SAAQ,MAAM,gBACzC,UAAU,eAAe,SAAQ,MAAM,cACvC,UAAU,uBAAuB,WAAW,kBAC9C;AAAA,IACA,IAAI,CAAC,SAAS;AAAA,MACb,MAAM,IAAI,mBAAmB,+BAA+B;AAAA,IAC7D;AAAA,IACA,MAAM,UAAU,mCACf,UACA,QAAQ,MACR,OACD;AAAA,IACA,MAAM,WAAgC;AAAA,MACrC,QAAQ;AAAA,MACR,cAAc;AAAA,MACd;AAAA,MACA,UAAU,SAAQ,MAAM;AAAA,MACxB,QAAQ,SAAQ,MAAM;AAAA,MACtB,aAAa,SAAQ,MAAM;AAAA,MAC3B,cAAc,SAAQ,MAAM;AAAA,MAC5B,WAAW,SAAQ,MAAM;AAAA,MACzB,MAAM;AAAA,MACN,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,oBAAoB;AAAA,IACrB;AAAA,IACA,MAAM,OAAO,QAAQ,QAAQ,CAAC,WAAW;AAAA,MACxC,MAAM,aAAyB;AAAA,QAC9B,cAAc,gBAAgB;AAAA,UAC7B,mBAAmB;AAAA,UACnB,yBAAyB,OAAO;AAAA,UAChC,yBAAyB,OAAO;AAAA,UAChC,gBAAgB,OAAO;AAAA,UACvB,gBAAgB,OAAO;AAAA,QACxB,CAAC;AAAA,QACD,iBAAiB;AAAA,QACjB,aAAa,OAAO;AAAA,QACpB,iBAAiB;AAAA,UAChB,yBAAyB,OAAO;AAAA,UAChC,yBAAyB,OAAO;AAAA,QACjC;AAAA,QACA,aAAa,OAAO;AAAA,QACpB,gBAAgB,OAAO;AAAA,QACvB,mBAAmB;AAAA,MACpB;AAAA,MACA,MAAM,YAAY,4BAA4B;AAAA,QAC7C;AAAA,QACA;AAAA,QACA,YAAY,SAAQ;AAAA,QACpB,kBAAkB,SAAQ;AAAA,QAC1B,UAAU;AAAA,UACT,MAAM,OAAO;AAAA,UACb,MAAM,OAAO;AAAA,UACb,WAAW,OAAO;AAAA,UAClB,mBAAmB,OAAO;AAAA,UAC1B,UAAU,SAAQ,MAAM;AAAA,UACxB,QAAQ,SAAQ,MAAM;AAAA,UACtB,YAAY,SAAQ;AAAA,UACpB,UAAU,OAAO;AAAA,QAClB;AAAA,MACD,CAAC;AAAA,MACD,OAAO,CAAC,GAAG,UAAU,QAAQ,UAAU,OAAO;AAAA,KAC9C;AAAA,IACD,OAAO;AAAA,MACN;AAAA,MACA,SAAS,QAAQ;AAAA,MACjB;AAAA,MACA,sBAAsB,QAAQ;AAAA,MAC9B,yBAAyB,eAAe,IAAI;AAAA,IAC7C;AAAA;AAEF;;;A0B35BA,IAAM,OAAO;AACb,IAAM,SAAS;AACf,IAAM,SAAS;AACf,IAAM,eAAe,IAAI,IAAI;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAwB;AAAA,EAClD,MAAM,SAAS,UAAU,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,EAAE;AAAA,EACrD,OAAO,MAAM;AAAA,EACb,OAAO,MAAM;AAAA,EACb,MAAM,MAAM,OAAO,KAAK,EAAE;AAAA,EAC1B,OAAO,GAAG,IAAI,MAAM,GAAG,CAAC,KAAK,IAAI,MAAM,GAAG,EAAE,KAAK,IAAI,MAAM,IAAI,EAAE,KAAK,IAAI,MAAM,IAAI,EAAE,KAAK,IAAI,MAAM,EAAE;AAAA;AAGxG,SAAS,aAAa,CACrB,OACqD;AAAA,EACrD,QAAQ,wBAAwB,aAAa,aAAa;AAAA,EAC1D,OAAO;AAAA;AAGR,SAAS,eAAe,CAAC,OAAe,OAAuB;AAAA,EAC9D,MAAM,SAAS,KAAK,MAAM,KAAK;AAAA,EAC/B,IACC,CAAC,OAAO,cAAc,MAAM,KAC5B,IAAI,KAAK,MAAM,EAAE,YAAY,MAAM,OAClC;AAAA,IACD,MAAM,IAAI,MAAM,GAAG,6CAA6C;AAAA,EACjE;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,uBAAuB,CAAC,OAAoC;AAAA,EAC3E,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;AAAA,IAChE,MAAM,IAAI,MAAM,uCAAuC;AAAA,EACxD;AAAA,EACA,MAAM,QAAQ;AAAA,EACd,IACC,OAAO,KAAK,KAAK,EAAE,WAAW,aAAa,QAC3C,CAAC,OAAO,KAAK,KAAK,EAAE,MAAM,CAAC,UAAU,aAAa,IAAI,KAAK,CAAC,KAC5D,CAAC,KAAK,KAAK,MAAM,sBAAsB,KACvC,CAAC,OAAO,KAAK,MAAM,iBAAiB,KACpC,CAAC,CAAC,aAAa,eAAe,SAAS,EAAE,SAAS,MAAM,KAAK,KAC7D,CAAC,OAAO,KAAK,MAAM,UAAU,KAC7B,CAAC,OAAO,KAAK,MAAM,yBAAyB,KAC5C,CAAC,MAAM,UACP,OAAO,MAAM,WAAW,YACxB,OAAO,KAAK,MAAM,MAAM,EAAE,WAAW,KACrC,CAAC,OAAO,KAAK,MAAM,WAAW,GAC7B;AAAA,IACD,MAAM,IAAI,MAAM,wCAAwC;AAAA,EACzD;AAAA,EACA,IACC,gBAAgB,MAAM,OAAO,QAAQ,eAAe,KACpD,gBAAgB,MAAM,OAAO,UAAU,iBAAiB,GACvD;AAAA,IACD,MAAM,IAAI,MAAM,yCAAyC;AAAA,EAC1D;AAAA,EACA,gBAAgB,MAAM,UAAU,UAAU;AAAA,EAC1C,IACC,kBAAkB,cAAc,KAAK,CAAC,MAAM,MAAM,wBACjD;AAAA,IACD,MAAM,IAAI,MAAM,qDAAqD;AAAA,EACtE;AAAA,EACA,OAAO;AAAA;AAGD,SAAS,0BAA0B,CACzC,OACqB;AAAA,EACrB,MAAM,WAAW,cAAc,KAAK;AAAA,EACpC,OAAO,wBAAwB;AAAA,OAC3B;AAAA,IACH,wBAAwB,kBAAkB,QAAQ;AAAA,EACnD,CAAC;AAAA;AAGK,SAAS,8BAA8B,CAC7C,YACqB;AAAA,EACrB,MAAM,QAAQ,wBAAwB,UAAU;AAAA,EAChD,OAAO;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,MACJ,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,aAAa;AAAA,MACb,eAAe;AAAA,MACf,wBAAwB,MAAM;AAAA,MAC9B,mBAAmB,MAAM;AAAA,MACzB,OAAO,MAAM;AAAA,MACb,YAAY,MAAM;AAAA,MAClB,2BAA2B,MAAM;AAAA,MACjC,iBAAiB,KAAK,MAAM,MAAM,OAAO,QAAQ;AAAA,MACjD,eAAe,KAAK,MAAM,MAAM,OAAO,MAAM;AAAA,MAC7C,aAAa,KAAK,MAAM,MAAM,QAAQ;AAAA,MACtC,aAAa,MAAM;AAAA,MACnB,YAAY,gBAAgB,KAAK;AAAA,IAClC;AAAA,EACD;AAAA;;;ACyBM,SAAS,0CAA0C,CACzD,cACuB;AAAA,EACvB,YAAY,MAAM,UAAU,OAAO,QAAQ;AAAA,IAC1C,SAAS,aAAa;AAAA,IACtB,WAAW,aAAa;AAAA,IACxB,aAAa,aAAa;AAAA,IAC1B,WAAW,aAAa;AAAA,IACxB,OAAO,aAAa;AAAA,EACrB,CAAC,GAAG;AAAA,IACH,IAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AAAA,MACxC,MAAM,IAAI,UAAU,uBAAuB,kBAAkB;AAAA,IAC9D;AAAA,EACD;AAAA,EACA,YAAY,MAAM,WAAW,OAAO,QAAQ;AAAA,IAC3C,4BAA4B,aAAa,QAAQ;AAAA,IACjD,2BAA2B,aAAa,QAAQ;AAAA,IAChD,2BAA2B,aAAa,UAAU;AAAA,IAClD,qBAAqB,aAAa,UAAU;AAAA,IAC5C,uBAAuB,aAAa,UAAU;AAAA,IAC9C,uBAAuB,aAAa,YAAY;AAAA,IAChD,uBAAuB,aAAa,UAAU;AAAA,IAC9C,oBAAoB,aAAa,UAAU;AAAA,IAC3C,eAAe,aAAa,MAAM;AAAA,EACnC,CAAC,GAAG;AAAA,IACH,IAAI,OAAO,WAAW,YAAY;AAAA,MACjC,MAAM,IAAI,UAAU,uBAAuB,kBAAkB;AAAA,IAC9D;AAAA,EACD;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,OAAO,CACf,UACA,QACA,YACA,QAGI,CAAC,GACmB;AAAA,EACxB,OAAO;AAAA,IACN;AAAA,IACA;AAAA,OACI,WACD;AAAA,MACA,WAAW,SAAQ;AAAA,MACnB,gBAAgB,SAAQ;AAAA,SACpB,SAAQ,SAAS,EAAE,QAAQ,SAAQ,OAAO,IAAI,CAAC;AAAA,IACpD,IACC,CAAC;AAAA,OACD;AAAA,EACJ;AAAA;AAGD,SAAS,gBAAe,CACvB,UACA,YACA,SACS;AAAA,EAGT,OAAO,gBAAgB;AAAA,IACtB,2BAA2B,SAAQ;AAAA,IACnC,UAAU,WAAW;AAAA,IACrB,sBAAsB,WAAW;AAAA,IACjC,iBAAiB,WAAW;AAAA,IAC5B,iBAAiB,WAAW;AAAA,IAC5B,SAAS,QAAQ,QAAQ,IAAI,GAAG,UAAU,UAAU,OAAO,YAAY;AAAA,MACtE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,EAAE;AAAA,IACF,0BAA0B,SAAQ,gBAAgB;AAAA,IAClD,oBAAoB,SAAQ,gBAAgB;AAAA,EAC7C,CAAC;AAAA;AAGF,SAAS,qBAAqB,CAC7B,UACA,YACA,YACA,cACA,oBACuB;AAAA,EACvB,IACC,CAAC,SAAQ,QACT,CAAC,SAAQ,oBACT,CAAC,SAAQ,2BACT,CAAC,SAAQ,kBACT,CAAC,SAAQ,aACR;AAAA,IACD,MAAM,IAAI,MAAM,6CAA6C;AAAA,EAC9D;AAAA,EACA,OAAO,yBAAyB;AAAA,IAC/B,WAAW;AAAA,IACX,aAAa,IAAI,KAAK,kBAAkB,EAAE,YAAY;AAAA,IACtD,YAAY,SAAQ;AAAA,IACpB,iBAAiB,SAAQ;AAAA,IACzB,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,UAAU,WAAW;AAAA,IACrB,iBAAiB,WAAW;AAAA,IAC5B,oBAAoB;AAAA,MACnB,mBAAmB,SAAQ,YAAY;AAAA,MACvC,iBAAiB,SAAQ,YAAY;AAAA,MACrC,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,IACrB;AAAA,IACA,mBAAmB,WAAW;AAAA,IAC9B,OAAO,SAAQ,KAAK;AAAA,IACpB,QAAQ,SAAQ,KAAK;AAAA,IACrB,OAAO,SAAQ;AAAA,IACf,mBAAmB,SAAQ;AAAA,IAC3B,kBAAkB,SAAQ;AAAA,IAC1B,iBAAiB,SAAQ;AAAA,IACzB,kBAAkB,SAAQ,iBAAiB;AAAA,IAC3C,wBAAwB,WAAW;AAAA,IACnC,2BAA2B,aAAa;AAAA,IACxC,eAAe,aAAa;AAAA,IAC5B,eAAe,aAAa;AAAA,IAC5B,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,iBAAiB,WAAW;AAAA,EAC7B,CAAC;AAAA;AAGF,eAAe,SAAS,CACvB,cACA,SACmB;AAAA,EACnB,MAAM,cAAc,KAAK,IACxB,GACA,KAAK,IAAI,IAAI,aAAa,OAAO,eAAe,CAAC,CAClD;AAAA,EACA,WAAW,SAAS,SAAS;AAAA,IAC5B,IAAI,WAAW;AAAA,IACf,SAAS,UAAU,EAAG,WAAW,aAAa,WAAW,GAAG;AAAA,MAC3D,IAAI;AAAA,QACH,MAAM,WAAW,MAAM,aAAa,UAAU,OAAO,KAAK;AAAA,QAC1D,WAAW,SAAS,MAAM,SAAS,aAAa,MAAM,KAAK;AAAA,QAC1D,MAAM;AAAA,QACP,WAAW;AAAA;AAAA,MAEZ,IAAI;AAAA,QAAU;AAAA,MACd,IAAI,UAAU;AAAA,QAAa,MAAM,aAAa,OAAO,OAAO,OAAO;AAAA,IACpE;AAAA,IACA,IAAI,CAAC;AAAA,MAAU,OAAO;AAAA,EACvB;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,mBAAmB,CAAC,OAAgB,UAA0B;AAAA,EACtE,IAAI,SAAS,OAAO,UAAU,UAAU;AAAA,IACvC,MAAM,SAAU,MAA+B;AAAA,IAC/C,IAAI,OAAO,WAAW,YAAY,0BAA0B,KAAK,MAAM,GAAG;AAAA,MACzE,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EACA,OAAO;AAAA;AAGR,SAAS,sBAAsB,CAC9B,UACA,YACO;AAAA,EACP,IAAI,CAAC,SAAQ,UAAU,CAAC,SAAQ,2BAA2B;AAAA,IAC1D,MAAM,IAAI,MAAM,0DAA0D;AAAA,EAC3E;AAAA,EACA,MAAM,YAAY,sBAAsB,OAAO,WAAW,SAAS;AAAA,EACnE,MAAM,WAAW,WAAW,SAAS,IAAI,CAAC,YACzC,sBAAsB,OAAO,OAAO,CACrC;AAAA,EACA,MAAM,cAAc,IAAI;AAAA,EACxB,WAAW,WAAW,UAAU;AAAA,IAC/B,MAAM,WAAW,YAAY,IAAI,QAAQ,UAAU;AAAA,IACnD,IAAI,YAAY,gBAAgB,QAAQ,MAAM,gBAAgB,OAAO,GAAG;AAAA,MACvE,MAAM,IAAI,MAAM,iDAAiD;AAAA,IAClE;AAAA,IACA,YAAY,IAAI,QAAQ,YAAY,OAAO;AAAA,EAC5C;AAAA,EACA,WAAW,UAAU,UAAU,SAAS;AAAA,IACvC,IACC,OAAO,mBAAmB,iCACzB,CAAC,OAAO,iBACR,CAAC,YAAY,IAAI,OAAO,cAAc,UAAU,IAChD;AAAA,MACD,MAAM,IAAI,MAAM,qDAAqD;AAAA,IACtE;AAAA,EACD;AAAA,EACA,IACC,WAAW,eAAe,gBAAgB,SAAQ,OAAO,eACzD,WAAW,eAAe,YAAY,SAAQ,OAAO,SACpD;AAAA,IACD,MAAM,IAAI,MAAM,0CAA0C;AAAA,EAC3D;AAAA;AAGD,SAAS,wBAAwB,CAChC,UACA,YACA,OACO;AAAA,EACP,IAAI,CAAC,SAAQ,UAAU,CAAC,SAAQ,2BAA2B;AAAA,IAC1D,MAAM,IAAI,MAAM,0DAA0D;AAAA,EAC3E;AAAA,EACA,IACC,WAAW,kBAAkB,gBAAgB,SAAQ,OAAO,eAC5D,WAAW,kBAAkB,YAAY,SAAQ,OAAO,SACvD;AAAA,IACD,MAAM,IAAI,MAAM,6CAA6C;AAAA,EAC9D;AAAA,EACA,MAAM,gBAAgB,WAAW;AAAA,EACjC,MAAM,cAAc,KAAK,MAAM,cAAc,SAAS;AAAA,EACtD,IACC,cAAc,oBAAoB,SAAQ,6BAC1C,cAAc,UAAU,gBACxB,cAAc,gBAAgB,SAAQ,OAAO,eAC7C,cAAc,YAAY,SAAQ,OAAO,WACzC,cAAc,wBAAwB,QACtC,CAAC,OAAO,cAAc,WAAW,KACjC,IAAI,KAAK,WAAW,EAAE,YAAY,MAAM,cAAc,aACtD,eAAe,OACd;AAAA,IACD,MAAM,IAAI,MAAM,+CAA+C;AAAA,EAChE;AAAA;AAGD,SAAS,2BAA2B,CACnC,UACU;AAAA,EACV,MAAM,SAAS,CAAC,iBAAiB,sBAAsB,EAAE,KACxD,CAAC,cACA,SAAQ,aAAa,gBAAgB,cAAc,UAAU,aAC7D,SAAQ,YAAY,gBAAgB,kBACnC,UAAU,aACb;AAAA,EACA,IAAI,CAAC;AAAA,IAAQ,OAAO;AAAA,EACpB,OACC,SAAQ,QAAQ,OAAO,eAAe,aACtC,SAAQ,OAAO,YAAY,SAAQ,OAAO,cACzC,OAAO,eAAe,iBACvB,SAAQ,uBAAuB,SAC9B,OAAO,eAAe;AAAA;AAIzB,SAAS,yBAAyB,CACjC,YACmC;AAAA,EACnC,MAAM,YAAY,WAAW,UAAU,YAAY;AAAA,EACnD,OAAO,YACJ,WAAW,SAAS,KAAK,CAAC,YAAY,QAAQ,eAAe,SAAS,IACtE;AAAA;AAGJ,eAAsB,2BAA2B,CAChD,OACA,cACiC;AAAA,EACjC,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,YAAY;AAAA,IAClB,WAAU,2BAA2B;AAAA,MACpC,SAAS,UAAU;AAAA,MACnB,eAAe,UAAU;AAAA,IAC1B,CAAC;AAAA,IACA,MAAM;AAAA,IACP,OAAO,QAAQ,WAAW,mBAAmB,iBAAiB;AAAA;AAAA,EAG/D,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,oBAAoB,MAAM,aAAa,QAAQ,iBAAiB,QAAO;AAAA,IACvE,uBAAuB,UAAS,iBAAiB;AAAA,IACjD,MAAM,qBAAqB,MAAM,aAAa,UAAU,UAAU;AAAA,MACjE,iBAAiB,SAAQ;AAAA,MACzB,QAAQ,SAAQ;AAAA,IACjB,CAAC;AAAA,IACD,yBACC,UACA,oBACA,aAAa,MAAM,MAAM,CAC1B;AAAA,IACC,MAAM;AAAA,IACP,OAAO,QACN,UACA,4BACA,0BACD;AAAA;AAAA,EAED,IAAI,kBAAkB,UAAU,mBAAmB,YAAY;AAAA,IAC9D,MAAM,WAAU,0BAA0B,iBAAiB;AAAA,IAC3D,OAAO,QAAQ,UAAS,mBAAmB,+BAA+B;AAAA,MACzE,WAAW,kBAAkB;AAAA,SACzB,WAAU,EAAE,kBAAQ,IAAI,CAAC;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA,EAEA,IAAI,4BAA4B,QAAO,GAAG;AAAA,IACzC,OAAO,QACN,UACA,0BACA,0BACA,EAAE,eAAe,iCAAiC,CACnD;AAAA,EACD;AAAA,EACA,IACC,SAAQ,iBAAiB,gBACxB,SAAQ,aAAa,kBAAkB,cACvC,kBAAkB,aAClB,SAAQ,YAAY,kBAAkB,kBACrC,kBAAkB,gBACnB;AAAA,IACD,OAAO,QAAQ,UAAS,0BAA0B,qBAAqB;AAAA,MACtE,eAAe;AAAA,IAChB,CAAC;AAAA,EACF;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,aAAa,aAAa,UAAU,cAAc,QAAO;AAAA,IACxD,MAAM;AAAA,IACP,OAAO,QACN,UACA,0BACA,yBACD;AAAA;AAAA,EAED,IAAI,CAAC,YAAY;AAAA,IAChB,OAAO,QAAQ,UAAS,0BAA0B,mBAAmB;AAAA,EACtE;AAAA,EACA,IACC,CAAC,SAAQ,eAAe,uBAAuB,SAC9C,WAAW,cACZ,GACC;AAAA,IACD,OAAO,QACN,UACA,0BACA,0BACD;AAAA,EACD;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,aAAa,MAAM,aAAa,YAAY,QAAQ,WAAW,QAAQ;AAAA,IACtE,MAAM;AAAA,IACP,OAAO,QACN,UACA,uBACA,8BACD;AAAA;AAAA,EAED,IAAI,eAAe,aAAa,eAAe,MAAM;AAAA,IACpD,OAAO,QACN,UACA,uBACA,8BACD;AAAA,EACD;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,MAAM,qBAAqB,2BAA2B,QAAO;AAAA,IAC7D,UAAU,MAAM,aAAa,UAAU,QACtC,oBACA,YACA,UACD;AAAA,IACA,MAAM,WAAW,iBAAgB,UAAS,YAAY,OAAO;AAAA,IAC7D,aAAa,MAAM,aAAa,UAAU,UACzC,oBACA,YACA,SACA,QACD;AAAA,IACA,IAAI,WAAW,oBAAoB,UAAU;AAAA,MAC5C,OAAO,QAAQ,UAAS,uBAAuB,uBAAuB;AAAA,QACrE,eAAe;AAAA,MAChB,CAAC;AAAA,IACF;AAAA,IACC,OAAO,OAAO;AAAA,IACf,MAAM,SAAS,oBAAoB,OAAO,0BAA0B;AAAA,IACpE,OAAO,QAAQ,UAAS,uBAAuB,uBAAuB;AAAA,MACrE,eAAe,OAAO,WAAW,SAAS,IACvC,4BACA;AAAA,IACJ,CAAC;AAAA;AAAA,EAGF,IAAI;AAAA,IACH,MAAM,mBAAmB,sBAAsB;AAAA,MAC9C,iBAAiB,WAAW;AAAA,MAC5B,cAAc;AAAA,MACd,MAAM,WAAW;AAAA,IAClB,CAAC;AAAA,IACD,IAAI,CAAE,MAAM,UAAU,cAAc,gBAAgB,GAAI;AAAA,MACvD,OAAO,QACN,UACA,yBACA,0BACD;AAAA,IACD;AAAA,IACC,MAAM;AAAA,IACP,OAAO,QACN,UACA,yBACA,6BACD;AAAA;AAAA,EAGD,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,eAAe,MAAM,aAAa,QAAQ,gBACzC,UACA,YACA,WAAW,iBACX,iBACD;AAAA,IACC,MAAM;AAAA,IACP,OAAO,QACN,UACA,iCACA,wBACD;AAAA;AAAA,EAED,IACC,CAAC,aAAa,UACd,aAAa,oBAAoB,WAAW,mBAC5C,aAAa,4BACZ,WAAW,2BACZ,CAAC,aAAa,gBACd,CAAC,aAAa,kBACb;AAAA,IACD,OAAO,QACN,UACA,iCACA,aAAa,cAAc,8BAC5B;AAAA,EACD;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,UAAU,sBACT,UACA,YACA,YACA,cACA,aAAa,MAAM,MAAM,CAC1B;AAAA,IACA,OAAO,SAAS,sBAAsB;AAAA,MACrC,iBAAiB,WAAW;AAAA,MAC5B,cAAc;AAAA,MACd,MAAM,CAAC,6BAA6B,OAAO,CAAC;AAAA,IAC7C,CAAC;AAAA,IACD,IAAI,CAAC,SAAS,CAAE,MAAM,UAAU,cAAc,CAAC,KAAK,CAAC,GAAI;AAAA,MACxD,OAAO,QACN,UACA,yBACA,yBACD;AAAA,IACD;AAAA,IACA,MAAM,gBAAgB,2BAA2B;AAAA,MAChD,mBAAmB,QAAQ;AAAA,MAC3B,OAAO;AAAA,MACP,YAAY,QAAQ;AAAA,MACpB,2BAA2B,QAAQ;AAAA,MACnC,QAAQ,QAAQ;AAAA,MAChB,UAAU,QAAQ;AAAA,MAClB,aAAa;AAAA,IACd,CAAC;AAAA,IACD,OAAO,sBAAsB,sBAAsB;AAAA,MAClD,iBAAiB,WAAW;AAAA,MAC5B,cAAc;AAAA,MACd,MAAM,CAAC,+BAA+B,aAAa,CAAC;AAAA,IACrD,CAAC;AAAA,IACD,IACC,CAAC,sBACD,CAAE,MAAM,UAAU,cAAc,CAAC,kBAAkB,CAAC,GACnD;AAAA,MACD,OAAO,QACN,UACA,yBACA,+BACA,EAAE,QAAQ,CACX;AAAA,IACD;AAAA,IACC,MAAM;AAAA,IACP,OAAO,QAAQ,UAAS,yBAAyB,yBAAyB;AAAA;AAAA,EAG3E,IAAI;AAAA,EACJ,IAAI;AAAA,IACH,kBAAkB,MAAM,aAAa,QAAQ,iBAAiB,QAAO;AAAA,IACrE,uBAAuB,UAAS,eAAe;AAAA,IAC9C,OAAO,OAAO;AAAA,IACf,OAAO,QACN,UACA,iCACA,mCACA;AAAA,MACC;AAAA,MACA,eAAe,oBACd,OACA,qCACD;AAAA,IACD,CACD;AAAA;AAAA,EAED,IAAI,gBAAgB,UAAU,mBAAmB,YAAY;AAAA,IAC5D,OAAO,QACN,UACA,iCACA,iCACA,EAAE,SAAS,WAAW,gBAAgB,UAAU,CACjD;AAAA,EACD;AAAA,EACA,IACC,gBAAgB,UAAU,QAAQ,KACjC,CAAC,WACA,OAAO,sBAAsB,QAAQ,qBACrC,OAAO,mBAAmB,gCAC1B,OAAO,eAAe,eAAe,QAAQ,UAC/C,MAAM,OACL;AAAA,IACD,OAAO,QACN,UACA,iCACA,iCACA,EAAE,SAAS,WAAW,gBAAgB,UAAU,CACjD;AAAA,EACD;AAAA,EACA,IAAI;AAAA,IACH,IAAI,CAAC,SAAQ;AAAA,MAAM,MAAM,IAAI,MAAM,iCAAiC;AAAA,IACpE,OAAO,kBAAkB,sBAAsB;AAAA,MAC9C,iBAAiB,QAAQ;AAAA,MACzB,cAAc;AAAA,MACd,MAAM;AAAA,QACL,6BAA6B,SAAQ,MAAM,gBAAgB,SAAS;AAAA,MACrE;AAAA,IACD,CAAC;AAAA,IACD,IAAI,CAAC,kBAAkB,CAAE,MAAM,UAAU,cAAc,CAAC,cAAc,CAAC,GAAI;AAAA,MAC1E,OAAO,QACN,UACA,yBACA,gCACA,EAAE,SAAS,WAAW,gBAAgB,UAAU,CACjD;AAAA,IACD;AAAA,IACC,MAAM;AAAA,IACP,OAAO,QACN,UACA,yBACA,gCACA,EAAE,SAAS,WAAW,gBAAgB,UAAU,CACjD;AAAA;AAAA,EAED,OAAO,QAAQ,UAAS,YAAY,uBAAuB;AAAA,IAC1D;AAAA,IACA,WAAW,gBAAgB;AAAA,EAC5B,CAAC;AAAA;;ACzrBK,MAAM,wCAAwC,MAAM;AAAA,EACjD;AAAA,EAET,WAAW,CAAC,QAAgB,QAAiB;AAAA,IAC5C,MAAM,WAAW,YAAY,SAAS,GAAG,UAAU,QAAQ;AAAA,IAC3D,KAAK,OAAO;AAAA,IACZ,KAAK,SAAS;AAAA;AAEhB;AAEA,SAAS,oBAAoB,CAC5B,OACgD;AAAA,EAChD,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK;AAAA,IAAG;AAAA,EACjE,MAAM,SAAS;AAAA,EACf,IACC,OAAO,OAAO,QACd,OAAO,OAAO,aAAa,YAC3B,CAAC,OAAO,cAAc,OAAO,QAAQ,KACrC,OAAO,WAAW,GACjB;AAAA,IACD;AAAA,EACD;AAAA,EACA,OAAO,EAAE,IAAI,MAAM,UAAU,OAAO,SAAS;AAAA;AAGvC,SAAS,4BAA4B,CAC3C,SACyB;AAAA,EACzB,MAAM,MAAM,QAAQ,IAAI,KAAK;AAAA,EAC7B,IAAI,CAAC;AAAA,IAAK,MAAM,IAAI,MAAM,gCAAgC;AAAA,EAC1D,MAAM,WAAU,QAAQ,SAAS,WAAW;AAAA,EAC5C,MAAM,uBAA+C,CAAC;AAAA,EACtD,IAAI,QAAQ,WAAW,KAAK,GAAG;AAAA,IAC9B,qBAAqB,gBAAgB,UAAU,QAAQ,UAAU,KAAK;AAAA,EACvE;AAAA,EAEA,OAAO;AAAA,SACA,UAAS,CAAC,OAAO;AAAA,MACtB,MAAM,WAAW,IAAI,IAAI,GAAG;AAAA,MAC5B,SAAS,WAAW;AAAA,MACpB,SAAS,SAAS;AAAA,MAClB,SAAS,OAAO;AAAA,MAChB,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,WAAW,MAAM,SAAQ,UAAU;AAAA,UAClC,SAAS;AAAA,eACL;AAAA,YACH,8BAA8B,MAAM;AAAA,YACpC,yBAAyB,MAAM,OAAO;AAAA,YACtC,qBAAqB,MAAM,OAAO;AAAA,UACnC;AAAA,QACD,CAAC;AAAA,QACA,MAAM;AAAA,QACP,MAAM,IAAI,gCACT,yCACD;AAAA;AAAA,MAED,IAAI,CAAC,SAAS,IAAI;AAAA,QACjB,MAAM,IAAI,gCACT,0CACA,SAAS,MACV;AAAA,MACD;AAAA,MACA,MAAM,QAAQ,MAAM,SAAS,KAAK,EAAE,MAAM,MAAG;AAAA,QAAG;AAAA,OAAS;AAAA,MACzD,IAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;AAAA,QAChE,MAAM,IAAI,gCACT,qCACD;AAAA,MACD;AAAA,MACA,MAAM,SAAS;AAAA,MACf,MAAM,WAAW,OAAO;AAAA,MAGxB,MAAM,gBAAgB,OAAO;AAAA,MAG7B,MAAM,cACL,OAAO,eAAe,eAAe,WAClC,KAAK,MAAM,cAAc,UAAU,IACnC,OAAO;AAAA,MACX,IACC,OAAO,OAAO,QACd,CAAC,YACD,SAAS,gBAAgB,MAAM,OAAO,eACtC,SAAS,YAAY,MAAM,OAAO,WAClC,CAAC,iBACD,cAAc,qBAAqB,MAAM,mBACzC,cAAc,UAAU,gBACxB,cAAc,gBAAgB,MAAM,OAAO,eAC3C,cAAc,YAAY,MAAM,OAAO,WACvC,OAAO,cAAc,eAAe,YACpC,CAAC,OAAO,cAAc,WAAW,KACjC,IAAI,KAAK,WAAW,EAAE,YAAY,MAAM,cAAc,cACtD,cAAc,yBAAyB,MACtC;AAAA,QACD,MAAM,IAAI,gCACT,qCACD;AAAA,MACD;AAAA,MACA,OAAO;AAAA,QACN,mBAAmB;AAAA,UAClB,aAAa,SAAS;AAAA,UACtB,SAAS,SAAS;AAAA,QACnB;AAAA,QACA,eAAe;AAAA,UACd,iBAAiB,cAAc;AAAA,UAC/B,OAAO;AAAA,UACP,aAAa,cAAc;AAAA,UAC3B,SAAS,cAAc;AAAA,UACvB,WAAW,cAAc;AAAA,UACzB,qBAAqB;AAAA,QACtB;AAAA,MACD;AAAA;AAAA,SAEK,OAAM,CAAC,OAAO;AAAA,MACnB,IAAI;AAAA,MACJ,IAAI;AAAA,QACH,WAAW,MAAM,SAAQ,KAAK;AAAA,UAC7B,QAAQ;AAAA,UACR,SAAS;AAAA,YACR,gBAAgB;AAAA,eACb;AAAA,UACJ;AAAA,UACA,MAAM,KAAK,UAAU,KAAK;AAAA,QAC3B,CAAC;AAAA,QACA,MAAM;AAAA,QACP,MAAM,IAAI,gCACT,+BACD;AAAA;AAAA,MAED,IAAI,CAAC,SAAS,IAAI;AAAA,QACjB,MAAM,IAAI,gCACT,gCACA,SAAS,MACV;AAAA,MACD;AAAA,MACA,MAAM,YAAY,qBACjB,MAAM,SAAS,KAAK,EAAE,MAAM,MAAG;AAAA,QAAG;AAAA,OAAS,CAC5C;AAAA,MACA,IAAI,CAAC,WAAW;AAAA,QACf,MAAM,IAAI,gCACT,oCACD;AAAA,MACD;AAAA,MACA,OAAO;AAAA;AAAA,EAET;AAAA;",
192
+ "debugId": "352683EF086D61EB64756E2164756E21",
193
193
  "names": []
194
194
  }