@quantabit/qbit-chain-sdk 1.2.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/constants.js","../src/errors.js","../src/connection.js","../src/keypair.js","../src/utils.js","../src/transaction.js","../src/token.js","../src/anchor.js","../src/account.js","../src/stake.js","../src/rpc.js","../src/subscription.js","../src/token-registry.js","../src/tx-parser.js","../src/program.js","../src/services/chainApi.js","../src/hooks/useChain.js","../src/i18n/index.js","../src/components/ChainStatusCard.jsx","../src/components/TransactionReceiptModal.jsx"],"sourcesContent":["/**\n * QBit Chain 常量定义\n * \n * 链核心参数、系统程序地址、网络端点、BIP44 配置等\n */\n\n/**\n * 1 QBT = 10^9 lamports(与 Solana 一致)\n */\nexport const LAMPORTS_PER_QBT = 1_000_000_000;\n\n/**\n * QBit BIP44 Coin Type(SLIP-0044 注册)\n * 用于密钥派生路径: m/44'/766'/accountIndex'/0'\n * @see https://github.com/satoshilabs/slips/blob/master/slip-0044.md\n */\nexport const QBIT_COIN_TYPE = 766;\n\n/**\n * 各网络的 Genesis Hash(创世区块哈希)\n * 用于验证连接到正确的链网络,防止跨链误操作\n */\nexport const GENESIS_HASH = {\n // 2026-07 re-genesis 后的真实主网 genesis hash(已对 api.mainnet 实测)\n mainnet: 'ABQCTh13HE4NvKGCjppZn5KajNpm35yqQMUXosVacAyR',\n devnet: 'BmBSkzptxNVwmC98ZviLNKPCKHYmvTZpxDJkptMr9V6Y',\n};\n\n/**\n * QBit Chain 链时序参数\n */\nexport const CHAIN_PARAMS = {\n // 目标出块时间(毫秒)\n SLOT_DURATION_MS: 400,\n // 每个 Epoch 的 Slot 数\n SLOTS_PER_EPOCH: 262144,\n // 原生代币符号\n NATIVE_TOKEN_SYMBOL: 'QBT',\n // 原生代币精度\n NATIVE_TOKEN_DECIMALS: 9,\n};\n\n/**\n * QBit Chain 系统程序地址\n * 兼容 Solana 系统程序\n */\nexport const CHAIN_PROGRAMS = {\n // 系统程序 — 负责创建账户、转账原生代币\n SYSTEM_PROGRAM: '11111111111111111111111111111111',\n\n // Token 程序 — SPL Token 标准\n TOKEN_PROGRAM: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',\n\n // Associated Token Account 程序\n ASSOCIATED_TOKEN_PROGRAM: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',\n\n // Memo 程序 — 交易附加备注\n MEMO_PROGRAM: 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr',\n\n // Stake 程序 — 原生质押\n STAKE_PROGRAM: 'Stake11111111111111111111111111111111111111',\n\n // Stake Config 程序\n STAKE_CONFIG: 'StakeConfig11111111111111111111111111111111',\n\n // Vote 程序 — 验证者投票\n VOTE_PROGRAM: 'Vote111111111111111111111111111111111111111',\n\n // QBit DID 程序 — 链上身份管理(自定义)\n DID_PROGRAM: 'QBitDiD1111111111111111111111111111111111111',\n};\n\n/**\n * 官方网络端点\n */\nexport const CHAIN_ENDPOINTS = {\n mainnet: {\n rpc: 'https://api.mainnet.qbitchain.io/',\n ws: 'wss://api.mainnet.qbitchain.io/',\n genesisHash: GENESIS_HASH.mainnet,\n },\n testnet: {\n rpc: 'https://api.testnet.qbitchain.io/',\n ws: 'wss://api.testnet.qbitchain.io/',\n genesisHash: null, // 待上线后补充\n },\n devnet: {\n rpc: 'https://api.devnet.qbitchain.io/',\n ws: 'wss://api.devnet.qbitchain.io/',\n genesisHash: GENESIS_HASH.devnet,\n },\n};\n\n/**\n * 默认交易确认选项\n */\nexport const DEFAULT_CONFIRM_OPTIONS = {\n commitment: 'confirmed',\n preflightCommitment: 'confirmed',\n skipPreflight: false,\n};\n\n/**\n * 网络超时配置(毫秒)\n */\nexport const TIMEOUT = {\n RPC_REQUEST: 30_000, // RPC 请求超时\n SEND_TRANSACTION: 60_000, // 发送交易超时\n CONFIRM_TRANSACTION: 60_000, // 确认交易超时\n HEALTH_CHECK: 10_000, // 健康检查超时\n};\n\n/**\n * 重试配置\n */\nexport const RETRY = {\n MAX_RETRIES: 3, // 最大重试次数\n BASE_DELAY_MS: 1_000, // 基础重试延迟(指数退避)\n MAX_DELAY_MS: 10_000, // 最大重试延迟\n};\n","/**\n * QBit Chain SDK 错误体系\n * \n * 提供结构化错误分类,便于调用方精确捕获和处理不同类型的链上异常。\n * \n * @example\n * try {\n * await conn.getBalance(address);\n * } catch (err) {\n * if (err instanceof QBitRpcError) {\n * console.log('RPC 错误:', err.rpcCode, err.message);\n * } else if (err instanceof QBitNetworkError) {\n * console.log('网络异常,将自动重试');\n * }\n * }\n */\n\n/**\n * QBit SDK 基础错误\n * 所有 SDK 错误的父类\n */\nexport class QBitError extends Error {\n /**\n * @param {string} message - 错误消息\n * @param {string} code - 错误码(如 'NETWORK_MISMATCH', 'INSUFFICIENT_FUNDS')\n * @param {Object} details - 附加上下文\n */\n constructor(message, code = 'QBIT_ERROR', details = {}) {\n super(message);\n this.name = 'QBitError';\n this.code = code;\n this.details = details;\n this.timestamp = Date.now();\n }\n\n toJSON() {\n return {\n name: this.name,\n code: this.code,\n message: this.message,\n details: this.details,\n timestamp: this.timestamp,\n };\n }\n}\n\n/**\n * RPC 通信错误\n * 与 QBit Chain RPC 节点交互时产生的错误\n */\nexport class QBitRpcError extends QBitError {\n /**\n * @param {string} message - 错误消息\n * @param {number} rpcCode - JSON-RPC 错误码\n * @param {string} method - 出错的 RPC 方法名\n */\n constructor(message, rpcCode = -1, method = '') {\n super(message, 'RPC_ERROR', { rpcCode, method });\n this.name = 'QBitRpcError';\n this.rpcCode = rpcCode;\n this.method = method;\n }\n}\n\n/**\n * 网络错误\n * 连接超时、DNS 解析失败、连接被拒等网络层问题\n */\nexport class QBitNetworkError extends QBitError {\n /**\n * @param {string} message - 错误消息\n * @param {string} endpoint - 出错的端点 URL\n * @param {Error} cause - 原始错误\n */\n constructor(message, endpoint = '', cause = null) {\n super(message, 'NETWORK_ERROR', { endpoint, cause: cause?.message });\n this.name = 'QBitNetworkError';\n this.endpoint = endpoint;\n this.cause = cause;\n }\n}\n\n/**\n * 网络身份不匹配\n * Genesis Hash 验证失败,连接到了错误的网络\n */\nexport class QBitNetworkMismatchError extends QBitError {\n /**\n * @param {string} expected - 期望的 Genesis Hash\n * @param {string} actual - 实际的 Genesis Hash\n * @param {string} network - 期望的网络名\n */\n constructor(expected, actual, network) {\n super(\n `网络身份验证失败:期望 ${network} (${expected?.slice(0, 8)}...),实际 ${actual?.slice(0, 8)}...`,\n 'NETWORK_MISMATCH',\n { expected, actual, network }\n );\n this.name = 'QBitNetworkMismatchError';\n }\n}\n\n/**\n * 交易错误\n * 交易构建、签名或发送过程中的错误\n */\nexport class QBitTransactionError extends QBitError {\n /**\n * @param {string} message - 错误消息\n * @param {string} signature - 相关的交易签名(可能为空)\n * @param {Array} logs - 交易日志\n */\n constructor(message, signature = '', logs = []) {\n super(message, 'TRANSACTION_ERROR', { signature, logs });\n this.name = 'QBitTransactionError';\n this.signature = signature;\n this.logs = logs;\n }\n}\n\n/**\n * 余额不足\n */\nexport class QBitInsufficientFundsError extends QBitTransactionError {\n /**\n * @param {number} required - 需要的金额(lamports)\n * @param {number} available - 可用余额(lamports)\n */\n constructor(required, available) {\n super(\n `余额不足:需要 ${required} lamports,可用 ${available} lamports`,\n );\n this.name = 'QBitInsufficientFundsError';\n this.code = 'INSUFFICIENT_FUNDS';\n this.details = { required, available };\n }\n}\n\n/**\n * 账户不存在\n */\nexport class QBitAccountNotFoundError extends QBitError {\n constructor(address) {\n super(`账户不存在: ${address}`, 'ACCOUNT_NOT_FOUND', { address });\n this.name = 'QBitAccountNotFoundError';\n }\n}\n\n/**\n * Token 账户错误\n * ATA 不存在、Mint 无效等 SPL Token 相关错误\n */\nexport class QBitTokenError extends QBitError {\n constructor(message, mintAddress = '', details = {}) {\n super(message, 'TOKEN_ERROR', { mintAddress, ...details });\n this.name = 'QBitTokenError';\n }\n}\n\n/**\n * 密钥对错误\n * 助记词无效、密钥派生失败等\n */\nexport class QBitKeypairError extends QBitError {\n constructor(message) {\n super(message, 'KEYPAIR_ERROR');\n this.name = 'QBitKeypairError';\n }\n}\n\n// ============ 错误码常量 ============\n\nexport const ERROR_CODES = {\n // 网络\n NETWORK_ERROR: 'NETWORK_ERROR',\n NETWORK_MISMATCH: 'NETWORK_MISMATCH',\n RPC_ERROR: 'RPC_ERROR',\n TIMEOUT: 'TIMEOUT',\n\n // 交易\n TRANSACTION_ERROR: 'TRANSACTION_ERROR',\n INSUFFICIENT_FUNDS: 'INSUFFICIENT_FUNDS',\n SIGNATURE_FAILED: 'SIGNATURE_FAILED',\n BLOCKHASH_EXPIRED: 'BLOCKHASH_EXPIRED',\n\n // 账户\n ACCOUNT_NOT_FOUND: 'ACCOUNT_NOT_FOUND',\n TOKEN_ERROR: 'TOKEN_ERROR',\n ATA_NOT_FOUND: 'ATA_NOT_FOUND',\n\n // 密钥\n KEYPAIR_ERROR: 'KEYPAIR_ERROR',\n INVALID_MNEMONIC: 'INVALID_MNEMONIC',\n INVALID_PRIVATE_KEY: 'INVALID_PRIVATE_KEY',\n};\n","/**\n * QBit Chain 连接管理\n * \n * 封装 @solana/web3.js Connection,自动同步 sdk-config 链配置。\n * 支持自动重连、多网络切换、连接状态追踪、Genesis Hash 网络验证。\n */\n\nimport { Connection } from '@solana/web3.js';\nimport { CHAIN_ENDPOINTS, CHAIN_PROGRAMS, TIMEOUT, RETRY, GENESIS_HASH, DEFAULT_CONFIRM_OPTIONS } from './constants.js';\nimport { QBitRpcError, QBitNetworkError, QBitNetworkMismatchError } from './errors.js';\n\n// 延迟加载 sdk-config(可选依赖,兼容 CJS)\nlet sdkConfig = null;\nlet sdkConfigLoaded = false;\n\nasync function getSdkConfig() {\n if (sdkConfigLoaded) return sdkConfig;\n sdkConfigLoaded = true;\n try {\n sdkConfig = await import('@quantabit/sdk-config');\n } catch {\n // sdk-config 未安装,需手动传入端点\n }\n return sdkConfig;\n}\n\n/**\n * 指数退避延迟计算\n * @param {number} attempt - 当前重试次数(0-based)\n * @returns {number} 延迟毫秒数\n */\nfunction getRetryDelay(attempt) {\n const delay = Math.min(\n RETRY.BASE_DELAY_MS * Math.pow(2, attempt),\n RETRY.MAX_DELAY_MS\n );\n // 添加 ±25% 抖动,避免重试风暴\n const jitter = delay * 0.25 * (Math.random() * 2 - 1);\n return Math.round(delay + jitter);\n}\n\n/**\n * 带重试的异步操作执行\n * @param {Function} fn - 异步操作\n * @param {number} maxRetries - 最大重试次数\n * @param {string} operationName - 操作名称(用于日志)\n * @returns {Promise<*>} 操作结果\n */\nasync function withRetry(fn, maxRetries = RETRY.MAX_RETRIES, operationName = 'RPC') {\n let lastError;\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n try {\n return await fn();\n } catch (error) {\n lastError = error;\n if (attempt < maxRetries) {\n const delay = getRetryDelay(attempt);\n console.warn(`[QBitConnection] ${operationName} 失败 (${attempt + 1}/${maxRetries + 1}),${delay}ms 后重试: ${error.message}`);\n await new Promise(r => setTimeout(r, delay));\n }\n }\n }\n // 如果原始错误已经是自定义错误类则直接抛,否则包装为 QBitRpcError\n if (lastError && lastError.name?.startsWith('QBit')) {\n throw lastError;\n }\n throw new QBitRpcError(\n `${operationName} 在 ${maxRetries + 1} 次尝试后失败: ${lastError?.message}`,\n -1,\n operationName,\n );\n}\n\n/**\n * QBit Chain 连接管理器\n * \n * @example\n * // 自动从 sdk-config 读取配置\n * const conn = new QBitConnection();\n * \n * // 手动指定端点\n * const conn = new QBitConnection({ endpoint: 'https://api.mainnet.qbitchain.io/' });\n * \n * // 切换网络\n * conn.switchNetwork('devnet');\n * \n * // 验证网络连接\n * const isValid = await conn.validateNetwork();\n */\nexport class QBitConnection {\n /**\n * 构造函数\n * \n * @param {Object} options - 配置选项\n * @param {string} options.endpoint - RPC 端点(不传则从 sdk-config 读取)\n * @param {string} options.commitment - 确认级别 ('processed' | 'confirmed' | 'finalized')\n * @param {string} options.wsEndpoint - WebSocket 端点(可选,默认自动推导)\n * @param {number} options.timeoutMs - 请求超时毫秒数\n * @param {string} options.network - 网络名称 ('mainnet' | 'devnet' | 'testnet')\n * @param {boolean} options.autoValidate - 是否自动验证 Genesis Hash(默认 false)\n * @param {Function} options.onConnect - 连接成功回调\n * @param {Function} options.onDisconnect - 连接断开回调\n * @param {Function} options.onError - 错误回调\n * @param {Function} options.onNetworkMismatch - 网络不匹配回调\n */\n constructor(options = {}) {\n this._customEndpoint = options.endpoint;\n this._commitment = options.commitment || 'confirmed';\n this._wsEndpoint = options.wsEndpoint;\n this._timeoutMs = options.timeoutMs || TIMEOUT.RPC_REQUEST;\n this._networkName = options.network || 'mainnet';\n this._hasCustomNetwork = !!options.network;\n this._autoValidate = options.autoValidate || false;\n\n // 事件回调\n this._onConnect = options.onConnect || null;\n this._onDisconnect = options.onDisconnect || null;\n this._onError = options.onError || null;\n this._onNetworkMismatch = options.onNetworkMismatch || null;\n\n // 连接状态\n this._isConnected = false;\n this._lastHealthCheck = null;\n this._sdkConfigInitialized = false;\n\n // 兜底默认值(构造时不阻塞,sdk-config 在首次 RPC 调用时延迟加载)\n const endpoint = this._customEndpoint || CHAIN_ENDPOINTS[this._networkName]?.rpc || CHAIN_ENDPOINTS.mainnet.rpc;\n\n // 自动推导 WebSocket 端点\n if (!this._wsEndpoint) {\n this._wsEndpoint = this._deriveWsEndpoint(endpoint);\n }\n\n // 创建 Solana Connection 实例\n this._connection = new Connection(endpoint, {\n commitment: this._commitment,\n wsEndpoint: this._wsEndpoint || undefined,\n confirmTransactionInitialTimeout: this._timeoutMs,\n });\n\n this._endpoint = endpoint;\n\n // 异步自动验证(不阻塞构造函数)\n if (this._autoValidate) {\n this.validateNetwork().catch(err => {\n console.error('[QBitConnection] 自动网络验证失败:', err.message);\n this._onNetworkMismatch?.({ network: this._networkName, error: err });\n });\n }\n }\n\n /**\n * 延迟初始化 sdk-config(首次 RPC 请求时调用,兼容 CJS)\n * @private\n */\n async _ensureSdkConfig() {\n if (this._sdkConfigInitialized || this._customEndpoint) return;\n this._sdkConfigInitialized = true;\n\n const cfg = await getSdkConfig();\n if (!cfg) return;\n\n const chainConfig = cfg.getChainConfig?.() || cfg.getConfig?.() || {};\n \n // 如果构造时指定了特定网络,且全局配置的网络与当前网络不同,则不要在初始化时自动应用全局配置\n const configNetwork = chainConfig.network || chainConfig.chainNetwork;\n if (this._hasCustomNetwork && configNetwork && configNetwork !== this._networkName) {\n return;\n }\n\n this._applyChainConfig(chainConfig);\n\n // 订阅 sdk-config 变更(使用 WeakRef 避免内存泄漏)\n if (cfg.subscribeConfig) {\n if (typeof WeakRef !== 'undefined') {\n const weakSelf = new WeakRef(this);\n let unsubscribe;\n const listener = (newConfig) => {\n const self = weakSelf.deref();\n if (self) {\n const nextNetwork = newConfig.network || newConfig.chainNetwork;\n if (self._hasCustomNetwork && nextNetwork && nextNetwork !== self._networkName) {\n return;\n }\n self._applyChainConfig(newConfig);\n } else if (unsubscribe) {\n unsubscribe();\n }\n };\n unsubscribe = cfg.subscribeConfig(listener);\n this._unsubscribe = unsubscribe;\n } else {\n this._unsubscribe = cfg.subscribeConfig((newConfig) => {\n const nextNetwork = newConfig.network || newConfig.chainNetwork;\n if (this._hasCustomNetwork && nextNetwork && nextNetwork !== this._networkName) {\n return;\n }\n this._applyChainConfig(newConfig);\n });\n }\n }\n }\n\n async _prepareConnection() {\n await this._ensureSdkConfig();\n return this._connection;\n }\n\n async getRawConnection() {\n return this._prepareConnection();\n }\n\n _applyChainConfig(chainConfig = {}) {\n const endpoint = chainConfig.endpoint || chainConfig.chainEndpoint || chainConfig.rpcEndpoint;\n const wsEndpoint = chainConfig.wsEndpoint || chainConfig.chainWsEndpoint;\n const commitment = chainConfig.commitment || chainConfig.chainCommitment || this._commitment;\n const timeoutMs = chainConfig.timeoutMs || chainConfig.chainTimeoutMs || this._timeoutMs;\n const network = chainConfig.network || chainConfig.chainNetwork || this._networkName;\n\n if (!endpoint) return;\n\n const nextWsEndpoint = wsEndpoint || this._deriveWsEndpoint(endpoint);\n const shouldReconnect =\n endpoint !== this._endpoint ||\n commitment !== this._commitment ||\n nextWsEndpoint !== this._wsEndpoint ||\n timeoutMs !== this._timeoutMs;\n\n this._networkName = network;\n this._timeoutMs = timeoutMs;\n\n if (shouldReconnect) {\n this._reconnect(endpoint, commitment, nextWsEndpoint);\n }\n }\n\n /**\n * 获取底层 Solana Connection 实例\n * @returns {Connection}\n */\n get raw() {\n return this._connection;\n }\n\n /**\n * 获取当前 RPC 端点\n * @returns {string}\n */\n get endpoint() {\n return this._endpoint;\n }\n\n /**\n * 获取当前网络名称\n * @returns {string}\n */\n get network() {\n return this._networkName;\n }\n\n /**\n * 获取连接状态\n * @returns {boolean}\n */\n get isConnected() {\n return this._isConnected;\n }\n\n /**\n * 从 RPC 端点自动推导 WebSocket 端点\n * @private\n * @param {string} rpcEndpoint - RPC 端点 URL\n * @returns {string|null} WebSocket 端点\n */\n _deriveWsEndpoint(rpcEndpoint) {\n try {\n const url = new URL(rpcEndpoint);\n url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';\n return url.toString();\n } catch {\n return null;\n }\n }\n\n /**\n * 切换到指定网络\n * \n * @param {string} network - 网络名称 ('mainnet' | 'testnet' | 'devnet')\n */\n switchNetwork(network) {\n // 通过 sdk-config 切换(异步加载并设置)\n getSdkConfig().then(cfg => {\n if (cfg?.setChainNetwork) {\n cfg.setChainNetwork(network);\n }\n }).catch(() => { });\n\n const endpointConfig = CHAIN_ENDPOINTS[network];\n if (!endpointConfig) {\n throw new QBitNetworkError(`未知网络: ${network},支持: mainnet, testnet, devnet`, network);\n }\n\n this._networkName = network;\n this._reconnect(endpointConfig.rpc, this._commitment, endpointConfig.ws);\n }\n\n /**\n * 内部重连方法\n * @private\n */\n _reconnect(endpoint, commitment, wsEndpoint) {\n this._endpoint = endpoint;\n if (commitment) this._commitment = commitment;\n this._wsEndpoint = wsEndpoint || this._deriveWsEndpoint(endpoint);\n this._isConnected = false;\n\n this._connection = new Connection(endpoint, {\n commitment: this._commitment,\n wsEndpoint: this._wsEndpoint || undefined,\n confirmTransactionInitialTimeout: this._timeoutMs,\n });\n\n console.log(`[QBitConnection] 已重连到: ${endpoint}`);\n this._onConnect?.({ endpoint, network: this._networkName });\n }\n\n // ============ 网络验证 ============\n\n /**\n * 验证当前连接是否指向正确的 QBit 网络\n * 通过比对 Genesis Hash 确认链身份\n * \n * @returns {Promise<{valid: boolean, expected: string|null, actual: string, network: string}>}\n */\n async validateNetwork() {\n const connection = await this._prepareConnection();\n const actualHash = await withRetry(\n () => connection.getGenesisHash(),\n RETRY.MAX_RETRIES,\n 'getGenesisHash'\n );\n\n const expectedHash = GENESIS_HASH[this._networkName];\n\n // 如果没有预设的 Genesis Hash(如 testnet),只返回实际值\n if (!expectedHash) {\n return { valid: true, expected: null, actual: actualHash, network: this._networkName };\n }\n\n const valid = actualHash === expectedHash;\n\n if (!valid) {\n const err = new QBitNetworkMismatchError(expectedHash, actualHash, this._networkName);\n this._onNetworkMismatch?.({ expected: expectedHash, actual: actualHash, network: this._networkName });\n console.error(`[QBitConnection] ${err.message}`);\n }\n\n return { valid, expected: expectedHash, actual: actualHash, network: this._networkName };\n }\n\n // ============ 链信息查询 ============\n\n /**\n * 健康检查(带自动重试)\n * @returns {Promise<string>} 'ok' 表示正常\n */\n async getHealth() {\n await this._prepareConnection();\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), TIMEOUT.HEALTH_CHECK);\n\n try {\n const result = await withRetry(async () => {\n const response = await fetch(this._endpoint, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'getHealth' }),\n signal: controller.signal,\n });\n const data = await response.json();\n if (data.error) {\n throw new QBitRpcError(data.error.message || 'RPC getHealth 调用失败', data.error.code, 'getHealth');\n }\n return data.result;\n }, RETRY.MAX_RETRIES, 'getHealth');\n\n this._isConnected = true;\n this._lastHealthCheck = Date.now();\n this._onConnect?.({ endpoint: this._endpoint, network: this._networkName });\n return result;\n } catch (error) {\n this._isConnected = false;\n this._onDisconnect?.({ endpoint: this._endpoint, error });\n throw error;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n\n /**\n * 获取链版本信息\n * @returns {Promise<Object>} 版本信息 { 'qbit-core': '...', 'solana-core': '...', 'feature-set': ... }\n */\n async getVersion() {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getVersion(), RETRY.MAX_RETRIES, 'getVersion');\n }\n\n /**\n * 获取当前 Slot\n * @returns {Promise<number>}\n */\n async getSlot() {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getSlot(), RETRY.MAX_RETRIES, 'getSlot');\n }\n\n /**\n * 获取当前区块高度\n * @returns {Promise<number>}\n */\n async getBlockHeight() {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getBlockHeight(), RETRY.MAX_RETRIES, 'getBlockHeight');\n }\n\n /**\n * 获取当前纪元信息\n * @returns {Promise<Object>} { absoluteSlot, blockHeight, epoch, slotIndex, slotsInEpoch, transactionCount }\n */\n async getEpochInfo() {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getEpochInfo(), RETRY.MAX_RETRIES, 'getEpochInfo');\n }\n\n /**\n * 获取最新 Blockhash\n * @returns {Promise<Object>} { blockhash, lastValidBlockHeight }\n */\n async getLatestBlockhash() {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getLatestBlockhash(), RETRY.MAX_RETRIES, 'getLatestBlockhash');\n }\n\n /**\n * 获取创世区块哈希\n * @returns {Promise<string>}\n */\n async getGenesisHash() {\n const connection = await this._prepareConnection();\n return connection.getGenesisHash();\n }\n\n /**\n * 获取链总供应量\n * @returns {Promise<Object>}\n */\n async getSupply() {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getSupply(), RETRY.MAX_RETRIES, 'getSupply');\n }\n\n /**\n * 获取集群节点列表\n * @returns {Promise<Array>} 节点信息列表\n */\n async getClusterNodes() {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getClusterNodes(), RETRY.MAX_RETRIES, 'getClusterNodes');\n }\n\n /**\n * 获取验证者投票账户列表\n * @returns {Promise<Object>} { current, delinquent }\n */\n async getVoteAccounts() {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getVoteAccounts(), RETRY.MAX_RETRIES, 'getVoteAccounts');\n }\n\n /**\n * 获取已确认交易总数\n * @returns {Promise<number>}\n */\n async getTransactionCount() {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getTransactionCount(), RETRY.MAX_RETRIES, 'getTransactionCount');\n }\n\n /**\n * 获取指定 Slot 的区块详情\n * @param {number} slot - 区块 Slot\n * @param {Object} options - 选项(maxSupportedTransactionVersion 默认 0)\n * @returns {Promise<Object|null>}\n */\n async getBlock(slot, options = {}) {\n const connection = await this._prepareConnection();\n return withRetry(\n () => connection.getBlock(slot, {\n maxSupportedTransactionVersion: 0,\n transactionDetails: options.transactionDetails || 'full',\n rewards: options.rewards ?? false,\n commitment: options.commitment || this._commitment,\n }),\n RETRY.MAX_RETRIES,\n 'getBlock'\n );\n }\n\n /**\n * 获取指定 Slot 的出块时间(Unix 秒)\n * @param {number} slot - 区块 Slot\n * @returns {Promise<number|null>}\n */\n async getBlockTime(slot) {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getBlockTime(slot), RETRY.MAX_RETRIES, 'getBlockTime');\n }\n\n /**\n * 获取一个区间内已确认的区块 Slot 列表\n * @param {number} startSlot - 起始 Slot\n * @param {number} [endSlot] - 结束 Slot(可选)\n * @returns {Promise<number[]>}\n */\n async getBlocks(startSlot, endSlot) {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getBlocks(startSlot, endSlot), RETRY.MAX_RETRIES, 'getBlocks');\n }\n\n /**\n * 获取节点可用的最早区块 Slot\n * @returns {Promise<number>}\n */\n async getFirstAvailableBlock() {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getFirstAvailableBlock(), RETRY.MAX_RETRIES, 'getFirstAvailableBlock');\n }\n\n /**\n * 获取近期出块性能采样数据\n * @param {number} limit - 采样数量(默认 5,最大 720)\n * @returns {Promise<Array>}\n */\n async getRecentPerformanceSamples(limit = 5) {\n const connection = await this._prepareConnection();\n return withRetry(\n () => connection.getRecentPerformanceSamples(limit),\n RETRY.MAX_RETRIES,\n 'getRecentPerformanceSamples'\n );\n }\n\n /**\n * 获取当前通胀率\n * @returns {Promise<{total: number, validator: number, foundation: number, epoch: number}>}\n */\n async getInflationRate() {\n const connection = await this._prepareConnection();\n return withRetry(() => connection.getInflationRate(), RETRY.MAX_RETRIES, 'getInflationRate');\n }\n\n /**\n * 查询账户在某个纪元的质押通胀奖励\n * @param {Array<string|PublicKey>} addresses - 账户地址列表\n * @param {number} [epoch] - 纪元(默认上一个纪元)\n * @returns {Promise<Array>}\n */\n async getInflationReward(addresses, epoch) {\n const { PublicKey } = await import('@solana/web3.js');\n const connection = await this._prepareConnection();\n const pubkeys = addresses.map(a => (typeof a === 'string' ? new PublicKey(a) : a));\n return withRetry(\n () => connection.getInflationReward(pubkeys, epoch),\n RETRY.MAX_RETRIES,\n 'getInflationReward'\n );\n }\n\n /**\n * 请求空投(仅 devnet / localnet 测试网可用)\n *\n * @param {string|PublicKey} address - 接收地址\n * @param {number} amountQBT - 空投数量(QBT)\n * @returns {Promise<string>} 交易签名\n */\n async requestAirdrop(address, amountQBT) {\n const { PublicKey, LAMPORTS_PER_SOL } = await import('@solana/web3.js');\n if (this._networkName === 'mainnet') {\n throw new QBitNetworkError('主网不支持空投(requestAirdrop 仅适用于 devnet / localnet)', this._endpoint);\n }\n const connection = await this._prepareConnection();\n const pubkey = typeof address === 'string' ? new PublicKey(address) : address;\n const lamports = Math.round(amountQBT * LAMPORTS_PER_SOL);\n return withRetry(\n () => connection.requestAirdrop(pubkey, lamports),\n RETRY.MAX_RETRIES,\n 'requestAirdrop'\n );\n }\n\n // ============ 账户查询 ============\n\n /**\n * 获取账户余额(lamports)\n * \n * @param {string|PublicKey} address - 账户地址\n * @returns {Promise<number>} 余额(lamports)\n */\n async getBalance(address) {\n const { PublicKey } = await import('@solana/web3.js');\n const connection = await this._prepareConnection();\n const pubkey = typeof address === 'string' ? new PublicKey(address) : address;\n return withRetry(() => connection.getBalance(pubkey), RETRY.MAX_RETRIES, 'getBalance');\n }\n\n /**\n * 获取账户余额(QBT)\n * \n * @param {string|PublicKey} address - 账户地址\n * @returns {Promise<number>} 余额(QBT)\n */\n async getBalanceQBT(address) {\n const lamports = await this.getBalance(address);\n return lamports / 1_000_000_000;\n }\n\n /**\n * 获取账户信息\n * \n * @param {string|PublicKey} address - 账户地址\n * @returns {Promise<Object|null>} 账户信息或 null\n */\n async getAccountInfo(address) {\n const { PublicKey } = await import('@solana/web3.js');\n const connection = await this._prepareConnection();\n const pubkey = typeof address === 'string' ? new PublicKey(address) : address;\n return withRetry(() => connection.getAccountInfo(pubkey), RETRY.MAX_RETRIES, 'getAccountInfo');\n }\n\n /**\n * 检查账户是否存在(有余额或数据)\n * \n * @param {string|PublicKey} address - 账户地址\n * @returns {Promise<boolean>}\n */\n async accountExists(address) {\n const info = await this.getAccountInfo(address);\n return info !== null;\n }\n\n /**\n * 获取多个账户余额\n * \n * @param {Array<string>} addresses - 账户地址列表\n * @returns {Promise<Array<{address: string, lamports: number, qbt: number}>>}\n */\n async getMultipleBalances(addresses) {\n const { PublicKey } = await import('@solana/web3.js');\n const connection = await this._prepareConnection();\n const pubkeys = addresses.map(a => new PublicKey(a));\n const infos = await withRetry(\n () => connection.getMultipleAccountsInfo(pubkeys),\n RETRY.MAX_RETRIES,\n 'getMultipleAccountsInfo'\n );\n\n return addresses.map((address, i) => ({\n address,\n lamports: infos[i]?.lamports || 0,\n qbt: (infos[i]?.lamports || 0) / 1_000_000_000,\n }));\n }\n\n // ============ 交易相关 ============\n\n /**\n * 发送已签名的交易\n * \n * @param {Transaction} transaction - 已签名的交易\n * @param {Object} options - 发送选项\n * @returns {Promise<string>} 交易签名 (txHash)\n */\n async sendTransaction(transaction, options = {}) {\n const connection = await this._prepareConnection();\n return connection.sendRawTransaction(\n transaction.serialize(),\n {\n skipPreflight: options.skipPreflight || false,\n preflightCommitment: options.preflightCommitment || this._commitment,\n }\n );\n }\n\n /**\n * 确认交易\n * \n * @param {string} signature - 交易签名\n * @param {string} commitment - 确认级别\n * @param {Object} context - blockhash 上下文\n * @returns {Promise<Object>} 确认结果\n */\n async confirmTransaction(signature, commitment, context = null) {\n const connection = await this._prepareConnection();\n const { blockhash, lastValidBlockHeight } = context || await this.getLatestBlockhash();\n return connection.confirmTransaction({\n signature,\n blockhash,\n lastValidBlockHeight,\n }, commitment || this._commitment);\n }\n\n /**\n * 获取交易详情\n * \n * @param {string} signature - 交易签名\n * @returns {Promise<Object|null>} 交易详情\n */\n async getTransaction(signature) {\n const connection = await this._prepareConnection();\n return withRetry(\n () => connection.getTransaction(signature, { maxSupportedTransactionVersion: 0 }),\n RETRY.MAX_RETRIES,\n 'getTransaction'\n );\n }\n\n /**\n * 获取账户的交易签名列表\n * \n * @param {string|PublicKey} address - 账户地址\n * @param {Object} options - 查询选项\n * @param {number} options.limit - 返回数量(默认 20)\n * @returns {Promise<Array>} 交易签名列表\n */\n async getSignaturesForAddress(address, options = {}) {\n const { PublicKey } = await import('@solana/web3.js');\n const connection = await this._prepareConnection();\n const pubkey = typeof address === 'string' ? new PublicKey(address) : address;\n return withRetry(\n () => connection.getSignaturesForAddress(pubkey, {\n limit: options.limit || 20,\n before: options.before,\n until: options.until,\n }),\n RETRY.MAX_RETRIES,\n 'getSignaturesForAddress'\n );\n }\n\n /**\n * 获取租金豁免的最低余额\n * \n * @param {number} dataSize - 数据大小(字节)\n * @returns {Promise<number>} 最低余额(lamports)\n */\n async getMinimumBalanceForRentExemption(dataSize) {\n const connection = await this._prepareConnection();\n return withRetry(\n () => connection.getMinimumBalanceForRentExemption(dataSize),\n RETRY.MAX_RETRIES,\n 'getMinRentExemption'\n );\n }\n\n // ============ Token (SPL) 相关 ============\n\n /**\n * 获取账户的 Token 余额列表\n * \n * @param {string|PublicKey} owner - 持有者地址\n * @returns {Promise<Array>} Token 余额列表\n */\n async getTokenAccountsByOwner(owner) {\n const { PublicKey } = await import('@solana/web3.js');\n const { CHAIN_PROGRAMS } = await import('./constants.js');\n const connection = await this._prepareConnection();\n const pubkey = typeof owner === 'string' ? new PublicKey(owner) : owner;\n\n const response = await withRetry(\n () => connection.getTokenAccountsByOwner(pubkey, {\n programId: new PublicKey(CHAIN_PROGRAMS.TOKEN_PROGRAM),\n }),\n RETRY.MAX_RETRIES,\n 'getTokenAccountsByOwner'\n );\n\n return response.value.map(item => ({\n pubkey: item.pubkey.toBase58(),\n account: item.account,\n }));\n }\n\n /**\n * 获取指定 Token 的余额\n * \n * @param {string} tokenAccountAddress - Token 账户地址\n * @returns {Promise<Object>} { amount, decimals, uiAmount }\n */\n async getTokenBalance(tokenAccountAddress) {\n const { PublicKey } = await import('@solana/web3.js');\n const connection = await this._prepareConnection();\n const pubkey = new PublicKey(tokenAccountAddress);\n const result = await withRetry(\n () => connection.getTokenAccountBalance(pubkey),\n RETRY.MAX_RETRIES,\n 'getTokenAccountBalance'\n );\n return result.value;\n }\n\n // ============ 连接信息 ============\n\n /**\n * 获取连接详细信息(用于调试和监控)\n * @returns {Object} 连接摘要\n */\n getConnectionInfo() {\n return {\n endpoint: this._endpoint,\n wsEndpoint: this._wsEndpoint,\n network: this._networkName,\n commitment: this._commitment,\n isConnected: this._isConnected,\n lastHealthCheck: this._lastHealthCheck,\n timeoutMs: this._timeoutMs,\n };\n }\n\n // ============ 生命周期 ============\n\n /**\n * 销毁连接,清理资源\n */\n destroy() {\n if (this._unsubscribe) {\n this._unsubscribe();\n this._unsubscribe = null;\n }\n this._isConnected = false;\n this._onDisconnect?.({ endpoint: this._endpoint, reason: 'destroy' });\n }\n}\n\n// 创建默认全局实例(延迟初始化)\nlet _defaultConnection = null;\n\n/**\n * 获取默认连接实例(单例)\n * \n * @returns {QBitConnection}\n */\nexport function getDefaultConnection() {\n if (!_defaultConnection) {\n _defaultConnection = new QBitConnection();\n }\n return _defaultConnection;\n}\n\n/**\n * 重置默认连接(用于切换网络后重新初始化)\n * @param {Object} options - 新的配置选项\n * @returns {QBitConnection}\n */\nexport function resetDefaultConnection(options = {}) {\n if (_defaultConnection) {\n _defaultConnection.destroy();\n }\n _defaultConnection = new QBitConnection(options);\n return _defaultConnection;\n}\n\nexport async function resolveRawConnection(connection) {\n if (typeof connection?.getRawConnection === 'function') {\n return connection.getRawConnection();\n }\n return connection?.raw;\n}\n\n// 导出重试工具函数,供其他模块使用\nexport { withRetry };\n","/**\n * QBit Chain 密钥对管理\n * \n * 提供 Ed25519 密钥对生成、助记词管理、私钥导入导出。\n * 所有密钥操作在本地完成,私钥不会离开客户端。\n * \n * 安全说明:\n * - 助记词和私钥仅在内存中存在\n * - 导出时由上层 SDK(wallet-create-sdk)负责加密存储\n * - 本模块不持久化任何敏感数据\n */\n\nimport { Keypair, PublicKey } from '@solana/web3.js';\nimport * as bip39 from 'bip39';\nimport { derivePath } from 'ed25519-hd-key';\nimport nacl from 'tweetnacl';\nimport { QBIT_COIN_TYPE } from './constants.js';\nimport { QBitKeypairError } from './errors.js';\nimport bs58 from 'bs58';\n\n/**\n * QBit 密钥对封装类\n * 封装 Solana Keypair,添加便捷方法\n */\nexport class QBitKeypair {\n /**\n * @param {Keypair} solanaKeypair - Solana Keypair 实例\n * @param {string|null} mnemonic - 关联的助记词(可选)\n * @param {string} derivationPath - HD 派生路径\n */\n constructor(solanaKeypair, mnemonic = null, derivationPath = '') {\n this._keypair = solanaKeypair;\n this._mnemonic = mnemonic;\n this._derivationPath = derivationPath;\n }\n\n /**\n * 获取公钥(PublicKey 对象)\n * @returns {PublicKey}\n */\n get publicKey() {\n return this._keypair.publicKey;\n }\n\n /**\n * 获取公钥地址(Base58 字符串)\n * @returns {string}\n */\n get address() {\n return this._keypair.publicKey.toBase58();\n }\n\n /**\n * 获取底层 Solana Keypair(用于交易签名)\n * @returns {Keypair}\n */\n get keypair() {\n return this._keypair;\n }\n\n /**\n * 获取助记词(如果有)\n * ⚠️ 敏感信息,使用后应立即清理\n * @returns {string|null}\n */\n get mnemonic() {\n return this._mnemonic;\n }\n\n /**\n * 获取 HD 派生路径\n * @returns {string}\n */\n get derivationPath() {\n return this._derivationPath;\n }\n\n /**\n * 导出私钥(Base58 编码)\n * ⚠️ 极度敏感,仅在用户明确请求导出时使用\n * @returns {string} Base58 编码的私钥\n */\n exportPrivateKey() {\n return bs58.encode(this._keypair.secretKey);\n }\n\n /**\n * 导出私钥(Uint8Array 原始字节)\n * @returns {Uint8Array} 64 字节私钥\n */\n exportSecretKey() {\n return this._keypair.secretKey;\n }\n\n /**\n * 对消息签名\n * \n * @param {Uint8Array|string} message - 待签名消息\n * @returns {Uint8Array} 签名结果(64 字节)\n */\n sign(message) {\n const msgBytes = typeof message === 'string'\n ? new TextEncoder().encode(message)\n : message;\n return nacl.sign.detached(msgBytes, this._keypair.secretKey);\n }\n\n /**\n * 对消息签名并返回 Base58 编码\n * \n * @param {string} message - 待签名消息\n * @returns {string} Base58 编码的签名\n */\n signBase58(message) {\n const sig = this.sign(message);\n return bs58.encode(sig);\n }\n\n /**\n * 清理内存中的敏感数据\n * 在密钥对不再需要时调用\n */\n destroy() {\n // 尝试清零私钥内存\n if (this._keypair.secretKey) {\n this._keypair.secretKey.fill(0);\n }\n this._mnemonic = null;\n }\n\n // ============ 静态工厂方法 ============\n\n /**\n * 生成新的密钥对和助记词\n * \n * @param {Object} options - 生成选项\n * @param {number} options.strength - 助记词强度(128=12词, 256=24词,默认 128)\n * @param {number} options.accountIndex - 账户索引(默认 0)\n * @param {boolean} options.useLegacyPath - 使用旧版 Solana 路径 m/44'/766'(默认 false)\n * @param {string} options.language - 助记词语言(默认 'english')\n * @returns {Promise<QBitKeypair>} 包含助记词的密钥对\n */\n static async generate(options = {}) {\n const { strength = 128, accountIndex = 0, useLegacyPath = false } = options;\n\n // 生成助记词\n const mnemonic = bip39.generateMnemonic(strength);\n\n // 从助记词派生密钥对\n return QBitKeypair.fromMnemonic(mnemonic, { accountIndex, useLegacyPath });\n }\n\n /**\n * 从助记词恢复密钥对\n * \n * @param {string} mnemonic - BIP39 助记词\n * @param {Object} options - 选项\n * @param {number} options.accountIndex - 账户索引(默认 0)\n * @param {number} options.coinType - BIP44 coin type(默认 766 = QBit)\n * @param {boolean} options.useLegacyPath - 使用旧版 Solana 路径 m/44'/766'(默认 false)\n * @returns {Promise<QBitKeypair>} 恢复的密钥对\n */\n static async fromMnemonic(mnemonic, options = {}) {\n const { accountIndex = 0, coinType, useLegacyPath = false } = options;\n\n // 验证助记词\n if (!bip39.validateMnemonic(mnemonic)) {\n throw new QBitKeypairError('无效的助记词');\n }\n\n // 助记词 → 种子\n const seed = await bip39.mnemonicToSeed(mnemonic);\n\n // 确定 coin type:显式指定 > useLegacyPath > 默认 QBit 766\n const resolvedCoinType = coinType != null\n ? coinType\n : useLegacyPath ? 501 : QBIT_COIN_TYPE;\n\n // BIP44 派生路径: m/44'/coinType'/accountIndex'/0'\n const path = `m/44'/${resolvedCoinType}'/${accountIndex}'/0'`;\n const derived = derivePath(path, seed.toString('hex'));\n\n // 从派生种子创建 Keypair\n const keypair = Keypair.fromSeed(derived.key);\n\n return new QBitKeypair(keypair, mnemonic, path);\n }\n\n /**\n * 从私钥恢复密钥对\n * \n * @param {string|Uint8Array} privateKey - Base58 编码的私钥或 Uint8Array\n * @returns {QBitKeypair} 恢复的密钥对\n */\n static fromPrivateKey(privateKey) {\n let secretKey;\n\n if (typeof privateKey === 'string') {\n // Base58 编码的私钥\n secretKey = bs58.decode(privateKey);\n } else if (privateKey instanceof Uint8Array) {\n secretKey = privateKey;\n } else {\n throw new QBitKeypairError('私钥格式错误: 需要 Base58 字符串或 Uint8Array');\n }\n\n const keypair = Keypair.fromSecretKey(secretKey);\n return new QBitKeypair(keypair);\n }\n\n /**\n * 从 JSON 密钥文件恢复(兼容 Solana CLI 格式)\n * \n * @param {Array<number>} jsonKey - JSON 格式的密钥数组 [u8; 64]\n * @returns {QBitKeypair}\n */\n static fromJsonKey(jsonKey) {\n const secretKey = Uint8Array.from(jsonKey);\n const keypair = Keypair.fromSecretKey(secretKey);\n return new QBitKeypair(keypair);\n }\n\n /**\n * 生成随机密钥对(无助记词)\n * 适用于临时账户、程序派生地址等场景\n * \n * @returns {QBitKeypair}\n */\n static random() {\n const keypair = Keypair.generate();\n return new QBitKeypair(keypair);\n }\n\n /**\n * 从助记词批量派生多个密钥对\n * \n * @param {string} mnemonic - BIP39 助记词\n * @param {number} count - 派生数量\n * @param {number} startIndex - 起始索引(默认 0)\n * @returns {Promise<QBitKeypair[]>} 密钥对数组\n */\n static async deriveMultiple(mnemonic, count, startIndex = 0, options = {}) {\n const keypairs = [];\n for (let i = startIndex; i < startIndex + count; i++) {\n const kp = await QBitKeypair.fromMnemonic(mnemonic, {\n accountIndex: i,\n useLegacyPath: options.useLegacyPath,\n coinType: options.coinType,\n });\n keypairs.push(kp);\n }\n return keypairs;\n }\n}\n\n// ============ 独立导出的便捷函数 ============\n\n/**\n * 生成 BIP39 助记词\n * \n * @param {number} strength - 强度位数(128=12词, 160=15词, 192=18词, 224=21词, 256=24词)\n * @returns {string} 助记词字符串\n */\nexport function generateMnemonic(strength = 128) {\n return bip39.generateMnemonic(strength);\n}\n\n/**\n * 从助记词生成密钥对(便捷函数)\n * \n * @param {string} mnemonic - 助记词\n * @param {number} accountIndex - 账户索引\n * @returns {Promise<QBitKeypair>}\n */\nexport async function mnemonicToKeypair(mnemonic, accountIndex = 0) {\n return QBitKeypair.fromMnemonic(mnemonic, { accountIndex });\n}\n\n/**\n * 验证助记词是否有效\n * \n * @param {string} mnemonic - 待验证的助记词\n * @returns {boolean} 是否有效\n */\nexport function validateMnemonic(mnemonic) {\n if (!mnemonic || typeof mnemonic !== 'string') return false;\n return bip39.validateMnemonic(mnemonic.trim());\n}\n\n/**\n * 验证签名\n * \n * @param {string} message - 原始消息\n * @param {Uint8Array|string} signature - 签名(Uint8Array 或 Base58)\n * @param {string|PublicKey} publicKey - 签名者公钥\n * @returns {boolean} 签名是否有效\n */\nexport function verifySignature(message, signature, publicKey) {\n const msgBytes = typeof message === 'string'\n ? new TextEncoder().encode(message)\n : message;\n\n const sigBytes = typeof signature === 'string'\n ? bs58.decode(signature)\n : signature;\n\n const pubkeyBytes = typeof publicKey === 'string'\n ? new PublicKey(publicKey).toBytes()\n : publicKey instanceof PublicKey\n ? publicKey.toBytes()\n : publicKey;\n\n return nacl.sign.detached.verify(msgBytes, sigBytes, pubkeyBytes);\n}\n","/**\n * QBit Chain 工具函数\n * \n * 单位转换、地址验证等通用工具\n */\n\nimport { PublicKey } from '@solana/web3.js';\nimport { LAMPORTS_PER_QBT } from './constants.js';\n\n// 重新导出常量,方便外部使用\nexport { LAMPORTS_PER_QBT };\n\n/**\n * QBT 转换为 lamports\n * \n * @param {number} qbt - QBT 数量\n * @returns {number} lamports 数量\n * \n * @example\n * qbtToLamports(1.5) // => 1500000000\n */\nexport function qbtToLamports(qbt) {\n return Math.round(qbt * LAMPORTS_PER_QBT);\n}\n\n/**\n * lamports 转换为 QBT\n * \n * @param {number} lamports - lamports 数量\n * @returns {number} QBT 数量\n * \n * @example\n * lamportsToQbt(1500000000) // => 1.5\n */\nexport function lamportsToQbt(lamports) {\n return lamports / LAMPORTS_PER_QBT;\n}\n\n/**\n * 格式化 QBT 余额显示\n * \n * @param {number} lamports - lamports 数量\n * @param {number} decimals - 小数位数(默认 4)\n * @returns {string} 格式化后的字符串\n */\nexport function formatQbt(lamports, decimals = 4) {\n const qbt = lamportsToQbt(lamports);\n return qbt.toFixed(decimals);\n}\n\n/**\n * 验证地址是否合法(Base58 编码的公钥)\n * \n * @param {string} address - 待验证的地址字符串\n * @returns {boolean} 是否为有效的 QBit Chain 地址\n */\nexport function isValidAddress(address) {\n if (!address || typeof address !== 'string') return false;\n try {\n new PublicKey(address);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * 缩短地址显示\n * \n * @param {string} address - 完整地址\n * @param {number} startLen - 前缀长度(默认 4)\n * @param {number} endLen - 后缀长度(默认 4)\n * @returns {string} 缩短后的地址\n * \n * @example\n * shortenAddress('5YNmS1R9nNSCDzb5a7mMJ1dwK9uHeAAF4CmPEwKgVWr8')\n * // => '5YNm...VWr8'\n */\nexport function shortenAddress(address, startLen = 4, endLen = 4) {\n if (!address) return '';\n if (address.length <= startLen + endLen + 3) return address;\n return `${address.slice(0, startLen)}...${address.slice(-endLen)}`;\n}\n\n/**\n * 将字符串地址转为 PublicKey 对象\n * 如果已经是 PublicKey 则直接返回\n * \n * @param {string|PublicKey} addressOrKey - 地址字符串或 PublicKey\n * @returns {PublicKey} PublicKey 对象\n */\nexport function toPublicKey(addressOrKey) {\n if (addressOrKey instanceof PublicKey) return addressOrKey;\n return new PublicKey(addressOrKey);\n}\n\n/**\n * 休眠指定毫秒\n * @param {number} ms - 毫秒数\n */\nexport function sleep(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n","/**\n * QBit Chain 交易管理\n * \n * 交易构建、签名、发送、确认的完整流程封装。\n * 支持原生 QBT 转账、SPL Token 转账、Program 调用等。\n */\n\nimport {\n Transaction,\n SystemProgram,\n PublicKey,\n Keypair,\n ComputeBudgetProgram,\n} from '@solana/web3.js';\n\nimport { CHAIN_PROGRAMS } from './constants.js';\nimport { getDefaultConnection, resolveRawConnection } from './connection.js';\nimport { qbtToLamports, toPublicKey } from './utils.js';\nimport { QBitTokenError, QBitTransactionError } from './errors.js';\n\nconst HTTP_CONFIRMATION_POLL_MS = 1200;\nconst HTTP_CONFIRMATION_MAX_POLLS = 40;\n\nasync function waitForConfirmationOverHttp(connection, signature, context, commitment = 'confirmed') {\n const raw = await resolveRawConnection(connection);\n for (let attempt = 0; attempt < HTTP_CONFIRMATION_MAX_POLLS; attempt += 1) {\n const statuses = await raw.getSignatureStatuses([signature], {\n searchTransactionHistory: true,\n });\n const status = statuses?.value?.[0];\n\n if (status?.err) {\n throw new QBitTransactionError(\n `交易确认失败: ${JSON.stringify(status.err)}`,\n 'TX_CONFIRM_FAILED'\n );\n }\n\n const confirmationStatus = status?.confirmationStatus;\n const confirmations = status?.confirmations;\n if (\n confirmationStatus === commitment ||\n confirmationStatus === 'finalized' ||\n (commitment === 'confirmed' && confirmations !== null)\n ) {\n return {\n value: status,\n context: {\n slot: status?.slot || null,\n },\n };\n }\n\n if (context?.lastValidBlockHeight) {\n const currentBlockHeight = await connection.getBlockHeight();\n if (currentBlockHeight > context.lastValidBlockHeight) {\n throw new QBitTransactionError(\n `交易签名 ${signature} 已过期: block height exceeded`,\n 'TX_BLOCKHASH_EXPIRED'\n );\n }\n }\n\n await new Promise((resolve) => setTimeout(resolve, HTTP_CONFIRMATION_POLL_MS));\n }\n\n throw new QBitTransactionError(\n `交易签名 ${signature} 在限定时间内未确认`,\n 'TX_CONFIRM_TIMEOUT'\n );\n}\n\n/**\n * QBit 交易构建器\n * \n * @example\n * // 简单转账\n * const tx = new QBitTransaction(connection);\n * tx.transfer(fromKeypair, 'ToAddress...', 1.5);\n * const sig = await tx.sendAndConfirm(fromKeypair);\n * \n * // SPL Token 转账\n * const tx = new QBitTransaction(connection);\n * await tx.transferToken(fromKeypair.publicKey, 'ToAddress...', 'MintAddress...', 100, 9);\n * const sig = await tx.sendAndConfirm(fromKeypair);\n * \n * // 复杂交易(多指令)\n * const tx = new QBitTransaction(connection);\n * tx.addInstruction(SystemProgram.transfer({...}));\n * tx.setComputeUnits(200000);\n * const sig = await tx.sendAndConfirm(signerKeypair);\n */\nexport class QBitTransaction {\n /**\n * @param {QBitConnection} connection - 链连接实例(可选,默认使用全局连接)\n */\n constructor(connection) {\n this._conn = connection || getDefaultConnection();\n this._transaction = new Transaction();\n this._instructions = [];\n this._signers = [];\n }\n\n /**\n * 添加指令到交易\n * \n * @param {TransactionInstruction} instruction - 交易指令\n * @returns {QBitTransaction} this(支持链式调用)\n */\n addInstruction(instruction) {\n this._instructions.push(instruction);\n return this;\n }\n\n /**\n * 添加额外签名者(用于多签场景,如创建 Mint / 质押账户)\n * 手续费支付方无需在此添加,会在 sendAndConfirm/send 时自动加入。\n *\n * @param {Keypair|QBitKeypair} signer - 额外签名密钥对\n * @returns {QBitTransaction} this\n */\n addSigner(signer) {\n const keypair = signer?.keypair || signer;\n if (keypair) this._signers.push(keypair);\n return this;\n }\n\n /**\n * 合并主签名者与额外签名者,去重后返回 Keypair 列表\n * @private\n * @param {Keypair} primary - 主签名者(手续费支付方)\n * @returns {Keypair[]}\n */\n _collectSigners(primary) {\n const seen = new Set();\n const result = [];\n for (const kp of [primary, ...this._signers]) {\n const real = kp?.keypair || kp;\n if (!real?.publicKey) continue;\n const key = real.publicKey.toBase58();\n if (seen.has(key)) continue;\n seen.add(key);\n result.push(real);\n }\n return result;\n }\n\n /**\n * 添加转账指令\n * \n * @param {PublicKey|string} from - 发送方公钥\n * @param {PublicKey|string} to - 接收方地址\n * @param {number} amountQBT - 转账金额(QBT)\n * @returns {QBitTransaction} this\n */\n transfer(from, to, amountQBT) {\n const instruction = SystemProgram.transfer({\n fromPubkey: toPublicKey(from),\n toPubkey: toPublicKey(to),\n lamports: qbtToLamports(amountQBT),\n });\n return this.addInstruction(instruction);\n }\n\n /**\n * 添加 SPL Token 转账指令\n * 自动处理 Associated Token Account(ATA)创建\n * \n * @param {PublicKey|string} from - 发送方公钥(Token 所有者)\n * @param {PublicKey|string} to - 接收方地址(Token 将发送到其 ATA)\n * @param {string} mintAddress - Token Mint 地址\n * @param {number} amount - 转账数量(已考虑精度的原始数量)\n * @param {number} decimals - Token 精度\n * @param {PublicKey|string} feePayer - 手续费支付方(默认为 from)\n * @returns {Promise<QBitTransaction>} this\n */\n async transferToken(from, to, mintAddress, amount, decimals, feePayer) {\n const {\n getAssociatedTokenAddress,\n createAssociatedTokenAccountInstruction,\n createTransferCheckedInstruction,\n TOKEN_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID,\n } = await import('@solana/spl-token');\n\n const fromPubkey = toPublicKey(from);\n const toPubkey = toPublicKey(to);\n const mintPubkey = toPublicKey(mintAddress);\n const feePayerPubkey = feePayer ? toPublicKey(feePayer) : fromPubkey;\n\n if (!Number.isFinite(amount) || amount <= 0) {\n throw new QBitTokenError('Token 转账数量必须大于 0', mintAddress, { amount });\n }\n if (!Number.isInteger(decimals) || decimals < 0) {\n throw new QBitTokenError('Token decimals 必须是非负整数', mintAddress, { decimals });\n }\n\n // 获取发送方的 ATA\n const fromAta = await getAssociatedTokenAddress(mintPubkey, fromPubkey);\n const fromAtaInfo = await this._conn.getAccountInfo(fromAta);\n if (!fromAtaInfo) {\n throw new QBitTokenError(`发送方 Token Account 不存在: ${fromAta.toBase58()}`, mintAddress, {\n owner: fromPubkey.toBase58(),\n tokenAccount: fromAta.toBase58(),\n });\n }\n\n // 获取接收方的 ATA\n const toAta = await getAssociatedTokenAddress(mintPubkey, toPubkey);\n\n // 检查接收方 ATA 是否存在,不存在则创建\n const toAtaInfo = await this._conn.getAccountInfo(toAta);\n if (!toAtaInfo) {\n this.addInstruction(\n createAssociatedTokenAccountInstruction(\n feePayerPubkey, // 手续费支付方\n toAta, // 新创建的 ATA 地址\n toPubkey, // Token 所有者\n mintPubkey, // Mint 地址\n TOKEN_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID,\n )\n );\n }\n\n // 添加转账指令(使用 transferChecked 确保精度安全)\n this.addInstruction(\n createTransferCheckedInstruction(\n fromAta, // 发送方 ATA\n mintPubkey, // Mint\n toAta, // 接收方 ATA\n fromPubkey, // 所有者(签名者)\n amount,\n decimals,\n )\n );\n\n return this;\n }\n\n /**\n * 批量转账 QBT(多个转账指令合并到一笔交易)\n * \n * @param {PublicKey|string} from - 发送方公钥\n * @param {Array<{to: string, amountQBT: number}>} transfers - 转账列表\n * @returns {QBitTransaction} this\n */\n batchTransfer(from, transfers) {\n const fromPubkey = toPublicKey(from);\n for (const { to, amountQBT } of transfers) {\n this.addInstruction(SystemProgram.transfer({\n fromPubkey,\n toPubkey: toPublicKey(to),\n lamports: qbtToLamports(amountQBT),\n }));\n }\n return this;\n }\n\n /**\n * 添加 Memo 指令(交易备注)\n * \n * @param {string} memo - 备注内容\n * @returns {QBitTransaction} this\n */\n addMemo(memo) {\n const memoInstruction = {\n keys: [],\n programId: new PublicKey(CHAIN_PROGRAMS.MEMO_PROGRAM),\n data: Buffer.from(memo, 'utf-8'),\n };\n return this.addInstruction(memoInstruction);\n }\n\n /**\n * 设置计算单元限制(用于复杂交易)\n * \n * @param {number} units - 计算单元数量\n * @returns {QBitTransaction} this\n */\n setComputeUnits(units) {\n const instruction = ComputeBudgetProgram.setComputeUnitLimit({\n units,\n });\n this._instructions.unshift(instruction); // 放在最前面\n return this;\n }\n\n /**\n * 设置优先费用\n * \n * @param {number} microLamports - 每计算单元的微 lamports 费用\n * @returns {QBitTransaction} this\n */\n setPriorityFee(microLamports) {\n const instruction = ComputeBudgetProgram.setComputeUnitPrice({\n microLamports,\n });\n this._instructions.unshift(instruction);\n return this;\n }\n\n /**\n * 构建交易(设置 blockhash 和 feePayer)\n * \n * @param {PublicKey|string} feePayer - 手续费支付方公钥\n * @returns {Promise<Transaction>} 构建好的交易(待签名)\n */\n async build(feePayer) {\n const { blockhash, lastValidBlockHeight } = await this._conn.getLatestBlockhash();\n this._latestBlockhash = { blockhash, lastValidBlockHeight };\n\n this._transaction = new Transaction();\n this._transaction.recentBlockhash = blockhash;\n this._transaction.lastValidBlockHeight = lastValidBlockHeight;\n this._transaction.feePayer = toPublicKey(feePayer);\n\n // 添加所有指令\n for (const ix of this._instructions) {\n this._transaction.add(ix);\n }\n\n return this._transaction;\n }\n\n /**\n * 签名交易(不发送)\n * 适用于需要离线签名或多签场景\n * \n * @param {Keypair|QBitKeypair} signer - 签名密钥对\n * @returns {Promise<Transaction>} 已签名的交易\n */\n async signTransaction(signer) {\n const keypair = signer.keypair || signer;\n await this.build(keypair.publicKey);\n this._transaction.sign(...this._collectSigners(keypair));\n return this._transaction;\n }\n\n /**\n * 发送并确认交易\n * \n * @param {Keypair|QBitKeypair} signer - 签名密钥对\n * @param {Object} options - 发送选项\n * @param {boolean} options.skipPreflight - 是否跳过预检(默认 false)\n * @param {string} options.commitment - 确认级别\n * @returns {Promise<string>} 交易签名 (txHash)\n */\n async sendAndConfirm(signer, options = {}) {\n // 获取底层 keypair\n const keypair = signer.keypair || signer;\n\n // 构建交易(允许自定义手续费支付方,默认为主签名者)\n const feePayer = options.feePayer ? toPublicKey(options.feePayer) : keypair.publicKey;\n await this.build(feePayer);\n\n // QBit 主网 RPC 当前仅支持 POST/OPTIONS,不可靠支持 WebSocket 确认。\n // 这里改为 HTTP 发送 + 轮询 getSignatureStatuses,避免 sendAndConfirmTransaction\n // 内部走 WS subscribe 导致 405 与 blockhash 过期。\n this._transaction.sign(...this._collectSigners(keypair));\n\n const signature = await this._conn.sendTransaction(this._transaction, {\n skipPreflight: options.skipPreflight || false,\n preflightCommitment: options.commitment || 'confirmed',\n });\n\n await waitForConfirmationOverHttp(\n this._conn,\n signature,\n this._latestBlockhash,\n options.commitment || 'confirmed'\n );\n\n return signature;\n }\n\n /**\n * 仅发送交易(不等待确认)\n * \n * @param {Keypair|QBitKeypair} signer - 签名密钥对\n * @param {Object} options - 选项\n * @param {PublicKey|string} options.feePayer - 手续费支付方(默认为 signer)\n * @returns {Promise<string>} 交易签名\n */\n async send(signer, options = {}) {\n const keypair = signer.keypair || signer;\n const feePayer = options.feePayer ? toPublicKey(options.feePayer) : keypair.publicKey;\n await this.build(feePayer);\n\n // 签名\n this._transaction.sign(...this._collectSigners(keypair));\n\n // 发送\n return this._conn.sendTransaction(this._transaction, {\n skipPreflight: options.skipPreflight || false,\n preflightCommitment: options.commitment || 'confirmed',\n });\n }\n\n /**\n * 确认最近一次发送的交易\n *\n * @param {string} signature - 交易签名\n * @param {string} commitment - 确认级别\n * @returns {Promise<Object>}\n */\n async confirm(signature, commitment = 'confirmed') {\n if (!this._latestBlockhash) {\n throw new QBitTransactionError('交易尚未构建,无法确认');\n }\n return this._conn.confirmTransaction(signature, commitment, this._latestBlockhash);\n }\n\n /**\n * 模拟交易(不实际执行)\n * 返回模拟结果包含费用估算和执行日志\n * \n * @param {Keypair|QBitKeypair} signer - 签名密钥对\n * @returns {Promise<Object>} { err, logs, unitsConsumed, estimatedFee }\n */\n async simulate(signer) {\n const keypair = signer.keypair || signer;\n await this.build(keypair.publicKey);\n this._transaction.sign(...this._collectSigners(keypair));\n\n const raw = await resolveRawConnection(this._conn);\n const result = await raw.simulateTransaction(this._transaction);\n\n // 估算交易费用\n let estimatedFee = 5000; // 默认 5000 lamports\n try {\n const feeResult = await raw.getFeeForMessage(\n this._transaction.compileMessage(),\n 'confirmed'\n );\n if (feeResult.value) estimatedFee = feeResult.value;\n } catch {\n // 费用估算失败,使用默认值\n }\n\n return {\n err: result.value.err,\n logs: result.value.logs || [],\n unitsConsumed: result.value.unitsConsumed || 0,\n estimatedFee,\n returnData: result.value.returnData || null,\n };\n }\n}\n\n// ============ 便捷函数 ============\n\n/**\n * 快速转账 QBT\n * \n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} fromKeypair - 发送方密钥对\n * @param {string} toAddress - 接收方地址\n * @param {number} amountQBT - 转账金额(QBT)\n * @param {Object} options - 选项\n * @param {string} options.memo - 转账备注\n * @returns {Promise<{signature: string, amount: number, from: string, to: string}>}\n */\nexport async function transferQBT(connection, fromKeypair, toAddress, amountQBT, options = {}) {\n const tx = new QBitTransaction(connection);\n\n const keypair = fromKeypair.keypair || fromKeypair;\n tx.transfer(keypair.publicKey, toAddress, amountQBT);\n\n // 添加备注(如果有)\n if (options.memo) {\n tx.addMemo(options.memo);\n }\n\n const signature = await tx.sendAndConfirm(fromKeypair, {\n skipPreflight: options.skipPreflight,\n commitment: options.commitment,\n });\n\n return {\n signature,\n amount: amountQBT,\n from: keypair.publicKey.toBase58(),\n to: toAddress,\n memo: options.memo || null,\n };\n}\n\n/**\n * 快速转账 SPL Token\n * \n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} fromKeypair - 发送方密钥对\n * @param {string} toAddress - 接收方地址\n * @param {string} mintAddress - Token Mint 地址\n * @param {number} amount - 转账数量(原始数量,需自行处理精度)\n * @param {number} decimals - Token 精度\n * @param {Object} options - 选项\n * @returns {Promise<{signature: string, mint: string, amount: number, from: string, to: string}>}\n */\nexport async function transferToken(connection, fromKeypair, toAddress, mintAddress, amount, decimals, options = {}) {\n const tx = new QBitTransaction(connection);\n\n const keypair = fromKeypair.keypair || fromKeypair;\n await tx.transferToken(keypair.publicKey, toAddress, mintAddress, amount, decimals);\n\n if (options.memo) {\n tx.addMemo(options.memo);\n }\n\n const signature = await tx.sendAndConfirm(fromKeypair, {\n skipPreflight: options.skipPreflight,\n commitment: options.commitment,\n });\n\n return {\n signature,\n mint: mintAddress,\n amount,\n from: keypair.publicKey.toBase58(),\n to: toAddress,\n };\n}\n\n/**\n * 估算交易手续费\n * \n * @param {QBitConnection} connection - 链连接\n * @param {Transaction} transaction - 交易对象\n * @returns {Promise<number>} 预估手续费(lamports)\n */\nexport async function estimateTransactionFee(connection, transaction) {\n const conn = connection || getDefaultConnection();\n\n try {\n const raw = await resolveRawConnection(conn);\n const fee = await raw.getFeeForMessage(\n transaction.compileMessage(),\n 'confirmed'\n );\n return fee.value || 5000; // 默认 5000 lamports\n } catch {\n // 如果无法估算,返回 Solana 标准费用\n return 5000;\n }\n}\n","/**\n * QBit Chain SPL Token 生命周期管理\n *\n * 在 transaction.js 的转账能力之外,提供完整的 SPL Token 操作:\n * - 创建 Mint(发行新代币)\n * - 创建 / 获取 Associated Token Account(ATA)\n * - 铸造(mintTo)、销毁(burn)\n * - 授权(approve)/ 取消授权(revoke)\n * - 冻结(freeze)/ 解冻(thaw)账户\n * - 变更权限(setAuthority)、关闭账户(closeAccount)\n *\n * 所有交易均通过 QBitTransaction 的 HTTP 轮询确认机制广播,\n * 避免 QBit 主网对 WebSocket 确认支持不稳定的问题。\n *\n * @example\n * import { createMint, mintTo, getOrCreateTokenAccount } from '@quantabit/qbit-chain-sdk';\n *\n * // 发行一个 6 位精度的代币\n * const { mint } = await createMint(conn, payer, { decimals: 6 });\n *\n * // 给接收方铸造 1000 个(原始数量 = 1000 * 10^6)\n * await mintTo(conn, payer, mint, receiverAddress, 1000 * 1e6);\n */\n\nimport { Keypair, SystemProgram, PublicKey } from '@solana/web3.js';\nimport { QBitTransaction } from './transaction.js';\nimport { getDefaultConnection, resolveRawConnection } from './connection.js';\nimport { toPublicKey } from './utils.js';\nimport { QBitTokenError } from './errors.js';\n\n/**\n * 创建新的 SPL Token Mint(发行新代币)\n *\n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} payer - 手续费支付方(默认也是 mint/freeze authority)\n * @param {Object} options - 选项\n * @param {number} options.decimals - 代币精度(默认 9)\n * @param {PublicKey|string} options.mintAuthority - 铸造权限(默认为 payer)\n * @param {PublicKey|string|null} options.freezeAuthority - 冻结权限(默认为 payer,传 null 表示禁用)\n * @param {Keypair} options.mintKeypair - 自定义 Mint 密钥对(默认随机生成)\n * @returns {Promise<{signature: string, mint: string, decimals: number, mintAuthority: string, freezeAuthority: string|null}>}\n */\nexport async function createMint(connection, payer, options = {}) {\n const conn = connection || getDefaultConnection();\n const payerKp = payer.keypair || payer;\n\n const {\n MINT_SIZE,\n TOKEN_PROGRAM_ID,\n createInitializeMint2Instruction,\n } = await import('@solana/spl-token');\n\n const decimals = options.decimals ?? 9;\n if (!Number.isInteger(decimals) || decimals < 0 || decimals > 9) {\n throw new QBitTokenError('Token decimals 必须是 0-9 之间的整数', '', { decimals });\n }\n\n const mintKeypair = options.mintKeypair || Keypair.generate();\n const mintAuthority = options.mintAuthority ? toPublicKey(options.mintAuthority) : payerKp.publicKey;\n const freezeAuthority = options.freezeAuthority === null\n ? null\n : options.freezeAuthority\n ? toPublicKey(options.freezeAuthority)\n : payerKp.publicKey;\n\n const rentLamports = await conn.getMinimumBalanceForRentExemption(MINT_SIZE);\n\n const tx = new QBitTransaction(conn);\n // 1. 创建 Mint 账户\n tx.addInstruction(SystemProgram.createAccount({\n fromPubkey: payerKp.publicKey,\n newAccountPubkey: mintKeypair.publicKey,\n space: MINT_SIZE,\n lamports: rentLamports,\n programId: TOKEN_PROGRAM_ID,\n }));\n // 2. 初始化 Mint\n tx.addInstruction(createInitializeMint2Instruction(\n mintKeypair.publicKey,\n decimals,\n mintAuthority,\n freezeAuthority,\n TOKEN_PROGRAM_ID,\n ));\n // Mint 账户需作为签名者\n tx.addSigner(mintKeypair);\n\n const signature = await tx.sendAndConfirm(payerKp, {\n skipPreflight: options.skipPreflight,\n commitment: options.commitment,\n });\n\n return {\n signature,\n mint: mintKeypair.publicKey.toBase58(),\n decimals,\n mintAuthority: mintAuthority.toBase58(),\n freezeAuthority: freezeAuthority ? freezeAuthority.toBase58() : null,\n };\n}\n\n/**\n * 获取或创建持有者的 Associated Token Account(ATA)\n * 若不存在则发起创建交易,存在则直接返回地址。\n *\n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} payer - 手续费支付方\n * @param {string} mintAddress - Token Mint 地址\n * @param {string} ownerAddress - Token 所有者地址(默认为 payer)\n * @returns {Promise<{address: string, created: boolean, signature: string|null}>}\n */\nexport async function getOrCreateTokenAccount(connection, payer, mintAddress, ownerAddress) {\n const conn = connection || getDefaultConnection();\n const payerKp = payer.keypair || payer;\n\n const {\n getAssociatedTokenAddress,\n createAssociatedTokenAccountInstruction,\n TOKEN_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID,\n } = await import('@solana/spl-token');\n\n const mintPubkey = toPublicKey(mintAddress);\n const ownerPubkey = ownerAddress ? toPublicKey(ownerAddress) : payerKp.publicKey;\n const ata = await getAssociatedTokenAddress(mintPubkey, ownerPubkey);\n\n const info = await conn.getAccountInfo(ata);\n if (info) {\n return { address: ata.toBase58(), created: false, signature: null };\n }\n\n const tx = new QBitTransaction(conn);\n tx.addInstruction(createAssociatedTokenAccountInstruction(\n payerKp.publicKey,\n ata,\n ownerPubkey,\n mintPubkey,\n TOKEN_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID,\n ));\n\n const signature = await tx.sendAndConfirm(payerKp);\n return { address: ata.toBase58(), created: true, signature };\n}\n\n/**\n * 铸造代币到目标地址(自动创建接收方 ATA)\n *\n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} mintAuthority - 铸造权限密钥对(同时作为手续费支付方)\n * @param {string} mintAddress - Token Mint 地址\n * @param {string} toAddress - 接收方地址(其 ATA 将被铸入)\n * @param {number|bigint} amount - 铸造数量(原始最小单位)\n * @param {Object} options - 选项\n * @returns {Promise<{signature: string, mint: string, to: string, tokenAccount: string, amount: string}>}\n */\nexport async function mintTo(connection, mintAuthority, mintAddress, toAddress, amount, options = {}) {\n const conn = connection || getDefaultConnection();\n const authorityKp = mintAuthority.keypair || mintAuthority;\n\n const {\n getAssociatedTokenAddress,\n createAssociatedTokenAccountInstruction,\n createMintToInstruction,\n TOKEN_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID,\n } = await import('@solana/spl-token');\n\n if (!_isPositiveAmount(amount)) {\n throw new QBitTokenError('铸造数量必须大于 0', mintAddress, { amount: String(amount) });\n }\n\n const mintPubkey = toPublicKey(mintAddress);\n const ownerPubkey = toPublicKey(toAddress);\n const ata = await getAssociatedTokenAddress(mintPubkey, ownerPubkey);\n\n const tx = new QBitTransaction(conn);\n\n const ataInfo = await conn.getAccountInfo(ata);\n if (!ataInfo) {\n tx.addInstruction(createAssociatedTokenAccountInstruction(\n authorityKp.publicKey,\n ata,\n ownerPubkey,\n mintPubkey,\n TOKEN_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID,\n ));\n }\n\n tx.addInstruction(createMintToInstruction(\n mintPubkey,\n ata,\n authorityKp.publicKey,\n BigInt(amount),\n [],\n TOKEN_PROGRAM_ID,\n ));\n\n const signature = await tx.sendAndConfirm(authorityKp, {\n skipPreflight: options.skipPreflight,\n commitment: options.commitment,\n });\n\n return {\n signature,\n mint: mintAddress,\n to: toAddress,\n tokenAccount: ata.toBase58(),\n amount: String(amount),\n };\n}\n\n/**\n * 销毁代币(从持有者 ATA 中扣除并减少总供应)\n *\n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} owner - Token 所有者密钥对\n * @param {string} mintAddress - Token Mint 地址\n * @param {number|bigint} amount - 销毁数量(原始最小单位)\n * @param {Object} options - 选项\n * @param {number} options.decimals - 若提供则使用 burnChecked 进行精度校验\n * @returns {Promise<{signature: string, mint: string, amount: string}>}\n */\nexport async function burn(connection, owner, mintAddress, amount, options = {}) {\n const conn = connection || getDefaultConnection();\n const ownerKp = owner.keypair || owner;\n\n const {\n getAssociatedTokenAddress,\n createBurnInstruction,\n createBurnCheckedInstruction,\n TOKEN_PROGRAM_ID,\n } = await import('@solana/spl-token');\n\n if (!_isPositiveAmount(amount)) {\n throw new QBitTokenError('销毁数量必须大于 0', mintAddress, { amount: String(amount) });\n }\n\n const mintPubkey = toPublicKey(mintAddress);\n const ata = await getAssociatedTokenAddress(mintPubkey, ownerKp.publicKey);\n\n const tx = new QBitTransaction(conn);\n if (Number.isInteger(options.decimals)) {\n tx.addInstruction(createBurnCheckedInstruction(\n ata, mintPubkey, ownerKp.publicKey, BigInt(amount), options.decimals, [], TOKEN_PROGRAM_ID,\n ));\n } else {\n tx.addInstruction(createBurnInstruction(\n ata, mintPubkey, ownerKp.publicKey, BigInt(amount), [], TOKEN_PROGRAM_ID,\n ));\n }\n\n const signature = await tx.sendAndConfirm(ownerKp, {\n skipPreflight: options.skipPreflight,\n commitment: options.commitment,\n });\n\n return { signature, mint: mintAddress, amount: String(amount) };\n}\n\n/**\n * 授权委托方在限额内动用持有者的代币\n *\n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} owner - Token 所有者密钥对\n * @param {string} mintAddress - Token Mint 地址\n * @param {string} delegateAddress - 被授权方地址\n * @param {number|bigint} amount - 授权额度(原始最小单位)\n * @returns {Promise<{signature: string, delegate: string, amount: string}>}\n */\nexport async function approve(connection, owner, mintAddress, delegateAddress, amount, options = {}) {\n const conn = connection || getDefaultConnection();\n const ownerKp = owner.keypair || owner;\n\n const {\n getAssociatedTokenAddress,\n createApproveInstruction,\n TOKEN_PROGRAM_ID,\n } = await import('@solana/spl-token');\n\n const mintPubkey = toPublicKey(mintAddress);\n const ata = await getAssociatedTokenAddress(mintPubkey, ownerKp.publicKey);\n\n const tx = new QBitTransaction(conn);\n tx.addInstruction(createApproveInstruction(\n ata, toPublicKey(delegateAddress), ownerKp.publicKey, BigInt(amount), [], TOKEN_PROGRAM_ID,\n ));\n\n const signature = await tx.sendAndConfirm(ownerKp, {\n skipPreflight: options.skipPreflight,\n commitment: options.commitment,\n });\n\n return { signature, delegate: delegateAddress, amount: String(amount) };\n}\n\n/**\n * 撤销之前对委托方的授权\n *\n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} owner - Token 所有者密钥对\n * @param {string} mintAddress - Token Mint 地址\n * @returns {Promise<{signature: string}>}\n */\nexport async function revoke(connection, owner, mintAddress, options = {}) {\n const conn = connection || getDefaultConnection();\n const ownerKp = owner.keypair || owner;\n\n const {\n getAssociatedTokenAddress,\n createRevokeInstruction,\n TOKEN_PROGRAM_ID,\n } = await import('@solana/spl-token');\n\n const mintPubkey = toPublicKey(mintAddress);\n const ata = await getAssociatedTokenAddress(mintPubkey, ownerKp.publicKey);\n\n const tx = new QBitTransaction(conn);\n tx.addInstruction(createRevokeInstruction(ata, ownerKp.publicKey, [], TOKEN_PROGRAM_ID));\n\n const signature = await tx.sendAndConfirm(ownerKp, {\n skipPreflight: options.skipPreflight,\n commitment: options.commitment,\n });\n\n return { signature };\n}\n\n/**\n * 冻结指定持有者的 Token Account(需 freeze authority)\n *\n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} freezeAuthority - 冻结权限密钥对\n * @param {string} mintAddress - Token Mint 地址\n * @param {string} ownerAddress - 被冻结账户的所有者地址\n * @returns {Promise<{signature: string, tokenAccount: string}>}\n */\nexport async function freezeAccount(connection, freezeAuthority, mintAddress, ownerAddress, options = {}) {\n return _toggleFreeze(connection, freezeAuthority, mintAddress, ownerAddress, true, options);\n}\n\n/**\n * 解冻指定持有者的 Token Account(需 freeze authority)\n *\n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} freezeAuthority - 冻结权限密钥对\n * @param {string} mintAddress - Token Mint 地址\n * @param {string} ownerAddress - 被解冻账户的所有者地址\n * @returns {Promise<{signature: string, tokenAccount: string}>}\n */\nexport async function thawAccount(connection, freezeAuthority, mintAddress, ownerAddress, options = {}) {\n return _toggleFreeze(connection, freezeAuthority, mintAddress, ownerAddress, false, options);\n}\n\n/**\n * 变更 Mint / Account 的权限(mint / freeze / owner / close 权限)\n *\n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} currentAuthority - 当前权限密钥对\n * @param {string} targetAddress - 目标 Mint 或 Token Account 地址\n * @param {string} authorityType - 权限类型: 'MintTokens' | 'FreezeAccount' | 'AccountOwner' | 'CloseAccount'\n * @param {string|null} newAuthorityAddress - 新权限地址,传 null 表示永久放弃该权限\n * @returns {Promise<{signature: string, authorityType: string, newAuthority: string|null}>}\n */\nexport async function setAuthority(connection, currentAuthority, targetAddress, authorityType, newAuthorityAddress, options = {}) {\n const conn = connection || getDefaultConnection();\n const authorityKp = currentAuthority.keypair || currentAuthority;\n\n const {\n createSetAuthorityInstruction,\n AuthorityType,\n TOKEN_PROGRAM_ID,\n } = await import('@solana/spl-token');\n\n const typeEnum = AuthorityType[authorityType];\n if (typeEnum === undefined) {\n throw new QBitTokenError(\n `未知权限类型: ${authorityType}(支持 MintTokens / FreezeAccount / AccountOwner / CloseAccount)`,\n '', { authorityType },\n );\n }\n\n const newAuthority = newAuthorityAddress ? toPublicKey(newAuthorityAddress) : null;\n\n const tx = new QBitTransaction(conn);\n tx.addInstruction(createSetAuthorityInstruction(\n toPublicKey(targetAddress),\n authorityKp.publicKey,\n typeEnum,\n newAuthority,\n [],\n TOKEN_PROGRAM_ID,\n ));\n\n const signature = await tx.sendAndConfirm(authorityKp, {\n skipPreflight: options.skipPreflight,\n commitment: options.commitment,\n });\n\n return {\n signature,\n authorityType,\n newAuthority: newAuthority ? newAuthority.toBase58() : null,\n };\n}\n\n/**\n * 关闭一个空的 Token Account,回收租金到目标地址\n *\n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} owner - Token 所有者密钥对\n * @param {string} mintAddress - Token Mint 地址(用于定位所有者 ATA)\n * @param {string} destinationAddress - 租金回收地址(默认为 owner)\n * @returns {Promise<{signature: string, tokenAccount: string}>}\n */\nexport async function closeTokenAccount(connection, owner, mintAddress, destinationAddress, options = {}) {\n const conn = connection || getDefaultConnection();\n const ownerKp = owner.keypair || owner;\n\n const {\n getAssociatedTokenAddress,\n createCloseAccountInstruction,\n TOKEN_PROGRAM_ID,\n } = await import('@solana/spl-token');\n\n const mintPubkey = toPublicKey(mintAddress);\n const ata = await getAssociatedTokenAddress(mintPubkey, ownerKp.publicKey);\n const destination = destinationAddress ? toPublicKey(destinationAddress) : ownerKp.publicKey;\n\n const tx = new QBitTransaction(conn);\n tx.addInstruction(createCloseAccountInstruction(\n ata, destination, ownerKp.publicKey, [], TOKEN_PROGRAM_ID,\n ));\n\n const signature = await tx.sendAndConfirm(ownerKp, {\n skipPreflight: options.skipPreflight,\n commitment: options.commitment,\n });\n\n return { signature, tokenAccount: ata.toBase58() };\n}\n\n/**\n * 查询 Token Account 的委托授权信息\n *\n * @param {QBitConnection} connection - 链连接\n * @param {string} tokenAccountAddress - Token Account 地址\n * @returns {Promise<{delegate: string|null, delegatedAmount: string}>}\n */\nexport async function getTokenAccountDelegation(connection, tokenAccountAddress) {\n const conn = connection || getDefaultConnection();\n const raw = await resolveRawConnection(conn);\n const info = await raw.getParsedAccountInfo(new PublicKey(tokenAccountAddress));\n const parsed = info?.value?.data?.parsed?.info;\n return {\n delegate: parsed?.delegate || null,\n delegatedAmount: parsed?.delegatedAmount?.amount || '0',\n };\n}\n\n// ============ 内部辅助 ============\n\nfunction _isPositiveAmount(amount) {\n try {\n return BigInt(amount) > 0n;\n } catch {\n return false;\n }\n}\n\nasync function _toggleFreeze(connection, freezeAuthority, mintAddress, ownerAddress, freeze, options = {}) {\n const conn = connection || getDefaultConnection();\n const authorityKp = freezeAuthority.keypair || freezeAuthority;\n\n const {\n getAssociatedTokenAddress,\n createFreezeAccountInstruction,\n createThawAccountInstruction,\n TOKEN_PROGRAM_ID,\n } = await import('@solana/spl-token');\n\n const mintPubkey = toPublicKey(mintAddress);\n const ata = await getAssociatedTokenAddress(mintPubkey, toPublicKey(ownerAddress));\n\n const tx = new QBitTransaction(conn);\n const ix = freeze\n ? createFreezeAccountInstruction(ata, mintPubkey, authorityKp.publicKey, [], TOKEN_PROGRAM_ID)\n : createThawAccountInstruction(ata, mintPubkey, authorityKp.publicKey, [], TOKEN_PROGRAM_ID);\n tx.addInstruction(ix);\n\n const signature = await tx.sendAndConfirm(authorityKp, {\n skipPreflight: options.skipPreflight,\n commitment: options.commitment,\n });\n\n return { signature, tokenAccount: ata.toBase58() };\n}\n","/**\n * QBit Anchor Memo utilities\n *\n * Standardizes small JSON payloads stored in Solana-compatible Memo\n * instructions. Business SDKs can use this to anchor DID documents,\n * credentials, NFTs, red packets, tasks, or other off-chain objects.\n */\n\nimport bs58 from 'bs58';\nimport { QBitTransaction } from './transaction.js';\nimport { resolveRawConnection } from './connection.js';\nimport { CHAIN_PROGRAMS } from './constants.js';\n\nexport const QBIT_ANCHOR_NAMESPACE = 'qbit_anchor';\nexport const QBIT_DID_ANCHOR_NAMESPACE = 'qbit_did';\nexport const MAX_QBIT_ANCHOR_MEMO_BYTES = 512;\n\nfunction removeEmptyFields(input) {\n return Object.fromEntries(\n Object.entries(input).filter(([, value]) => value !== undefined && value !== null && value !== '')\n );\n}\n\nexport function buildQBitAnchorMemo(payload, options = {}) {\n const namespace = options.namespace || QBIT_ANCHOR_NAMESPACE;\n const memoPayload = removeEmptyFields({\n ns: namespace,\n action: payload?.action || 'anchor',\n subject: payload?.subject,\n did: payload?.did,\n credential_id: payload?.credential_id,\n resource_id: payload?.resource_id,\n document_hash: payload?.document_hash,\n credential_hash: payload?.credential_hash,\n content_hash: payload?.content_hash,\n version: payload?.version,\n timestamp: payload?.timestamp,\n ...payload?.extra,\n });\n\n const memo = JSON.stringify(memoPayload);\n const memoBytes = new TextEncoder().encode(memo);\n const maxBytes = options.maxBytes || MAX_QBIT_ANCHOR_MEMO_BYTES;\n\n if (memoBytes.length > maxBytes) {\n throw new Error(`QBit anchor memo too large: ${memoBytes.length} bytes, max ${maxBytes} bytes`);\n }\n\n return memo;\n}\n\nexport function parseQBitAnchorMemo(memo, options = {}) {\n if (!memo || typeof memo !== 'string') return null;\n\n try {\n const parsed = JSON.parse(memo);\n if (!parsed || typeof parsed !== 'object') return null;\n if (options.namespace && parsed.ns !== options.namespace) return null;\n if (!parsed.ns || !parsed.action) return null;\n return parsed;\n } catch {\n return null;\n }\n}\n\nfunction accountKeyAt(transaction, index) {\n const key = transaction?.transaction?.message?.accountKeys?.[index];\n return (\n key?.pubkey?.toBase58?.() ||\n key?.pubkey?.toString?.() ||\n key?.pubkey ||\n key?.toBase58?.() ||\n key?.toString?.() ||\n key ||\n null\n );\n}\n\nfunction instructionProgramId(instruction, transaction) {\n if (typeof instruction?.programIdIndex === 'number') {\n return accountKeyAt(transaction, instruction.programIdIndex);\n }\n\n return (\n instruction?.programId?.toBase58?.() ||\n instruction?.programId?.toString?.() ||\n instruction?.programId ||\n null\n );\n}\n\nfunction decodeMemoInstruction(instruction, transaction) {\n if (!instruction) return null;\n if (instruction.program === 'spl-memo' && typeof instruction.parsed === 'string') {\n return instruction.parsed;\n }\n\n const programId = instructionProgramId(instruction, transaction);\n const isMemoProgram = programId === CHAIN_PROGRAMS.MEMO_PROGRAM || instruction.program === 'memo';\n if (!isMemoProgram || typeof instruction.data !== 'string') {\n return null;\n }\n\n try {\n return new TextDecoder().decode(bs58.decode(instruction.data));\n } catch {\n return null;\n }\n}\n\nfunction collectInstructions(transaction) {\n const instructions = [];\n const messageInstructions = transaction?.transaction?.message?.instructions;\n if (Array.isArray(messageInstructions)) {\n instructions.push(...messageInstructions);\n }\n\n const innerInstructions = transaction?.meta?.innerInstructions;\n if (Array.isArray(innerInstructions)) {\n for (const group of innerInstructions) {\n if (Array.isArray(group.instructions)) {\n instructions.push(...group.instructions);\n }\n }\n }\n\n return instructions;\n}\n\nexport function extractQBitAnchorMemos(transaction, options = {}) {\n return collectInstructions(transaction)\n .map((instruction) => decodeMemoInstruction(instruction, transaction))\n .map((memo) => parseQBitAnchorMemo(memo, options))\n .filter(Boolean);\n}\n\nexport async function createQBitAnchorTransaction(connection, feePayer, payload, options = {}) {\n if (!connection) {\n throw new Error('Missing QBit connection');\n }\n if (!feePayer) {\n throw new Error('Missing fee payer');\n }\n\n const memo = buildQBitAnchorMemo(payload, options);\n const txBuilder = new QBitTransaction(connection);\n txBuilder.addMemo(memo);\n\n if (options.priorityFee) {\n txBuilder.setPriorityFee(options.priorityFee);\n }\n\n const transaction = await txBuilder.build(feePayer);\n return {\n transaction,\n memo,\n payload: parseQBitAnchorMemo(memo),\n };\n}\n\nfunction extractTxHash(result) {\n if (!result) return null;\n if (typeof result === 'string') return result;\n return result.signature || result.txHash || result.tx_hash || result.hash || null;\n}\n\nfunction resolveAnchorMemo(memoOrPayload, options = {}) {\n if (typeof memoOrPayload === 'string') return memoOrPayload;\n return buildQBitAnchorMemo(memoOrPayload, options);\n}\n\n/**\n * 等待锚定交易确认(HTTP 轮询 getSignatureStatuses)\n *\n * QBit 主网 RPC 对 WebSocket 确认支持不稳定,统一采用 HTTP 轮询。\n *\n * @param {Object} connection - QBitConnection(或暴露 raw / getRawConnection)\n * @param {string} signature - 交易签名\n * @param {Object} options - { commitment, pollIntervalMs, maxPolls, timeoutMs }\n * @returns {Promise<{confirmed: boolean, slot: number|null, status: string|null, timedOut?: boolean}>}\n */\nexport async function waitForAnchorConfirmation(connection, signature, options = {}) {\n const commitment = options.commitment || 'confirmed';\n const pollMs = options.pollIntervalMs || 1200;\n const maxPolls = options.timeoutMs\n ? Math.max(1, Math.ceil(options.timeoutMs / pollMs))\n : options.maxPolls || 40;\n\n const raw = await resolveRawConnection(connection);\n if (!raw?.getSignatureStatuses) {\n throw new Error('连接不支持 getSignatureStatuses,无法确认交易');\n }\n\n for (let i = 0; i < maxPolls; i += 1) {\n try {\n const statuses = await raw.getSignatureStatuses([signature], { searchTransactionHistory: true });\n const status = statuses?.value?.[0];\n\n // 若上链执行返回了具体错误,则说明交易本身执行失败,立刻抛出错误\n if (status?.err) {\n throw new Error(`锚定交易确认失败: ${JSON.stringify(status.err)}`);\n }\n\n const confirmationStatus = status?.confirmationStatus;\n if (\n confirmationStatus === commitment ||\n confirmationStatus === 'finalized' ||\n (commitment === 'confirmed' && status?.confirmations != null && status?.confirmations > 0)\n ) {\n return { confirmed: true, slot: status?.slot ?? null, status: confirmationStatus };\n }\n } catch (err) {\n // 区分交易失败与网络波动。若是网络或节点请求失败,打印警告并继续下一次轮询,不直接中断\n if (err.message?.startsWith('锚定交易确认失败')) {\n throw err;\n }\n console.warn(`[waitForAnchorConfirmation] 轮询签名状态失败 (第 ${i + 1} 次尝试): ${err.message}`);\n }\n\n if (i < maxPolls - 1) {\n await new Promise((resolve) => setTimeout(resolve, pollMs));\n }\n }\n\n return { confirmed: false, slot: null, status: null, timedOut: true };\n}\n\n/**\n * 使用浏览器/插件钱包广播一笔 QBit anchor memo 交易\n *\n * 支持两类 provider:\n * - 同时签名并发送:`signAndSendTransaction(tx, opts)`\n * - 仅签名:`signTransaction(tx)`(随后由 SDK 调用 connection.sendTransaction)\n *\n * @param {Object} connection - QBitConnection\n * @param {Object} provider - 钱包 provider\n * @param {Object|string} memoOrPayload - anchor 负载对象,或预构建的 memo 字符串\n * @param {Object} options - 选项\n * @param {string} options.address - 手续费支付方地址(默认取 provider.publicKey)\n * @param {string} options.namespace - 当传入负载对象时使用的命名空间\n * @param {number} options.priorityFee - 优先费(microLamports)\n * @param {boolean} options.waitForConfirmation - 是否等待确认\n * @returns {Promise<{txHash: string|null, memo: string, confirmed?: boolean, slot?: number|null, raw: any}>}\n */\nexport async function broadcastQBitAnchor(connection, provider, memoOrPayload, options = {}) {\n if (!connection) {\n throw new Error('Missing QBit connection');\n }\n if (!provider) {\n throw new Error('Missing wallet provider');\n }\n\n const payerAddress =\n options.address ||\n provider.publicKey?.toBase58?.() ||\n provider.publicKey?.toString?.();\n\n if (!payerAddress) {\n throw new Error('Missing wallet address');\n }\n\n const memo = resolveAnchorMemo(memoOrPayload, options);\n const txBuilder = new QBitTransaction(connection);\n txBuilder.addMemo(memo);\n if (options.priorityFee) {\n txBuilder.setPriorityFee(options.priorityFee);\n }\n\n const transaction = await txBuilder.build(payerAddress);\n\n let txHash;\n let raw;\n if (typeof provider.signAndSendTransaction === 'function') {\n const result = await provider.signAndSendTransaction(transaction, {\n skipPreflight: options.skipPreflight || false,\n preflightCommitment: options.preflightCommitment || 'confirmed',\n });\n txHash = extractTxHash(result);\n raw = result;\n } else if (typeof provider.signTransaction === 'function') {\n const signed = await provider.signTransaction(transaction);\n txHash = await connection.sendTransaction(signed, {\n skipPreflight: options.skipPreflight || false,\n preflightCommitment: options.preflightCommitment || 'confirmed',\n });\n raw = signed;\n } else {\n throw new Error('当前钱包不支持 signTransaction/signAndSendTransaction');\n }\n\n const response = { txHash, memo, raw };\n\n if (options.waitForConfirmation && txHash) {\n const confirmation = await waitForAnchorConfirmation(connection, txHash, options);\n response.confirmed = confirmation.confirmed;\n response.slot = confirmation.slot;\n }\n\n return response;\n}\n\n/**\n * 校验某笔交易是否成功锚定了 QBit memo(链上回执验证)\n *\n * @param {Object} connection - QBitConnection\n * @param {string} txHash - 交易签名\n * @param {Object} options - { namespace, commitment, match }\n * @returns {Promise<{found: boolean, matched: boolean, memos: Array<Object>}>}\n */\nexport async function verifyAnchoredMemo(connection, txHash, options = {}) {\n if (!txHash) {\n throw new Error('Missing txHash');\n }\n\n const raw = await resolveRawConnection(connection);\n const tx = await raw.getParsedTransaction(txHash, {\n maxSupportedTransactionVersion: 0,\n commitment: options.commitment || 'confirmed',\n });\n\n if (!tx) {\n return { found: false, matched: false, memos: [] };\n }\n\n const memos = extractQBitAnchorMemos(tx, { namespace: options.namespace });\n let matched = memos.length > 0;\n if (options.match && memos.length > 0) {\n matched = memos.some((m) =>\n Object.entries(options.match).every(([key, value]) => m[key] === value)\n );\n }\n\n return { found: memos.length > 0, matched, memos };\n}\n","/**\n * QBit Chain 账户查询\n * \n * 账户信息、余额、Token 持仓、交易历史、Token Mint 信息等查询功能\n */\n\nimport { PublicKey } from '@solana/web3.js';\nimport { getDefaultConnection, resolveRawConnection, withRetry } from './connection.js';\nimport { lamportsToQbt, toPublicKey } from './utils.js';\nimport { CHAIN_PROGRAMS } from './constants.js';\nimport { QBitTokenError } from './errors.js';\n\n/**\n * 获取账户详细信息\n * \n * @param {string} address - 账户地址\n * @param {QBitConnection} connection - 链连接(可选)\n * @returns {Promise<Object|null>} 账户信息\n */\nexport async function getAccountInfo(address, connection) {\n const conn = connection || getDefaultConnection();\n const raw = await resolveRawConnection(conn);\n const pubkey = toPublicKey(address);\n const info = await withRetry(\n () => raw.getAccountInfo(pubkey),\n 3,\n 'getAccountInfo'\n );\n\n if (!info) return null;\n\n return {\n address,\n lamports: info.lamports,\n qbt: lamportsToQbt(info.lamports),\n owner: info.owner.toBase58(),\n executable: info.executable,\n rentEpoch: info.rentEpoch,\n dataSize: info.data.length,\n };\n}\n\n/**\n * 获取账户余额\n * \n * @param {string} address - 账户地址\n * @param {QBitConnection} connection - 链连接(可选)\n * @returns {Promise<{lamports: number, qbt: number}>} 余额\n */\nexport async function getBalance(address, connection) {\n const conn = connection || getDefaultConnection();\n const lamports = await conn.getBalance(address);\n return {\n lamports,\n qbt: lamportsToQbt(lamports),\n };\n}\n\n/**\n * 获取账户的 SPL Token 持仓列表\n * \n * @param {string} ownerAddress - 持有者地址\n * @param {QBitConnection} connection - 链连接(可选)\n * @returns {Promise<Array<{mint: string, amount: string, decimals: number, uiAmount: number}>>}\n */\nexport async function getTokenAccounts(ownerAddress, connection) {\n const conn = connection || getDefaultConnection();\n const raw = await resolveRawConnection(conn);\n const pubkey = toPublicKey(ownerAddress);\n\n const tokenProgramId = new PublicKey(CHAIN_PROGRAMS.TOKEN_PROGRAM);\n\n const response = await withRetry(\n () => raw.getParsedTokenAccountsByOwner(pubkey, { programId: tokenProgramId }),\n 3,\n 'getTokenAccounts'\n );\n\n return response.value.map(item => {\n const parsed = item.account.data.parsed?.info;\n return {\n address: item.pubkey.toBase58(),\n mint: parsed?.mint || '',\n owner: parsed?.owner || ownerAddress,\n amount: parsed?.tokenAmount?.amount || '0',\n decimals: parsed?.tokenAmount?.decimals || 0,\n uiAmount: parsed?.tokenAmount?.uiAmount || 0,\n };\n });\n}\n\n/**\n * 获取 Token Mint 信息\n * \n * @param {string} mintAddress - Token Mint 地址\n * @param {QBitConnection} connection - 链连接(可选)\n * @returns {Promise<Object>} { supply, decimals, mintAuthority, freezeAuthority, isInitialized }\n */\nexport async function getTokenMintInfo(mintAddress, connection) {\n const conn = connection || getDefaultConnection();\n const raw = await resolveRawConnection(conn);\n const mintPubkey = toPublicKey(mintAddress);\n\n const info = await withRetry(\n () => raw.getParsedAccountInfo(mintPubkey),\n 3,\n 'getTokenMintInfo'\n );\n\n if (!info.value) {\n throw new QBitTokenError(`Token Mint 不存在: ${mintAddress}`, mintAddress);\n }\n\n const parsed = info.value.data.parsed?.info;\n if (!parsed) {\n throw new QBitTokenError(`无法解析 Token Mint 数据: ${mintAddress}`, mintAddress);\n }\n\n return {\n address: mintAddress,\n supply: parsed.supply,\n decimals: parsed.decimals,\n mintAuthority: parsed.mintAuthority || null,\n freezeAuthority: parsed.freezeAuthority || null,\n isInitialized: parsed.isInitialized ?? true,\n };\n}\n\n/**\n * 获取或创建 Associated Token Account(ATA)\n * 返回 ATA 地址,如果不存在则返回 null(需要创建)\n * \n * @param {string} ownerAddress - Token 所有者地址\n * @param {string} mintAddress - Token Mint 地址\n * @param {QBitConnection} connection - 链连接(可选)\n * @returns {Promise<{address: string, exists: boolean}>}\n */\nexport async function getAssociatedTokenAccount(ownerAddress, mintAddress, connection) {\n const { getAssociatedTokenAddress } = await import('@solana/spl-token');\n\n const ownerPubkey = toPublicKey(ownerAddress);\n const mintPubkey = toPublicKey(mintAddress);\n\n const ataAddress = await getAssociatedTokenAddress(mintPubkey, ownerPubkey);\n\n const conn = connection || getDefaultConnection();\n const raw = await resolveRawConnection(conn);\n const info = await raw.getAccountInfo(ataAddress);\n\n return {\n address: ataAddress.toBase58(),\n exists: info !== null,\n };\n}\n\n/**\n * 获取账户的交易历史\n * \n * @param {string} address - 账户地址\n * @param {Object} options - 查询选项\n * @param {number} options.limit - 返回数量(默认 20,最大 1000)\n * @param {string} options.before - 在此签名之前的交易\n * @param {string} options.until - 直到此签名的交易\n * @param {boolean} options.withDetails - 是否获取交易详情(默认 false,较慢)\n * @param {QBitConnection} connection - 链连接(可选)\n * @returns {Promise<Array>} 交易历史列表\n */\nexport async function getTransactionHistory(address, options = {}, connection) {\n const conn = connection || getDefaultConnection();\n const raw = await resolveRawConnection(conn);\n const pubkey = toPublicKey(address);\n\n // 获取签名列表\n const signatures = await withRetry(\n () => raw.getSignaturesForAddress(pubkey, {\n limit: options.limit || 20,\n before: options.before,\n until: options.until,\n }),\n 3,\n 'getSignaturesForAddress'\n );\n\n // 基础信息(签名 + 状态 + 时间)\n const txList = signatures.map(sig => ({\n signature: sig.signature,\n slot: sig.slot,\n blockTime: sig.blockTime,\n confirmationStatus: sig.confirmationStatus,\n err: sig.err,\n memo: sig.memo,\n }));\n\n // 如果需要详情,批量获取\n if (options.withDetails && txList.length > 0) {\n const detailPromises = txList.map(tx =>\n raw.getTransaction(tx.signature, {\n maxSupportedTransactionVersion: 0,\n }).catch(() => null)\n );\n\n const details = await Promise.all(detailPromises);\n\n txList.forEach((tx, i) => {\n if (details[i]) {\n tx.fee = details[i].meta?.fee;\n tx.preBalances = details[i].meta?.preBalances;\n tx.postBalances = details[i].meta?.postBalances;\n tx.logMessages = details[i].meta?.logMessages;\n }\n });\n }\n\n return txList;\n}\n\n/**\n * 获取账户的质押账户列表\n * \n * @param {string} ownerAddress - 质押所有者地址\n * @param {QBitConnection} connection - 链连接(可选)\n * @returns {Promise<Array>} 质押账户列表\n */\nexport async function getStakeAccounts(ownerAddress, connection) {\n // 委托给 stake.js 模块实现\n const { getStakeAccounts: _getStakeAccounts } = await import('./stake.js');\n return _getStakeAccounts(connection, ownerAddress);\n}\n","/**\n * QBit Chain 质押(Stake)模块\n * \n * 提供原生质押操作:创建质押账户、委托、取消委托、提取收益、查询状态。\n * 基于 Solana Stake Program 兼容接口实现。\n */\n\nimport {\n PublicKey,\n Keypair,\n Transaction,\n StakeProgram,\n Authorized,\n Lockup,\n sendAndConfirmTransaction,\n} from '@solana/web3.js';\n\nimport { CHAIN_PROGRAMS, LAMPORTS_PER_QBT } from './constants.js';\nimport { getDefaultConnection, resolveRawConnection, withRetry } from './connection.js';\nimport { toPublicKey, qbtToLamports, lamportsToQbt } from './utils.js';\n\n/**\n * 创建质押账户并委托给验证者\n * \n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} fromKeypair - 资金来源密钥对(也作为 staker 和 withdrawer)\n * @param {string} voteAccountAddress - 验证者的 Vote Account 地址\n * @param {number} amountQBT - 质押金额(QBT)\n * @param {Object} options - 选项\n * @param {Keypair} options.stakeKeypair - 自定义质押账户密钥对(默认自动生成)\n * @param {string} options.staker - 质押授权地址(默认为 from)\n * @param {string} options.withdrawer - 提取授权地址(默认为 from)\n * @returns {Promise<{signature: string, stakeAccount: string, amount: number}>}\n */\nexport async function createStakeAccount(connection, fromKeypair, voteAccountAddress, amountQBT, options = {}) {\n const conn = connection || getDefaultConnection();\n const from = fromKeypair.keypair || fromKeypair;\n\n // 生成质押账户密钥对\n const stakeKeypair = options.stakeKeypair || Keypair.generate();\n\n // 质押授权配置\n const staker = options.staker ? toPublicKey(options.staker) : from.publicKey;\n const withdrawer = options.withdrawer ? toPublicKey(options.withdrawer) : from.publicKey;\n const authorized = new Authorized(staker, withdrawer);\n\n // 无锁定期\n const lockup = new Lockup(0, 0, from.publicKey);\n\n const lamports = qbtToLamports(amountQBT);\n\n // 获取租金豁免最低余额\n const rentExemption = await conn.getMinimumBalanceForRentExemption(\n StakeProgram.space\n );\n\n // 确保质押金额大于租金豁免\n const totalLamports = Math.max(lamports, rentExemption);\n\n // 创建质押账户 + 初始化 + 委托\n const createStakeAccountTx = StakeProgram.createAccount({\n fromPubkey: from.publicKey,\n stakePubkey: stakeKeypair.publicKey,\n authorized,\n lockup,\n lamports: totalLamports,\n });\n\n // 委托给验证者\n const delegateTx = StakeProgram.delegate({\n stakePubkey: stakeKeypair.publicKey,\n authorizedPubkey: staker,\n votePubkey: toPublicKey(voteAccountAddress),\n });\n\n // 合并交易\n const tx = new Transaction();\n tx.add(...createStakeAccountTx.instructions);\n tx.add(...delegateTx.instructions);\n const raw = await resolveRawConnection(conn);\n\n const signature = await sendAndConfirmTransaction(\n raw,\n tx,\n [from, stakeKeypair],\n { commitment: 'confirmed' }\n );\n\n return {\n signature,\n stakeAccount: stakeKeypair.publicKey.toBase58(),\n amount: amountQBT,\n validator: voteAccountAddress,\n };\n}\n\n/**\n * 委托质押给验证者(已有质押账户)\n * \n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} authorizedKeypair - 质押授权密钥对\n * @param {string} stakeAccountAddress - 质押账户地址\n * @param {string} voteAccountAddress - 验证者 Vote Account 地址\n * @returns {Promise<string>} 交易签名\n */\nexport async function delegate(connection, authorizedKeypair, stakeAccountAddress, voteAccountAddress) {\n const conn = connection || getDefaultConnection();\n const authorized = authorizedKeypair.keypair || authorizedKeypair;\n\n const tx = StakeProgram.delegate({\n stakePubkey: toPublicKey(stakeAccountAddress),\n authorizedPubkey: authorized.publicKey,\n votePubkey: toPublicKey(voteAccountAddress),\n });\n const raw = await resolveRawConnection(conn);\n\n return sendAndConfirmTransaction(\n raw,\n tx,\n [authorized],\n { commitment: 'confirmed' }\n );\n}\n\n/**\n * 取消质押委托\n * \n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} authorizedKeypair - 质押授权密钥对\n * @param {string} stakeAccountAddress - 质押账户地址\n * @returns {Promise<string>} 交易签名\n */\nexport async function deactivate(connection, authorizedKeypair, stakeAccountAddress) {\n const conn = connection || getDefaultConnection();\n const authorized = authorizedKeypair.keypair || authorizedKeypair;\n\n const tx = StakeProgram.deactivate({\n stakePubkey: toPublicKey(stakeAccountAddress),\n authorizedPubkey: authorized.publicKey,\n });\n const raw = await resolveRawConnection(conn);\n\n return sendAndConfirmTransaction(\n raw,\n tx,\n [authorized],\n { commitment: 'confirmed' }\n );\n}\n\n/**\n * 提取质押收益/本金\n * 需要质押状态为 deactivated 才能提取全部本金\n * \n * @param {QBitConnection} connection - 链连接\n * @param {Keypair|QBitKeypair} withdrawerKeypair - 提取授权密钥对\n * @param {string} stakeAccountAddress - 质押账户地址\n * @param {string} toAddress - 提取到的目标地址\n * @param {number} amountQBT - 提取金额(QBT),0 表示全部\n * @returns {Promise<string>} 交易签名\n */\nexport async function withdrawStake(connection, withdrawerKeypair, stakeAccountAddress, toAddress, amountQBT = 0) {\n const conn = connection || getDefaultConnection();\n const withdrawer = withdrawerKeypair.keypair || withdrawerKeypair;\n const stakePubkey = toPublicKey(stakeAccountAddress);\n\n // 如果金额为 0,提取全部余额\n let lamports;\n if (amountQBT === 0) {\n lamports = await conn.getBalance(stakePubkey);\n } else {\n lamports = qbtToLamports(amountQBT);\n }\n\n const tx = StakeProgram.withdraw({\n stakePubkey,\n authorizedPubkey: withdrawer.publicKey,\n toPubkey: toPublicKey(toAddress),\n lamports,\n });\n const raw = await resolveRawConnection(conn);\n\n return sendAndConfirmTransaction(\n raw,\n tx,\n [withdrawer],\n { commitment: 'confirmed' }\n );\n}\n\n/**\n * 查询质押账户的激活状态\n * \n * @param {QBitConnection} connection - 链连接\n * @param {string} stakeAccountAddress - 质押账户地址\n * @returns {Promise<{state: string, active: number, inactive: number}>}\n * state: 'active' | 'inactive' | 'activating' | 'deactivating'\n */\nexport async function getStakeActivation(connection, stakeAccountAddress) {\n const conn = connection || getDefaultConnection();\n const stakePubkey = toPublicKey(stakeAccountAddress);\n const raw = await resolveRawConnection(conn);\n\n return withRetry(\n () => raw.getStakeActivation(stakePubkey),\n 3,\n 'getStakeActivation'\n );\n}\n\n/**\n * 获取指定地址拥有的所有质押账户\n * \n * @param {QBitConnection} connection - 链连接\n * @param {string} ownerAddress - 质押所有者地址\n * @returns {Promise<Array<{address: string, lamports: number, qbt: number, validator: string|null}>>}\n */\nexport async function getStakeAccounts(connection, ownerAddress) {\n const conn = connection || getDefaultConnection();\n const raw = await resolveRawConnection(conn);\n const ownerPubkey = toPublicKey(ownerAddress);\n\n // 通过 getProgramAccounts 查询 Stake Program 下属于该 owner 的账户\n const accounts = await withRetry(\n () => raw.getParsedProgramAccounts(\n new PublicKey(CHAIN_PROGRAMS.STAKE_PROGRAM),\n {\n filters: [\n { dataSize: 200 }, // Stake 账户固定大小\n {\n memcmp: {\n offset: 12, // authorized.staker 偏移\n bytes: ownerPubkey.toBase58(),\n },\n },\n ],\n }\n ),\n 3,\n 'getStakeAccounts'\n );\n\n return accounts.map(acc => {\n const parsed = acc.account.data.parsed?.info;\n return {\n address: acc.pubkey.toBase58(),\n lamports: acc.account.lamports,\n qbt: lamportsToQbt(acc.account.lamports),\n validator: parsed?.stake?.delegation?.voter || null,\n state: parsed?.stake ? 'delegated' : 'initialized',\n staker: parsed?.meta?.authorized?.staker || null,\n withdrawer: parsed?.meta?.authorized?.withdrawer || null,\n };\n });\n}\n\n/**\n * 获取当前验证者列表(当前活跃 + 滞后)\n * \n * @param {QBitConnection} connection - 链连接\n * @returns {Promise<{current: Array, delinquent: Array}>}\n */\nexport async function getValidators(connection) {\n const conn = connection || getDefaultConnection();\n const raw = await resolveRawConnection(conn);\n\n const voteAccounts = await withRetry(\n () => raw.getVoteAccounts(),\n 3,\n 'getVoteAccounts'\n );\n\n return {\n current: voteAccounts.current.map(v => ({\n votePubkey: v.votePubkey,\n nodePubkey: v.nodePubkey,\n activatedStake: v.activatedStake,\n activatedStakeQBT: lamportsToQbt(v.activatedStake),\n commission: v.commission,\n lastVote: v.lastVote,\n epochCredits: v.epochCredits,\n })),\n delinquent: voteAccounts.delinquent.map(v => ({\n votePubkey: v.votePubkey,\n nodePubkey: v.nodePubkey,\n activatedStake: v.activatedStake,\n activatedStakeQBT: lamportsToQbt(v.activatedStake),\n commission: v.commission,\n lastVote: v.lastVote,\n })),\n totalValidators: voteAccounts.current.length + voteAccounts.delinquent.length,\n totalStake: lamportsToQbt(\n voteAccounts.current.reduce((sum, v) => sum + v.activatedStake, 0) +\n voteAccounts.delinquent.reduce((sum, v) => sum + v.activatedStake, 0)\n ),\n };\n}\n","/**\n * QBit Chain RPC 便捷方法\n * \n * 独立的 RPC 查询函数,不依赖 QBitConnection 实例。\n * 适合一次性查询场景或服务端调用。\n * 所有方法均通过 QBitConnection 内置的重试机制自动容错。\n */\n\nimport { getDefaultConnection } from './connection.js';\nimport { lamportsToQbt } from './utils.js';\n\n/**\n * 检查链健康状态\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<string>} 'ok' 表示正常\n */\nexport async function getChainHealth(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getHealth();\n}\n\n/**\n * 获取链版本信息\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<Object>} { 'qbit-core': '...', 'feature-set': ... }\n */\nexport async function getChainVersion(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getVersion();\n}\n\n/**\n * 获取当前区块高度\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<number>}\n */\nexport async function getBlockHeight(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getBlockHeight();\n}\n\n/**\n * 获取当前 Slot\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<number>}\n */\nexport async function getSlot(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getSlot();\n}\n\n/**\n * 获取当前纪元信息\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<Object>}\n */\nexport async function getEpochInfo(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getEpochInfo();\n}\n\n/**\n * 获取最新 Blockhash\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<Object>} { blockhash, lastValidBlockHeight }\n */\nexport async function getLatestBlockhash(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getLatestBlockhash();\n}\n\n/**\n * 获取创世区块哈希\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<string>}\n */\nexport async function getGenesisHash(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getGenesisHash();\n}\n\n/**\n * 获取链总供应量\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<Object>}\n */\nexport async function getSupply(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getSupply();\n}\n\n/**\n * 获取租金豁免最低余额\n * @param {number} dataSize - 数据大小(字节)\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<number>} lamports\n */\nexport async function getMinimumBalanceForRentExemption(dataSize = 0, connection) {\n const conn = connection || getDefaultConnection();\n return conn.getMinimumBalanceForRentExemption(dataSize);\n}\n\n/**\n * 获取集群节点列表\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<Array>} 节点信息列表\n */\nexport async function getClusterNodes(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getClusterNodes();\n}\n\n/**\n * 获取验证者投票账户列表\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<Object>} { current, delinquent }\n */\nexport async function getVoteAccounts(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getVoteAccounts();\n}\n\n/**\n * 获取已确认交易总数\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<number>}\n */\nexport async function getTransactionCount(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getTransactionCount();\n}\n\n/**\n * 获取指定 Slot 的区块详情\n * @param {number} slot - 区块 Slot\n * @param {Object} options - 选项\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<Object|null>}\n */\nexport async function getBlock(slot, options = {}, connection) {\n const conn = connection || getDefaultConnection();\n return conn.getBlock(slot, options);\n}\n\n/**\n * 获取指定 Slot 的出块时间(Unix 秒)\n * @param {number} slot - 区块 Slot\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<number|null>}\n */\nexport async function getBlockTime(slot, connection) {\n const conn = connection || getDefaultConnection();\n return conn.getBlockTime(slot);\n}\n\n/**\n * 获取一个区间内已确认的区块 Slot 列表\n * @param {number} startSlot - 起始 Slot\n * @param {number} [endSlot] - 结束 Slot\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<number[]>}\n */\nexport async function getBlocks(startSlot, endSlot, connection) {\n const conn = connection || getDefaultConnection();\n return conn.getBlocks(startSlot, endSlot);\n}\n\n/**\n * 获取近期出块性能采样数据\n * @param {number} limit - 采样数量(默认 5)\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<Array>}\n */\nexport async function getRecentPerformanceSamples(limit = 5, connection) {\n const conn = connection || getDefaultConnection();\n return conn.getRecentPerformanceSamples(limit);\n}\n\n/**\n * 获取当前通胀率\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<Object>}\n */\nexport async function getInflationRate(connection) {\n const conn = connection || getDefaultConnection();\n return conn.getInflationRate();\n}\n\n/**\n * 请求空投(仅 devnet / localnet)\n * @param {string} address - 接收地址\n * @param {number} amountQBT - 空投数量(QBT)\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<string>} 交易签名\n */\nexport async function requestAirdrop(address, amountQBT, connection) {\n const conn = connection || getDefaultConnection();\n return conn.requestAirdrop(address, amountQBT);\n}\n\n/**\n * 验证当前连接的网络身份 (Genesis Hash 校验)\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<{valid: boolean, expected: string|null, actual: string, network: string}>}\n */\nexport async function validateNetwork(connection) {\n const conn = connection || getDefaultConnection();\n return conn.validateNetwork();\n}\n\n/**\n * 获取链状态摘要(一次调用返回多项关键信息)\n * @param {QBitConnection} connection - 可选\n * @returns {Promise<Object>} 链状态摘要\n */\nexport async function getChainStatus(connection) {\n const conn = connection || getDefaultConnection();\n\n const [health, version, epochInfo, supply] = await Promise.all([\n conn.getHealth().catch(() => 'unknown'),\n conn.getVersion().catch(() => ({})),\n conn.getEpochInfo().catch(() => ({})),\n conn.getSupply().catch(() => ({ value: {} })),\n ]);\n\n return {\n health,\n network: conn.network,\n endpoint: conn.endpoint,\n version: version['qbit-core'] || version['solana-core'] || 'unknown',\n featureSet: version['feature-set'] || 0,\n epoch: epochInfo.epoch,\n blockHeight: epochInfo.blockHeight,\n slot: epochInfo.absoluteSlot,\n slotProgress: epochInfo.slotsInEpoch\n ? `${((epochInfo.slotIndex / epochInfo.slotsInEpoch) * 100).toFixed(1)}%`\n : 'N/A',\n totalSupplyQBT: supply.value?.total\n ? lamportsToQbt(supply.value.total)\n : 0,\n circulatingQBT: supply.value?.circulating\n ? lamportsToQbt(supply.value.circulating)\n : 0,\n transactionCount: epochInfo.transactionCount || 0,\n };\n}\n","/**\n * QBit Chain 实时订阅模块\n * \n * 通过 WebSocket 提供链上事件实时推送:\n * - 账户余额变动监听\n * - 交易日志订阅\n * - Slot 更新通知\n * - 程序日志过滤\n * \n * @example\n * const sub = new QBitSubscription(connection);\n * \n * // 监听余额变动\n * const id = sub.onAccountChange(address, (info) => {\n * console.log('New balance:', info.lamports);\n * });\n * \n * // 监听特定程序日志\n * sub.onProgramLogs('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', (log) => {\n * console.log('Token event:', log);\n * });\n * \n * // 取消订阅\n * sub.unsubscribe(id);\n */\n\nimport { PublicKey } from '@solana/web3.js';\n\n/**\n * QBit 实时订阅管理器\n */\nexport class QBitSubscription {\n /**\n * @param {import('./connection.js').QBitConnection} connection\n */\n constructor(connection) {\n this._connection = connection;\n /** @type {Map<number, { type: string, cleanup: Function }>} 活跃订阅 */\n this._subscriptions = new Map();\n this._nextId = 1;\n }\n\n /**\n * 监听账户数据变动(余额、数据变更)\n * \n * @param {string} address - 监听的地址\n * @param {Function} callback - 回调 (accountInfo, context)\n * @param {string} commitment - 确认级别\n * @returns {number} 订阅 ID,用于取消订阅\n */\n onAccountChange(address, callback, commitment = 'confirmed') {\n const pubkey = new PublicKey(address);\n const raw = this._connection.raw;\n\n const wsId = raw.onAccountChange(\n pubkey,\n (accountInfo, context) => {\n callback({\n address,\n lamports: accountInfo.lamports,\n owner: accountInfo.owner.toBase58(),\n dataSize: accountInfo.data?.length || 0,\n executable: accountInfo.executable,\n rentEpoch: accountInfo.rentEpoch,\n slot: context.slot,\n }, context);\n },\n commitment,\n );\n\n const id = this._nextId++;\n this._subscriptions.set(id, {\n type: 'accountChange',\n address,\n wsId,\n cleanup: () => raw.removeAccountChangeListener(wsId),\n });\n\n return id;\n }\n\n /**\n * 监听程序日志\n * \n * @param {string} programId - 程序地址\n * @param {Function} callback - 回调 (logs, context)\n * @param {string} commitment - 确认级别\n * @returns {number} 订阅 ID\n */\n onProgramLogs(programId, callback, commitment = 'confirmed') {\n const raw = this._connection.raw;\n\n const wsId = raw.onLogs(\n new PublicKey(programId),\n (logs, context) => {\n callback({\n programId,\n signature: logs.signature,\n err: logs.err,\n logs: logs.logs,\n slot: context.slot,\n }, context);\n },\n commitment,\n );\n\n const id = this._nextId++;\n this._subscriptions.set(id, {\n type: 'programLogs',\n programId,\n wsId,\n cleanup: () => raw.removeOnLogsListener(wsId),\n });\n\n return id;\n }\n\n /**\n * 监听所有交易日志(全局)\n * \n * @param {Function} callback - 回调 (logs, context)\n * @param {string} commitment - 确认级别\n * @returns {number} 订阅 ID\n */\n onAllLogs(callback, commitment = 'confirmed') {\n const raw = this._connection.raw;\n\n const wsId = raw.onLogs(\n 'all',\n (logs, context) => {\n callback({\n signature: logs.signature,\n err: logs.err,\n logs: logs.logs,\n slot: context.slot,\n }, context);\n },\n commitment,\n );\n\n const id = this._nextId++;\n this._subscriptions.set(id, {\n type: 'allLogs',\n wsId,\n cleanup: () => raw.removeOnLogsListener(wsId),\n });\n\n return id;\n }\n\n /**\n * 监听 Slot 变化\n * \n * @param {Function} callback - 回调 ({ slot, parent, root })\n * @returns {number} 订阅 ID\n */\n onSlotChange(callback) {\n const raw = this._connection.raw;\n\n const wsId = raw.onSlotChange((slotInfo) => {\n callback({\n slot: slotInfo.slot,\n parent: slotInfo.parent,\n root: slotInfo.root,\n });\n });\n\n const id = this._nextId++;\n this._subscriptions.set(id, {\n type: 'slotChange',\n wsId,\n cleanup: () => raw.removeSlotChangeListener(wsId),\n });\n\n return id;\n }\n\n /**\n * 监听签名确认状态\n * \n * @param {string} signature - 交易签名\n * @param {Function} callback - 回调 (result, context)\n * @param {string} commitment - 确认级别\n * @returns {number} 订阅 ID\n */\n onSignature(signature, callback, commitment = 'confirmed') {\n const raw = this._connection.raw;\n const id = this._nextId++;\n\n const wsId = raw.onSignature(\n signature,\n (result, context) => {\n callback({\n signature,\n err: result.err,\n confirmed: !result.err,\n slot: context.slot,\n }, context);\n\n // 签名确认是一次性的,自动清理,调用 unsubscribe 确保释放底层 websocket 监听资源,防止内存泄露\n this.unsubscribe(id);\n },\n commitment,\n );\n\n this._subscriptions.set(id, {\n type: 'signature',\n signature,\n wsId,\n cleanup: () => raw.removeSignatureListener(wsId),\n });\n\n return id;\n }\n\n /**\n * 监听 Root(已共识 Slot)变化\n * \n * @param {Function} callback - 回调 (root)\n * @returns {number} 订阅 ID\n */\n onRootChange(callback) {\n const raw = this._connection.raw;\n\n const wsId = raw.onRootChange((root) => {\n callback({ root });\n });\n\n const id = this._nextId++;\n this._subscriptions.set(id, {\n type: 'rootChange',\n wsId,\n cleanup: () => raw.removeRootChangeListener(wsId),\n });\n\n return id;\n }\n\n /**\n * 取消指定订阅\n * @param {number} subscriptionId - 订阅 ID\n * @returns {boolean} 是否成功取消\n */\n unsubscribe(subscriptionId) {\n const sub = this._subscriptions.get(subscriptionId);\n if (!sub) return false;\n\n try {\n sub.cleanup();\n } catch {\n // 忽略清理错误\n }\n this._subscriptions.delete(subscriptionId);\n return true;\n }\n\n /**\n * 取消所有订阅\n */\n unsubscribeAll() {\n for (const [id] of this._subscriptions) {\n this.unsubscribe(id);\n }\n }\n\n /**\n * 获取活跃订阅列表\n * @returns {Array<{id: number, type: string, target?: string}>}\n */\n getActiveSubscriptions() {\n return [...this._subscriptions.entries()].map(([id, sub]) => ({\n id,\n type: sub.type,\n target: sub.address || sub.programId || sub.signature || undefined,\n }));\n }\n\n /**\n * 活跃订阅数量\n */\n get activeCount() {\n return this._subscriptions.size;\n }\n\n /**\n * 销毁(取消所有订阅)\n */\n destroy() {\n this.unsubscribeAll();\n }\n}\n","/**\n * QBit Token 元数据注册表\n * \n * 维护已知 QBit 生态 Token 的元数据(名称、符号、小数位、图标),\n * 避免每次都从链上查询 Mint 信息。\n * \n * 支持:\n * - 内置常用 Token 元数据\n * - 运行时动态注册\n * - 链上 Mint 自动发现 + 缓存\n * \n * @example\n * const registry = new TokenRegistry(connection);\n * \n * // 查询已知 Token\n * const qbt = registry.getToken('native');\n * \n * // 自动发现未知 Token\n * const info = await registry.resolveToken(mintAddress);\n * console.log(info.symbol, info.decimals);\n */\n\n/**\n * Token 元数据\n * @typedef {Object} TokenMeta\n * @property {string} address - Mint 地址(native 表示原生代币)\n * @property {string} symbol - 符号\n * @property {string} name - 名称\n * @property {number} decimals - 小数位\n * @property {string} icon - 图标 URL 或 emoji\n * @property {string} category - 分类 (native/stablecoin/governance/utility/lp)\n * @property {boolean} verified - 是否已验证\n */\n\n// ============ 内置 Token 元数据 ============\n\nimport { QBitTokenError } from './errors.js';\n\nconst BUILTIN_TOKENS = [\n {\n address: 'native',\n symbol: 'QBT',\n name: 'QBit',\n decimals: 9,\n icon: '◆',\n category: 'native',\n verified: true,\n },\n {\n address: 'So11111111111111111111111111111111111111112',\n symbol: 'wSOL',\n name: 'Wrapped SOL',\n decimals: 9,\n icon: '◉',\n category: 'utility',\n verified: true,\n },\n {\n address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',\n symbol: 'USDC',\n name: 'USD Coin',\n decimals: 6,\n icon: '💲',\n category: 'stablecoin',\n verified: true,\n },\n {\n address: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB',\n symbol: 'USDT',\n name: 'Tether USD',\n decimals: 6,\n icon: '💵',\n category: 'stablecoin',\n verified: true,\n },\n];\n\n/**\n * Token 元数据注册表\n */\nexport class TokenRegistry {\n /**\n * @param {import('./connection.js').QBitConnection} connection - 链连接(用于自动发现)\n */\n constructor(connection = null) {\n this._connection = connection;\n /** @type {Map<string, TokenMeta>} */\n this._registry = new Map();\n /** @type {Map<string, Promise<TokenMeta|null>>} 正在解析中的 Promise(防并发重复查询)*/\n this._resolving = new Map();\n\n // 注册内置 Token\n for (const token of BUILTIN_TOKENS) {\n this._registry.set(token.address, { ...token });\n }\n }\n\n /**\n * 获取已注册的 Token 元数据\n * @param {string} mintAddress - Mint 地址或 'native'\n * @returns {TokenMeta|null}\n */\n getToken(mintAddress) {\n return this._registry.get(mintAddress) || null;\n }\n\n /**\n * 解析 Token 元数据(优先本地缓存,缺失则链上查询)\n * @param {string} mintAddress - Mint 地址\n * @returns {Promise<TokenMeta|null>}\n */\n async resolveToken(mintAddress) {\n // 1. 本地缓存命中\n const cached = this._registry.get(mintAddress);\n if (cached) return cached;\n\n // 2. 正在解析中(防并发)\n if (this._resolving.has(mintAddress)) {\n return this._resolving.get(mintAddress);\n }\n\n // 3. 链上查询\n const promise = this._fetchFromChain(mintAddress);\n this._resolving.set(mintAddress, promise);\n\n try {\n const result = await promise;\n return result;\n } finally {\n this._resolving.delete(mintAddress);\n }\n }\n\n /**\n * 批量解析 Token\n * @param {string[]} mintAddresses\n * @returns {Promise<Map<string, TokenMeta>>}\n */\n async resolveMany(mintAddresses) {\n const results = new Map();\n const promises = mintAddresses.map(async (addr) => {\n const meta = await this.resolveToken(addr);\n if (meta) results.set(addr, meta);\n });\n await Promise.allSettled(promises);\n return results;\n }\n\n /**\n * 注册自定义 Token 元数据\n * @param {TokenMeta} tokenMeta\n */\n register(tokenMeta) {\n if (!tokenMeta.address) throw new QBitTokenError('Token address is required');\n this._registry.set(tokenMeta.address, {\n decimals: 9,\n icon: '🪙',\n category: 'utility',\n verified: false,\n ...tokenMeta,\n });\n }\n\n /**\n * 批量注册\n * @param {TokenMeta[]} tokens\n */\n registerMany(tokens) {\n tokens.forEach(t => this.register(t));\n }\n\n /**\n * 获取所有已注册 Token\n * @param {string} category - 可选分类过滤\n * @returns {TokenMeta[]}\n */\n getAll(category = null) {\n const all = [...this._registry.values()];\n if (category) return all.filter(t => t.category === category);\n return all;\n }\n\n /**\n * 获取已验证 Token 列表\n * @returns {TokenMeta[]}\n */\n getVerified() {\n return [...this._registry.values()].filter(t => t.verified);\n }\n\n /**\n * 搜索 Token(按名称或符号)\n * @param {string} query\n * @returns {TokenMeta[]}\n */\n search(query) {\n const q = query.toLowerCase();\n return [...this._registry.values()].filter(t =>\n t.symbol.toLowerCase().includes(q) ||\n t.name.toLowerCase().includes(q) ||\n t.address.toLowerCase().includes(q)\n );\n }\n\n /**\n * 格式化 Token 金额(考虑小数位)\n * @param {string} mintAddress - Mint 地址或 'native'\n * @param {number|string} rawAmount - 原始金额(最小单位)\n * @param {number} displayDecimals - 显示小数位数\n * @returns {string} 格式化后的金额\n */\n formatAmount(mintAddress, rawAmount, displayDecimals = 4) {\n const token = this._registry.get(mintAddress);\n const decimals = token?.decimals || 9;\n const amount = Number(rawAmount) / Math.pow(10, decimals);\n return amount.toFixed(displayDecimals);\n }\n\n /**\n * 格式化带符号的金额\n * @param {string} mintAddress\n * @param {number|string} rawAmount\n * @returns {string} 如 \"1.5000 QBT\"\n */\n formatWithSymbol(mintAddress, rawAmount) {\n const token = this._registry.get(mintAddress);\n const formatted = this.formatAmount(mintAddress, rawAmount);\n return `${formatted} ${token?.symbol || 'UNKNOWN'}`;\n }\n\n /**\n * 已注册 Token 总数\n */\n get size() {\n return this._registry.size;\n }\n\n // ============ 私有方法 ============\n\n /**\n * 从链上获取 Mint 信息\n * @private\n */\n async _fetchFromChain(mintAddress) {\n if (!this._connection) return null;\n\n try {\n // 延迟加载 account 模块,避免循环依赖\n const { getTokenMintInfo } = await import('./account.js');\n const info = await getTokenMintInfo(mintAddress, this._connection);\n\n if (!info) return null;\n\n const tokenMeta = {\n address: mintAddress,\n symbol: `TOKEN-${mintAddress.slice(0, 4)}`,\n name: `Unknown Token (${mintAddress.slice(0, 8)}...)`,\n decimals: info.decimals,\n icon: '🪙',\n category: 'utility',\n verified: false,\n mintAuthority: info.mintAuthority,\n freezeAuthority: info.freezeAuthority,\n supply: info.supply,\n };\n\n // 缓存结果\n this._registry.set(mintAddress, tokenMeta);\n return tokenMeta;\n } catch {\n return null;\n }\n }\n}\n\n// ============ 默认实例 ============\n\nlet _defaultRegistry = null;\n\n/**\n * 获取默认 Token 注册表\n * @param {import('./connection.js').QBitConnection} connection\n * @returns {TokenRegistry}\n */\nexport function getTokenRegistry(connection = null) {\n if (!_defaultRegistry) {\n _defaultRegistry = new TokenRegistry(connection);\n }\n return _defaultRegistry;\n}\n\n/**\n * 内置 Token 列表(用于静态引用)\n */\nexport const KNOWN_TOKENS = Object.freeze(\n BUILTIN_TOKENS.reduce((acc, t) => {\n acc[t.symbol] = t;\n return acc;\n }, {})\n);\n","/**\n * QBit 交易解析器\n * \n * 将链上原始交易数据解析为结构化、可读的事件描述。\n * 支持识别:原生 QBT 转账、SPL Token 转账、质押操作、Memo、\n * 创建账户、计算预算等常见指令类型。\n * \n * @example\n * const parser = new TransactionParser(connection);\n * const parsed = await parser.parse('SignatureHere...');\n * console.log(parsed.type); // 'transfer'\n * console.log(parsed.summary); // '转账 1.5 QBT → 8DjJ...DtMc'\n */\n\nimport { PublicKey } from '@solana/web3.js';\nimport { shortenAddress, lamportsToQbt } from './utils.js';\nimport { resolveRawConnection, withRetry } from './connection.js';\n\n// 已知程序 ID → 名称映射\nconst PROGRAM_NAMES = {\n '11111111111111111111111111111111': 'System',\n 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA': 'Token',\n 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL': 'ATA',\n 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr': 'Memo',\n 'Memo1UhkJBfCR6MNBRmoYYs9Y5rpENF1PeNXYxhLYn': 'Memo (v1)',\n 'ComputeBudget111111111111111111111111111111': 'ComputeBudget',\n 'Stake11111111111111111111111111111111111111': 'Stake',\n 'Vote111111111111111111111111111111111111111': 'Vote',\n};\n\n/**\n * 解析后的交易结果\n * @typedef {Object} ParsedTransaction\n * @property {string} signature - 交易签名\n * @property {string} type - 交易类型\n * @property {string} summary - 可读摘要\n * @property {boolean} success - 是否成功\n * @property {number} fee - 手续费 (lamports)\n * @property {number} feeQBT - 手续费 (QBT)\n * @property {number|null} blockTime - 区块时间戳\n * @property {number} slot - 所在 Slot\n * @property {Array} events - 解析出的事件列表\n * @property {Array} signers - 签名者地址\n * @property {Array} programs - 涉及的程序\n * @property {string[]} logs - 交易日志\n * @property {Object} raw - 原始交易数据\n */\n\n/**\n * 交易解析器\n */\nexport class TransactionParser {\n /**\n * @param {import('./connection.js').QBitConnection} connection\n */\n constructor(connection) {\n this._connection = connection;\n }\n\n /**\n * 解析交易签名\n * @param {string} signature - 交易签名\n * @returns {Promise<ParsedTransaction>}\n */\n async parse(signature) {\n const raw = await resolveRawConnection(this._connection);\n let tx;\n try {\n tx = await withRetry(\n () => raw.getParsedTransaction(signature, {\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed',\n }),\n 2,\n 'getParsedTransaction',\n );\n } catch {\n try {\n tx = await withRetry(\n () => raw.getTransaction(signature, {\n encoding: 'jsonParsed',\n maxSupportedTransactionVersion: 0,\n commitment: 'confirmed',\n }),\n 2,\n 'getTransaction',\n );\n } catch {\n // RPC 错误(签名格式无效等)\n tx = null;\n }\n }\n\n if (!tx) {\n return {\n signature,\n type: 'unknown',\n summary: '交易未找到或尚未确认',\n success: false,\n fee: 0,\n feeQBT: 0,\n blockTime: null,\n slot: 0,\n events: [],\n signers: [],\n programs: [],\n logs: [],\n raw: null,\n };\n }\n\n const events = this._extractEvents(tx);\n const type = this._classifyTransaction(events);\n const signers = tx.transaction.message.accountKeys\n .filter(k => k.signer)\n .map(k => k.pubkey.toBase58());\n const programs = [...new Set(\n tx.transaction.message.instructions.map(i =>\n typeof i.programId === 'string' ? i.programId : i.programId.toBase58()\n )\n )];\n\n const fee = tx.meta?.fee || 0;\n\n return {\n signature,\n type,\n summary: this._buildSummary(type, events, fee),\n success: !tx.meta?.err,\n fee,\n feeQBT: lamportsToQbt(fee),\n blockTime: tx.blockTime,\n slot: tx.slot,\n events,\n signers,\n programs: programs.map(p => ({\n address: p,\n name: PROGRAM_NAMES[p] || 'Unknown',\n })),\n logs: tx.meta?.logMessages || [],\n raw: tx,\n };\n }\n\n /**\n * 批量解析\n * @param {string[]} signatures\n * @returns {Promise<ParsedTransaction[]>}\n */\n async parseMany(signatures) {\n const results = await Promise.allSettled(\n signatures.map(sig => this.parse(sig))\n );\n return results.map((r, i) =>\n r.status === 'fulfilled'\n ? r.value\n : { signature: signatures[i], type: 'error', summary: r.reason?.message, success: false, events: [] }\n );\n }\n\n /**\n * 解析地址的最近交易\n * @param {string} address - 地址\n * @param {number} limit - 数量限制\n * @returns {Promise<ParsedTransaction[]>}\n */\n async parseRecentForAddress(address, limit = 10) {\n const raw = await resolveRawConnection(this._connection);\n const pubkey = new PublicKey(address);\n const sigs = await withRetry(\n () => raw.getSignaturesForAddress(pubkey, { limit }),\n 2,\n 'getSignaturesForAddress',\n );\n return this.parseMany(sigs.map(s => s.signature));\n }\n\n // ============ 内部方法 ============\n\n /**\n * 从交易中提取事件\n * @private\n */\n _extractEvents(tx) {\n const events = [];\n const instructions = tx.transaction.message.instructions;\n\n for (const ix of instructions) {\n const programId = typeof ix.programId === 'string'\n ? ix.programId\n : ix.programId.toBase58();\n const parsed = ix.parsed;\n\n if (parsed) {\n // 已解析的指令(Solana 原生解析)\n events.push(this._parseParsedInstruction(programId, parsed));\n } else {\n // 未解析的指令\n events.push({\n type: 'instruction',\n program: PROGRAM_NAMES[programId] || programId,\n programId,\n data: ix.data,\n });\n }\n }\n\n // 内部指令\n if (tx.meta?.innerInstructions) {\n for (const inner of tx.meta.innerInstructions) {\n for (const ix of inner.instructions) {\n if (ix.parsed) {\n const programId = typeof ix.programId === 'string'\n ? ix.programId\n : ix.programId.toBase58();\n events.push({\n ...this._parseParsedInstruction(programId, ix.parsed),\n inner: true,\n });\n }\n }\n }\n }\n\n return events;\n }\n\n /**\n * 解析已解析的指令\n * @private\n */\n _parseParsedInstruction(programId, parsed) {\n const type = parsed.type;\n const info = parsed.info || {};\n\n switch (type) {\n case 'transfer':\n return {\n type: 'transfer',\n from: info.source,\n to: info.destination,\n amount: info.lamports,\n amountQBT: lamportsToQbt(info.lamports || 0),\n program: PROGRAM_NAMES[programId] || programId,\n };\n\n case 'transferChecked':\n return {\n type: 'tokenTransfer',\n from: info.source,\n to: info.destination,\n mint: info.mint,\n amount: info.tokenAmount?.uiAmount || 0,\n decimals: info.tokenAmount?.decimals || 0,\n program: 'Token',\n };\n\n case 'createAccount':\n return {\n type: 'createAccount',\n from: info.source,\n newAccount: info.newAccount,\n lamports: info.lamports,\n space: info.space,\n owner: info.owner,\n program: 'System',\n };\n\n case 'delegate':\n return {\n type: 'stakeDelegate',\n stakeAccount: info.stakeAccount,\n voteAccount: info.voteAccount,\n authority: info.stakeAuthority,\n program: 'Stake',\n };\n\n case 'deactivate':\n return {\n type: 'stakeDeactivate',\n stakeAccount: info.stakeAccount,\n authority: info.stakeAuthority,\n program: 'Stake',\n };\n\n case 'withdraw':\n return {\n type: 'stakeWithdraw',\n stakeAccount: info.stakeAccount,\n to: info.destination,\n amount: info.lamports,\n amountQBT: lamportsToQbt(info.lamports || 0),\n program: 'Stake',\n };\n\n default:\n return {\n type,\n program: PROGRAM_NAMES[programId] || programId,\n info,\n };\n }\n }\n\n /**\n * 根据事件列表 分类交易\n * @private\n */\n _classifyTransaction(events) {\n const types = events.map(e => e.type);\n\n if (types.includes('stakeDelegate')) return 'stake_delegate';\n if (types.includes('stakeDeactivate')) return 'stake_deactivate';\n if (types.includes('stakeWithdraw')) return 'stake_withdraw';\n if (types.includes('tokenTransfer')) return 'token_transfer';\n if (types.includes('transfer') && events.some(e => e.type === 'createAccount')) return 'create_and_fund';\n if (types.includes('transfer')) return 'transfer';\n if (types.includes('createAccount')) return 'create_account';\n if (types.length === 0) return 'unknown';\n return 'complex';\n }\n\n /**\n * 构建可读摘要\n * @private\n */\n _buildSummary(type, events, fee) {\n switch (type) {\n case 'transfer': {\n const e = events.find(e => e.type === 'transfer');\n if (e) return `转账 ${e.amountQBT} QBT → ${shortenAddress(e.to)}`;\n return '原生转账';\n }\n case 'token_transfer': {\n const e = events.find(e => e.type === 'tokenTransfer');\n if (e) return `Token 转账 ${e.amount} → ${shortenAddress(e.to)}`;\n return 'Token 转账';\n }\n case 'stake_delegate': {\n const e = events.find(e => e.type === 'stakeDelegate');\n if (e) return `质押委托 → 验证者 ${shortenAddress(e.voteAccount)}`;\n return '质押委托';\n }\n case 'stake_deactivate':\n return '取消质押';\n case 'stake_withdraw': {\n const e = events.find(e => e.type === 'stakeWithdraw');\n if (e) return `提取质押 ${e.amountQBT} QBT`;\n return '提取质押';\n }\n case 'create_account':\n return '创建账户';\n case 'create_and_fund':\n return '创建并充值账户';\n default:\n return `复杂交易 (${events.length} 条指令, 费用 ${lamportsToQbt(fee)} QBT)`;\n }\n }\n}\n","/**\n * QBit Program 交互助手\n * \n * 为 DApp 开发者提供与链上自定义 Program 交互的便捷封装:\n * - 构建任意 Program 指令\n * - 序列化/反序列化 Instruction Data\n * - PDA (Program Derived Address) 查找\n * - IDL-free 低级指令构建\n * \n * @example\n * const helper = new ProgramHelper(connection, 'ProgramId1111...');\n * \n * // 查找 PDA\n * const [pda, bump] = helper.findPDA(['user', userPubkey.toBuffer()]);\n * \n * // 构建指令\n * const ix = helper.buildInstruction(\n * Buffer.from([1, 0, 0, 0]), // instruction discriminator\n * [\n * { pubkey: userPubkey, isSigner: true, isWritable: true },\n * { pubkey: pda, isSigner: false, isWritable: true },\n * ]\n * );\n * \n * // 发送交易\n * const sig = await helper.execute(signer, [ix]);\n */\n\nimport { PublicKey, TransactionInstruction, Transaction, sendAndConfirmTransaction } from '@solana/web3.js';\nimport { resolveRawConnection, withRetry } from './connection.js';\n\n/**\n * Program 交互助手\n */\nexport class ProgramHelper {\n /**\n * @param {import('./connection.js').QBitConnection} connection\n * @param {string|PublicKey} programId - 目标程序地址\n */\n constructor(connection, programId) {\n this._connection = connection;\n this._programId = typeof programId === 'string' ? new PublicKey(programId) : programId;\n }\n\n /**\n * 程序 ID\n */\n get programId() {\n return this._programId;\n }\n\n // ============ PDA ============\n\n /**\n * 查找 PDA (Program Derived Address)\n * \n * @param {Array<Buffer|Uint8Array|string>} seeds - 种子列表\n * @returns {[PublicKey, number]} [pda, bump]\n */\n findPDA(seeds) {\n const processedSeeds = seeds.map(s => {\n if (typeof s === 'string') return Buffer.from(s);\n if (s instanceof PublicKey) return s.toBuffer();\n return s;\n });\n return PublicKey.findProgramAddressSync(processedSeeds, this._programId);\n }\n\n /**\n * 批量查找 PDA\n * @param {Array<Array<Buffer|Uint8Array|string>>} seedsList\n * @returns {Array<[PublicKey, number]>}\n */\n findPDAMany(seedsList) {\n return seedsList.map(seeds => this.findPDA(seeds));\n }\n\n /**\n * 验证给定地址是否为本程序的 PDA\n * @param {string|PublicKey} address\n * @returns {boolean}\n */\n isPDA(address) {\n const pubkey = typeof address === 'string' ? new PublicKey(address) : address;\n return !PublicKey.isOnCurve(pubkey.toBytes());\n }\n\n // ============ 指令构建 ============\n\n /**\n * 构建 Program 指令\n * \n * @param {Buffer|Uint8Array} data - 指令数据\n * @param {Array<{pubkey: PublicKey|string, isSigner: boolean, isWritable: boolean}>} keys - 账户列表\n * @returns {TransactionInstruction}\n */\n buildInstruction(data, keys) {\n return new TransactionInstruction({\n programId: this._programId,\n keys: keys.map(k => ({\n pubkey: typeof k.pubkey === 'string' ? new PublicKey(k.pubkey) : k.pubkey,\n isSigner: k.isSigner || false,\n isWritable: k.isWritable || false,\n })),\n data: Buffer.from(data),\n });\n }\n\n /**\n * 使用指令索引构建指令(简化模式)\n * \n * @param {number} instructionIndex - 指令索引(0-255)\n * @param {Buffer|null} payload - 额外的指令数据\n * @param {Array} keys - 账户列表\n * @returns {TransactionInstruction}\n */\n buildIndexedInstruction(instructionIndex, payload, keys) {\n const indexBuf = Buffer.alloc(1);\n indexBuf.writeUInt8(instructionIndex);\n\n const data = payload\n ? Buffer.concat([indexBuf, Buffer.from(payload)])\n : indexBuf;\n\n return this.buildInstruction(data, keys);\n }\n\n // ============ 交易执行 ============\n\n /**\n * 执行一组指令\n * \n * @param {import('@solana/web3.js').Keypair} signer - 签名者\n * @param {TransactionInstruction[]} instructions - 指令列表\n * @param {Object} options - 选项\n * @param {boolean} options.skipPreflight - 跳过预检\n * @param {string} options.commitment - 确认级别\n * @returns {Promise<string>} 交易签名\n */\n async execute(signer, instructions, options = {}) {\n const tx = new Transaction();\n instructions.forEach(ix => tx.add(ix));\n const raw = await resolveRawConnection(this._connection);\n\n return withRetry(\n () => sendAndConfirmTransaction(\n raw,\n tx,\n [signer],\n {\n skipPreflight: options.skipPreflight || false,\n commitment: options.commitment || 'confirmed',\n },\n ),\n 2,\n 'programExecute',\n );\n }\n\n /**\n * 模拟执行(不实际上链)\n * \n * @param {import('@solana/web3.js').Keypair} signer\n * @param {TransactionInstruction[]} instructions\n * @returns {Promise<{err: any, logs: string[], unitsConsumed: number}>}\n */\n async simulate(signer, instructions) {\n const tx = new Transaction();\n instructions.forEach(ix => tx.add(ix));\n\n tx.feePayer = signer.publicKey;\n const raw = await resolveRawConnection(this._connection);\n const { blockhash } = await raw.getLatestBlockhash();\n tx.recentBlockhash = blockhash;\n\n const result = await raw.simulateTransaction(tx);\n return {\n err: result.value.err,\n logs: result.value.logs || [],\n unitsConsumed: result.value.unitsConsumed || 0,\n };\n }\n\n // ============ 账户数据查询 ============\n\n /**\n * 获取程序拥有的所有账户\n * \n * @param {Object} filters - 可选的过滤条件\n * @param {number} filters.dataSize - 按数据大小过滤\n * @param {Array<{offset: number, bytes: string}>} filters.memcmp - 内存比较过滤\n * @returns {Promise<Array<{pubkey: string, account: Object}>>}\n */\n async getAccounts(filters = {}) {\n const programFilters = [];\n\n if (filters.dataSize !== undefined) {\n programFilters.push({ dataSize: filters.dataSize });\n }\n if (filters.memcmp) {\n filters.memcmp.forEach(m => programFilters.push({ memcmp: m }));\n }\n\n const accounts = await withRetry(\n async () => {\n const raw = await resolveRawConnection(this._connection);\n return raw.getProgramAccounts(this._programId, {\n filters: programFilters.length > 0 ? programFilters : undefined,\n });\n },\n 2,\n 'getProgramAccounts',\n );\n\n return accounts.map(a => ({\n pubkey: a.pubkey.toBase58(),\n lamports: a.account.lamports,\n dataSize: a.account.data.length,\n data: a.account.data,\n owner: a.account.owner.toBase58(),\n }));\n }\n\n /**\n * 获取指定 PDA 的账户数据\n * \n * @param {Array<Buffer|Uint8Array|string>} seeds - PDA 种子\n * @returns {Promise<{address: string, exists: boolean, data: Buffer|null, lamports: number}>}\n */\n async getPDAAccount(seeds) {\n const [pda] = this.findPDA(seeds);\n const raw = await resolveRawConnection(this._connection);\n const info = await raw.getAccountInfo(pda);\n\n return {\n address: pda.toBase58(),\n exists: !!info,\n data: info?.data || null,\n lamports: info?.lamports || 0,\n };\n }\n\n // ============ 数据序列化辅助 ============\n\n /**\n * 编码 u32 为 little-endian 字节\n * @param {number} value\n * @returns {Buffer}\n */\n static encodeU32(value) {\n const buf = Buffer.alloc(4);\n buf.writeUInt32LE(value);\n return buf;\n }\n\n /**\n * 编码 u64 为 little-endian 字节\n * @param {bigint|number} value\n * @returns {Buffer}\n */\n static encodeU64(value) {\n const buf = Buffer.alloc(8);\n buf.writeBigUInt64LE(BigInt(value));\n return buf;\n }\n\n /**\n * 编码字符串为 Borsh 格式(4字节长度前缀 + UTF-8 内容)\n * @param {string} str\n * @returns {Buffer}\n */\n static encodeString(str) {\n const content = Buffer.from(str, 'utf-8');\n const len = Buffer.alloc(4);\n len.writeUInt32LE(content.length);\n return Buffer.concat([len, content]);\n }\n\n /**\n * 解码 u32\n * @param {Buffer} buf\n * @param {number} offset\n * @returns {number}\n */\n static decodeU32(buf, offset = 0) {\n return buf.readUInt32LE(offset);\n }\n\n /**\n * 解码 u64\n * @param {Buffer} buf\n * @param {number} offset\n * @returns {bigint}\n */\n static decodeU64(buf, offset = 0) {\n return buf.readBigUInt64LE(offset);\n }\n\n /**\n * 解码 Borsh 字符串\n * @param {Buffer} buf\n * @param {number} offset\n * @returns {{ value: string, bytesRead: number }}\n */\n static decodeString(buf, offset = 0) {\n const len = buf.readUInt32LE(offset);\n const value = buf.toString('utf-8', offset + 4, offset + 4 + len);\n return { value, bytesRead: 4 + len };\n }\n}\n","/**\n * QuantaBit Chain SDK - chainApi Service\n * \n * 用于后端同步、查询链上交易哈希状态、账户持仓快照等状态服务\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\nexport class ChainApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/chain', config);\n }\n\n // 同步交易哈希状态至后端\n async syncTransaction(txHash, payload = {}) {\n return this.post('/sync-tx', { txHash, ...payload });\n }\n\n // 查询链上交易在后端的历史缓存记录\n async getTransactionReceipt(txHash) {\n return this.get(`/tx/${txHash}`);\n }\n\n // 获取链节点负载状态\n async getNodeStatus() {\n return this.get('/status');\n }\n\n // 从后端获取指定地址的 QBT 持仓快照历史\n async getBalanceHistory(address) {\n return this.get(`/balance-history/${address}`);\n }\n}\n\nexport const chainApi = new ChainApiClient();\n","/**\n * QuantaBit Chain SDK - useChain hook\n * \n * 区块链网络状态与交易回执 React 状态管理器\n */\n\nimport { useState, useCallback } from 'react';\nimport { chainApi } from '../services/chainApi';\nimport { getChainStatus, getChainHealth } from '../rpc';\n\nexport function useChain() {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n const [networkInfo, setNetworkInfo] = useState(null);\n const [txReceipt, setTxReceipt] = useState(null);\n\n // 刷新区块链实时状态\n const updateStatus = useCallback(async () => {\n setLoading(true);\n setError(null);\n try {\n const isHealthy = await getChainHealth();\n const statusData = await getChainStatus();\n const info = {\n healthy: isHealthy === 'ok',\n ...statusData\n };\n setNetworkInfo(info);\n return info;\n } catch (err) {\n setError(err);\n throw err;\n } finally {\n setLoading(false);\n }\n }, []);\n\n // 从后端和链节点获取交易回执状态\n const fetchTxReceipt = useCallback(async (txHash) => {\n setLoading(true);\n setError(null);\n try {\n // 先向后端查询同步的 receipt\n const receipt = await chainApi.getTransactionReceipt(txHash);\n setTxReceipt(receipt);\n return receipt;\n } catch (err) {\n setError(err);\n throw err;\n } finally {\n setLoading(false);\n }\n }, []);\n\n // 同步交易哈希状态至后端\n const syncTx = useCallback(async (txHash, payload = {}) => {\n setLoading(true);\n setError(null);\n try {\n const res = await chainApi.syncTransaction(txHash, payload);\n return res;\n } catch (err) {\n setError(err);\n throw err;\n } finally {\n setLoading(false);\n }\n }, []);\n\n return {\n loading,\n error,\n networkInfo,\n txReceipt,\n updateStatus,\n fetchTxReceipt,\n syncTx,\n };\n}\n","/**\n * QuantaBit Chain SDK - i18n support\n */\n\nconst messages = {\n en: {\n chainStatus: 'Chain Status',\n network: 'Network',\n blockHeight: 'Block Height',\n tps: 'TPS (Transactions per Second)',\n healthy: 'Healthy',\n unhealthy: 'Unhealthy',\n syncing: 'Syncing...',\n txDetails: 'Transaction Details',\n txHash: 'Transaction Hash',\n address: 'Address',\n balance: 'Balance',\n loadingTx: 'Loading transaction data...',\n fetchFailed: 'Failed to fetch transaction',\n status: 'Status',\n blockNumber: 'Block Number',\n gasFee: 'Gas Fee',\n syncToBackend: 'Sync to Backend DB',\n syncedWithBackend: 'Synced with Backend',\n syncFailed: 'Sync failed. Please try again.',\n txPendingDesc: 'Transaction cached locally or is awaiting network block confirmation.',\n close: 'Close',\n unknown: 'Unknown',\n confirmed: 'Confirmed',\n },\n zh: {\n chainStatus: '区块链状态',\n network: '网络',\n blockHeight: '区块高度',\n tps: 'TPS (每秒交易数)',\n healthy: '运行正常',\n unhealthy: '网络异常',\n syncing: '同步中...',\n txDetails: '交易详情',\n txHash: '交易哈希',\n address: '钱包地址',\n balance: '余额',\n loadingTx: '正在加载交易数据...',\n fetchFailed: '获取交易失败',\n status: '状态',\n blockNumber: '区块号',\n gasFee: '燃气费用',\n syncToBackend: '同步至后端数据库',\n syncedWithBackend: '已与后端同步',\n syncFailed: '同步失败,请重试。',\n txPendingDesc: '交易已在本地缓存,或正在等待区块链网络确认。',\n close: '关闭',\n unknown: '未知',\n confirmed: '已确认',\n },\n ja: {\n chainStatus: 'ブロックチェーンステータス',\n network: 'ネットワーク',\n blockHeight: 'ブロック高',\n tps: 'TPS (秒間トランザクション数)',\n healthy: '正常稼働',\n unhealthy: '異常発生',\n syncing: '同期中...',\n txDetails: 'トランザクション詳細',\n txHash: 'トランザクションハッシュ',\n address: 'ウォレットアドレス',\n balance: '残高',\n loadingTx: 'トランザクションデータを読み込み中...',\n fetchFailed: 'トランザクションの取得に失敗しました',\n status: 'ステータス',\n blockNumber: 'ブロック番号',\n gasFee: 'ガス代',\n syncToBackend: 'バックエンドDBと同期',\n syncedWithBackend: 'バックエンドと同期済み',\n syncFailed: '同期に失敗しました。再試行してください。',\n txPendingDesc: 'トランザクションはローカルにキャッシュされているか、ブロックの確認を待っています。',\n close: '閉じる',\n unknown: '不明',\n confirmed: '確認済み',\n },\n ko: {\n chainStatus: '블록체인 상태',\n network: '네트워크',\n blockHeight: '블록 높이',\n tps: 'TPS (초당 트랜잭션 수)',\n healthy: '정상 작동',\n unhealthy: '네트워크 이상',\n syncing: '동기화 중...',\n txDetails: '트랜잭션 상세',\n txHash: '트랜잭션 해시',\n address: '지갑 주소',\n balance: '잔고',\n loadingTx: '트랜잭션 데이터 로딩 중...',\n fetchFailed: '트랜잭션 조회 실패',\n status: '상태',\n blockNumber: '블록 번호',\n gasFee: '가스 수수료',\n syncToBackend: '백엔드 DB에 동기화',\n syncedWithBackend: '백엔드 동기화 완료',\n syncFailed: '동기화 실패. 다시 시도하십시오.',\n txPendingDesc: '트랜잭션이 로컬에 캐시되었거나 블록체인 네트워크의 확인을 대기 중입니다.',\n close: '닫기',\n unknown: '알 수 없음',\n confirmed: '확인됨',\n }\n};\n\nconst SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\nlet currentLanguage = 'en';\n\nexport function setLanguage(lang) {\n if (SUPPORTED_LANGUAGES.includes(lang)) currentLanguage = lang;\n}\n\nexport function getLanguage() {\n return currentLanguage;\n}\n\nexport function t(key) {\n return (messages[currentLanguage] || messages.en)[key] || key;\n}\n\nexport { messages, SUPPORTED_LANGUAGES };\n","/**\n * QuantaBit Chain SDK - ChainStatusCard Component\n * \n * 区块链健康状况与节点监控卡片组件,支持多语言和动效\n */\n\nimport React, { useEffect } from 'react';\nimport { t } from '../i18n';\nimport { useChain } from '../hooks/useChain';\n\nexport function ChainStatusCard({ className = '', interval = 10000 }) {\n const { loading, error, networkInfo, updateStatus } = useChain();\n\n useEffect(() => {\n updateStatus().catch(err => console.error('Failed to get initial chain status:', err));\n \n const timer = setInterval(() => {\n updateStatus().catch(err => console.error('Failed to poll chain status:', err));\n }, interval);\n\n return () => clearInterval(timer);\n }, [updateStatus, interval]);\n\n const isHealthy = networkInfo?.healthy ?? false;\n const blockHeight = networkInfo?.blockHeight ?? '...';\n const networkName = networkInfo?.networkName ?? 'QBit Mainnet';\n const tps = networkInfo?.tps ?? 0;\n\n return (\n <div className={`qbit-chain-status-card ${isHealthy ? 'healthy' : 'unhealthy'} ${className}`}>\n <div className=\"qbit-card-inner\">\n <div className=\"qbit-status-header\">\n <div className=\"qbit-status-indicator\">\n <span className=\"qbit-ping-dot\"></span>\n <span className=\"qbit-indicator-text\">\n {isHealthy ? t('healthy') : t('unhealthy')}\n </span>\n </div>\n <span className=\"qbit-network-badge\">{networkName}</span>\n </div>\n\n <div className=\"qbit-status-body\">\n <div className=\"qbit-status-stat\">\n <div className=\"qbit-stat-label\">{t('blockHeight')}</div>\n <div className=\"qbit-stat-value\">{blockHeight.toLocaleString()}</div>\n </div>\n <div className=\"qbit-status-stat\">\n <div className=\"qbit-stat-label\">{t('tps')}</div>\n <div className=\"qbit-stat-value\">{tps}</div>\n </div>\n </div>\n\n {error && (\n <div className=\"qbit-chain-err-msg\">\n Error: {error.message || 'Node disconnected'}\n </div>\n )}\n </div>\n\n <style>{`\n .qbit-chain-status-card {\n background: #0f172a;\n color: #ffffff;\n border-radius: 12px;\n padding: 16px;\n max-width: 300px;\n border: 1px solid #1e293b;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3);\n transition: border-color 0.3s ease, box-shadow 0.3s ease;\n }\n .qbit-chain-status-card.healthy {\n border-color: rgba(16, 185, 129, 0.4);\n box-shadow: 0 0 20px rgba(16, 185, 129, 0.1);\n }\n .qbit-chain-status-card.unhealthy {\n border-color: rgba(239, 68, 68, 0.4);\n box-shadow: 0 0 20px rgba(239, 68, 68, 0.1);\n }\n .qbit-status-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n }\n .qbit-status-indicator {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .qbit-ping-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n display: inline-block;\n position: relative;\n }\n .healthy .qbit-ping-dot {\n background-color: #10b981;\n }\n .unhealthy .qbit-ping-dot {\n background-color: #ef4444;\n }\n .healthy .qbit-ping-dot::after {\n content: '';\n position: absolute;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background: #10b981;\n opacity: 0.6;\n animation: qbitPing 1.2s infinite ease-in-out;\n }\n .qbit-indicator-text {\n font-size: 12px;\n font-weight: bold;\n }\n .healthy .qbit-indicator-text {\n color: #10b981;\n }\n .unhealthy .qbit-indicator-text {\n color: #ef4444;\n }\n .qbit-network-badge {\n background: #1e293b;\n color: #94a3b8;\n font-size: 11px;\n padding: 2px 6px;\n border-radius: 4px;\n }\n .qbit-status-body {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n .qbit-status-stat {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n }\n .qbit-stat-label {\n color: #64748b;\n font-size: 11px;\n }\n .qbit-stat-value {\n font-size: 16px;\n font-weight: bold;\n color: #f8fafc;\n }\n .qbit-chain-err-msg {\n margin-top: 12px;\n font-size: 11px;\n color: #ef4444;\n background: rgba(239, 68, 68, 0.1);\n padding: 6px;\n border-radius: 4px;\n border: 1px dashed rgba(239, 68, 68, 0.2);\n }\n @keyframes qbitPing {\n 0% {\n transform: scale(1);\n opacity: 0.8;\n }\n 100% {\n transform: scale(2.5);\n opacity: 0;\n }\n }\n `}</style>\n </div>\n );\n}\n","/**\n * QuantaBit Chain SDK - TransactionReceiptModal Component\n * \n * 区块链交易回执与状态同步模态框,用于向用户展示详细的交易上链数据与证明信息\n */\n\nimport React, { useState, useEffect } from 'react';\nimport { t } from '../i18n';\nimport { useChain } from '../hooks/useChain';\n\nexport function TransactionReceiptModal({ \n isOpen, \n onClose, \n txHash, \n onSyncComplete \n}) {\n const { loading, error, txReceipt, fetchTxReceipt, syncTx } = useChain();\n const [syncing, setSyncing] = useState(false);\n const [syncStatus, setSyncStatus] = useState(null);\n\n useEffect(() => {\n if (isOpen && txHash) {\n fetchTxReceipt(txHash).catch(err => console.error('Error fetching tx receipt:', err));\n }\n }, [isOpen, txHash, fetchTxReceipt]);\n\n if (!isOpen) return null;\n\n const handleSyncToBackend = async () => {\n if (!txHash) return;\n setSyncing(true);\n setSyncStatus(null);\n try {\n await syncTx(txHash, {\n confirmedAt: Date.now(),\n network: 'qbit-mainnet'\n });\n setSyncStatus('success');\n if (onSyncComplete) {\n onSyncComplete(txHash);\n }\n } catch (err) {\n console.error(err);\n setSyncStatus('failed');\n } finally {\n setSyncing(false);\n }\n };\n\n return (\n <div className=\"qbit-receipt-modal-backdrop\">\n <div className=\"qbit-receipt-modal-card\">\n <div className=\"qbit-receipt-modal-header\">\n <h3>{t('txDetails')}</h3>\n <button className=\"qbit-receipt-close\" onClick={onClose}>&times;</button>\n </div>\n\n <div className=\"qbit-receipt-modal-body\">\n {loading && <div className=\"qbit-receipt-loading\">{t('loadingTx')}</div>}\n {error && <div className=\"qbit-receipt-error\">Error: {error.message || t('fetchFailed')}</div>}\n\n {txReceipt ? (\n <div className=\"qbit-receipt-info\">\n <div className=\"qbit-receipt-row\">\n <span className=\"label\">{t('txHash')}:</span>\n <span className=\"value code\">{txHash}</span>\n </div>\n <div className=\"qbit-receipt-row\">\n <span className=\"label\">{t('status')}:</span>\n <span className={`value badge ${txReceipt.status === 'success' ? 'success' : 'pending'}`}>\n {txReceipt.status || t('confirmed')}\n </span>\n </div>\n <div className=\"qbit-receipt-row\">\n <span className=\"label\">{t('blockNumber')}:</span>\n <span className=\"value\">{txReceipt.slot || txReceipt.blockNumber || t('unknown')}</span>\n </div>\n <div className=\"qbit-receipt-row\">\n <span className=\"label\">{t('gasFee')}:</span>\n <span className=\"value\">{txReceipt.fee ? txReceipt.fee + ' QBT' : '0.000005 QBT'}</span>\n </div>\n \n <div className=\"qbit-receipt-sync-panel\">\n <button \n className=\"qbit-receipt-btn-sync\"\n onClick={handleSyncToBackend}\n disabled={syncing || syncStatus === 'success'}\n >\n {syncing ? t('syncing') : syncStatus === 'success' ? t('syncedWithBackend') : t('syncToBackend')}\n </button>\n {syncStatus === 'failed' && (\n <p className=\"qbit-sync-err\">{t('syncFailed')}</p>\n )}\n </div>\n </div>\n ) : (\n <div className=\"qbit-receipt-empty\">\n <p>{t('txHash')}:</p>\n <code>{txHash}</code>\n <p>{t('txPendingDesc')}</p>\n </div>\n )}\n </div>\n\n <div className=\"qbit-receipt-modal-footer\">\n <button className=\"qbit-receipt-btn-close\" onClick={onClose}>\n {t('close')}\n </button>\n </div>\n </div>\n\n <style>{`\n .qbit-receipt-modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(15, 23, 42, 0.7);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1001;\n }\n .qbit-receipt-modal-card {\n background: #1e293b;\n color: #f8fafc;\n border-radius: 16px;\n border: 1px solid #334155;\n width: 90%;\n max-width: 520px;\n overflow: hidden;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n }\n .qbit-receipt-modal-header {\n padding: 16px 20px;\n border-bottom: 1px solid #334155;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n .qbit-receipt-modal-header h3 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: #f1f5f9;\n }\n .qbit-receipt-close {\n background: transparent;\n border: none;\n color: #94a3b8;\n font-size: 24px;\n cursor: pointer;\n }\n .qbit-receipt-modal-body {\n padding: 20px;\n font-size: 14px;\n }\n .qbit-receipt-row {\n display: flex;\n flex-direction: column;\n gap: 6px;\n margin-bottom: 16px;\n border-bottom: 1px solid #33415540;\n padding-bottom: 12px;\n }\n .qbit-receipt-row .label {\n color: #94a3b8;\n font-size: 12px;\n text-transform: uppercase;\n }\n .qbit-receipt-row .value {\n color: #f1f5f9;\n font-weight: 500;\n }\n .qbit-receipt-row .value.code {\n word-break: break-all;\n font-family: monospace;\n background: #0f172a;\n padding: 8px;\n border-radius: 6px;\n border: 1px solid #334155;\n }\n .qbit-receipt-row .value.badge {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 12px;\n width: fit-content;\n }\n .qbit-receipt-row .value.badge.success {\n background: rgba(16, 185, 129, 0.2);\n color: #34d399;\n border: 1px solid rgba(16, 185, 129, 0.3);\n }\n .qbit-receipt-row .value.badge.pending {\n background: rgba(245, 158, 11, 0.2);\n color: #fbbf24;\n border: 1px solid rgba(245, 158, 11, 0.3);\n }\n .qbit-receipt-sync-panel {\n margin-top: 20px;\n background: #0f172a;\n padding: 16px;\n border-radius: 8px;\n border: 1px solid #334155;\n text-align: center;\n }\n .qbit-receipt-btn-sync {\n background: #3b82f6;\n color: white;\n border: none;\n padding: 10px 20px;\n border-radius: 6px;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.2s;\n }\n .qbit-receipt-btn-sync:hover:not(:disabled) {\n background: #2563eb;\n }\n .qbit-receipt-btn-sync:disabled {\n background: #475569;\n color: #94a3b8;\n cursor: not-allowed;\n }\n .qbit-sync-err {\n color: #f87171;\n font-size: 12px;\n margin-top: 8px;\n margin-bottom: 0;\n }\n .qbit-receipt-modal-footer {\n padding: 12px 20px;\n border-top: 1px solid #334155;\n display: flex;\n justify-content: flex-end;\n background: #1e293b;\n }\n .qbit-receipt-btn-close {\n background: transparent;\n border: 1px solid #475569;\n color: #cbd5e1;\n padding: 8px 16px;\n border-radius: 6px;\n cursor: pointer;\n transition: background 0.2s;\n }\n .qbit-receipt-btn-close:hover {\n background: #334155;\n }\n `}</style>\n </div>\n );\n}\n"],"names":["LAMPORTS_PER_QBT","QBIT_COIN_TYPE","GENESIS_HASH","mainnet","devnet","CHAIN_PARAMS","SLOT_DURATION_MS","SLOTS_PER_EPOCH","NATIVE_TOKEN_SYMBOL","NATIVE_TOKEN_DECIMALS","CHAIN_PROGRAMS","SYSTEM_PROGRAM","TOKEN_PROGRAM","ASSOCIATED_TOKEN_PROGRAM","MEMO_PROGRAM","STAKE_PROGRAM","STAKE_CONFIG","VOTE_PROGRAM","DID_PROGRAM","CHAIN_ENDPOINTS","rpc","ws","genesisHash","testnet","DEFAULT_CONFIRM_OPTIONS","commitment","preflightCommitment","skipPreflight","TIMEOUT","RPC_REQUEST","SEND_TRANSACTION","CONFIRM_TRANSACTION","HEALTH_CHECK","RETRY","MAX_RETRIES","BASE_DELAY_MS","MAX_DELAY_MS","QBitError","_Error","message","_this","code","arguments","length","undefined","details","_classCallCheck","_callSuper","name","timestamp","Date","now","_inherits","_createClass","key","value","toJSON","_wrapNativeSuper","Error","QBitRpcError","_QBitError","_this2","rpcCode","method","QBitNetworkError","_QBitError2","_this3","endpoint","cause","QBitNetworkMismatchError","_QBitError3","expected","actual","network","_this4","concat","slice","QBitTransactionError","_QBitError4","_this5","signature","logs","QBitInsufficientFundsError","_QBitTransactionError","required","available","_this6","QBitAccountNotFoundError","_QBitError5","address","_this7","QBitTokenError","_QBitError6","_this8","mintAddress","_objectSpread","QBitKeypairError","_QBitError7","_this9","ERROR_CODES","NETWORK_ERROR","NETWORK_MISMATCH","RPC_ERROR","TRANSACTION_ERROR","INSUFFICIENT_FUNDS","SIGNATURE_FAILED","BLOCKHASH_EXPIRED","ACCOUNT_NOT_FOUND","TOKEN_ERROR","ATA_NOT_FOUND","KEYPAIR_ERROR","INVALID_MNEMONIC","INVALID_PRIVATE_KEY","sdkConfig","sdkConfigLoaded","getSdkConfig","_getSdkConfig","apply","_asyncToGenerator","_regenerator","m","_callee35","w","_context35","p","n","a","v","getRetryDelay","attempt","delay","Math","min","pow","jitter","random","round","withRetry","_x","_withRetry","_callee36","fn","_lastError$name","_lastError","maxRetries","operationName","lastError","_loop","_ret","_args37","_context37","_t4","_t5","_context36","console","warn","Promise","r","setTimeout","d","_regeneratorValues","startsWith","QBitConnection","_CHAIN_ENDPOINTS$this","options","_customEndpoint","_commitment","_wsEndpoint","wsEndpoint","_timeoutMs","timeoutMs","_networkName","_hasCustomNetwork","_autoValidate","autoValidate","_onConnect","onConnect","_onDisconnect","onDisconnect","_onError","onError","_onNetworkMismatch","onNetworkMismatch","_isConnected","_lastHealthCheck","_sdkConfigInitialized","_deriveWsEndpoint","_connection","Connection","confirmTransactionInitialTimeout","_endpoint","validateNetwork","err","_this$_onNetworkMisma","error","call","_ensureSdkConfig2","_callee","_cfg$getChainConfig","_cfg$getConfig","cfg","chainConfig","configNetwork","weakSelf","unsubscribe","listener","_context","getChainConfig","getConfig","chainNetwork","_applyChainConfig","subscribeConfig","WeakRef","newConfig","self","deref","nextNetwork","_unsubscribe","_ensureSdkConfig","_prepareConnection2","_callee2","_context2","_prepareConnection","_getRawConnection","_callee3","_context3","getRawConnection","chainEndpoint","rpcEndpoint","chainWsEndpoint","chainCommitment","chainTimeoutMs","nextWsEndpoint","shouldReconnect","_reconnect","get","url","URL","protocol","toString","_unused","switchNetwork","then","setChainNetwork","endpointConfig","_this$_onConnect","log","_validateNetwork","_callee4","connection","actualHash","expectedHash","valid","_this$_onNetworkMisma2","_context4","getGenesisHash","_getHealth","_callee6","controller","timeoutId","_this$_onConnect2","result","_this$_onDisconnect","_t","_context6","AbortController","abort","_callee5","response","data","_context5","fetch","headers","body","JSON","stringify","jsonrpc","id","signal","json","clearTimeout","f","getHealth","_getVersion","_callee7","_context7","getVersion","_getSlot","_callee8","_context8","getSlot","_getBlockHeight","_callee9","_context9","getBlockHeight","_getEpochInfo","_callee0","_context0","getEpochInfo","_getLatestBlockhash","_callee1","_context1","getLatestBlockhash","_getGenesisHash","_callee10","_context10","_getSupply","_callee11","_context11","getSupply","_getClusterNodes","_callee12","_context12","getClusterNodes","_getVoteAccounts","_callee13","_context13","getVoteAccounts","_getTransactionCount","_callee14","_context14","getTransactionCount","_getBlock","_callee15","slot","_args15","_context15","_options$rewards","getBlock","maxSupportedTransactionVersion","transactionDetails","rewards","_x2","_getBlockTime","_callee16","_context16","getBlockTime","_x3","_getBlocks","_callee17","startSlot","endSlot","_context17","getBlocks","_x4","_x5","_getFirstAvailableBlock","_callee18","_context18","getFirstAvailableBlock","_getRecentPerformanceSamples","_callee19","limit","_args19","_context19","getRecentPerformanceSamples","_getInflationRate","_callee20","_context20","getInflationRate","_getInflationReward","_callee21","addresses","epoch","_yield$import","PublicKey","pubkeys","_context21","map","getInflationReward","_x6","_x7","_requestAirdrop","_callee22","amountQBT","_yield$import2","LAMPORTS_PER_SOL","pubkey","lamports","_context22","requestAirdrop","_x8","_x9","_getBalance","_callee23","_yield$import3","_context23","getBalance","_x0","_getBalanceQBT","_callee24","_context24","getBalanceQBT","_x1","_getAccountInfo","_callee25","_yield$import4","_context25","getAccountInfo","_x10","_accountExists","_callee26","info","_context26","accountExists","_x11","_getMultipleBalances","_callee27","_yield$import5","infos","_context27","getMultipleAccountsInfo","i","_infos$i","_infos$i2","qbt","getMultipleBalances","_x12","_sendTransaction","_callee28","transaction","_args28","_context28","sendRawTransaction","serialize","sendTransaction","_x13","_confirmTransaction","_callee29","context","_ref2","blockhash","lastValidBlockHeight","_args29","_t2","_context29","confirmTransaction","_x14","_x15","_getTransaction","_callee30","_context30","getTransaction","_x16","_getSignaturesForAddress","_callee31","_yield$import6","_args31","_context31","getSignaturesForAddress","before","until","_x17","_getMinimumBalanceForRentExemption","_callee32","dataSize","_context32","getMinimumBalanceForRentExemption","_x18","_getTokenAccountsByOwner","_callee33","owner","_yield$import7","_yield$import8","_context33","getTokenAccountsByOwner","programId","item","toBase58","account","_x19","_getTokenBalance","_callee34","tokenAccountAddress","_yield$import9","_context34","getTokenAccountBalance","getTokenBalance","_x20","getConnectionInfo","isConnected","lastHealthCheck","destroy","_this$_onDisconnect2","reason","_defaultConnection","getDefaultConnection","resetDefaultConnection","resolveRawConnection","_x21","_resolveRawConnection","_callee37","_context38","raw","QBitKeypair","solanaKeypair","mnemonic","derivationPath","_keypair","_mnemonic","_derivationPath","publicKey","exportPrivateKey","bs58","encode","secretKey","exportSecretKey","sign","msgBytes","TextEncoder","nacl","detached","signBase58","sig","fill","_generate","_options$strength","strength","_options$accountIndex","accountIndex","_options$useLegacyPat","useLegacyPath","_args","bip39","generateMnemonic","fromMnemonic","generate","_fromMnemonic","_options$accountIndex2","coinType","_options$useLegacyPat2","seed","resolvedCoinType","path","derived","keypair","_args2","validateMnemonic","mnemonicToSeed","derivePath","Keypair","fromSeed","fromPrivateKey","privateKey","decode","Uint8Array","fromSecretKey","fromJsonKey","jsonKey","from","_deriveMultiple","count","startIndex","keypairs","kp","_args3","push","deriveMultiple","mnemonicToKeypair","_mnemonicToKeypair","_args4","trim","verifySignature","sigBytes","pubkeyBytes","toBytes","verify","qbtToLamports","lamportsToQbt","formatQbt","decimals","toFixed","isValidAddress","shortenAddress","startLen","endLen","toPublicKey","addressOrKey","HTTP_CONFIRMATION_POLL_MS","HTTP_CONFIRMATION_MAX_POLLS","waitForConfirmationOverHttp","_waitForConfirmationOverHttp","_statuses$value","statuses","status","confirmationStatus","confirmations","currentBlockHeight","_args8","getSignatureStatuses","searchTransactionHistory","resolve","QBitTransaction","_conn","_transaction","Transaction","_instructions","_signers","addInstruction","instruction","addSigner","signer","_collectSigners","primary","seen","Set","_i","_arr","_toConsumableArray","real","has","add","transfer","to","SystemProgram","fromPubkey","toPubkey","_transferToken","amount","feePayer","getAssociatedTokenAddress","createAssociatedTokenAccountInstruction","createTransferCheckedInstruction","TOKEN_PROGRAM_ID","ASSOCIATED_TOKEN_PROGRAM_ID","mintPubkey","feePayerPubkey","fromAta","fromAtaInfo","toAta","toAtaInfo","Number","isFinite","isInteger","tokenAccount","transferToken","batchTransfer","transfers","_iterator","_createForOfIteratorHelper","_step","s","done","_step$value","e","addMemo","memo","memoInstruction","keys","Buffer","setComputeUnits","units","ComputeBudgetProgram","setComputeUnitLimit","unshift","setPriorityFee","microLamports","setComputeUnitPrice","_build","_yield$this$_conn$get","_iterator2","_step2","ix","_latestBlockhash","recentBlockhash","build","_signTransaction","_this$_transaction","signTransaction","_sendAndConfirm","_this$_transaction2","sendAndConfirm","_send","_this$_transaction3","_args5","send","_confirm","_args6","confirm","_simulate","_this$_transaction4","estimatedFee","feeResult","simulateTransaction","getFeeForMessage","compileMessage","unitsConsumed","returnData","simulate","transferQBT","_transferQBT","fromKeypair","toAddress","tx","_args9","_x22","_x23","_transferToken2","_args0","mint","estimateTransactionFee","_x24","_x25","_estimateTransactionFee","conn","fee","createMint","_createMint","payer","_options$decimals","payerKp","MINT_SIZE","createInitializeMint2Instruction","mintKeypair","mintAuthority","freezeAuthority","rentLamports","createAccount","newAccountPubkey","space","getOrCreateTokenAccount","_getOrCreateTokenAccount","ownerAddress","ownerPubkey","ata","created","mintTo","_mintTo","authorityKp","createMintToInstruction","ataInfo","_isPositiveAmount","String","BigInt","burn","_burn","ownerKp","createBurnInstruction","createBurnCheckedInstruction","approve","_approve","delegateAddress","createApproveInstruction","delegate","revoke","_revoke","createRevokeInstruction","freezeAccount","_freezeAccount","_args7","_toggleFreeze","thawAccount","_x26","_x27","_x28","_x29","_thawAccount","setAuthority","_x30","_x31","_x32","_x33","_x34","_setAuthority","currentAuthority","targetAddress","authorityType","newAuthorityAddress","createSetAuthorityInstruction","AuthorityType","typeEnum","newAuthority","closeTokenAccount","_x35","_x36","_x37","_x38","_closeTokenAccount","destinationAddress","createCloseAccountInstruction","destination","getTokenAccountDelegation","_x39","_x40","_getTokenAccountDelegation","_info$value","_parsed$delegatedAmou","parsed","getParsedAccountInfo","delegatedAmount","_x41","_x42","_x43","_x44","_x45","_toggleFreeze2","freeze","createFreezeAccountInstruction","createThawAccountInstruction","_args10","QBIT_ANCHOR_NAMESPACE","QBIT_DID_ANCHOR_NAMESPACE","MAX_QBIT_ANCHOR_MEMO_BYTES","removeEmptyFields","input","Object","fromEntries","entries","filter","_ref","_slicedToArray","buildQBitAnchorMemo","payload","namespace","memoPayload","ns","action","subject","did","credential_id","resource_id","document_hash","credential_hash","content_hash","version","extra","memoBytes","maxBytes","parseQBitAnchorMemo","parse","_typeof","accountKeyAt","index","_transaction$transact","_key$pubkey","_key$pubkey$toBase","_key$pubkey2","_key$pubkey2$toString","_key$toBase","_key$toString","accountKeys","instructionProgramId","_instruction$programI","_instruction$programI2","_instruction$programI3","_instruction$programI4","programIdIndex","decodeMemoInstruction","program","isMemoProgram","TextDecoder","_unused2","collectInstructions","_transaction$transact2","_transaction$meta","instructions","messageInstructions","Array","isArray","innerInstructions","meta","group","extractQBitAnchorMemos","Boolean","createQBitAnchorTransaction","_createQBitAnchorTransaction","txBuilder","priorityFee","extractTxHash","txHash","tx_hash","hash","resolveAnchorMemo","memoOrPayload","waitForAnchorConfirmation","_waitForAnchorConfirmation","pollMs","maxPolls","_status$slot","_err$message","pollIntervalMs","max","ceil","confirmed","timedOut","broadcastQBitAnchor","_broadcastQBitAnchor","provider","_provider$publicKey","_provider$publicKey$t","_provider$publicKey2","_provider$publicKey2$","payerAddress","signed","confirmation","signAndSendTransaction","waitForConfirmation","verifyAnchoredMemo","_verifyAnchoredMemo","memos","matched","getParsedTransaction","found","match","some","every","_ref3","_ref4","executable","rentEpoch","getTokenAccounts","_getTokenAccounts","tokenProgramId","getParsedTokenAccountsByOwner","_item$account$data$pa","_parsed$tokenAmount","_parsed$tokenAmount2","_parsed$tokenAmount3","tokenAmount","uiAmount","getTokenMintInfo","_getTokenMintInfo","_info$value$data$pars","_parsed$isInitialized","supply","isInitialized","getAssociatedTokenAccount","_getAssociatedTokenAccount","ataAddress","exists","getTransactionHistory","_getTransactionHistory","signatures","txList","detailPromises","blockTime","withDetails","all","forEach","_details$i$meta","_details$i$meta2","_details$i$meta3","_details$i$meta4","preBalances","postBalances","logMessages","getStakeAccounts","_getStakeAccounts2","_getStakeAccounts","createStakeAccount","_createStakeAccount","voteAccountAddress","stakeKeypair","staker","withdrawer","authorized","lockup","rentExemption","totalLamports","createStakeAccountTx","delegateTx","Authorized","Lockup","StakeProgram","stakePubkey","authorizedPubkey","votePubkey","sendAndConfirmTransaction","stakeAccount","validator","_delegate","authorizedKeypair","stakeAccountAddress","deactivate","_deactivate","withdrawStake","_withdrawStake","withdrawerKeypair","withdraw","getStakeActivation","_getStakeActivation","accounts","getParsedProgramAccounts","filters","memcmp","offset","bytes","acc","_acc$account$data$par","_parsed$stake","_parsed$meta","_parsed$meta2","stake","delegation","voter","state","getValidators","_getValidators","voteAccounts","current","nodePubkey","activatedStake","activatedStakeQBT","commission","lastVote","epochCredits","delinquent","totalValidators","totalStake","reduce","sum","getChainHealth","_getChainHealth","getChainVersion","_getChainVersion","_args11","_args14","getChainStatus","_getChainStatus","_supply$value","_supply$value2","_yield$Promise$all","_yield$Promise$all2","health","epochInfo","featureSet","blockHeight","absoluteSlot","slotProgress","slotsInEpoch","slotIndex","totalSupplyQBT","total","circulatingQBT","circulating","transactionCount","QBitSubscription","_subscriptions","Map","_nextId","onAccountChange","callback","wsId","accountInfo","_accountInfo$data","set","type","cleanup","removeAccountChangeListener","onProgramLogs","onLogs","removeOnLogsListener","onAllLogs","onSlotChange","slotInfo","parent","root","removeSlotChangeListener","onSignature","removeSignatureListener","onRootChange","removeRootChangeListener","subscriptionId","sub","unsubscribeAll","getActiveSubscriptions","target","size","BUILTIN_TOKENS","symbol","icon","category","verified","TokenRegistry","_registry","_resolving","token","getToken","_resolveToken","cached","promise","_fetchFromChain","resolveToken","_resolveMany","mintAddresses","results","promises","addr","allSettled","resolveMany","register","tokenMeta","registerMany","tokens","t","getAll","values","getVerified","search","query","q","toLowerCase","includes","formatAmount","rawAmount","displayDecimals","formatWithSymbol","formatted","_fetchFromChain2","_defaultRegistry","getTokenRegistry","KNOWN_TOKENS","PROGRAM_NAMES","TransactionParser","_parse","_tx$meta","_tx$meta2","_tx$meta3","events","signers","programs","encoding","summary","success","feeQBT","_extractEvents","_classifyTransaction","k","_buildSummary","_parseMany","_r$reason","parseMany","_parseRecentForAddress","sigs","parseRecentForAddress","_tx$meta4","_parseParsedInstruction","inner","_iterator3","_step3","_info$tokenAmount","_info$tokenAmount2","source","newAccount","voteAccount","authority","stakeAuthority","types","find","ProgramHelper","_programId","findPDA","seeds","processedSeeds","toBuffer","findProgramAddressSync","findPDAMany","seedsList","isPDA","isOnCurve","buildInstruction","TransactionInstruction","isSigner","isWritable","buildIndexedInstruction","instructionIndex","indexBuf","alloc","writeUInt8","_execute","execute","_yield$raw$getLatestB","_getAccounts","programFilters","getProgramAccounts","getAccounts","_getPDAAccount","_this$findPDA","_this$findPDA2","pda","getPDAAccount","encodeU32","buf","writeUInt32LE","encodeU64","writeBigUInt64LE","encodeString","str","content","len","decodeU32","readUInt32LE","decodeU64","readBigUInt64LE","decodeString","bytesRead","ChainApiClient","_BaseApiClient","config","_syncTransaction","post","syncTransaction","_getTransactionReceipt","getTransactionReceipt","_getNodeStatus","getNodeStatus","_getBalanceHistory","getBalanceHistory","BaseApiClient","chainApi","useChain","_useState","useState","_useState2","loading","setLoading","_useState3","_useState4","setError","_useState5","_useState6","networkInfo","setNetworkInfo","_useState7","_useState8","txReceipt","setTxReceipt","updateStatus","useCallback","isHealthy","statusData","healthy","fetchTxReceipt","receipt","syncTx","res","_t3","messages","en","chainStatus","tps","unhealthy","syncing","txDetails","balance","loadingTx","fetchFailed","blockNumber","gasFee","syncToBackend","syncedWithBackend","syncFailed","txPendingDesc","close","unknown","zh","ja","ko","SUPPORTED_LANGUAGES","currentLanguage","setLanguage","lang","getLanguage","ChainStatusCard","_networkInfo$healthy","_networkInfo$blockHei","_networkInfo$networkN","_networkInfo$tps","_ref$className","className","_ref$interval","interval","_useChain","useEffect","timer","setInterval","clearInterval","networkName","React","createElement","toLocaleString","TransactionReceiptModal","isOpen","onClose","onSyncComplete","setSyncing","syncStatus","setSyncStatus","handleSyncToBackend","confirmedAt","onClick","disabled"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO,IAAMA,gBAAgB,GAAG;;AAEhC;AACA;AACA;AACA;AACA;AACO,IAAMC,cAAc,GAAG;;AAE9B;AACA;AACA;AACA;AACO,IAAMC,YAAY,GAAG;AAC1B;AACAC,EAAAA,OAAO,EAAE,8CAA8C;AACvDC,EAAAA,MAAM,EAAE;AACV;;AAEA;AACA;AACA;AACO,IAAMC,YAAY,GAAG;AAC1B;AACAC,EAAAA,gBAAgB,EAAE,GAAG;AACrB;AACAC,EAAAA,eAAe,EAAE,MAAM;AACvB;AACAC,EAAAA,mBAAmB,EAAE,KAAK;AAC1B;AACAC,EAAAA,qBAAqB,EAAE;AACzB;;AAEA;AACA;AACA;AACA;AACO,IAAMC,cAAc,GAAG;AAC5B;AACAC,EAAAA,cAAc,EAAE,kCAAkC;AAElD;AACAC,EAAAA,aAAa,EAAE,6CAA6C;AAE5D;AACAC,EAAAA,wBAAwB,EAAE,8CAA8C;AAExE;AACAC,EAAAA,YAAY,EAAE,6CAA6C;AAE3D;AACAC,EAAAA,aAAa,EAAE,6CAA6C;AAE5D;AACAC,EAAAA,YAAY,EAAE,6CAA6C;AAE3D;AACAC,EAAAA,YAAY,EAAE,6CAA6C;AAE3D;AACAC,EAAAA,WAAW,EAAE;AACf;;AAEA;AACA;AACA;AACO,IAAMC,eAAe,GAAG;AAC7BhB,EAAAA,OAAO,EAAE;AACPiB,IAAAA,GAAG,EAAE,mCAAmC;AACxCC,IAAAA,EAAE,EAAE,iCAAiC;IACrCC,WAAW,EAAEpB,YAAY,CAACC;GAC3B;AACDoB,EAAAA,OAAO,EAAE;AACPH,IAAAA,GAAG,EAAE,mCAAmC;AACxCC,IAAAA,EAAE,EAAE,iCAAiC;IACrCC,WAAW,EAAE,IAAI;GAClB;AACDlB,EAAAA,MAAM,EAAE;AACNgB,IAAAA,GAAG,EAAE,kCAAkC;AACvCC,IAAAA,EAAE,EAAE,gCAAgC;IACpCC,WAAW,EAAEpB,YAAY,CAACE;AAC5B;AACF;;AAEA;AACA;AACA;AACO,IAAMoB,uBAAuB,GAAG;AACrCC,EAAAA,UAAU,EAAE,WAAW;AACvBC,EAAAA,mBAAmB,EAAE,WAAW;AAChCC,EAAAA,aAAa,EAAE;AACjB;;AAEA;AACA;AACA;AACO,IAAMC,OAAO,GAAG;AACrBC,EAAAA,WAAW,EAAE,KAAM;AAAU;AAC7BC,EAAAA,gBAAgB,EAAE,KAAM;AAAK;AAC7BC,EAAAA,mBAAmB,EAAE,KAAM;AAAE;EAC7BC,YAAY,EAAE,KAAM;AACtB;;AAEA;AACA;AACA;AACO,IAAMC,KAAK,GAAG;AACnBC,EAAAA,WAAW,EAAE,CAAC;AAAe;AAC7BC,EAAAA,aAAa,EAAE,IAAK;AAAS;EAC7BC,YAAY,EAAE,KAAM;AACtB;;;;;;;;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAaC,SAAS,0BAAAC,MAAA,EAAA;AAClB;AACJ;AACA;AACA;AACA;EACI,SAAAD,SAAAA,CAAYE,OAAO,EAAqC;AAAA,IAAA,IAAAC,KAAA;AAAA,IAAA,IAAnCC,IAAI,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,YAAY;AAAA,IAAA,IAAEG,OAAO,GAAAH,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAI,IAAAA,eAAA,OAAAT,SAAA,CAAA;AAClDG,IAAAA,KAAA,GAAAO,UAAA,CAAA,IAAA,EAAAV,SAAA,GAAME,OAAO,CAAA,CAAA;IACbC,KAAA,CAAKQ,IAAI,GAAG,WAAW;IACvBR,KAAA,CAAKC,IAAI,GAAGA,IAAI;IAChBD,KAAA,CAAKK,OAAO,GAAGA,OAAO;AACtBL,IAAAA,KAAA,CAAKS,SAAS,GAAGC,IAAI,CAACC,GAAG,EAAE;AAAC,IAAA,OAAAX,KAAA;AAChC,EAAA;EAACY,SAAA,CAAAf,SAAA,EAAAC,MAAA,CAAA;EAAA,OAAAe,YAAA,CAAAhB,SAAA,EAAA,CAAA;IAAAiB,GAAA,EAAA,QAAA;AAAAC,IAAAA,KAAA,EAED,SAAAC,MAAMA,GAAG;MACL,OAAO;QACHR,IAAI,EAAE,IAAI,CAACA,IAAI;QACfP,IAAI,EAAE,IAAI,CAACA,IAAI;QACfF,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBM,OAAO,EAAE,IAAI,CAACA,OAAO;QACrBI,SAAS,EAAE,IAAI,CAACA;OACnB;AACL,IAAA;AAAC,GAAA,CAAA,CAAA;AAAA,CAAA,cAAAQ,gBAAA,CAtB0BC,KAAK,CAAA;;AAyBpC;AACA;AACA;AACA;AACA,IAAaC,YAAY,0BAAAC,UAAA,EAAA;AACrB;AACJ;AACA;AACA;AACA;EACI,SAAAD,YAAAA,CAAYpB,OAAO,EAA6B;AAAA,IAAA,IAAAsB,MAAA;AAAA,IAAA,IAA3BC,OAAO,GAAApB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,IAAA,IAAEqB,MAAM,GAAArB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAI,IAAAA,eAAA,OAAAa,YAAA,CAAA;IAC1CE,MAAA,GAAAd,UAAA,CAAA,IAAA,EAAAY,YAAA,GAAMpB,OAAO,EAAE,WAAW,EAAE;AAAEuB,MAAAA,OAAO,EAAPA,OAAO;AAAEC,MAAAA,MAAM,EAANA;KAAQ,CAAA,CAAA;IAC/CF,MAAA,CAAKb,IAAI,GAAG,cAAc;IAC1Ba,MAAA,CAAKC,OAAO,GAAGA,OAAO;IACtBD,MAAA,CAAKE,MAAM,GAAGA,MAAM;AAAC,IAAA,OAAAF,MAAA;AACzB,EAAA;EAACT,SAAA,CAAAO,YAAA,EAAAC,UAAA,CAAA;EAAA,OAAAP,YAAA,CAAAM,YAAA,CAAA;AAAA,CAAA,CAX6BtB,SAAS;;AAc3C;AACA;AACA;AACA;AACA,IAAa2B,gBAAgB,0BAAAC,WAAA,EAAA;AACzB;AACJ;AACA;AACA;AACA;EACI,SAAAD,gBAAAA,CAAYzB,OAAO,EAA+B;AAAA,IAAA,IAAA2B,MAAA;AAAA,IAAA,IAA7BC,QAAQ,GAAAzB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,IAAA,IAAE0B,KAAK,GAAA1B,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI;AAAAI,IAAAA,eAAA,OAAAkB,gBAAA,CAAA;IAC5CE,MAAA,GAAAnB,UAAA,CAAA,IAAA,EAAAiB,gBAAA,GAAMzB,OAAO,EAAE,eAAe,EAAE;AAAE4B,MAAAA,QAAQ,EAARA,QAAQ;AAAEC,MAAAA,KAAK,EAAEA,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE7B;KAAS,CAAA,CAAA;IACnE2B,MAAA,CAAKlB,IAAI,GAAG,kBAAkB;IAC9BkB,MAAA,CAAKC,QAAQ,GAAGA,QAAQ;IACxBD,MAAA,CAAKE,KAAK,GAAGA,KAAK;AAAC,IAAA,OAAAF,MAAA;AACvB,EAAA;EAACd,SAAA,CAAAY,gBAAA,EAAAC,WAAA,CAAA;EAAA,OAAAZ,YAAA,CAAAW,gBAAA,CAAA;AAAA,CAAA,CAXiC3B,SAAS;;AAc/C;AACA;AACA;AACA;AACA,IAAagC,wBAAwB,0BAAAC,WAAA,EAAA;AACjC;AACJ;AACA;AACA;AACA;AACI,EAAA,SAAAD,yBAAYE,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAE;AAAA,IAAA,IAAAC,MAAA;AAAA5B,IAAAA,eAAA,OAAAuB,wBAAA,CAAA;AACnCK,IAAAA,MAAA,GAAA3B,UAAA,CAAA,IAAA,EAAAsB,wBAAA,EAAA,CAAA,qEAAA,CAAAM,MAAA,CACmBF,OAAO,EAAA,IAAA,CAAA,CAAAE,MAAA,CAAKJ,QAAQ,KAAA,IAAA,IAARA,QAAQ,uBAARA,QAAQ,CAAEK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAA,yBAAA,CAAA,CAAAD,MAAA,CAAWH,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAA,KAAA,CAAA,EAC9E,kBAAkB,EAClB;AAAEL,MAAAA,QAAQ,EAARA,QAAQ;AAAEC,MAAAA,MAAM,EAANA,MAAM;AAAEC,MAAAA,OAAO,EAAPA;KAAS,CAAA,CAAA;IAEjCC,MAAA,CAAK1B,IAAI,GAAG,0BAA0B;AAAC,IAAA,OAAA0B,MAAA;AAC3C,EAAA;EAACtB,SAAA,CAAAiB,wBAAA,EAAAC,WAAA,CAAA;EAAA,OAAAjB,YAAA,CAAAgB,wBAAA,CAAA;AAAA,CAAA,CAbyChC,SAAS;;AAgBvD;AACA;AACA;AACA;AACA,IAAawC,oBAAoB,0BAAAC,WAAA,EAAA;AAC7B;AACJ;AACA;AACA;AACA;EACI,SAAAD,oBAAAA,CAAYtC,OAAO,EAA6B;AAAA,IAAA,IAAAwC,MAAA;AAAA,IAAA,IAA3BC,SAAS,GAAAtC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,IAAA,IAAEuC,IAAI,GAAAvC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAI,IAAAA,eAAA,OAAA+B,oBAAA,CAAA;IAC1CE,MAAA,GAAAhC,UAAA,CAAA,IAAA,EAAA8B,oBAAA,GAAMtC,OAAO,EAAE,mBAAmB,EAAE;AAAEyC,MAAAA,SAAS,EAATA,SAAS;AAAEC,MAAAA,IAAI,EAAJA;KAAM,CAAA,CAAA;IACvDF,MAAA,CAAK/B,IAAI,GAAG,sBAAsB;IAClC+B,MAAA,CAAKC,SAAS,GAAGA,SAAS;IAC1BD,MAAA,CAAKE,IAAI,GAAGA,IAAI;AAAC,IAAA,OAAAF,MAAA;AACrB,EAAA;EAAC3B,SAAA,CAAAyB,oBAAA,EAAAC,WAAA,CAAA;EAAA,OAAAzB,YAAA,CAAAwB,oBAAA,CAAA;AAAA,CAAA,CAXqCxC,SAAS;;AAcnD;AACA;AACA;AACA,IAAa6C,0BAA0B,0BAAAC,qBAAA,EAAA;AACnC;AACJ;AACA;AACA;AACI,EAAA,SAAAD,0BAAAA,CAAYE,QAAQ,EAAEC,SAAS,EAAE;AAAA,IAAA,IAAAC,MAAA;AAAAxC,IAAAA,eAAA,OAAAoC,0BAAA,CAAA;IAC7BI,MAAA,GAAAvC,UAAA,CAAA,IAAA,EAAAmC,0BAAA,EAAA,CAAA,6CAAA,CAAAP,MAAA,CACeS,QAAQ,EAAA,8BAAA,CAAA,CAAAT,MAAA,CAAgBU,SAAS,EAAA,WAAA,CAAA,CAAA,CAAA;IAEhDC,MAAA,CAAKtC,IAAI,GAAG,4BAA4B;IACxCsC,MAAA,CAAK7C,IAAI,GAAG,oBAAoB;IAChC6C,MAAA,CAAKzC,OAAO,GAAG;AAAEuC,MAAAA,QAAQ,EAARA,QAAQ;AAAEC,MAAAA,SAAS,EAATA;KAAW;AAAC,IAAA,OAAAC,MAAA;AAC3C,EAAA;EAAClC,SAAA,CAAA8B,0BAAA,EAAAC,qBAAA,CAAA;EAAA,OAAA9B,YAAA,CAAA6B,0BAAA,CAAA;AAAA,CAAA,CAZ2CL,oBAAoB;;AAepE;AACA;AACA;AACA,IAAaU,wBAAwB,0BAAAC,WAAA,EAAA;EACjC,SAAAD,wBAAAA,CAAYE,OAAO,EAAE;AAAA,IAAA,IAAAC,MAAA;AAAA5C,IAAAA,eAAA,OAAAyC,wBAAA,CAAA;IACjBG,MAAA,GAAA3C,UAAA,CAAA,IAAA,EAAAwC,wBAAA,EAAA,CAAA,kCAAA,CAAAZ,MAAA,CAAgBc,OAAO,CAAA,EAAI,mBAAmB,EAAE;AAAEA,MAAAA,OAAO,EAAPA;KAAS,CAAA,CAAA;IAC3DC,MAAA,CAAK1C,IAAI,GAAG,0BAA0B;AAAC,IAAA,OAAA0C,MAAA;AAC3C,EAAA;EAACtC,SAAA,CAAAmC,wBAAA,EAAAC,WAAA,CAAA;EAAA,OAAAnC,YAAA,CAAAkC,wBAAA,CAAA;AAAA,CAAA,CAJyClD,SAAS;;AAOvD;AACA;AACA;AACA;AACA,IAAasD,cAAc,0BAAAC,WAAA,EAAA;EACvB,SAAAD,cAAAA,CAAYpD,OAAO,EAAkC;AAAA,IAAA,IAAAsD,MAAA;AAAA,IAAA,IAAhCC,WAAW,GAAApD,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,IAAA,IAAEG,OAAO,GAAAH,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAI,IAAAA,eAAA,OAAA6C,cAAA,CAAA;IAC/CE,MAAA,GAAA9C,UAAA,CAAA,IAAA,EAAA4C,cAAA,GAAMpD,OAAO,EAAE,aAAa,EAAAwD,cAAA,CAAA;AAAID,MAAAA,WAAW,EAAXA;AAAW,KAAA,EAAKjD,OAAO,CAAA,CAAA,CAAA;IACvDgD,MAAA,CAAK7C,IAAI,GAAG,gBAAgB;AAAC,IAAA,OAAA6C,MAAA;AACjC,EAAA;EAACzC,SAAA,CAAAuC,cAAA,EAAAC,WAAA,CAAA;EAAA,OAAAvC,YAAA,CAAAsC,cAAA,CAAA;AAAA,CAAA,CAJ+BtD,SAAS;;AAO7C;AACA;AACA;AACA;AACA,IAAa2D,gBAAgB,0BAAAC,WAAA,EAAA;EACzB,SAAAD,gBAAAA,CAAYzD,OAAO,EAAE;AAAA,IAAA,IAAA2D,MAAA;AAAApD,IAAAA,eAAA,OAAAkD,gBAAA,CAAA;AACjBE,IAAAA,MAAA,GAAAnD,UAAA,CAAA,IAAA,EAAAiD,gBAAA,EAAA,CAAMzD,OAAO,EAAE,eAAe,CAAA,CAAA;IAC9B2D,MAAA,CAAKlD,IAAI,GAAG,kBAAkB;AAAC,IAAA,OAAAkD,MAAA;AACnC,EAAA;EAAC9C,SAAA,CAAA4C,gBAAA,EAAAC,WAAA,CAAA;EAAA,OAAA5C,YAAA,CAAA2C,gBAAA,CAAA;AAAA,CAAA,CAJiC3D,SAAS;;AAO/C;;AAEO,IAAM8D,WAAW,GAAG;AACvB;AACAC,EAAAA,aAAa,EAAE,eAAe;AAC9BC,EAAAA,gBAAgB,EAAE,kBAAkB;AACpCC,EAAAA,SAAS,EAAE,WAAW;AACtB1E,EAAAA,OAAO,EAAE,SAAS;AAElB;AACA2E,EAAAA,iBAAiB,EAAE,mBAAmB;AACtCC,EAAAA,kBAAkB,EAAE,oBAAoB;AACxCC,EAAAA,gBAAgB,EAAE,kBAAkB;AACpCC,EAAAA,iBAAiB,EAAE,mBAAmB;AAEtC;AACAC,EAAAA,iBAAiB,EAAE,mBAAmB;AACtCC,EAAAA,WAAW,EAAE,aAAa;AAC1BC,EAAAA,aAAa,EAAE,eAAe;AAE9B;AACAC,EAAAA,aAAa,EAAE,eAAe;AAC9BC,EAAAA,gBAAgB,EAAE,kBAAkB;AACpCC,EAAAA,mBAAmB,EAAE;AACzB;;ACvLA;AACA,IAAIC,SAAS,GAAG,IAAI;AACpB,IAAIC,eAAe,GAAG,KAAK;AAAC,SAEbC,YAAYA,GAAA;AAAA,EAAA,OAAAC,aAAA,CAAAC,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAW3B;AACA;AACA;AACA;AACA;AAJA,SAAA0E,aAAAA,GAAA;EAAAA,aAAA,GAAAE,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAXA,SAAAC,SAAAA,GAAA;AAAA,IAAA,OAAAF,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAC,UAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAC,CAAA,GAAAD,UAAA,CAAAE,CAAA;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,IAAA,CACMX,eAAe,EAAA;AAAAS,YAAAA,UAAA,CAAAE,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,OAAAF,UAAA,CAAAG,CAAA,CAAA,CAAA,EAASb,SAAS,CAAA;AAAA,QAAA,KAAA,CAAA;AACrCC,UAAAA,eAAe,GAAG,IAAI;AAACS,UAAAA,UAAA,CAAAC,CAAA,GAAA,CAAA;AAAAD,UAAAA,UAAA,CAAAE,CAAA,GAAA,CAAA;UAAA,OAEH,OAAO,uBAAuB,CAAC;AAAA,QAAA,KAAA,CAAA;UAAjDZ,SAAS,GAAAU,UAAA,CAAAI,CAAA;AAAAJ,UAAAA,UAAA,CAAAE,CAAA,GAAA,CAAA;AAAA,UAAA;AAAA,QAAA,KAAA,CAAA;AAAAF,UAAAA,UAAA,CAAAC,CAAA,GAAA,CAAA;UAAAD,UAAA,CAAAI,CAAA;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,OAAAJ,UAAA,CAAAG,CAAA,CAAA,CAAA,EAIJb,SAAS,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAQ,SAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;EAAA,CACjB,CAAA,CAAA;AAAA,EAAA,OAAAL,aAAA,CAAAC,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAASsF,aAAaA,CAACC,OAAO,EAAE;EAC9B,IAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,CACpBnG,KAAK,CAACE,aAAa,GAAGgG,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEJ,OAAO,CAAC,EAC1ChG,KAAK,CAACG,YACR,CAAC;AACD;AACA,EAAA,IAAMkG,MAAM,GAAGJ,KAAK,GAAG,IAAI,IAAIC,IAAI,CAACI,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACrD,EAAA,OAAOJ,IAAI,CAACK,KAAK,CAACN,KAAK,GAAGI,MAAM,CAAC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAOeG,SAASA,CAAAC,EAAA,EAAA;AAAA,EAAA,OAAAC,UAAA,CAAAtB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAyBxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfA,SAAAiG,UAAAA,GAAA;EAAAA,UAAA,GAAArB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAzBA,SAAAoB,SAAAA,CAAyBC,EAAE,EAAA;IAAA,IAAAC,eAAA,EAAAC,UAAA;AAAA,IAAA,IAAAC,UAAA;MAAAC,aAAA;MAAAC,SAAA;MAAAC,KAAA;MAAAC,IAAA;MAAAnB,OAAA;AAAAoB,MAAAA,OAAA,GAAA3G,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA4B,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAzB,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEmB,UAAAA,UAAU,GAAAK,OAAA,CAAA1G,MAAA,GAAA,CAAA,IAAA0G,OAAA,CAAA,CAAA,CAAA,KAAAzG,SAAA,GAAAyG,OAAA,CAAA,CAAA,CAAA,GAAGpH,KAAK,CAACC,WAAW;UAAE+G,aAAa,GAAAI,OAAA,CAAA1G,MAAA,GAAA,CAAA,IAAA0G,OAAA,CAAA,CAAA,CAAA,KAAAzG,SAAA,GAAAyG,OAAA,CAAA,CAAA,CAAA,GAAG,KAAK;AAAAF,UAAAA,KAAA,gBAAA5B,YAAA,EAAA,CAAAC,CAAA,UAAA2B,KAAAA,GAAA;AAAA,YAAA,IAAAjB,KAAA,EAAAqB,GAAA,EAAAC,GAAA;AAAA,YAAA,OAAAjC,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA+B,UAAA,EAAA;AAAA,cAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA7B,CAAA,GAAA6B,UAAA,CAAA5B,CAAA;AAAA,gBAAA,KAAA,CAAA;AAAA4B,kBAAAA,UAAA,CAAA7B,CAAA,GAAA,CAAA;AAAA6B,kBAAAA,UAAA,CAAA5B,CAAA,GAAA,CAAA;kBAAA,OAI/DgB,EAAE,EAAE;AAAA,gBAAA,KAAA,CAAA;kBAAAU,GAAA,GAAAE,UAAA,CAAA1B,CAAA;kBAAA,OAAA0B,UAAA,CAAA3B,CAAA,CAAA,CAAA,EAAA;AAAAC,oBAAAA,CAAA,EAAAwB;AAAA,mBAAA,CAAA;AAAA,gBAAA,KAAA,CAAA;AAAAE,kBAAAA,UAAA,CAAA7B,CAAA,GAAA,CAAA;kBAAA4B,GAAA,GAAAC,UAAA,CAAA1B,CAAA;AAEjBmB,kBAAAA,SAAS,GAAAM,GAAQ;kBAAC,IAAA,EACdvB,OAAO,GAAGe,UAAU,CAAA,EAAA;AAAAS,oBAAAA,UAAA,CAAA5B,CAAA,GAAA,CAAA;AAAA,oBAAA;AAAA,kBAAA;AAChBK,kBAAAA,KAAK,GAAGF,aAAa,CAACC,OAAO,CAAC;AACpCyB,kBAAAA,OAAO,CAACC,IAAI,CAAA,mBAAA,CAAAhF,MAAA,CAAqBsE,aAAa,EAAA,iBAAA,CAAA,CAAAtE,MAAA,CAAQsD,OAAO,GAAG,CAAC,EAAA,GAAA,CAAA,CAAAtD,MAAA,CAAIqE,UAAU,GAAG,CAAC,EAAA,SAAA,CAAA,CAAArE,MAAA,CAAKuD,KAAK,EAAA,yBAAA,CAAA,CAAAvD,MAAA,CAAW6E,GAAA,CAAMjH,OAAO,CAAE,CAAC;AAACkH,kBAAAA,UAAA,CAAA5B,CAAA,GAAA,CAAA;AAAA,kBAAA,OACnH,IAAI+B,OAAO,CAAC,UAAAC,CAAC,EAAA;AAAA,oBAAA,OAAIC,UAAU,CAACD,CAAC,EAAE3B,KAAK,CAAC;kBAAA,CAAA,CAAC;AAAA,gBAAA,KAAA,CAAA;kBAAA,OAAAuB,UAAA,CAAA3B,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,YAAA,CAAA,EAAAqB,KAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAAA,UAAA,CAAA,CAAA;AARzClB,UAAAA,OAAO,GAAG,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA,IAAA,EAAEA,OAAO,IAAIe,UAAU,CAAA,EAAA;AAAAM,YAAAA,UAAA,CAAAzB,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,OAAAyB,UAAA,CAAAS,CAAA,CAAAC,kBAAA,CAAAb,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA;AAAA,QAAA,KAAA,CAAA;UAAAC,IAAA,GAAAE,UAAA,CAAAvB,CAAA;AAAA,UAAA,IAAA,CAAAqB,IAAA,EAAA;AAAAE,YAAAA,UAAA,CAAAzB,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,OAAAyB,UAAA,CAAAxB,CAAA,CAAA,CAAA,EAAAsB,IAAA,CAAArB,CAAA,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEE,UAAAA,OAAO,EAAE;AAAAqB,UAAAA,UAAA,CAAAzB,CAAA,GAAA,CAAA;AAAA,UAAA;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,IAAA,EAalDqB,SAAS,IAAA,CAAAJ,eAAA,GAAII,SAAS,CAAClG,IAAI,MAAA,IAAA,IAAA8F,eAAA,eAAdA,eAAA,CAAgBmB,UAAU,CAAC,MAAM,CAAC,CAAA,EAAA;AAAAX,YAAAA,UAAA,CAAAzB,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MAC3CqB,SAAS;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,MAEX,IAAIvF,YAAY,CAAA,EAAA,CAAAgB,MAAA,CACjBsE,aAAa,EAAA,UAAA,CAAA,CAAAtE,MAAA,CAAMqE,UAAU,GAAG,CAAC,EAAA,yCAAA,CAAA,CAAArE,MAAA,CAAA,CAAAoE,UAAA,GAAYG,SAAS,MAAA,IAAA,IAAAH,UAAA,KAAA,MAAA,GAAA,MAAA,GAATA,UAAA,CAAWxG,OAAO,CAAA,EAClE,EAAE,EACF0G,aACF,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA,OAAAK,UAAA,CAAAxB,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAc,SAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAAD,UAAA,CAAAtB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAkBD,IAAawH,cAAc,gBAAA,YAAA;AACzB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE,EAAA,SAAAA,iBAA0B;AAAA,IAAA,IAAAC,qBAAA;MAAA3H,KAAA,GAAA,IAAA;AAAA,IAAA,IAAd4H,OAAO,GAAA1H,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAI,IAAAA,eAAA,OAAAoH,cAAA,CAAA;AACtB,IAAA,IAAI,CAACG,eAAe,GAAGD,OAAO,CAACjG,QAAQ;AACvC,IAAA,IAAI,CAACmG,WAAW,GAAGF,OAAO,CAAC3I,UAAU,IAAI,WAAW;AACpD,IAAA,IAAI,CAAC8I,WAAW,GAAGH,OAAO,CAACI,UAAU;IACrC,IAAI,CAACC,UAAU,GAAGL,OAAO,CAACM,SAAS,IAAI9I,OAAO,CAACC,WAAW;AAC1D,IAAA,IAAI,CAAC8I,YAAY,GAAGP,OAAO,CAAC3F,OAAO,IAAI,SAAS;AAChD,IAAA,IAAI,CAACmG,iBAAiB,GAAG,CAAC,CAACR,OAAO,CAAC3F,OAAO;AAC1C,IAAA,IAAI,CAACoG,aAAa,GAAGT,OAAO,CAACU,YAAY,IAAI,KAAK;;AAElD;AACA,IAAA,IAAI,CAACC,UAAU,GAAGX,OAAO,CAACY,SAAS,IAAI,IAAI;AAC3C,IAAA,IAAI,CAACC,aAAa,GAAGb,OAAO,CAACc,YAAY,IAAI,IAAI;AACjD,IAAA,IAAI,CAACC,QAAQ,GAAGf,OAAO,CAACgB,OAAO,IAAI,IAAI;AACvC,IAAA,IAAI,CAACC,kBAAkB,GAAGjB,OAAO,CAACkB,iBAAiB,IAAI,IAAI;;AAE3D;IACA,IAAI,CAACC,YAAY,GAAG,KAAK;IACzB,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B,IAAI,CAACC,qBAAqB,GAAG,KAAK;;AAElC;IACA,IAAMtH,QAAQ,GAAG,IAAI,CAACkG,eAAe,MAAAF,qBAAA,GAAIhJ,eAAe,CAAC,IAAI,CAACwJ,YAAY,CAAC,MAAA,IAAA,IAAAR,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAlCA,qBAAA,CAAoC/I,GAAG,CAAA,IAAID,eAAe,CAAChB,OAAO,CAACiB,GAAG;;AAE/G;AACA,IAAA,IAAI,CAAC,IAAI,CAACmJ,WAAW,EAAE;MACrB,IAAI,CAACA,WAAW,GAAG,IAAI,CAACmB,iBAAiB,CAACvH,QAAQ,CAAC;AACrD,IAAA;;AAEA;AACA,IAAA,IAAI,CAACwH,WAAW,GAAG,IAAIC,kBAAU,CAACzH,QAAQ,EAAE;MAC1C1C,UAAU,EAAE,IAAI,CAAC6I,WAAW;AAC5BE,MAAAA,UAAU,EAAE,IAAI,CAACD,WAAW,IAAI3H,SAAS;MACzCiJ,gCAAgC,EAAE,IAAI,CAACpB;AACzC,KAAC,CAAC;IAEF,IAAI,CAACqB,SAAS,GAAG3H,QAAQ;;AAEzB;IACA,IAAI,IAAI,CAAC0G,aAAa,EAAE;MACtB,IAAI,CAACkB,eAAe,EAAE,SAAM,CAAC,UAAAC,GAAG,EAAI;AAAA,QAAA,IAAAC,qBAAA;QAClCvC,OAAO,CAACwC,KAAK,CAAC,4BAA4B,EAAEF,GAAG,CAACzJ,OAAO,CAAC;AACxD,QAAA,CAAA0J,qBAAA,GAAAzJ,KAAI,CAAC6I,kBAAkB,MAAA,IAAA,IAAAY,qBAAA,KAAA,MAAA,IAAvBA,qBAAA,CAAAE,IAAA,CAAA3J,KAAI,EAAsB;UAAEiC,OAAO,EAAEjC,KAAI,CAACmI,YAAY;AAAEuB,UAAAA,KAAK,EAAEF;AAAI,SAAC,CAAC;AACvE,MAAA,CAAC,CAAC;AACJ,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;EAHE,OAAA3I,YAAA,CAAA6G,cAAA,EAAA,CAAA;IAAA5G,GAAA,EAAA,kBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA6I,iBAAA,GAAA9E,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAA6E,OAAAA,GAAA;AAAA,QAAA,IAAAC,mBAAA;UAAAC,cAAA;UAAA1I,MAAA,GAAA,IAAA;QAAA,IAAA2I,GAAA,EAAAC,WAAA,EAAAC,aAAA,EAAAC,QAAA,EAAAC,WAAA,EAAAC,QAAA;AAAA,QAAA,OAAAtF,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAjF,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EACM,IAAI,CAAC4D,qBAAqB,IAAI,IAAI,CAACpB,eAAe,CAAA,EAAA;AAAAyC,gBAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cAAA,OAAAiF,QAAA,CAAAhF,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cACtD,IAAI,CAAC2D,qBAAqB,GAAG,IAAI;AAACqB,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;cAAA,OAEhBV,YAAY,EAAE;AAAA,YAAA,KAAA,CAAA;cAA1BqF,GAAG,GAAAM,QAAA,CAAA/E,CAAA;AAAA,cAAA,IACJyE,GAAG,EAAA;AAAAM,gBAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cAAA,OAAAiF,QAAA,CAAAhF,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAEF2E,cAAAA,WAAW,GAAG,CAAA,CAAAH,mBAAA,GAAAE,GAAG,CAACO,cAAc,MAAA,IAAA,IAAAT,mBAAA,uBAAlBA,mBAAA,CAAAH,IAAA,CAAAK,GAAqB,CAAC,MAAA,CAAAD,cAAA,GAAIC,GAAG,CAACQ,SAAS,MAAA,IAAA,IAAAT,cAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,cAAA,CAAAJ,IAAA,CAAAK,GAAgB,CAAC,CAAA,IAAI,EAAE,CAAA;AAG/DE,cAAAA,aAAa,GAAGD,WAAW,CAAChI,OAAO,IAAIgI,WAAW,CAACQ,YAAY;cAAA,IAAA,EACjE,IAAI,CAACrC,iBAAiB,IAAI8B,aAAa,IAAIA,aAAa,KAAK,IAAI,CAAC/B,YAAY,CAAA,EAAA;AAAAmC,gBAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cAAA,OAAAiF,QAAA,CAAAhF,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAIlF,cAAA,IAAI,CAACoF,iBAAiB,CAACT,WAAW,CAAC;;AAEnC;cACA,IAAID,GAAG,CAACW,eAAe,EAAE;AACvB,gBAAA,IAAI,OAAOC,OAAO,KAAK,WAAW,EAAE;AAC5BT,kBAAAA,QAAQ,GAAG,IAAIS,OAAO,CAAC,IAAI,CAAC;AAE5BP,kBAAAA,QAAQ,GAAG,SAAXA,QAAQA,CAAIQ,SAAS,EAAK;AAC9B,oBAAA,IAAMC,IAAI,GAAGX,QAAQ,CAACY,KAAK,EAAE;AAC7B,oBAAA,IAAID,IAAI,EAAE;sBACR,IAAME,WAAW,GAAGH,SAAS,CAAC5I,OAAO,IAAI4I,SAAS,CAACJ,YAAY;sBAC/D,IAAIK,IAAI,CAAC1C,iBAAiB,IAAI4C,WAAW,IAAIA,WAAW,KAAKF,IAAI,CAAC3C,YAAY,EAAE;AAC9E,wBAAA;AACF,sBAAA;AACA2C,sBAAAA,IAAI,CAACJ,iBAAiB,CAACG,SAAS,CAAC;oBACnC,CAAC,MAAM,IAAIT,WAAW,EAAE;AACtBA,sBAAAA,WAAW,EAAE;AACf,oBAAA;kBACF,CAAC;AACDA,kBAAAA,WAAW,GAAGJ,GAAG,CAACW,eAAe,CAACN,QAAQ,CAAC;kBAC3C,IAAI,CAACY,YAAY,GAAGb,WAAW;AACjC,gBAAA,CAAC,MAAM;kBACL,IAAI,CAACa,YAAY,GAAGjB,GAAG,CAACW,eAAe,CAAC,UAACE,SAAS,EAAK;oBACrD,IAAMG,WAAW,GAAGH,SAAS,CAAC5I,OAAO,IAAI4I,SAAS,CAACJ,YAAY;oBAC/D,IAAIpJ,MAAI,CAAC+G,iBAAiB,IAAI4C,WAAW,IAAIA,WAAW,KAAK3J,MAAI,CAAC8G,YAAY,EAAE;AAC9E,sBAAA;AACF,oBAAA;AACA9G,oBAAAA,MAAI,CAACqJ,iBAAiB,CAACG,SAAS,CAAC;AACnC,kBAAA,CAAC,CAAC;AACJ,gBAAA;AACF,cAAA;AAAC,YAAA,KAAA,CAAA;cAAA,OAAAP,QAAA,CAAAhF,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAuE,OAAA,EAAA,IAAA,CAAA;MAAA,CACF,CAAA,CAAA;AAAA,MAAA,SA9CKqB,gBAAgBA,GAAA;AAAA,QAAA,OAAAtB,iBAAA,CAAA/E,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAhBgL,gBAAgB;AAAA,IAAA,CAAA,EAAA;AAAA,GAAA,EAAA;IAAApK,GAAA,EAAA,oBAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAoK,mBAAA,GAAArG,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAgDtB,SAAAoG,QAAAA,GAAA;AAAA,QAAA,OAAArG,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAgG,cAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,cAAA,OACQ,IAAI,CAAC6F,gBAAgB,EAAE;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAG,SAAA,CAAA/F,CAAA,CAAA,CAAA,EACtB,IAAI,CAAC6D,WAAW,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAiC,QAAA,EAAA,IAAA,CAAA;MAAA,CACxB,CAAA,CAAA;AAAA,MAAA,SAHKE,kBAAkBA,GAAA;AAAA,QAAA,OAAAH,mBAAA,CAAAtG,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAlBoL,kBAAkB;AAAA,IAAA,CAAA;AAAA,GAAA,EAAA;IAAAxK,GAAA,EAAA,kBAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAwK,iBAAA,GAAAzG,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAKxB,SAAAwG,QAAAA,GAAA;AAAA,QAAA,OAAAzG,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,YAAA,KAAA,CAAA;cAAA,OAAAoG,SAAA,CAAAnG,CAAA,CAAA,CAAA,EACS,IAAI,CAACgG,kBAAkB,EAAE,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAE,QAAA,EAAA,IAAA,CAAA;MAAA,CACjC,CAAA,CAAA;AAAA,MAAA,SAFKE,gBAAgBA,GAAA;AAAA,QAAA,OAAAH,iBAAA,CAAA1G,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAhBwL,gBAAgB;AAAA,IAAA,CAAA;AAAA,GAAA,EAAA;IAAA5K,GAAA,EAAA,mBAAA;AAAAC,IAAAA,KAAA,EAItB,SAAA2J,iBAAiBA,GAAmB;AAAA,MAAA,IAAlBT,WAAW,GAAA/J,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAChC,MAAA,IAAMyB,QAAQ,GAAGsI,WAAW,CAACtI,QAAQ,IAAIsI,WAAW,CAAC0B,aAAa,IAAI1B,WAAW,CAAC2B,WAAW;MAC7F,IAAM5D,UAAU,GAAGiC,WAAW,CAACjC,UAAU,IAAIiC,WAAW,CAAC4B,eAAe;AACxE,MAAA,IAAM5M,UAAU,GAAGgL,WAAW,CAAChL,UAAU,IAAIgL,WAAW,CAAC6B,eAAe,IAAI,IAAI,CAAChE,WAAW;AAC5F,MAAA,IAAMI,SAAS,GAAG+B,WAAW,CAAC/B,SAAS,IAAI+B,WAAW,CAAC8B,cAAc,IAAI,IAAI,CAAC9D,UAAU;AACxF,MAAA,IAAMhG,OAAO,GAAGgI,WAAW,CAAChI,OAAO,IAAIgI,WAAW,CAACQ,YAAY,IAAI,IAAI,CAACtC,YAAY;MAEpF,IAAI,CAACxG,QAAQ,EAAE;MAEf,IAAMqK,cAAc,GAAGhE,UAAU,IAAI,IAAI,CAACkB,iBAAiB,CAACvH,QAAQ,CAAC;MACrE,IAAMsK,eAAe,GACnBtK,QAAQ,KAAK,IAAI,CAAC2H,SAAS,IAC3BrK,UAAU,KAAK,IAAI,CAAC6I,WAAW,IAC/BkE,cAAc,KAAK,IAAI,CAACjE,WAAW,IACnCG,SAAS,KAAK,IAAI,CAACD,UAAU;MAE/B,IAAI,CAACE,YAAY,GAAGlG,OAAO;MAC3B,IAAI,CAACgG,UAAU,GAAGC,SAAS;AAE3B,MAAA,IAAI+D,eAAe,EAAE;QACnB,IAAI,CAACC,UAAU,CAACvK,QAAQ,EAAE1C,UAAU,EAAE+M,cAAc,CAAC;AACvD,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAAlL,GAAA,EAAA,KAAA;IAAAqL,GAAA,EAIA,SAAAA,GAAAA,GAAU;MACR,OAAO,IAAI,CAAChD,WAAW;AACzB,IAAA;;AAEA;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAArI,GAAA,EAAA,UAAA;IAAAqL,GAAA,EAIA,SAAAA,GAAAA,GAAe;MACb,OAAO,IAAI,CAAC7C,SAAS;AACvB,IAAA;;AAEA;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAAxI,GAAA,EAAA,SAAA;IAAAqL,GAAA,EAIA,SAAAA,GAAAA,GAAc;MACZ,OAAO,IAAI,CAAChE,YAAY;AAC1B,IAAA;;AAEA;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAArH,GAAA,EAAA,aAAA;IAAAqL,GAAA,EAIA,SAAAA,GAAAA,GAAkB;MAChB,OAAO,IAAI,CAACpD,YAAY;AAC1B,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAAjI,GAAA,EAAA,mBAAA;AAAAC,IAAAA,KAAA,EAMA,SAAAmI,iBAAiBA,CAAC0C,WAAW,EAAE;MAC7B,IAAI;AACF,QAAA,IAAMQ,GAAG,GAAG,IAAIC,GAAG,CAACT,WAAW,CAAC;QAChCQ,GAAG,CAACE,QAAQ,GAAGF,GAAG,CAACE,QAAQ,KAAK,QAAQ,GAAG,MAAM,GAAG,KAAK;AACzD,QAAA,OAAOF,GAAG,CAACG,QAAQ,EAAE;MACvB,CAAC,CAAC,OAAAC,OAAA,EAAM;AACN,QAAA,OAAO,IAAI;AACb,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAJE,GAAA,EAAA;IAAA1L,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAKA,SAAA0L,aAAaA,CAACxK,OAAO,EAAE;AACrB;AACA0C,MAAAA,YAAY,EAAE,CAAC+H,IAAI,CAAC,UAAA1C,GAAG,EAAI;AACzB,QAAA,IAAIA,GAAG,KAAA,IAAA,IAAHA,GAAG,eAAHA,GAAG,CAAE2C,eAAe,EAAE;AACxB3C,UAAAA,GAAG,CAAC2C,eAAe,CAAC1K,OAAO,CAAC;AAC9B,QAAA;AACF,MAAA,CAAC,CAAC,CAAA,OAAA,CAAM,CAAC,YAAM,CAAE,CAAC,CAAC;AAEnB,MAAA,IAAM2K,cAAc,GAAGjO,eAAe,CAACsD,OAAO,CAAC;MAC/C,IAAI,CAAC2K,cAAc,EAAE;QACnB,MAAM,IAAIpL,gBAAgB,CAAA,4BAAA,CAAAW,MAAA,CAAUF,OAAO,EAAA,8CAAA,CAAA,EAAiCA,OAAO,CAAC;AACtF,MAAA;MAEA,IAAI,CAACkG,YAAY,GAAGlG,OAAO;AAC3B,MAAA,IAAI,CAACiK,UAAU,CAACU,cAAc,CAAChO,GAAG,EAAE,IAAI,CAACkJ,WAAW,EAAE8E,cAAc,CAAC/N,EAAE,CAAC;AAC1E,IAAA;;AAEA;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAAiC,GAAA,EAAA,YAAA;IAAAC,KAAA,EAIA,SAAAmL,UAAUA,CAACvK,QAAQ,EAAE1C,UAAU,EAAE+I,UAAU,EAAE;AAAA,MAAA,IAAA6E,gBAAA;MAC3C,IAAI,CAACvD,SAAS,GAAG3H,QAAQ;AACzB,MAAA,IAAI1C,UAAU,EAAE,IAAI,CAAC6I,WAAW,GAAG7I,UAAU;MAC7C,IAAI,CAAC8I,WAAW,GAAGC,UAAU,IAAI,IAAI,CAACkB,iBAAiB,CAACvH,QAAQ,CAAC;MACjE,IAAI,CAACoH,YAAY,GAAG,KAAK;AAEzB,MAAA,IAAI,CAACI,WAAW,GAAG,IAAIC,kBAAU,CAACzH,QAAQ,EAAE;QAC1C1C,UAAU,EAAE,IAAI,CAAC6I,WAAW;AAC5BE,QAAAA,UAAU,EAAE,IAAI,CAACD,WAAW,IAAI3H,SAAS;QACzCiJ,gCAAgC,EAAE,IAAI,CAACpB;AACzC,OAAC,CAAC;AAEFf,MAAAA,OAAO,CAAC4F,GAAG,CAAA,6CAAA,CAAA3K,MAAA,CAA2BR,QAAQ,CAAE,CAAC;MACjD,CAAAkL,gBAAA,GAAA,IAAI,CAACtE,UAAU,MAAA,IAAA,IAAAsE,gBAAA,KAAA,MAAA,IAAfA,gBAAA,CAAAlD,IAAA,CAAA,IAAI,EAAc;AAAEhI,QAAAA,QAAQ,EAARA,QAAQ;QAAEM,OAAO,EAAE,IAAI,CAACkG;AAAa,OAAC,CAAC;AAC7D,IAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAArH,GAAA,EAAA,iBAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAgM,gBAAA,GAAAjI,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAMA,SAAAgI,QAAAA,GAAA;QAAA,IAAAC,UAAA,EAAAC,UAAA,EAAAC,YAAA,EAAAC,KAAA,EAAAC,sBAAA,EAAA7D,GAAA;AAAA,QAAA,OAAAzE,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoI,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjI,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAiI,cAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAK,SAAA,CAAA/H,CAAA;AAAA+H,cAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,cAAA,OACSY,SAAS,CAChC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACM,cAAc,EAAE;AAAA,cAAA,CAAA,EACjC9N,KAAK,CAACC,WAAW,EACjB,gBACF,CAAC;AAAA,YAAA,KAAA,CAAA;cAJKwN,UAAU,GAAAI,SAAA,CAAA/H,CAAA;AAMV4H,cAAAA,YAAY,GAAGzP,YAAY,CAAC,IAAI,CAACyK,YAAY,CAAC,CAAA;AAEpD,cAAA,IACKgF,YAAY,EAAA;AAAAG,gBAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cAAA,OAAAiI,SAAA,CAAAhI,CAAA,CAAA,CAAA,EACR;AAAE8H,gBAAAA,KAAK,EAAE,IAAI;AAAErL,gBAAAA,QAAQ,EAAE,IAAI;AAAEC,gBAAAA,MAAM,EAAEkL,UAAU;gBAAEjL,OAAO,EAAE,IAAI,CAACkG;eAAc,CAAA;AAAA,YAAA,KAAA,CAAA;cAGlFiF,KAAK,GAAGF,UAAU,KAAKC,YAAY;cAEzC,IAAI,CAACC,KAAK,EAAE;gBACJ5D,GAAG,GAAG,IAAI3H,wBAAwB,CAACsL,YAAY,EAAED,UAAU,EAAE,IAAI,CAAC/E,YAAY,CAAC;gBACrF,CAAAkF,sBAAA,GAAA,IAAI,CAACxE,kBAAkB,MAAA,IAAA,IAAAwE,sBAAA,KAAA,MAAA,IAAvBA,sBAAA,CAAA1D,IAAA,CAAA,IAAI,EAAsB;AAAE5H,kBAAAA,QAAQ,EAAEoL,YAAY;AAAEnL,kBAAAA,MAAM,EAAEkL,UAAU;kBAAEjL,OAAO,EAAE,IAAI,CAACkG;AAAa,iBAAC,CAAC;gBACrGjB,OAAO,CAACwC,KAAK,CAAA,mBAAA,CAAAvH,MAAA,CAAqBqH,GAAG,CAACzJ,OAAO,CAAE,CAAC;AAClD,cAAA;cAAC,OAAAuN,SAAA,CAAAhI,CAAA,CAAA,CAAA,EAEM;AAAE8H,gBAAAA,KAAK,EAALA,KAAK;AAAErL,gBAAAA,QAAQ,EAAEoL,YAAY;AAAEnL,gBAAAA,MAAM,EAAEkL,UAAU;gBAAEjL,OAAO,EAAE,IAAI,CAACkG;eAAc,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA6E,QAAA,EAAA,IAAA,CAAA;MAAA,CACzF,CAAA,CAAA;AAAA,MAAA,SAxBKzD,eAAeA,GAAA;AAAA,QAAA,OAAAwD,gBAAA,CAAAlI,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAfqJ,eAAe;IAAA,CAAA,EAAA;AA4BrB;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAAzI,GAAA,EAAA,WAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAyM,UAAA,GAAA1I,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAAyI,QAAAA,GAAA;AAAA,QAAA,IAAA/L,MAAA,GAAA,IAAA;QAAA,IAAAgM,UAAA,EAAAC,SAAA,EAAAC,iBAAA,EAAAC,MAAA,EAAAC,mBAAA,EAAAC,EAAA;AAAA,QAAA,OAAAhJ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA8I,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA5I,CAAA,GAAA4I,SAAA,CAAA3I,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA2I,cAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;AAAA,cAAA,OACQ,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;AACzBoC,cAAAA,UAAU,GAAG,IAAIO,eAAe,EAAE;cAClCN,SAAS,GAAGrG,UAAU,CAAC,YAAA;AAAA,gBAAA,OAAMoG,UAAU,CAACQ,KAAK,EAAE;cAAA,CAAA,EAAE9O,OAAO,CAACI,YAAY,CAAC;AAAAwO,cAAAA,SAAA,CAAA5I,CAAA,GAAA,CAAA;AAAA4I,cAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;cAAA,OAGrDY,SAAS,cAAAnB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAAC,SAAAmJ,QAAAA,GAAA;gBAAA,IAAAC,QAAA,EAAAC,IAAA;AAAA,gBAAA,OAAAtJ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoJ,SAAA,EAAA;kBAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjJ,CAAA;AAAA,oBAAA,KAAA,CAAA;AAAAiJ,sBAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;AAAA,sBAAA,OACNkJ,KAAK,CAAC7M,MAAI,CAAC4H,SAAS,EAAE;AAC3C/H,wBAAAA,MAAM,EAAE,MAAM;AACdiN,wBAAAA,OAAO,EAAE;AAAE,0BAAA,cAAc,EAAE;yBAAoB;AAC/CC,wBAAAA,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;AAAEC,0BAAAA,OAAO,EAAE,KAAK;AAAEC,0BAAAA,EAAE,EAAE,CAAC;AAAEtN,0BAAAA,MAAM,EAAE;AAAY,yBAAC,CAAC;wBACpEuN,MAAM,EAAEpB,UAAU,CAACoB;AACrB,uBAAC,CAAC;AAAA,oBAAA,KAAA,CAAA;sBALIV,QAAQ,GAAAE,SAAA,CAAA/I,CAAA;AAAA+I,sBAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;AAAA,sBAAA,OAMK+I,QAAQ,CAACW,IAAI,EAAE;AAAA,oBAAA,KAAA,CAAA;sBAA5BV,IAAI,GAAAC,SAAA,CAAA/I,CAAA;sBAAA,IAAA,CACN8I,IAAI,CAAC3E,KAAK,EAAA;AAAA4E,wBAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;AAAA,wBAAA;AAAA,sBAAA;AAAA,sBAAA,MACN,IAAIlE,YAAY,CAACkN,IAAI,CAAC3E,KAAK,CAAC3J,OAAO,IAAI,oBAAoB,EAAEsO,IAAI,CAAC3E,KAAK,CAACzJ,IAAI,EAAE,WAAW,CAAC;AAAA,oBAAA,KAAA,CAAA;AAAA,sBAAA,OAAAqO,SAAA,CAAAhJ,CAAA,CAAA,CAAA,EAE3F+I,IAAI,CAACR,MAAM,CAAA;AAAA;AAAA,gBAAA,CAAA,EAAAM,QAAA,CAAA;AAAA,cAAA,CACnB,IAAE1O,KAAK,CAACC,WAAW,EAAE,WAAW,CAAC;AAAA,YAAA,KAAA,CAAA;cAZ5BmO,MAAM,GAAAG,SAAA,CAAAzI,CAAA;cAcZ,IAAI,CAACwD,YAAY,GAAG,IAAI;AACxB,cAAA,IAAI,CAACC,gBAAgB,GAAGtI,IAAI,CAACC,GAAG,EAAE;cAClC,CAAAiN,iBAAA,GAAA,IAAI,CAACrF,UAAU,MAAA,IAAA,IAAAqF,iBAAA,KAAA,MAAA,IAAfA,iBAAA,CAAAjE,IAAA,CAAA,IAAI,EAAc;gBAAEhI,QAAQ,EAAE,IAAI,CAAC2H,SAAS;gBAAErH,OAAO,EAAE,IAAI,CAACkG;AAAa,eAAC,CAAC;AAAC,cAAA,OAAA6F,SAAA,CAAA1I,CAAA,CAAA,CAAA,EACrEuI,MAAM,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAG,cAAAA,SAAA,CAAA5I,CAAA,GAAA,CAAA;cAAA2I,EAAA,GAAAC,SAAA,CAAAzI,CAAA;cAEb,IAAI,CAACwD,YAAY,GAAG,KAAK;cACzB,CAAA+E,mBAAA,GAAA,IAAI,CAACrF,aAAa,MAAA,IAAA,IAAAqF,mBAAA,KAAA,MAAA,IAAlBA,mBAAA,CAAAnE,IAAA,CAAA,IAAI,EAAiB;gBAAEhI,QAAQ,EAAE,IAAI,CAAC2H,SAAS;AAAEI,gBAAAA,KAAK,EAAAqE;AAAC,eAAC,CAAC;AAAC,cAAA,MAAAA,EAAA;AAAA,YAAA,KAAA,CAAA;AAAAC,cAAAA,SAAA,CAAA5I,CAAA,GAAA,CAAA;cAG1D4J,YAAY,CAACrB,SAAS,CAAC;cAAC,OAAAK,SAAA,CAAAiB,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAAA,OAAAjB,SAAA,CAAA1I,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAmI,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;MAAA,CAE3B,CAAA,CAAA;AAAA,MAAA,SA/BKyB,SAASA,GAAA;AAAA,QAAA,OAAA1B,UAAA,CAAA3I,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAATgP,SAAS;AAAA,IAAA,CAAA;AAiCf;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAApO,GAAA,EAAA,YAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAoO,WAAA,GAAArK,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAAoK,QAAAA,GAAA;AAAA,QAAA,IAAAnC,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmK,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhK,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAgK,cAAAA,SAAA,CAAAhK,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAoC,SAAA,CAAA9J,CAAA;AAAA,cAAA,OAAA8J,SAAA,CAAA/J,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACqC,UAAU,EAAE;AAAA,cAAA,CAAA,EAAE7P,KAAK,CAACC,WAAW,EAAE,YAAY,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA0P,QAAA,EAAA,IAAA,CAAA;MAAA,CACjF,CAAA,CAAA;AAAA,MAAA,SAHKE,UAAUA,GAAA;AAAA,QAAA,OAAAH,WAAA,CAAAtK,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAVoP,UAAU;AAAA,IAAA,CAAA;AAKhB;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAAxO,GAAA,EAAA,SAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAwO,QAAA,GAAAzK,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAAwK,QAAAA,GAAA;AAAA,QAAA,IAAAvC,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuK,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApK,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAoK,cAAAA,SAAA,CAAApK,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAwC,SAAA,CAAAlK,CAAA;AAAA,cAAA,OAAAkK,SAAA,CAAAnK,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACyC,OAAO,EAAE;AAAA,cAAA,CAAA,EAAEjQ,KAAK,CAACC,WAAW,EAAE,SAAS,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA8P,QAAA,EAAA,IAAA,CAAA;MAAA,CAC3E,CAAA,CAAA;AAAA,MAAA,SAHKE,OAAOA,GAAA;AAAA,QAAA,OAAAH,QAAA,CAAA1K,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAPwP,OAAO;AAAA,IAAA,CAAA;AAKb;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAA5O,GAAA,EAAA,gBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA4O,eAAA,GAAA7K,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAA4K,QAAAA,GAAA;AAAA,QAAA,IAAA3C,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA2K,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAxK,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAwK,cAAAA,SAAA,CAAAxK,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAA4C,SAAA,CAAAtK,CAAA;AAAA,cAAA,OAAAsK,SAAA,CAAAvK,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAAC6C,cAAc,EAAE;AAAA,cAAA,CAAA,EAAErQ,KAAK,CAACC,WAAW,EAAE,gBAAgB,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAkQ,QAAA,EAAA,IAAA,CAAA;MAAA,CACzF,CAAA,CAAA;AAAA,MAAA,SAHKE,cAAcA,GAAA;AAAA,QAAA,OAAAH,eAAA,CAAA9K,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAd4P,cAAc;AAAA,IAAA,CAAA;AAKpB;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAAhP,GAAA,EAAA,cAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAgP,aAAA,GAAAjL,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAAgL,QAAAA,GAAA;AAAA,QAAA,IAAA/C,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA+K,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA5K,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA4K,cAAAA,SAAA,CAAA5K,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAgD,SAAA,CAAA1K,CAAA;AAAA,cAAA,OAAA0K,SAAA,CAAA3K,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACiD,YAAY,EAAE;AAAA,cAAA,CAAA,EAAEzQ,KAAK,CAACC,WAAW,EAAE,cAAc,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAsQ,QAAA,EAAA,IAAA,CAAA;MAAA,CACrF,CAAA,CAAA;AAAA,MAAA,SAHKE,YAAYA,GAAA;AAAA,QAAA,OAAAH,aAAA,CAAAlL,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAZgQ,YAAY;AAAA,IAAA,CAAA;AAKlB;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAApP,GAAA,EAAA,oBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAoP,mBAAA,GAAArL,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAAoL,QAAAA,GAAA;AAAA,QAAA,IAAAnD,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmL,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhL,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAgL,cAAAA,SAAA,CAAAhL,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAoD,SAAA,CAAA9K,CAAA;AAAA,cAAA,OAAA8K,SAAA,CAAA/K,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACqD,kBAAkB,EAAE;AAAA,cAAA,CAAA,EAAE7Q,KAAK,CAACC,WAAW,EAAE,oBAAoB,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA0Q,QAAA,EAAA,IAAA,CAAA;MAAA,CACjG,CAAA,CAAA;AAAA,MAAA,SAHKE,kBAAkBA,GAAA;AAAA,QAAA,OAAAH,mBAAA,CAAAtL,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAlBoQ,kBAAkB;AAAA,IAAA,CAAA;AAKxB;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAAxP,GAAA,EAAA,gBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAwP,eAAA,GAAAzL,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAAwL,SAAAA,GAAA;AAAA,QAAA,IAAAvD,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuL,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAApL,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAoL,cAAAA,UAAA,CAAApL,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAwD,UAAA,CAAAlL,CAAA;cAAA,OAAAkL,UAAA,CAAAnL,CAAA,CAAA,CAAA,EACT2H,UAAU,CAACM,cAAc,EAAE,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAiD,SAAA,EAAA,IAAA,CAAA;MAAA,CACnC,CAAA,CAAA;AAAA,MAAA,SAHKjD,cAAcA,GAAA;AAAA,QAAA,OAAAgD,eAAA,CAAA1L,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAdqN,cAAc;AAAA,IAAA,CAAA;AAKpB;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAAzM,GAAA,EAAA,WAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA2P,UAAA,GAAA5L,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAA2L,SAAAA,GAAA;AAAA,QAAA,IAAA1D,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA0L,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAvL,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAuL,cAAAA,UAAA,CAAAvL,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAA2D,UAAA,CAAArL,CAAA;AAAA,cAAA,OAAAqL,UAAA,CAAAtL,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAAC4D,SAAS,EAAE;AAAA,cAAA,CAAA,EAAEpR,KAAK,CAACC,WAAW,EAAE,WAAW,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAiR,SAAA,EAAA,IAAA,CAAA;MAAA,CAC/E,CAAA,CAAA;AAAA,MAAA,SAHKE,SAASA,GAAA;AAAA,QAAA,OAAAH,UAAA,CAAA7L,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAT2Q,SAAS;AAAA,IAAA,CAAA;AAKf;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAA/P,GAAA,EAAA,iBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA+P,gBAAA,GAAAhM,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAA+L,SAAAA,GAAA;AAAA,QAAA,IAAA9D,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA8L,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA3L,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA2L,cAAAA,UAAA,CAAA3L,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAA+D,UAAA,CAAAzL,CAAA;AAAA,cAAA,OAAAyL,UAAA,CAAA1L,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACgE,eAAe,EAAE;AAAA,cAAA,CAAA,EAAExR,KAAK,CAACC,WAAW,EAAE,iBAAiB,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAqR,SAAA,EAAA,IAAA,CAAA;MAAA,CAC3F,CAAA,CAAA;AAAA,MAAA,SAHKE,eAAeA,GAAA;AAAA,QAAA,OAAAH,gBAAA,CAAAjM,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAf+Q,eAAe;AAAA,IAAA,CAAA;AAKrB;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAAnQ,GAAA,EAAA,iBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAmQ,gBAAA,GAAApM,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAAmM,SAAAA,GAAA;AAAA,QAAA,IAAAlE,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAkM,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA/L,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA+L,cAAAA,UAAA,CAAA/L,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAmE,UAAA,CAAA7L,CAAA;AAAA,cAAA,OAAA6L,UAAA,CAAA9L,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACoE,eAAe,EAAE;AAAA,cAAA,CAAA,EAAE5R,KAAK,CAACC,WAAW,EAAE,iBAAiB,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAyR,SAAA,EAAA,IAAA,CAAA;MAAA,CAC3F,CAAA,CAAA;AAAA,MAAA,SAHKE,eAAeA,GAAA;AAAA,QAAA,OAAAH,gBAAA,CAAArM,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAfmR,eAAe;AAAA,IAAA,CAAA;AAKrB;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAAvQ,GAAA,EAAA,qBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAuQ,oBAAA,GAAAxM,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAAuM,SAAAA,GAAA;AAAA,QAAA,IAAAtE,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAsM,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAnM,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAmM,cAAAA,UAAA,CAAAnM,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAuE,UAAA,CAAAjM,CAAA;AAAA,cAAA,OAAAiM,UAAA,CAAAlM,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACwE,mBAAmB,EAAE;AAAA,cAAA,CAAA,EAAEhS,KAAK,CAACC,WAAW,EAAE,qBAAqB,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA6R,SAAA,EAAA,IAAA,CAAA;MAAA,CACnG,CAAA,CAAA;AAAA,MAAA,SAHKE,mBAAmBA,GAAA;AAAA,QAAA,OAAAH,oBAAA,CAAAzM,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAnBuR,mBAAmB;AAAA,IAAA,CAAA;AAKzB;AACF;AACA;AACA;AACA;AACA;AALE;AAAA,GAAA,EAAA;IAAA3Q,GAAA,EAAA,UAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA2Q,SAAA,GAAA5M,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAA2M,SAAAA,CAAeC,IAAI,EAAA;AAAA,QAAA,IAAA1P,MAAA,GAAA,IAAA;AAAA,QAAA,IAAA0F,OAAA;UAAAqF,UAAA;AAAA4E,UAAAA,OAAA,GAAA3R,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA4M,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAzM,CAAA;AAAA,YAAA,KAAA,CAAA;AAAEuC,cAAAA,OAAO,GAAAiK,OAAA,CAAA1R,MAAA,GAAA,CAAA,IAAA0R,OAAA,CAAA,CAAA,CAAA,KAAAzR,SAAA,GAAAyR,OAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAC,cAAAA,UAAA,CAAAzM,CAAA,GAAA,CAAA;AAAA,cAAA,OACN,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAA6E,UAAA,CAAAvM,CAAA;AAAA,cAAA,OAAAuM,UAAA,CAAAxM,CAAA,CAAA,CAAA,EACTW,SAAS,CACd,YAAA;AAAA,gBAAA,IAAA8L,gBAAA;AAAA,gBAAA,OAAM9E,UAAU,CAAC+E,QAAQ,CAACJ,IAAI,EAAE;AAC9BK,kBAAAA,8BAA8B,EAAE,CAAC;AACjCC,kBAAAA,kBAAkB,EAAEtK,OAAO,CAACsK,kBAAkB,IAAI,MAAM;kBACxDC,OAAO,EAAA,CAAAJ,gBAAA,GAAEnK,OAAO,CAACuK,OAAO,MAAA,IAAA,IAAAJ,gBAAA,KAAA,MAAA,GAAAA,gBAAA,GAAI,KAAK;AACjC9S,kBAAAA,UAAU,EAAE2I,OAAO,CAAC3I,UAAU,IAAIiD,MAAI,CAAC4F;AACzC,iBAAC,CAAC;AAAA,cAAA,CAAA,EACFrI,KAAK,CAACC,WAAW,EACjB,UACF,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAiS,SAAA,EAAA,IAAA,CAAA;MAAA,CACF,CAAA,CAAA;MAAA,SAZKK,QAAQA,CAAAI,GAAA,EAAA;AAAA,QAAA,OAAAV,SAAA,CAAA7M,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAR8R,QAAQ;AAAA,IAAA,CAAA;AAcd;AACF;AACA;AACA;AACA;AAJE;AAAA,GAAA,EAAA;IAAAlR,GAAA,EAAA,cAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAsR,aAAA,GAAAvN,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAKA,SAAAsN,SAAAA,CAAmBV,IAAI,EAAA;AAAA,QAAA,IAAA3E,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAqN,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAlN,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAkN,cAAAA,UAAA,CAAAlN,CAAA,GAAA,CAAA;AAAA,cAAA,OACI,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAsF,UAAA,CAAAhN,CAAA;AAAA,cAAA,OAAAgN,UAAA,CAAAjN,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACuF,YAAY,CAACZ,IAAI,CAAC;AAAA,cAAA,CAAA,EAAEnS,KAAK,CAACC,WAAW,EAAE,cAAc,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA4S,SAAA,EAAA,IAAA,CAAA;MAAA,CACzF,CAAA,CAAA;MAAA,SAHKE,YAAYA,CAAAC,GAAA,EAAA;AAAA,QAAA,OAAAJ,aAAA,CAAAxN,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAZsS,YAAY;AAAA,IAAA,CAAA;AAKlB;AACF;AACA;AACA;AACA;AACA;AALE;AAAA,GAAA,EAAA;IAAA1R,GAAA,EAAA,WAAA;IAAAC,KAAA,GAAA,YAAA;AAAA,MAAA,IAAA2R,UAAA,GAAA5N,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAMA,SAAA2N,SAAAA,CAAgBC,SAAS,EAAEC,OAAO,EAAA;AAAA,QAAA,IAAA5F,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA4N,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAzN,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAyN,cAAAA,UAAA,CAAAzN,CAAA,GAAA,CAAA;AAAA,cAAA,OACP,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAA6F,UAAA,CAAAvN,CAAA;AAAA,cAAA,OAAAuN,UAAA,CAAAxN,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAAC8F,SAAS,CAACH,SAAS,EAAEC,OAAO,CAAC;AAAA,cAAA,CAAA,EAAEpT,KAAK,CAACC,WAAW,EAAE,WAAW,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAiT,SAAA,EAAA,IAAA,CAAA;MAAA,CACjG,CAAA,CAAA;AAAA,MAAA,SAHKI,SAASA,CAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAP,UAAA,CAAA7N,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAT6S,SAAS;AAAA,IAAA,CAAA;AAKf;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAAjS,GAAA,EAAA,wBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAmS,uBAAA,GAAApO,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAAmO,SAAAA,GAAA;AAAA,QAAA,IAAAlG,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAkO,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA/N,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA+N,cAAAA,UAAA,CAAA/N,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAmG,UAAA,CAAA7N,CAAA;AAAA,cAAA,OAAA6N,UAAA,CAAA9N,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACoG,sBAAsB,EAAE;AAAA,cAAA,CAAA,EAAE5T,KAAK,CAACC,WAAW,EAAE,wBAAwB,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAyT,SAAA,EAAA,IAAA,CAAA;MAAA,CACzG,CAAA,CAAA;AAAA,MAAA,SAHKE,sBAAsBA,GAAA;AAAA,QAAA,OAAAH,uBAAA,CAAArO,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAtBmT,sBAAsB;AAAA,IAAA,CAAA;AAK5B;AACF;AACA;AACA;AACA;AAJE;AAAA,GAAA,EAAA;IAAAvS,GAAA,EAAA,6BAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAuS,4BAAA,GAAAxO,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAKA,SAAAuO,SAAAA,GAAA;AAAA,QAAA,IAAAC,KAAA;UAAAvG,UAAA;AAAAwG,UAAAA,OAAA,GAAAvT,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAwO,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAArO,CAAA;AAAA,YAAA,KAAA,CAAA;cAAkCmO,KAAK,GAAAC,OAAA,CAAAtT,MAAA,GAAA,CAAA,IAAAsT,OAAA,CAAA,CAAA,CAAA,KAAArT,SAAA,GAAAqT,OAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAAAC,cAAAA,UAAA,CAAArO,CAAA,GAAA,CAAA;AAAA,cAAA,OAChB,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAyG,UAAA,CAAAnO,CAAA;AAAA,cAAA,OAAAmO,UAAA,CAAApO,CAAA,CAAA,CAAA,EACTW,SAAS,CACd,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAAC0G,2BAA2B,CAACH,KAAK,CAAC;AAAA,cAAA,CAAA,EACnD/T,KAAK,CAACC,WAAW,EACjB,6BACF,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA6T,SAAA,EAAA,IAAA,CAAA;MAAA,CACF,CAAA,CAAA;AAAA,MAAA,SAPKI,2BAA2BA,GAAA;AAAA,QAAA,OAAAL,4BAAA,CAAAzO,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAA3ByT,2BAA2B;AAAA,IAAA,CAAA;AASjC;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAA7S,GAAA,EAAA,kBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA6S,iBAAA,GAAA9O,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAIA,SAAA6O,SAAAA,GAAA;AAAA,QAAA,IAAA5G,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA4O,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAzO,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAyO,cAAAA,UAAA,CAAAzO,CAAA,GAAA,CAAA;AAAA,cAAA,OAC2B,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAA6G,UAAA,CAAAvO,CAAA;AAAA,cAAA,OAAAuO,UAAA,CAAAxO,CAAA,CAAA,CAAA,EACTW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAAC8G,gBAAgB,EAAE;AAAA,cAAA,CAAA,EAAEtU,KAAK,CAACC,WAAW,EAAE,kBAAkB,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAmU,SAAA,EAAA,IAAA,CAAA;MAAA,CAC7F,CAAA,CAAA;AAAA,MAAA,SAHKE,gBAAgBA,GAAA;AAAA,QAAA,OAAAH,iBAAA,CAAA/O,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAhB6T,gBAAgB;AAAA,IAAA,CAAA;AAKtB;AACF;AACA;AACA;AACA;AACA;AALE;AAAA,GAAA,EAAA;IAAAjT,GAAA,EAAA,oBAAA;IAAAC,KAAA,GAAA,YAAA;AAAA,MAAA,IAAAiT,mBAAA,GAAAlP,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAMA,SAAAiP,SAAAA,CAAyBC,SAAS,EAAEC,KAAK,EAAA;AAAA,QAAA,IAAAC,aAAA,EAAAC,SAAA,EAAApH,UAAA,EAAAqH,OAAA;AAAA,QAAA,OAAAvP,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAqP,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAlP,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAkP,cAAAA,UAAA,CAAAlP,CAAA,GAAA,CAAA;cAAA,OACX,OAAO,iBAAiB,CAAC;AAAA,YAAA,KAAA,CAAA;cAAA+O,aAAA,GAAAG,UAAA,CAAAhP,CAAA;cAA7C8O,SAAS,GAAAD,aAAA,CAATC,SAAS;AAAAE,cAAAA,UAAA,CAAAlP,CAAA,GAAA,CAAA;AAAA,cAAA,OACQ,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAsH,UAAA,CAAAhP,CAAA;AACV+O,cAAAA,OAAO,GAAGJ,SAAS,CAACM,GAAG,CAAC,UAAAlP,CAAC,EAAA;gBAAA,OAAK,OAAOA,CAAC,KAAK,QAAQ,GAAG,IAAI+O,SAAS,CAAC/O,CAAC,CAAC,GAAGA,CAAC;AAAA,cAAA,CAAC,CAAC;AAAA,cAAA,OAAAiP,UAAA,CAAAjP,CAAA,CAAA,CAAA,EAC3EW,SAAS,CACd,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACwH,kBAAkB,CAACH,OAAO,EAAEH,KAAK,CAAC;AAAA,cAAA,CAAA,EACnD1U,KAAK,CAACC,WAAW,EACjB,oBACF,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAuU,SAAA,EAAA,IAAA,CAAA;MAAA,CACF,CAAA,CAAA;AAAA,MAAA,SATKQ,kBAAkBA,CAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAX,mBAAA,CAAAnP,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAlBuU,kBAAkB;AAAA,IAAA,CAAA;AAWxB;AACF;AACA;AACA;AACA;AACA;AACA;AANE;AAAA,GAAA,EAAA;IAAA3T,GAAA,EAAA,gBAAA;IAAAC,KAAA,GAAA,YAAA;AAAA,MAAA,IAAA6T,eAAA,GAAA9P,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAOA,SAAA6P,SAAAA,CAAqB5R,OAAO,EAAE6R,SAAS,EAAA;QAAA,IAAAC,cAAA,EAAAV,SAAA,EAAAW,gBAAA,EAAA/H,UAAA,EAAAgI,MAAA,EAAAC,QAAA;AAAA,QAAA,OAAAnQ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAiQ,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA9P,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA8P,cAAAA,UAAA,CAAA9P,CAAA,GAAA,CAAA;cAAA,OACS,OAAO,iBAAiB,CAAC;AAAA,YAAA,KAAA,CAAA;cAAA0P,cAAA,GAAAI,UAAA,CAAA5P,CAAA;cAA/D8O,SAAS,GAAAU,cAAA,CAATV,SAAS;cAAEW,gBAAgB,GAAAD,cAAA,CAAhBC,gBAAgB;AAAA,cAAA,IAAA,EAC/B,IAAI,CAAC7M,YAAY,KAAK,SAAS,CAAA,EAAA;AAAAgN,gBAAAA,UAAA,CAAA9P,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cAAA,MAC3B,IAAI7D,gBAAgB,CAAC,gDAAgD,EAAE,IAAI,CAAC8H,SAAS,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA6L,cAAAA,UAAA,CAAA9P,CAAA,GAAA,CAAA;AAAA,cAAA,OAErE,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAkI,UAAA,CAAA5P,CAAA;AACV0P,cAAAA,MAAM,GAAG,OAAOhS,OAAO,KAAK,QAAQ,GAAG,IAAIoR,SAAS,CAACpR,OAAO,CAAC,GAAGA,OAAO;cACvEiS,QAAQ,GAAGvP,IAAI,CAACK,KAAK,CAAC8O,SAAS,GAAGE,gBAAgB,CAAC;AAAA,cAAA,OAAAG,UAAA,CAAA7P,CAAA,CAAA,CAAA,EAClDW,SAAS,CACd,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACmI,cAAc,CAACH,MAAM,EAAEC,QAAQ,CAAC;AAAA,cAAA,CAAA,EACjDzV,KAAK,CAACC,WAAW,EACjB,gBACF,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAmV,SAAA,EAAA,IAAA,CAAA;MAAA,CACF,CAAA,CAAA;AAAA,MAAA,SAbKO,cAAcA,CAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAV,eAAA,CAAA/P,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAdkV,cAAc;IAAA,CAAA,EAAA;AAiBpB;AACF;AACA;AACA;AACA;AACA;AALE;AAAA,GAAA,EAAA;IAAAtU,GAAA,EAAA,YAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAwU,WAAA,GAAAzQ,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAAwQ,SAAAA,CAAiBvS,OAAO,EAAA;AAAA,QAAA,IAAAwS,cAAA,EAAApB,SAAA,EAAApH,UAAA,EAAAgI,MAAA;AAAA,QAAA,OAAAlQ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAwQ,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAArQ,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAqQ,cAAAA,UAAA,CAAArQ,CAAA,GAAA,CAAA;cAAA,OACM,OAAO,iBAAiB,CAAC;AAAA,YAAA,KAAA,CAAA;cAAAoQ,cAAA,GAAAC,UAAA,CAAAnQ,CAAA;cAA7C8O,SAAS,GAAAoB,cAAA,CAATpB,SAAS;AAAAqB,cAAAA,UAAA,CAAArQ,CAAA,GAAA,CAAA;AAAA,cAAA,OACQ,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAyI,UAAA,CAAAnQ,CAAA;AACV0P,cAAAA,MAAM,GAAG,OAAOhS,OAAO,KAAK,QAAQ,GAAG,IAAIoR,SAAS,CAACpR,OAAO,CAAC,GAAGA,OAAO;AAAA,cAAA,OAAAyS,UAAA,CAAApQ,CAAA,CAAA,CAAA,EACtEW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAAC0I,UAAU,CAACV,MAAM,CAAC;AAAA,cAAA,CAAA,EAAExV,KAAK,CAACC,WAAW,EAAE,YAAY,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA8V,SAAA,EAAA,IAAA,CAAA;MAAA,CACvF,CAAA,CAAA;MAAA,SALKG,UAAUA,CAAAC,GAAA,EAAA;AAAA,QAAA,OAAAL,WAAA,CAAA1Q,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAVyV,UAAU;AAAA,IAAA,CAAA;AAOhB;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAA7U,GAAA,EAAA,eAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA8U,cAAA,GAAA/Q,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAA8Q,SAAAA,CAAoB7S,OAAO,EAAA;AAAA,QAAA,IAAAiS,QAAA;AAAA,QAAA,OAAAnQ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA6Q,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA1Q,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA0Q,cAAAA,UAAA,CAAA1Q,CAAA,GAAA,CAAA;AAAA,cAAA,OACF,IAAI,CAACsQ,UAAU,CAAC1S,OAAO,CAAC;AAAA,YAAA,KAAA,CAAA;cAAzCiS,QAAQ,GAAAa,UAAA,CAAAxQ,CAAA;AAAA,cAAA,OAAAwQ,UAAA,CAAAzQ,CAAA,CAAA,CAAA,EACP4P,QAAQ,GAAG,UAAa,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAY,SAAA,EAAA,IAAA,CAAA;MAAA,CAChC,CAAA,CAAA;MAAA,SAHKE,aAAaA,CAAAC,GAAA,EAAA;AAAA,QAAA,OAAAJ,cAAA,CAAAhR,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAb8V,aAAa;AAAA,IAAA,CAAA;AAKnB;AACF;AACA;AACA;AACA;AACA;AALE;AAAA,GAAA,EAAA;IAAAlV,GAAA,EAAA,gBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAmV,eAAA,GAAApR,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAAmR,SAAAA,CAAqBlT,OAAO,EAAA;AAAA,QAAA,IAAAmT,cAAA,EAAA/B,SAAA,EAAApH,UAAA,EAAAgI,MAAA;AAAA,QAAA,OAAAlQ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmR,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAhR,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAgR,cAAAA,UAAA,CAAAhR,CAAA,GAAA,CAAA;cAAA,OACE,OAAO,iBAAiB,CAAC;AAAA,YAAA,KAAA,CAAA;cAAA+Q,cAAA,GAAAC,UAAA,CAAA9Q,CAAA;cAA7C8O,SAAS,GAAA+B,cAAA,CAAT/B,SAAS;AAAAgC,cAAAA,UAAA,CAAAhR,CAAA,GAAA,CAAA;AAAA,cAAA,OACQ,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAoJ,UAAA,CAAA9Q,CAAA;AACV0P,cAAAA,MAAM,GAAG,OAAOhS,OAAO,KAAK,QAAQ,GAAG,IAAIoR,SAAS,CAACpR,OAAO,CAAC,GAAGA,OAAO;AAAA,cAAA,OAAAoT,UAAA,CAAA/Q,CAAA,CAAA,CAAA,EACtEW,SAAS,CAAC,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACqJ,cAAc,CAACrB,MAAM,CAAC;AAAA,cAAA,CAAA,EAAExV,KAAK,CAACC,WAAW,EAAE,gBAAgB,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAyW,SAAA,EAAA,IAAA,CAAA;MAAA,CAC/F,CAAA,CAAA;MAAA,SALKG,cAAcA,CAAAC,IAAA,EAAA;AAAA,QAAA,OAAAL,eAAA,CAAArR,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAdoW,cAAc;AAAA,IAAA,CAAA;AAOpB;AACF;AACA;AACA;AACA;AACA;AALE;AAAA,GAAA,EAAA;IAAAxV,GAAA,EAAA,eAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAyV,cAAA,GAAA1R,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAAyR,SAAAA,CAAoBxT,OAAO,EAAA;AAAA,QAAA,IAAAyT,IAAA;AAAA,QAAA,OAAA3R,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAyR,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAtR,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAsR,cAAAA,UAAA,CAAAtR,CAAA,GAAA,CAAA;AAAA,cAAA,OACN,IAAI,CAACiR,cAAc,CAACrT,OAAO,CAAC;AAAA,YAAA,KAAA,CAAA;cAAzCyT,IAAI,GAAAC,UAAA,CAAApR,CAAA;AAAA,cAAA,OAAAoR,UAAA,CAAArR,CAAA,CAAA,CAAA,EACHoR,IAAI,KAAK,IAAI,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAD,SAAA,EAAA,IAAA,CAAA;MAAA,CACrB,CAAA,CAAA;MAAA,SAHKG,aAAaA,CAAAC,IAAA,EAAA;AAAA,QAAA,OAAAL,cAAA,CAAA3R,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAb0W,aAAa;AAAA,IAAA,CAAA;AAKnB;AACF;AACA;AACA;AACA;AACA;AALE;AAAA,GAAA,EAAA;IAAA9V,GAAA,EAAA,qBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA+V,oBAAA,GAAAhS,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAA+R,SAAAA,CAA0B7C,SAAS,EAAA;QAAA,IAAA8C,cAAA,EAAA3C,SAAA,EAAApH,UAAA,EAAAqH,OAAA,EAAA2C,KAAA;AAAA,QAAA,OAAAlS,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAgS,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA7R,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA6R,cAAAA,UAAA,CAAA7R,CAAA,GAAA,CAAA;cAAA,OACL,OAAO,iBAAiB,CAAC;AAAA,YAAA,KAAA,CAAA;cAAA2R,cAAA,GAAAE,UAAA,CAAA3R,CAAA;cAA7C8O,SAAS,GAAA2C,cAAA,CAAT3C,SAAS;AAAA6C,cAAAA,UAAA,CAAA7R,CAAA,GAAA,CAAA;AAAA,cAAA,OACQ,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAiK,UAAA,CAAA3R,CAAA;AACV+O,cAAAA,OAAO,GAAGJ,SAAS,CAACM,GAAG,CAAC,UAAAlP,CAAC,EAAA;AAAA,gBAAA,OAAI,IAAI+O,SAAS,CAAC/O,CAAC,CAAC;cAAA,CAAA,CAAC;AAAA4R,cAAAA,UAAA,CAAA7R,CAAA,GAAA,CAAA;AAAA,cAAA,OAChCY,SAAS,CAC3B,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACkK,uBAAuB,CAAC7C,OAAO,CAAC;AAAA,cAAA,CAAA,EACjD7U,KAAK,CAACC,WAAW,EACjB,yBACF,CAAC;AAAA,YAAA,KAAA,CAAA;cAJKuX,KAAK,GAAAC,UAAA,CAAA3R,CAAA;cAAA,OAAA2R,UAAA,CAAA5R,CAAA,CAAA,CAAA,EAMJ4O,SAAS,CAACM,GAAG,CAAC,UAACvR,OAAO,EAAEmU,CAAC,EAAA;gBAAA,IAAAC,QAAA,EAAAC,SAAA;gBAAA,OAAM;AACpCrU,kBAAAA,OAAO,EAAPA,OAAO;AACPiS,kBAAAA,QAAQ,EAAE,CAAA,CAAAmC,QAAA,GAAAJ,KAAK,CAACG,CAAC,CAAC,MAAA,IAAA,IAAAC,QAAA,KAAA,MAAA,GAAA,MAAA,GAARA,QAAA,CAAUnC,QAAQ,KAAI,CAAC;AACjCqC,kBAAAA,GAAG,EAAE,CAAC,CAAA,CAAAD,SAAA,GAAAL,KAAK,CAACG,CAAC,CAAC,MAAA,IAAA,IAAAE,SAAA,KAAA,MAAA,GAAA,MAAA,GAARA,SAAA,CAAUpC,QAAQ,KAAI,CAAC,IAAI;iBAClC;AAAA,cAAA,CAAC,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA6B,SAAA,EAAA,IAAA,CAAA;MAAA,CACJ,CAAA,CAAA;MAAA,SAfKS,mBAAmBA,CAAAC,IAAA,EAAA;AAAA,QAAA,OAAAX,oBAAA,CAAAjS,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAnBsX,mBAAmB;IAAA,CAAA,EAAA;AAmBzB;AACF;AACA;AACA;AACA;AACA;AACA;AANE;AAAA,GAAA,EAAA;IAAA1W,GAAA,EAAA,iBAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAA2W,gBAAA,GAAA5S,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAOA,SAAA2S,SAAAA,CAAsBC,WAAW,EAAA;AAAA,QAAA,IAAAhQ,OAAA;UAAAqF,UAAA;AAAA4K,UAAAA,OAAA,GAAA3X,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA4S,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAzS,CAAA;AAAA,YAAA,KAAA,CAAA;AAAEuC,cAAAA,OAAO,GAAAiQ,OAAA,CAAA1X,MAAA,GAAA,CAAA,IAAA0X,OAAA,CAAA,CAAA,CAAA,KAAAzX,SAAA,GAAAyX,OAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAC,cAAAA,UAAA,CAAAzS,CAAA,GAAA,CAAA;AAAA,cAAA,OACpB,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAA6K,UAAA,CAAAvS,CAAA;AAAA,cAAA,OAAAuS,UAAA,CAAAxS,CAAA,CAAA,CAAA,EACT2H,UAAU,CAAC8K,kBAAkB,CAClCH,WAAW,CAACI,SAAS,EAAE,EACvB;AACE7Y,gBAAAA,aAAa,EAAEyI,OAAO,CAACzI,aAAa,IAAI,KAAK;AAC7CD,gBAAAA,mBAAmB,EAAE0I,OAAO,CAAC1I,mBAAmB,IAAI,IAAI,CAAC4I;AAC3D,eACF,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA6P,SAAA,EAAA,IAAA,CAAA;MAAA,CACF,CAAA,CAAA;MAAA,SATKM,eAAeA,CAAAC,IAAA,EAAA;AAAA,QAAA,OAAAR,gBAAA,CAAA7S,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAf+X,eAAe;AAAA,IAAA,CAAA;AAWrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AAPE,GAAA,EAAA;IAAAnX,GAAA,EAAA,oBAAA;IAAAC,KAAA,GAAA,YAAA;AAAA,MAAA,IAAAoX,mBAAA,GAAArT,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAQA,SAAAoT,SAAAA,CAAyB5V,SAAS,EAAEvD,UAAU,EAAA;AAAA,QAAA,IAAAoZ,OAAA;UAAApL,UAAA;UAAAqL,KAAA;UAAAC,SAAA;UAAAC,oBAAA;AAAAC,UAAAA,OAAA,GAAAvY,SAAA;UAAAwY,GAAA;AAAA,QAAA,OAAA3T,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAyT,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAtT,CAAA;AAAA,YAAA,KAAA,CAAA;cAAEgT,OAAO,GAAAI,OAAA,CAAAtY,MAAA,GAAA,CAAA,IAAAsY,OAAA,CAAA,CAAA,CAAA,KAAArY,SAAA,GAAAqY,OAAA,CAAA,CAAA,CAAA,GAAG,IAAI;AAAAE,cAAAA,UAAA,CAAAtT,CAAA,GAAA,CAAA;AAAA,cAAA,OACnC,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAA0L,UAAA,CAAApT,CAAA;AAAAmT,cAAAA,GAAA,GAC4BL,OAAO;AAAA,cAAA,IAAAK,GAAA,EAAA;AAAAC,gBAAAA,UAAA,CAAAtT,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAAsT,cAAAA,UAAA,CAAAtT,CAAA,GAAA,CAAA;AAAA,cAAA,OAAU,IAAI,CAACiL,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAAAoI,GAAA,GAAAC,UAAA,CAAApT,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA+S,cAAAA,KAAA,GAAAI,GAAA;cAA9EH,SAAS,GAAAD,KAAA,CAATC,SAAS;cAAEC,oBAAoB,GAAAF,KAAA,CAApBE,oBAAoB;AAAA,cAAA,OAAAG,UAAA,CAAArT,CAAA,IAChC2H,UAAU,CAAC2L,kBAAkB,CAAC;AACnCpW,gBAAAA,SAAS,EAATA,SAAS;AACT+V,gBAAAA,SAAS,EAATA,SAAS;AACTC,gBAAAA,oBAAoB,EAApBA;AACF,eAAC,EAAEvZ,UAAU,IAAI,IAAI,CAAC6I,WAAW,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAsQ,SAAA,EAAA,IAAA,CAAA;MAAA,CACnC,CAAA,CAAA;AAAA,MAAA,SARKQ,kBAAkBA,CAAAC,IAAA,EAAAC,IAAA,EAAA;AAAA,QAAA,OAAAX,mBAAA,CAAAtT,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAlB0Y,kBAAkB;AAAA,IAAA,CAAA;AAUxB;AACF;AACA;AACA;AACA;AACA;AALE;AAAA,GAAA,EAAA;IAAA9X,GAAA,EAAA,gBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAgY,eAAA,GAAAjU,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAAgU,SAAAA,CAAqBxW,SAAS,EAAA;AAAA,QAAA,IAAAyK,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA+T,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA5T,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA4T,cAAAA,UAAA,CAAA5T,CAAA,GAAA,CAAA;AAAA,cAAA,OACH,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAgM,UAAA,CAAA1T,CAAA;AAAA,cAAA,OAAA0T,UAAA,CAAA3T,CAAA,CAAA,CAAA,EACTW,SAAS,CACd,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACiM,cAAc,CAAC1W,SAAS,EAAE;AAAEyP,kBAAAA,8BAA8B,EAAE;AAAE,iBAAC,CAAC;AAAA,cAAA,CAAA,EACjFxS,KAAK,CAACC,WAAW,EACjB,gBACF,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAsZ,SAAA,EAAA,IAAA,CAAA;MAAA,CACF,CAAA,CAAA;MAAA,SAPKE,cAAcA,CAAAC,IAAA,EAAA;AAAA,QAAA,OAAAJ,eAAA,CAAAlU,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAdgZ,cAAc;AAAA,IAAA,CAAA;AASpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AAPE;AAAA,GAAA,EAAA;IAAApY,GAAA,EAAA,yBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAqY,wBAAA,GAAAtU,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAQA,SAAAqU,SAAAA,CAA8BpW,OAAO,EAAA;AAAA,QAAA,IAAA2E,OAAA;UAAA0R,cAAA;UAAAjF,SAAA;UAAApH,UAAA;UAAAgI,MAAA;AAAAsE,UAAAA,OAAA,GAAArZ,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAsU,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAnU,CAAA;AAAA,YAAA,KAAA,CAAA;AAAEuC,cAAAA,OAAO,GAAA2R,OAAA,CAAApZ,MAAA,GAAA,CAAA,IAAAoZ,OAAA,CAAA,CAAA,CAAA,KAAAnZ,SAAA,GAAAmZ,OAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAC,cAAAA,UAAA,CAAAnU,CAAA,GAAA,CAAA;cAAA,OACrB,OAAO,iBAAiB,CAAC;AAAA,YAAA,KAAA,CAAA;cAAAiU,cAAA,GAAAE,UAAA,CAAAjU,CAAA;cAA7C8O,SAAS,GAAAiF,cAAA,CAATjF,SAAS;AAAAmF,cAAAA,UAAA,CAAAnU,CAAA,GAAA,CAAA;AAAA,cAAA,OACQ,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAuM,UAAA,CAAAjU,CAAA;AACV0P,cAAAA,MAAM,GAAG,OAAOhS,OAAO,KAAK,QAAQ,GAAG,IAAIoR,SAAS,CAACpR,OAAO,CAAC,GAAGA,OAAO;AAAA,cAAA,OAAAuW,UAAA,CAAAlU,CAAA,CAAA,CAAA,EACtEW,SAAS,CACd,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACwM,uBAAuB,CAACxE,MAAM,EAAE;AAC/CzB,kBAAAA,KAAK,EAAE5L,OAAO,CAAC4L,KAAK,IAAI,EAAE;kBAC1BkG,MAAM,EAAE9R,OAAO,CAAC8R,MAAM;kBACtBC,KAAK,EAAE/R,OAAO,CAAC+R;AACjB,iBAAC,CAAC;AAAA,cAAA,CAAA,EACFla,KAAK,CAACC,WAAW,EACjB,yBACF,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA2Z,SAAA,EAAA,IAAA,CAAA;MAAA,CACF,CAAA,CAAA;MAAA,SAbKI,uBAAuBA,CAAAG,IAAA,EAAA;AAAA,QAAA,OAAAR,wBAAA,CAAAvU,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAvBuZ,uBAAuB;AAAA,IAAA,CAAA;AAe7B;AACF;AACA;AACA;AACA;AACA;AALE;AAAA,GAAA,EAAA;IAAA3Y,GAAA,EAAA,mCAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA8Y,kCAAA,GAAA/U,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAA8U,SAAAA,CAAwCC,QAAQ,EAAA;AAAA,QAAA,IAAA9M,UAAA;AAAA,QAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA8U,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA3U,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA2U,cAAAA,UAAA,CAAA3U,CAAA,GAAA,CAAA;AAAA,cAAA,OACrB,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAA+M,UAAA,CAAAzU,CAAA;AAAA,cAAA,OAAAyU,UAAA,CAAA1U,CAAA,CAAA,CAAA,EACTW,SAAS,CACd,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACgN,iCAAiC,CAACF,QAAQ,CAAC;AAAA,cAAA,CAAA,EAC5Dta,KAAK,CAACC,WAAW,EACjB,qBACF,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAoa,SAAA,EAAA,IAAA,CAAA;MAAA,CACF,CAAA,CAAA;MAAA,SAPKG,iCAAiCA,CAAAC,IAAA,EAAA;AAAA,QAAA,OAAAL,kCAAA,CAAAhV,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAjC+Z,iCAAiC;IAAA,CAAA,EAAA;AAWvC;AACF;AACA;AACA;AACA;AACA;AALE;AAAA,GAAA,EAAA;IAAAnZ,GAAA,EAAA,yBAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAoZ,wBAAA,GAAArV,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAAoV,SAAAA,CAA8BC,KAAK,EAAA;AAAA,QAAA,IAAAC,cAAA,EAAAjG,SAAA,EAAAkG,cAAA,EAAArc,cAAA,EAAA+O,UAAA,EAAAgI,MAAA,EAAA7G,QAAA;AAAA,QAAA,OAAArJ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAsV,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAnV,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAmV,cAAAA,UAAA,CAAAnV,CAAA,GAAA,CAAA;cAAA,OACL,OAAO,iBAAiB,CAAC;AAAA,YAAA,KAAA,CAAA;cAAAiV,cAAA,GAAAE,UAAA,CAAAjV,CAAA;cAA7C8O,SAAS,GAAAiG,cAAA,CAATjG,SAAS;AAAAmG,cAAAA,UAAA,CAAAnV,CAAA,GAAA,CAAA;cAAA,OACgB,yDAAwB;AAAA,YAAA,KAAA,CAAA;cAAAkV,cAAA,GAAAC,UAAA,CAAAjV,CAAA;cAAjDrH,cAAc,GAAAqc,cAAA,CAAdrc,cAAc;AAAAsc,cAAAA,UAAA,CAAAnV,CAAA,GAAA,CAAA;AAAA,cAAA,OACG,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAuN,UAAA,CAAAjV,CAAA;AACV0P,cAAAA,MAAM,GAAG,OAAOoF,KAAK,KAAK,QAAQ,GAAG,IAAIhG,SAAS,CAACgG,KAAK,CAAC,GAAGA,KAAK;AAAAG,cAAAA,UAAA,CAAAnV,CAAA,GAAA,CAAA;AAAA,cAAA,OAEhDY,SAAS,CAC9B,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACwN,uBAAuB,CAACxF,MAAM,EAAE;AAC/CyF,kBAAAA,SAAS,EAAE,IAAIrG,SAAS,CAACnW,cAAc,CAACE,aAAa;AACvD,iBAAC,CAAC;AAAA,cAAA,CAAA,EACFqB,KAAK,CAACC,WAAW,EACjB,yBACF,CAAC;AAAA,YAAA,KAAA,CAAA;cANK0O,QAAQ,GAAAoM,UAAA,CAAAjV,CAAA;cAAA,OAAAiV,UAAA,CAAAlV,CAAA,CAAA,CAAA,EAQP8I,QAAQ,CAACrN,KAAK,CAACyT,GAAG,CAAC,UAAAmG,IAAI,EAAA;gBAAA,OAAK;AACjC1F,kBAAAA,MAAM,EAAE0F,IAAI,CAAC1F,MAAM,CAAC2F,QAAQ,EAAE;kBAC9BC,OAAO,EAAEF,IAAI,CAACE;iBACf;AAAA,cAAA,CAAC,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAT,SAAA,EAAA,IAAA,CAAA;MAAA,CACJ,CAAA,CAAA;MAAA,SAlBKK,uBAAuBA,CAAAK,IAAA,EAAA;AAAA,QAAA,OAAAX,wBAAA,CAAAtV,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAvBua,uBAAuB;AAAA,IAAA,CAAA;AAoB7B;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAA3Z,GAAA,EAAA,iBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAga,gBAAA,GAAAjW,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAAgW,SAAAA,CAAsBC,mBAAmB,EAAA;QAAA,IAAAC,cAAA,EAAA7G,SAAA,EAAApH,UAAA,EAAAgI,MAAA,EAAApH,MAAA;AAAA,QAAA,OAAA9I,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAiW,UAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA9V,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA8V,cAAAA,UAAA,CAAA9V,CAAA,GAAA,CAAA;cAAA,OACX,OAAO,iBAAiB,CAAC;AAAA,YAAA,KAAA,CAAA;cAAA6V,cAAA,GAAAC,UAAA,CAAA5V,CAAA;cAA7C8O,SAAS,GAAA6G,cAAA,CAAT7G,SAAS;AAAA8G,cAAAA,UAAA,CAAA9V,CAAA,GAAA,CAAA;AAAA,cAAA,OACQ,IAAI,CAACiG,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAA5C2B,UAAU,GAAAkO,UAAA,CAAA5V,CAAA;AACV0P,cAAAA,MAAM,GAAG,IAAIZ,SAAS,CAAC4G,mBAAmB,CAAC;AAAAE,cAAAA,UAAA,CAAA9V,CAAA,GAAA,CAAA;AAAA,cAAA,OAC5BY,SAAS,CAC5B,YAAA;AAAA,gBAAA,OAAMgH,UAAU,CAACmO,sBAAsB,CAACnG,MAAM,CAAC;AAAA,cAAA,CAAA,EAC/CxV,KAAK,CAACC,WAAW,EACjB,wBACF,CAAC;AAAA,YAAA,KAAA,CAAA;cAJKmO,MAAM,GAAAsN,UAAA,CAAA5V,CAAA;AAAA,cAAA,OAAA4V,UAAA,CAAA7V,CAAA,CAAA,CAAA,EAKLuI,MAAM,CAAC9M,KAAK,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAia,SAAA,EAAA,IAAA,CAAA;MAAA,CACpB,CAAA,CAAA;MAAA,SAVKK,eAAeA,CAAAC,IAAA,EAAA;AAAA,QAAA,OAAAP,gBAAA,CAAAlW,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAfmb,eAAe;IAAA,CAAA,EAAA;AAcrB;AACF;AACA;AACA;AAHE;AAAA,GAAA,EAAA;IAAAva,GAAA,EAAA,mBAAA;AAAAC,IAAAA,KAAA,EAIA,SAAAwa,iBAAiBA,GAAG;MAClB,OAAO;QACL5Z,QAAQ,EAAE,IAAI,CAAC2H,SAAS;QACxBtB,UAAU,EAAE,IAAI,CAACD,WAAW;QAC5B9F,OAAO,EAAE,IAAI,CAACkG,YAAY;QAC1BlJ,UAAU,EAAE,IAAI,CAAC6I,WAAW;QAC5B0T,WAAW,EAAE,IAAI,CAACzS,YAAY;QAC9B0S,eAAe,EAAE,IAAI,CAACzS,gBAAgB;QACtCd,SAAS,EAAE,IAAI,CAACD;OACjB;AACH,IAAA;;AAEA;;AAEA;AACF;AACA;AAFE,GAAA,EAAA;IAAAnH,GAAA,EAAA,SAAA;AAAAC,IAAAA,KAAA,EAGA,SAAA2a,OAAOA,GAAG;AAAA,MAAA,IAAAC,oBAAA;MACR,IAAI,IAAI,CAAC1Q,YAAY,EAAE;QACrB,IAAI,CAACA,YAAY,EAAE;QACnB,IAAI,CAACA,YAAY,GAAG,IAAI;AAC1B,MAAA;MACA,IAAI,CAAClC,YAAY,GAAG,KAAK;MACzB,CAAA4S,oBAAA,GAAA,IAAI,CAAClT,aAAa,MAAA,IAAA,IAAAkT,oBAAA,KAAA,MAAA,IAAlBA,oBAAA,CAAAhS,IAAA,CAAA,IAAI,EAAiB;QAAEhI,QAAQ,EAAE,IAAI,CAAC2H,SAAS;AAAEsS,QAAAA,MAAM,EAAE;AAAU,OAAC,CAAC;AACvE,IAAA;AAAC,GAAA,CAAA,CAAA;AAAA,CAAA;;AAGH;AACA,IAAIC,kBAAkB,GAAG,IAAI;;AAE7B;AACA;AACA;AACA;AACA;AACO,SAASC,oBAAoBA,GAAG;EACrC,IAAI,CAACD,kBAAkB,EAAE;AACvBA,IAAAA,kBAAkB,GAAG,IAAInU,cAAc,EAAE;AAC3C,EAAA;AACA,EAAA,OAAOmU,kBAAkB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,GAAe;AAAA,EAAA,IAAdnU,OAAO,GAAA1H,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACjD,EAAA,IAAI2b,kBAAkB,EAAE;IACtBA,kBAAkB,CAACH,OAAO,EAAE;AAC9B,EAAA;AACAG,EAAAA,kBAAkB,GAAG,IAAInU,cAAc,CAACE,OAAO,CAAC;AAChD,EAAA,OAAOiU,kBAAkB;AAC3B;AAEA,SAAsBG,oBAAoBA,CAAAC,IAAA,EAAA;AAAA,EAAA,OAAAC,qBAAA,CAAArX,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAO1C;AAAA,SAAAgc,qBAAAA,GAAA;EAAAA,qBAAA,GAAApX,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAPO,SAAAmX,SAAAA,CAAoClP,UAAU,EAAA;AAAA,IAAA,OAAAlI,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAkX,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA/W,CAAA;AAAA,QAAA,KAAA,CAAA;UAAA,IAAA,EAC/C,QAAO4H,UAAU,KAAA,IAAA,IAAVA,UAAU,uBAAVA,UAAU,CAAEvB,gBAAgB,CAAA,KAAK,UAAU,CAAA,EAAA;AAAA0Q,YAAAA,UAAA,CAAA/W,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;UAAA,OAAA+W,UAAA,CAAA9W,CAAA,CAAA,CAAA,EAC7C2H,UAAU,CAACvB,gBAAgB,EAAE,CAAA;AAAA,QAAA,KAAA,CAAA;UAAA,OAAA0Q,UAAA,CAAA9W,CAAA,CAAA,CAAA,EAE/B2H,UAAU,aAAVA,UAAU,KAAA,MAAA,GAAA,MAAA,GAAVA,UAAU,CAAEoP,GAAG,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAF,SAAA,CAAA;EAAA,CACvB,CAAA,CAAA;AAAA,EAAA,OAAAD,qBAAA,CAAArX,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;ACz1BD;AACA;AACA;AACA;AACA,IAAaoc,WAAW,gBAAA,YAAA;AACtB;AACF;AACA;AACA;AACA;EACE,SAAAA,WAAAA,CAAYC,aAAa,EAAwC;AAAA,IAAA,IAAtCC,QAAQ,GAAAtc,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI;AAAA,IAAA,IAAEuc,cAAc,GAAAvc,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAI,IAAAA,eAAA,OAAAgc,WAAA,CAAA;IAC7D,IAAI,CAACI,QAAQ,GAAGH,aAAa;IAC7B,IAAI,CAACI,SAAS,GAAGH,QAAQ;IACzB,IAAI,CAACI,eAAe,GAAGH,cAAc;AACvC,EAAA;;AAEA;AACF;AACA;AACA;EAHE,OAAA5b,YAAA,CAAAyb,WAAA,EAAA,CAAA;IAAAxb,GAAA,EAAA,WAAA;IAAAqL,GAAA,EAIA,SAAAA,GAAAA,GAAgB;AACd,MAAA,OAAO,IAAI,CAACuQ,QAAQ,CAACG,SAAS;AAChC,IAAA;;AAEA;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAA/b,GAAA,EAAA,SAAA;IAAAqL,GAAA,EAIA,SAAAA,GAAAA,GAAc;MACZ,OAAO,IAAI,CAACuQ,QAAQ,CAACG,SAAS,CAACjC,QAAQ,EAAE;AAC3C,IAAA;;AAEA;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAA9Z,GAAA,EAAA,SAAA;IAAAqL,GAAA,EAIA,SAAAA,GAAAA,GAAc;MACZ,OAAO,IAAI,CAACuQ,QAAQ;AACtB,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAJE,GAAA,EAAA;IAAA5b,GAAA,EAAA,UAAA;IAAAqL,GAAA,EAKA,SAAAA,GAAAA,GAAe;MACb,OAAO,IAAI,CAACwQ,SAAS;AACvB,IAAA;;AAEA;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAA7b,GAAA,EAAA,gBAAA;IAAAqL,GAAA,EAIA,SAAAA,GAAAA,GAAqB;MACnB,OAAO,IAAI,CAACyQ,eAAe;AAC7B,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAJE,GAAA,EAAA;IAAA9b,GAAA,EAAA,kBAAA;AAAAC,IAAAA,KAAA,EAKA,SAAA+b,gBAAgBA,GAAG;MACjB,OAAOC,IAAI,CAACC,MAAM,CAAC,IAAI,CAACN,QAAQ,CAACO,SAAS,CAAC;AAC7C,IAAA;;AAEA;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAAnc,GAAA,EAAA,iBAAA;AAAAC,IAAAA,KAAA,EAIA,SAAAmc,eAAeA,GAAG;AAChB,MAAA,OAAO,IAAI,CAACR,QAAQ,CAACO,SAAS;AAChC,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAAnc,GAAA,EAAA,MAAA;AAAAC,IAAAA,KAAA,EAMA,SAAAoc,IAAIA,CAACpd,OAAO,EAAE;AACZ,MAAA,IAAMqd,QAAQ,GAAG,OAAOrd,OAAO,KAAK,QAAQ,GACxC,IAAIsd,WAAW,EAAE,CAACL,MAAM,CAACjd,OAAO,CAAC,GACjCA,OAAO;AACX,MAAA,OAAOud,IAAI,CAACH,IAAI,CAACI,QAAQ,CAACH,QAAQ,EAAE,IAAI,CAACV,QAAQ,CAACO,SAAS,CAAC;AAC9D,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAAnc,GAAA,EAAA,YAAA;AAAAC,IAAAA,KAAA,EAMA,SAAAyc,UAAUA,CAACzd,OAAO,EAAE;AAClB,MAAA,IAAM0d,GAAG,GAAG,IAAI,CAACN,IAAI,CAACpd,OAAO,CAAC;AAC9B,MAAA,OAAOgd,IAAI,CAACC,MAAM,CAACS,GAAG,CAAC;AACzB,IAAA;;AAEA;AACF;AACA;AACA;AAHE,GAAA,EAAA;IAAA3c,GAAA,EAAA,SAAA;AAAAC,IAAAA,KAAA,EAIA,SAAA2a,OAAOA,GAAG;AACR;AACA,MAAA,IAAI,IAAI,CAACgB,QAAQ,CAACO,SAAS,EAAE;QAC3B,IAAI,CAACP,QAAQ,CAACO,SAAS,CAACS,IAAI,CAAC,CAAC,CAAC;AACjC,MAAA;MACA,IAAI,CAACf,SAAS,GAAG,IAAI;AACvB,IAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATE,GAAA,CAAA,EAAA,CAAA;IAAA7b,GAAA,EAAA,UAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAA4c,SAAA,GAAA7Y,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAUA,SAAA6E,OAAAA,GAAA;AAAA,QAAA,IAAAjC,OAAA;UAAAgW,iBAAA;UAAAC,QAAA;UAAAC,qBAAA;UAAAC,YAAA;UAAAC,qBAAA;UAAAC,aAAA;UAAAzB,QAAA;AAAA0B,UAAAA,KAAA,GAAAhe,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAjF,CAAA;AAAA,YAAA,KAAA,CAAA;AAAsBuC,cAAAA,OAAO,GAAAsW,KAAA,CAAA/d,MAAA,GAAA,CAAA,IAAA+d,KAAA,CAAA,CAAA,CAAA,KAAA9d,SAAA,GAAA8d,KAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAN,cAAAA,iBAAA,GACoChW,OAAO,CAAnEiW,QAAQ,EAARA,QAAQ,GAAAD,iBAAA,KAAA,MAAA,GAAG,GAAG,GAAAA,iBAAA,EAAAE,qBAAA,GAA8ClW,OAAO,CAAnDmW,YAAY,EAAZA,YAAY,GAAAD,qBAAA,cAAG,CAAC,GAAAA,qBAAA,EAAAE,qBAAA,GAA4BpW,OAAO,CAAjCqW,aAAa,EAAbA,aAAa,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CAAA;AAGzDxB,cAAAA,QAAQ,GAAG2B,gBAAK,CAACC,gBAAgB,CAACP,QAAQ,CAAC,CAAA;cAEjD,OAAAvT,QAAA,CAAAhF,CAAA,CAAA,CAAA,EACOgX,WAAW,CAAC+B,YAAY,CAAC7B,QAAQ,EAAE;AAAEuB,gBAAAA,YAAY,EAAZA,YAAY;AAAEE,gBAAAA,aAAa,EAAbA;AAAc,eAAC,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAApU,OAAA,CAAA;MAAA,CAC3E,CAAA,CAAA;AAAA,MAAA,SARYyU,QAAQA,GAAA;AAAA,QAAA,OAAAX,SAAA,CAAA9Y,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAARoe,QAAQ;AAAA,IAAA,CAAA;AAUrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATE,GAAA,EAAA;IAAAxd,GAAA,EAAA,cAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAwd,aAAA,GAAAzZ,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAUA,SAAAoG,QAAAA,CAA0BoR,QAAQ,EAAA;AAAA,QAAA,IAAA5U,OAAA;UAAA4W,sBAAA;UAAAT,YAAA;UAAAU,QAAA;UAAAC,sBAAA;UAAAT,aAAA;UAAAU,IAAA;UAAAC,gBAAA;UAAAC,IAAA;UAAAC,OAAA;UAAAC,OAAA;AAAAC,UAAAA,MAAA,GAAA9e,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,CAAA;AAAA,YAAA,KAAA,CAAA;AAAEuC,cAAAA,OAAO,GAAAoX,MAAA,CAAA7e,MAAA,GAAA,CAAA,IAAA6e,MAAA,CAAA,CAAA,CAAA,KAAA5e,SAAA,GAAA4e,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAR,cAAAA,sBAAA,GACgB5W,OAAO,CAA7DmW,YAAY,EAAZA,YAAY,GAAAS,sBAAA,KAAA,MAAA,GAAG,CAAC,GAAAA,sBAAA,EAAEC,QAAQ,GAA4B7W,OAAO,CAA3C6W,QAAQ,EAAAC,sBAAA,GAA4B9W,OAAO,CAAjCqW,aAAa,EAAbA,aAAa,GAAAS,sBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,sBAAA,CAAA;AAEzD,cAAA,IACKP,gBAAK,CAACc,gBAAgB,CAACzC,QAAQ,CAAC,EAAA;AAAAnR,gBAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,MAC7B,IAAI7B,gBAAgB,CAAC,QAAQ,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA6H,cAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,cAAA,OAInB8Y,gBAAK,CAACe,cAAc,CAAC1C,QAAQ,CAAC;AAAA,YAAA,KAAA,CAAA;cAA3CmC,IAAI,GAAAtT,SAAA,CAAA9F,CAAA;AAEV;AACMqZ,cAAAA,gBAAgB,GAAGH,QAAQ,IAAI,IAAI,GACrCA,QAAQ,GACRR,aAAa,GAAG,GAAG,GAAGxgB,cAAc,CAAA;AAGlCohB,cAAAA,IAAI,YAAA1c,MAAA,CAAYyc,gBAAgB,EAAA,IAAA,CAAA,CAAAzc,MAAA,CAAK4b,YAAY,EAAA,MAAA,CAAA;AACjDe,cAAAA,OAAO,GAAGK,uBAAU,CAACN,IAAI,EAAEF,IAAI,CAACpS,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;cAGhDwS,OAAO,GAAGK,eAAO,CAACC,QAAQ,CAACP,OAAO,CAAChe,GAAG,CAAC;AAAA,cAAA,OAAAuK,SAAA,CAAA/F,CAAA,CAAA,CAAA,EAEtC,IAAIgX,WAAW,CAACyC,OAAO,EAAEvC,QAAQ,EAAEqC,IAAI,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAzT,QAAA,CAAA;MAAA,CAChD,CAAA,CAAA;MAAA,SAxBYiT,YAAYA,CAAAnY,EAAA,EAAA;AAAA,QAAA,OAAAqY,aAAA,CAAA1Z,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAZme,YAAY;AAAA,IAAA,CAAA;AA0BzB;AACF;AACA;AACA;AACA;AACA;AALE;AAAA,GAAA,EAAA;IAAAvd,GAAA,EAAA,gBAAA;AAAAC,IAAAA,KAAA,EAMA,SAAOue,cAAcA,CAACC,UAAU,EAAE;AAChC,MAAA,IAAItC,SAAS;AAEb,MAAA,IAAI,OAAOsC,UAAU,KAAK,QAAQ,EAAE;AAClC;AACAtC,QAAAA,SAAS,GAAGF,IAAI,CAACyC,MAAM,CAACD,UAAU,CAAC;AACrC,MAAA,CAAC,MAAM,IAAIA,UAAU,YAAYE,UAAU,EAAE;AAC3CxC,QAAAA,SAAS,GAAGsC,UAAU;AACxB,MAAA,CAAC,MAAM;AACL,QAAA,MAAM,IAAI/b,gBAAgB,CAAC,mCAAmC,CAAC;AACjE,MAAA;AAEA,MAAA,IAAMub,OAAO,GAAGK,eAAO,CAACM,aAAa,CAACzC,SAAS,CAAC;AAChD,MAAA,OAAO,IAAIX,WAAW,CAACyC,OAAO,CAAC;AACjC,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAAje,GAAA,EAAA,aAAA;AAAAC,IAAAA,KAAA,EAMA,SAAO4e,WAAWA,CAACC,OAAO,EAAE;AAC1B,MAAA,IAAM3C,SAAS,GAAGwC,UAAU,CAACI,IAAI,CAACD,OAAO,CAAC;AAC1C,MAAA,IAAMb,OAAO,GAAGK,eAAO,CAACM,aAAa,CAACzC,SAAS,CAAC;AAChD,MAAA,OAAO,IAAIX,WAAW,CAACyC,OAAO,CAAC;AACjC,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAAje,GAAA,EAAA,QAAA;AAAAC,IAAAA,KAAA,EAMA,SAAOgF,MAAMA,GAAG;AACd,MAAA,IAAMgZ,OAAO,GAAGK,eAAO,CAACd,QAAQ,EAAE;AAClC,MAAA,OAAO,IAAIhC,WAAW,CAACyC,OAAO,CAAC;AACjC,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AAPE,GAAA,EAAA;IAAAje,GAAA,EAAA,gBAAA;IAAAC,KAAA,GAAA,YAAA;AAAA,MAAA,IAAA+e,eAAA,GAAAhb,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAQA,SAAAwG,QAAAA,CAA4BgR,QAAQ,EAAEuD,KAAK,EAAA;AAAA,QAAA,IAAAC,UAAA;UAAApY,OAAA;UAAAqY,QAAA;UAAA7I,CAAA;UAAA8I,EAAA;AAAAC,UAAAA,MAAA,GAAAjgB,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,YAAA,KAAA,CAAA;cAAE2a,UAAU,GAAAG,MAAA,CAAAhgB,MAAA,GAAA,CAAA,IAAAggB,MAAA,CAAA,CAAA,CAAA,KAAA/f,SAAA,GAAA+f,MAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAAEvY,cAAAA,OAAO,GAAAuY,MAAA,CAAAhgB,MAAA,GAAA,CAAA,IAAAggB,MAAA,CAAA,CAAA,CAAA,KAAA/f,SAAA,GAAA+f,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACjEF,cAAAA,QAAQ,GAAG,EAAE;AACV7I,cAAAA,CAAC,GAAG4I,UAAU;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,EAAE5I,CAAC,GAAG4I,UAAU,GAAGD,KAAK,CAAA,EAAA;AAAAtU,gBAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAAoG,cAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,cAAA,OAC5BiX,WAAW,CAAC+B,YAAY,CAAC7B,QAAQ,EAAE;AAClDuB,gBAAAA,YAAY,EAAE3G,CAAC;gBACf6G,aAAa,EAAErW,OAAO,CAACqW,aAAa;gBACpCQ,QAAQ,EAAE7W,OAAO,CAAC6W;AACpB,eAAC,CAAC;AAAA,YAAA,KAAA,CAAA;cAJIyB,EAAE,GAAAzU,SAAA,CAAAlG,CAAA;AAKR0a,cAAAA,QAAQ,CAACG,IAAI,CAACF,EAAE,CAAC;AAAC,YAAA,KAAA,CAAA;AAN6B9I,cAAAA,CAAC,EAAE;AAAA3L,cAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAoG,SAAA,CAAAnG,CAAA,CAAA,CAAA,EAQ7C2a,QAAQ,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAzU,QAAA,CAAA;MAAA,CAChB,CAAA,CAAA;AAAA,MAAA,SAXY6U,cAAcA,CAAAjO,GAAA,EAAAK,GAAA,EAAA;AAAA,QAAA,OAAAqN,eAAA,CAAAjb,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAdmgB,cAAc;AAAA,IAAA,CAAA,EAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA;;AAc7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASjC,gBAAgBA,GAAiB;AAAA,EAAA,IAAhBP,QAAQ,GAAA3d,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,GAAG;AAC7C,EAAA,OAAOie,gBAAK,CAACC,gBAAgB,CAACP,QAAQ,CAAC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAsByC,iBAAiBA,CAAAtN,GAAA,EAAA;AAAA,EAAA,OAAAuN,kBAAA,CAAA1b,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAIvC;AACA;AACA;AACA;AACA;AACA;AALA,SAAAqgB,kBAAAA,GAAA;EAAAA,kBAAA,GAAAzb,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAJO,SAAAgI,QAAAA,CAAiCwP,QAAQ,EAAA;AAAA,IAAA,IAAAuB,YAAA;AAAAyC,MAAAA,MAAA,GAAAtgB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoI,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjI,CAAA;AAAA,QAAA,KAAA,CAAA;UAAE0Y,YAAY,GAAAyC,MAAA,CAAArgB,MAAA,GAAA,CAAA,IAAAqgB,MAAA,CAAA,CAAA,CAAA,KAAApgB,SAAA,GAAAogB,MAAA,CAAA,CAAA,CAAA,GAAG,CAAC;UAAA,OAAAlT,SAAA,CAAAhI,CAAA,CAAA,CAAA,EACzDgX,WAAW,CAAC+B,YAAY,CAAC7B,QAAQ,EAAE;AAAEuB,YAAAA,YAAY,EAAZA;AAAa,WAAC,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA/Q,QAAA,CAAA;EAAA,CAC5D,CAAA,CAAA;AAAA,EAAA,OAAAuT,kBAAA,CAAA1b,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAQM,SAAS+e,gBAAgBA,CAACzC,QAAQ,EAAE;EACzC,IAAI,CAACA,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE,OAAO,KAAK;EAC3D,OAAO2B,gBAAK,CAACc,gBAAgB,CAACzC,QAAQ,CAACiE,IAAI,EAAE,CAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAAC3gB,OAAO,EAAEyC,SAAS,EAAEqa,SAAS,EAAE;AAC7D,EAAA,IAAMO,QAAQ,GAAG,OAAOrd,OAAO,KAAK,QAAQ,GACxC,IAAIsd,WAAW,EAAE,CAACL,MAAM,CAACjd,OAAO,CAAC,GACjCA,OAAO;AAEX,EAAA,IAAM4gB,QAAQ,GAAG,OAAOne,SAAS,KAAK,QAAQ,GAC1Cua,IAAI,CAACyC,MAAM,CAAChd,SAAS,CAAC,GACtBA,SAAS;EAEb,IAAMoe,WAAW,GAAG,OAAO/D,SAAS,KAAK,QAAQ,GAC7C,IAAIxI,iBAAS,CAACwI,SAAS,CAAC,CAACgE,OAAO,EAAE,GAClChE,SAAS,YAAYxI,iBAAS,GAC5BwI,SAAS,CAACgE,OAAO,EAAE,GACnBhE,SAAS;AAEf,EAAA,OAAOS,IAAI,CAACH,IAAI,CAACI,QAAQ,CAACuD,MAAM,CAAC1D,QAAQ,EAAEuD,QAAQ,EAAEC,WAAW,CAAC;AACnE;;ACzTA;AACA;AACA;AACA;AACA;;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,aAAaA,CAACxJ,GAAG,EAAE;AACjC,EAAA,OAAO5R,IAAI,CAACK,KAAK,CAACuR,GAAG,GAAG/Z,gBAAgB,CAAC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASwjB,aAAaA,CAAC9L,QAAQ,EAAE;EACtC,OAAOA,QAAQ,GAAG1X,gBAAgB;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASyjB,SAASA,CAAC/L,QAAQ,EAAgB;AAAA,EAAA,IAAdgM,QAAQ,GAAAhhB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAC9C,EAAA,IAAMqX,GAAG,GAAGyJ,aAAa,CAAC9L,QAAQ,CAAC;AACnC,EAAA,OAAOqC,GAAG,CAAC4J,OAAO,CAACD,QAAQ,CAAC;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,cAAcA,CAACne,OAAO,EAAE;EACtC,IAAI,CAACA,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE,OAAO,KAAK;EACzD,IAAI;IACF,IAAIoR,iBAAS,CAACpR,OAAO,CAAC;AACtB,IAAA,OAAO,IAAI;EACb,CAAC,CAAC,OAAAuJ,OAAA,EAAM;AACN,IAAA,OAAO,KAAK;AACd,EAAA;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS6U,cAAcA,CAACpe,OAAO,EAA4B;AAAA,EAAA,IAA1Bqe,QAAQ,GAAAphB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAAA,EAAA,IAAEqhB,MAAM,GAAArhB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAC9D,EAAA,IAAI,CAAC+C,OAAO,EAAE,OAAO,EAAE;EACvB,IAAIA,OAAO,CAAC9C,MAAM,IAAImhB,QAAQ,GAAGC,MAAM,GAAG,CAAC,EAAE,OAAOte,OAAO;AAC3D,EAAA,OAAA,EAAA,CAAAd,MAAA,CAAUc,OAAO,CAACb,KAAK,CAAC,CAAC,EAAEkf,QAAQ,CAAC,EAAA,KAAA,CAAA,CAAAnf,MAAA,CAAMc,OAAO,CAACb,KAAK,CAAC,CAACmf,MAAM,CAAC,CAAA;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,WAAWA,CAACC,YAAY,EAAE;AACxC,EAAA,IAAIA,YAAY,YAAYpN,iBAAS,EAAE,OAAOoN,YAAY;AAC1D,EAAA,OAAO,IAAIpN,iBAAS,CAACoN,YAAY,CAAC;AACpC;;AC1EA,IAAMC,yBAAyB,GAAG,IAAI;AACtC,IAAMC,2BAA2B,GAAG,EAAE;AAAC,SAExBC,2BAA2BA,CAAA1b,EAAA,EAAAkM,GAAA,EAAAK,GAAA,EAAA;AAAA,EAAA,OAAAoP,4BAAA,CAAAhd,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAiD1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAnBA,SAAA2hB,4BAAAA,GAAA;AAAAA,EAAAA,4BAAA,GAAA/c,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAjDA,SAAAwK,QAAAA,CAA2CvC,UAAU,EAAEzK,SAAS,EAAE6V,OAAO,EAAA;AAAA,IAAA,IAAApZ,UAAA;MAAAod,GAAA;MAAA5W,OAAA;MAAAqc,eAAA;MAAAC,QAAA;MAAAC,MAAA;MAAAC,kBAAA;MAAAC,aAAA;MAAAC,kBAAA;AAAAC,MAAAA,MAAA,GAAAliB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuK,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApK,CAAA;AAAA,QAAA,KAAA,CAAA;UAAEpG,UAAU,GAAAmjB,MAAA,CAAAjiB,MAAA,GAAA,CAAA,IAAAiiB,MAAA,CAAA,CAAA,CAAA,KAAAhiB,SAAA,GAAAgiB,MAAA,CAAA,CAAA,CAAA,GAAG,WAAW;AAAA3S,UAAAA,SAAA,CAAApK,CAAA,GAAA,CAAA;UAAA,OAC/E2W,oBAAoB,CAAC/O,UAAU,CAAC;AAAA,QAAA,KAAA,CAAA;UAA5CoP,GAAG,GAAA5M,SAAA,CAAAlK,CAAA;AACAE,UAAAA,OAAO,GAAG,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA,IAAA,EAAEA,OAAO,GAAGkc,2BAA2B,CAAA,EAAA;AAAAlS,YAAAA,SAAA,CAAApK,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAAoK,UAAAA,SAAA,CAAApK,CAAA,GAAA,CAAA;AAAA,UAAA,OAClCgX,GAAG,CAACgG,oBAAoB,CAAC,CAAC7f,SAAS,CAAC,EAAE;AAC3D8f,YAAAA,wBAAwB,EAAE;AAC5B,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAFIP,QAAQ,GAAAtS,SAAA,CAAAlK,CAAA;AAGRyc,UAAAA,MAAM,GAAGD,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,IAAA,CAAAD,eAAA,GAARC,QAAQ,CAAEhhB,KAAK,cAAA+gB,eAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,eAAA,CAAkB,CAAC,CAAC;AAAA,UAAA,IAAA,EAE/BE,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAExY,GAAG,CAAA,EAAA;AAAAiG,YAAAA,SAAA,CAAApK,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACP,IAAIhD,oBAAoB,CAAA,wCAAA,CAAAF,MAAA,CACjBuM,IAAI,CAACC,SAAS,CAACqT,MAAM,CAACxY,GAAG,CAAC,CAAA,EACrC,mBACF,CAAC;AAAA,QAAA,KAAA,CAAA;AAGGyY,UAAAA,kBAAkB,GAAGD,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEC,kBAAkB;AAC/CC,UAAAA,aAAa,GAAGF,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEE,aAAa;AAAA,UAAA,IAAA,EAEzCD,kBAAkB,KAAKhjB,UAAU,IACjCgjB,kBAAkB,KAAK,WAAW,IACjChjB,UAAU,KAAK,WAAW,IAAIijB,aAAa,KAAK,IAAK,CAAA,EAAA;AAAAzS,YAAAA,SAAA,CAAApK,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;UAAA,OAAAoK,SAAA,CAAAnK,CAAA,CAAA,CAAA,EAE/C;AACLvE,YAAAA,KAAK,EAAEihB,MAAM;AACb3J,YAAAA,OAAO,EAAE;cACPzG,IAAI,EAAE,CAAAoQ,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEpQ,IAAI,KAAI;AACxB;WACD,CAAA;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,IAAA,EAGCyG,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,IAAPA,OAAO,CAAEG,oBAAoB,CAAA,EAAA;AAAA/I,YAAAA,SAAA,CAAApK,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAAoK,UAAAA,SAAA,CAAApK,CAAA,GAAA,CAAA;AAAA,UAAA,OACE4H,UAAU,CAAC6C,cAAc,EAAE;AAAA,QAAA,KAAA,CAAA;UAAtDqS,kBAAkB,GAAA1S,SAAA,CAAAlK,CAAA;AAAA,UAAA,IAAA,EACpB4c,kBAAkB,GAAG9J,OAAO,CAACG,oBAAoB,CAAA,EAAA;AAAA/I,YAAAA,SAAA,CAAApK,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;UAAA,MAC7C,IAAIhD,oBAAoB,CAAA,2BAAA,CAAAF,MAAA,CACpBK,SAAS,EAAA,4CAAA,CAAA,EACjB,sBACF,CAAC;AAAA,QAAA,KAAA,CAAA;AAAAiN,UAAAA,SAAA,CAAApK,CAAA,GAAA,CAAA;AAAA,UAAA,OAIC,IAAI+B,OAAO,CAAC,UAACmb,OAAO,EAAA;AAAA,YAAA,OAAKjb,UAAU,CAACib,OAAO,EAAEb,yBAAyB,CAAC;UAAA,CAAA,CAAC;AAAA,QAAA,KAAA,CAAA;AAtCnBjc,UAAAA,OAAO,IAAI,CAAC;AAAAgK,UAAAA,SAAA,CAAApK,CAAA,GAAA,CAAA;AAAA,UAAA;AAAA,QAAA,KAAA,CAAA;UAAA,MAyCnE,IAAIhD,oBAAoB,CAAA,2BAAA,CAAAF,MAAA,CACpBK,SAAS,EAAA,yDAAA,CAAA,EACjB,oBACF,CAAC;AAAA,QAAA,KAAA,EAAA;UAAA,OAAAiN,SAAA,CAAAnK,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAkK,QAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAAqS,4BAAA,CAAAhd,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAsBD,IAAasiB,eAAe,gBAAA,YAAA;AAC1B;AACF;AACA;EACE,SAAAA,eAAAA,CAAYvV,UAAU,EAAE;AAAA3M,IAAAA,eAAA,OAAAkiB,eAAA,CAAA;AACtB,IAAA,IAAI,CAACC,KAAK,GAAGxV,UAAU,IAAI6O,oBAAoB,EAAE;AACjD,IAAA,IAAI,CAAC4G,YAAY,GAAG,IAAIC,mBAAW,EAAE;IACrC,IAAI,CAACC,aAAa,GAAG,EAAE;IACvB,IAAI,CAACC,QAAQ,GAAG,EAAE;AACpB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EALE,OAAAhiB,YAAA,CAAA2hB,eAAA,EAAA,CAAA;IAAA1hB,GAAA,EAAA,gBAAA;AAAAC,IAAAA,KAAA,EAMA,SAAA+hB,cAAcA,CAACC,WAAW,EAAE;AAC1B,MAAA,IAAI,CAACH,aAAa,CAACxC,IAAI,CAAC2C,WAAW,CAAC;AACpC,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AANE,GAAA,EAAA;IAAAjiB,GAAA,EAAA,WAAA;AAAAC,IAAAA,KAAA,EAOA,SAAAiiB,SAASA,CAACC,MAAM,EAAE;MAChB,IAAMlE,OAAO,GAAG,CAAAkE,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAElE,OAAO,KAAIkE,MAAM;MACzC,IAAIlE,OAAO,EAAE,IAAI,CAAC8D,QAAQ,CAACzC,IAAI,CAACrB,OAAO,CAAC;AACxC,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAAje,GAAA,EAAA,iBAAA;AAAAC,IAAAA,KAAA,EAMA,SAAAmiB,eAAeA,CAACC,OAAO,EAAE;AACvB,MAAA,IAAMC,IAAI,GAAG,IAAIC,GAAG,EAAE;MACtB,IAAMxV,MAAM,GAAG,EAAE;MACjB,KAAA,IAAAyV,EAAA,MAAAC,IAAA,GAAA,CAAkBJ,OAAO,CAAA,CAAAhhB,MAAA,CAAAqhB,kBAAA,CAAK,IAAI,CAACX,QAAQ,IAAAS,EAAA,GAAAC,IAAA,CAAApjB,MAAA,EAAAmjB,EAAA,EAAA,EAAG;AAAzC,QAAA,IAAMpD,EAAE,GAAAqD,IAAA,CAAAD,EAAA,CAAA;QACX,IAAMG,IAAI,GAAG,CAAAvD,EAAE,KAAA,IAAA,IAAFA,EAAE,KAAA,MAAA,GAAA,MAAA,GAAFA,EAAE,CAAEnB,OAAO,KAAImB,EAAE;QAC9B,IAAI,EAACuD,IAAI,KAAA,IAAA,IAAJA,IAAI,eAAJA,IAAI,CAAE5G,SAAS,CAAA,EAAE;QACtB,IAAM/b,GAAG,GAAG2iB,IAAI,CAAC5G,SAAS,CAACjC,QAAQ,EAAE;AACrC,QAAA,IAAIwI,IAAI,CAACM,GAAG,CAAC5iB,GAAG,CAAC,EAAE;AACnBsiB,QAAAA,IAAI,CAACO,GAAG,CAAC7iB,GAAG,CAAC;AACb+M,QAAAA,MAAM,CAACuS,IAAI,CAACqD,IAAI,CAAC;AACnB,MAAA;AACA,MAAA,OAAO5V,MAAM;AACf,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AAPE,GAAA,EAAA;IAAA/M,GAAA,EAAA,UAAA;IAAAC,KAAA,EAQA,SAAA6iB,QAAQA,CAAC/D,IAAI,EAAEgE,EAAE,EAAE/O,SAAS,EAAE;AAC5B,MAAA,IAAMiO,WAAW,GAAGe,qBAAa,CAACF,QAAQ,CAAC;AACzCG,QAAAA,UAAU,EAAEvC,WAAW,CAAC3B,IAAI,CAAC;AAC7BmE,QAAAA,QAAQ,EAAExC,WAAW,CAACqC,EAAE,CAAC;QACzB3O,QAAQ,EAAE6L,aAAa,CAACjM,SAAS;AACnC,OAAC,CAAC;AACF,MAAA,OAAO,IAAI,CAACgO,cAAc,CAACC,WAAW,CAAC;AACzC,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXE,GAAA,EAAA;IAAAjiB,GAAA,EAAA,eAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAkjB,cAAA,GAAAnf,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAYA,SAAA6E,OAAAA,CAAoBgW,IAAI,EAAEgE,EAAE,EAAEvgB,WAAW,EAAE4gB,MAAM,EAAEhD,QAAQ,EAAEiD,QAAQ,EAAA;QAAA,IAAA/P,aAAA,EAAAgQ,yBAAA,EAAAC,uCAAA,EAAAC,gCAAA,EAAAC,gBAAA,EAAAC,2BAAA,EAAAT,UAAA,EAAAC,QAAA,EAAAS,UAAA,EAAAC,cAAA,EAAAC,OAAA,EAAAC,WAAA,EAAAC,KAAA,EAAAC,SAAA;AAAA,QAAA,OAAA/f,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAjF,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAiF,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;cAAA,OAOzD,OAAO,mBAAmB,CAAC;AAAA,YAAA,KAAA,CAAA;cAAA+O,aAAA,GAAA9J,QAAA,CAAA/E,CAAA;cALnC6e,yBAAyB,GAAAhQ,aAAA,CAAzBgQ,yBAAyB;cACzBC,uCAAuC,GAAAjQ,aAAA,CAAvCiQ,uCAAuC;cACvCC,gCAAgC,GAAAlQ,aAAA,CAAhCkQ,gCAAgC;cAChCC,gBAAgB,GAAAnQ,aAAA,CAAhBmQ,gBAAgB;cAChBC,2BAA2B,GAAApQ,aAAA,CAA3BoQ,2BAA2B;AAGvBT,cAAAA,UAAU,GAAGvC,WAAW,CAAC3B,IAAI,CAAC;AAC9BmE,cAAAA,QAAQ,GAAGxC,WAAW,CAACqC,EAAE,CAAC;AAC1BY,cAAAA,UAAU,GAAGjD,WAAW,CAACle,WAAW,CAAC;cACrCohB,cAAc,GAAGP,QAAQ,GAAG3C,WAAW,CAAC2C,QAAQ,CAAC,GAAGJ,UAAU;cAAA,IAAA,EAEhE,CAACgB,MAAM,CAACC,QAAQ,CAACd,MAAM,CAAC,IAAIA,MAAM,IAAI,CAAC,CAAA,EAAA;AAAA5Z,gBAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,MACnC,IAAIlC,cAAc,CAAC,kBAAkB,EAAEG,WAAW,EAAE;AAAE4gB,gBAAAA,MAAM,EAANA;AAAO,eAAC,CAAC;AAAA,YAAA,KAAA,CAAA;cAAA,IAAA,EAEnE,CAACa,MAAM,CAACE,SAAS,CAAC/D,QAAQ,CAAC,IAAIA,QAAQ,GAAG,CAAC,CAAA,EAAA;AAAA5W,gBAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,MACvC,IAAIlC,cAAc,CAAC,wBAAwB,EAAEG,WAAW,EAAE;AAAE4d,gBAAAA,QAAQ,EAARA;AAAS,eAAC,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA5W,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA,OAIzD+e,yBAAyB,CAACK,UAAU,EAAEV,UAAU,CAAC;AAAA,YAAA,KAAA,CAAA;cAAjEY,OAAO,GAAAra,QAAA,CAAA/E,CAAA;AAAA+E,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA,OACa,IAAI,CAACod,KAAK,CAACnM,cAAc,CAACqO,OAAO,CAAC;AAAA,YAAA,KAAA,CAAA;cAAtDC,WAAW,GAAAta,QAAA,CAAA/E,CAAA;AAAA,cAAA,IACZqf,WAAW,EAAA;AAAAta,gBAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,MACR,IAAIlC,cAAc,CAAA,uDAAA,CAAAhB,MAAA,CAA2BwiB,OAAO,CAAC/J,QAAQ,EAAE,CAAA,EAAItX,WAAW,EAAE;AACpF+W,gBAAAA,KAAK,EAAE0J,UAAU,CAACnJ,QAAQ,EAAE;AAC5BsK,gBAAAA,YAAY,EAAEP,OAAO,CAAC/J,QAAQ;AAChC,eAAC,CAAC;AAAA,YAAA,KAAA,CAAA;AAAAtQ,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA,OAIgB+e,yBAAyB,CAACK,UAAU,EAAET,QAAQ,CAAC;AAAA,YAAA,KAAA,CAAA;cAA7Da,KAAK,GAAAva,QAAA,CAAA/E,CAAA;AAAA+E,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA,OAGa,IAAI,CAACod,KAAK,CAACnM,cAAc,CAACuO,KAAK,CAAC;AAAA,YAAA,KAAA,CAAA;cAAlDC,SAAS,GAAAxa,QAAA,CAAA/E,CAAA;cACf,IAAI,CAACuf,SAAS,EAAE;AACd,gBAAA,IAAI,CAAChC,cAAc,CACjBuB,uCAAuC,CACrCK,cAAc;AAAW;gBACzBG,KAAK;AAAqB;gBAC1Bb,QAAQ;AAAkB;gBAC1BS,UAAU;AAAgB;gBAC1BF,gBAAgB,EAChBC,2BACF,CACF,CAAC;AACH,cAAA;;AAEA;AACA,cAAA,IAAI,CAAC1B,cAAc,CACjBwB,gCAAgC,CAC9BK,OAAO;AAAO;cACdF,UAAU;AAAK;cACfI,KAAK;AAAU;cACfd,UAAU;AAAK;cACfG,MAAM,EACNhD,QACF,CACF,CAAC;AAAC,cAAA,OAAA5W,QAAA,CAAAhF,CAAA,CAAA,CAAA,EAEK,IAAI,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAuE,OAAA,EAAA,IAAA,CAAA;MAAA,CACZ,CAAA,CAAA;AAAA,MAAA,SA9DKsb,aAAaA,CAAAnS,GAAA,EAAAC,GAAA,EAAAyB,GAAA,EAAAC,GAAA,EAAAU,GAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAA2O,cAAA,CAAApf,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAbilB,aAAa;AAAA,IAAA,CAAA;AAgEnB;AACF;AACA;AACA;AACA;AACA;AACA;AANE;AAAA,GAAA,EAAA;IAAArkB,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAOA,SAAAqkB,aAAaA,CAACvF,IAAI,EAAEwF,SAAS,EAAE;AAC7B,MAAA,IAAMtB,UAAU,GAAGvC,WAAW,CAAC3B,IAAI,CAAC;AAAC,MAAA,IAAAyF,SAAA,GAAAC,0BAAA,CACLF,SAAS,CAAA;QAAAG,KAAA;AAAA,MAAA,IAAA;QAAzC,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAAjgB,CAAA,EAAA,EAAAqgB,IAAA,GAA2C;AAAA,UAAA,IAAAC,WAAA,GAAAH,KAAA,CAAAzkB,KAAA;YAA9B8iB,EAAE,GAAA8B,WAAA,CAAF9B,EAAE;YAAE/O,SAAS,GAAA6Q,WAAA,CAAT7Q,SAAS;AACxB,UAAA,IAAI,CAACgO,cAAc,CAACgB,qBAAa,CAACF,QAAQ,CAAC;AACzCG,YAAAA,UAAU,EAAVA,UAAU;AACVC,YAAAA,QAAQ,EAAExC,WAAW,CAACqC,EAAE,CAAC;YACzB3O,QAAQ,EAAE6L,aAAa,CAACjM,SAAS;AACnC,WAAC,CAAC,CAAC;AACL,QAAA;AAAC,MAAA,CAAA,CAAA,OAAAtL,GAAA,EAAA;QAAA8b,SAAA,CAAAM,CAAA,CAAApc,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAA8b,QAAAA,SAAA,CAAArW,CAAA,EAAA;AAAA,MAAA;AACD,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAAnO,GAAA,EAAA,SAAA;AAAAC,IAAAA,KAAA,EAMA,SAAA8kB,OAAOA,CAACC,IAAI,EAAE;AACZ,MAAA,IAAMC,eAAe,GAAG;AACtBC,QAAAA,IAAI,EAAE,EAAE;AACRtL,QAAAA,SAAS,EAAE,IAAIrG,iBAAS,CAACnW,cAAc,CAACI,YAAY,CAAC;AACrD+P,QAAAA,IAAI,EAAE4X,MAAM,CAACpG,IAAI,CAACiG,IAAI,EAAE,OAAO;OAChC;AACD,MAAA,OAAO,IAAI,CAAChD,cAAc,CAACiD,eAAe,CAAC;AAC7C,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAAjlB,GAAA,EAAA,iBAAA;AAAAC,IAAAA,KAAA,EAMA,SAAAmlB,eAAeA,CAACC,KAAK,EAAE;AACrB,MAAA,IAAMpD,WAAW,GAAGqD,4BAAoB,CAACC,mBAAmB,CAAC;AAC3DF,QAAAA,KAAK,EAALA;AACF,OAAC,CAAC;MACF,IAAI,CAACvD,aAAa,CAAC0D,OAAO,CAACvD,WAAW,CAAC,CAAC;AACxC,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAAjiB,GAAA,EAAA,gBAAA;AAAAC,IAAAA,KAAA,EAMA,SAAAwlB,cAAcA,CAACC,aAAa,EAAE;AAC5B,MAAA,IAAMzD,WAAW,GAAGqD,4BAAoB,CAACK,mBAAmB,CAAC;AAC3DD,QAAAA,aAAa,EAAbA;AACF,OAAC,CAAC;AACF,MAAA,IAAI,CAAC5D,aAAa,CAAC0D,OAAO,CAACvD,WAAW,CAAC;AACvC,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AALE,GAAA,EAAA;IAAAjiB,GAAA,EAAA,OAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA2lB,MAAA,GAAA5hB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAAoG,QAAAA,CAAY+Y,QAAQ,EAAA;QAAA,IAAAwC,qBAAA,EAAApO,SAAA,EAAAC,oBAAA,EAAAoO,UAAA,EAAAC,MAAA,EAAAC,EAAA;AAAA,QAAA,OAAA/hB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAgG,cAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,cAAA,OACgC,IAAI,CAACod,KAAK,CAACnS,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAAAqW,qBAAA,GAAAtb,SAAA,CAAA9F,CAAA;cAAzEgT,SAAS,GAAAoO,qBAAA,CAATpO,SAAS;cAAEC,oBAAoB,GAAAmO,qBAAA,CAApBnO,oBAAoB;cACvC,IAAI,CAACuO,gBAAgB,GAAG;AAAExO,gBAAAA,SAAS,EAATA,SAAS;AAAEC,gBAAAA,oBAAoB,EAApBA;eAAsB;AAE3D,cAAA,IAAI,CAACkK,YAAY,GAAG,IAAIC,mBAAW,EAAE;AACrC,cAAA,IAAI,CAACD,YAAY,CAACsE,eAAe,GAAGzO,SAAS;AAC7C,cAAA,IAAI,CAACmK,YAAY,CAAClK,oBAAoB,GAAGA,oBAAoB;cAC7D,IAAI,CAACkK,YAAY,CAACyB,QAAQ,GAAG3C,WAAW,CAAC2C,QAAQ,CAAC;;AAElD;AAAAyC,cAAAA,UAAA,GAAArB,0BAAA,CACiB,IAAI,CAAC3C,aAAa,CAAA;AAAA,cAAA,IAAA;gBAAnC,KAAAgE,UAAA,CAAAnB,CAAA,EAAA,EAAA,CAAA,CAAAoB,MAAA,GAAAD,UAAA,CAAAvhB,CAAA,EAAA,EAAAqgB,IAAA,GAAqC;kBAA1BoB,EAAE,GAAAD,MAAA,CAAA9lB,KAAA;AACX,kBAAA,IAAI,CAAC2hB,YAAY,CAACiB,GAAG,CAACmD,EAAE,CAAC;AAC3B,gBAAA;AAAC,cAAA,CAAA,CAAA,OAAAtd,GAAA,EAAA;gBAAAod,UAAA,CAAAhB,CAAA,CAAApc,GAAA,CAAA;AAAA,cAAA,CAAA,SAAA;AAAAod,gBAAAA,UAAA,CAAA3X,CAAA,EAAA;AAAA,cAAA;AAAA,cAAA,OAAA5D,SAAA,CAAA/F,CAAA,CAAA,CAAA,EAEM,IAAI,CAACod,YAAY,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAtX,QAAA,EAAA,IAAA,CAAA;MAAA,CACzB,CAAA,CAAA;MAAA,SAfK6b,KAAKA,CAAArR,GAAA,EAAA;AAAA,QAAA,OAAA8Q,MAAA,CAAA7hB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAL+mB,KAAK;AAAA,IAAA,CAAA;AAiBX;AACF;AACA;AACA;AACA;AACA;AACA;AANE;AAAA,GAAA,EAAA;IAAAnmB,GAAA,EAAA,iBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAmmB,gBAAA,GAAApiB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAOA,SAAAwG,QAAAA,CAAsByX,MAAM,EAAA;AAAA,QAAA,IAAAkE,kBAAA;AAAA,QAAA,IAAApI,OAAA;AAAA,QAAA,OAAAha,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,YAAA,KAAA,CAAA;AACpB0Z,cAAAA,OAAO,GAAGkE,MAAM,CAAClE,OAAO,IAAIkE,MAAM;AAAAxX,cAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,cAAA,OAClC,IAAI,CAAC4hB,KAAK,CAAClI,OAAO,CAAClC,SAAS,CAAC;AAAA,YAAA,KAAA,CAAA;AACnC,cAAA,CAAAsK,kBAAA,GAAA,IAAI,CAACzE,YAAY,EAACvF,IAAI,CAAAtY,KAAA,CAAAsiB,kBAAA,EAAA3D,kBAAA,CAAI,IAAI,CAACN,eAAe,CAACnE,OAAO,CAAC,CAAA,CAAC;AAAC,cAAA,OAAAtT,SAAA,CAAAnG,CAAA,CAAA,CAAA,EAClD,IAAI,CAACod,YAAY,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAlX,QAAA,EAAA,IAAA,CAAA;MAAA,CACzB,CAAA,CAAA;MAAA,SALK4b,eAAeA,CAAAnR,GAAA,EAAA;AAAA,QAAA,OAAAiR,gBAAA,CAAAriB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAfknB,eAAe;AAAA,IAAA,CAAA;AAOrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARE;AAAA,GAAA,EAAA;IAAAtmB,GAAA,EAAA,gBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAsmB,eAAA,GAAAviB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CASA,SAAAgI,QAAAA,CAAqBiW,MAAM,EAAA;AAAA,QAAA,IAAAqE,mBAAA;AAAA,QAAA,IAAA1f,OAAA;UAAAmX,OAAA;UAAAoF,QAAA;UAAA3hB,SAAA;AAAAge,UAAAA,MAAA,GAAAtgB,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoI,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjI,CAAA;AAAA,YAAA,KAAA,CAAA;AAAEuC,cAAAA,OAAO,GAAA4Y,MAAA,CAAArgB,MAAA,GAAA,CAAA,IAAAqgB,MAAA,CAAA,CAAA,CAAA,KAAApgB,SAAA,GAAAogB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACvC;AACMzB,cAAAA,OAAO,GAAGkE,MAAM,CAAClE,OAAO,IAAIkE,MAAM,CAAA;AAGlCkB,cAAAA,QAAQ,GAAGvc,OAAO,CAACuc,QAAQ,GAAG3C,WAAW,CAAC5Z,OAAO,CAACuc,QAAQ,CAAC,GAAGpF,OAAO,CAAClC,SAAS;AAAAvP,cAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,cAAA,OAC/E,IAAI,CAAC4hB,KAAK,CAAC9C,QAAQ,CAAC;AAAA,YAAA,KAAA,CAAA;AAE1B;AACA;AACA;AACA,cAAA,CAAAmD,mBAAA,GAAA,IAAI,CAAC5E,YAAY,EAACvF,IAAI,CAAAtY,KAAA,CAAAyiB,mBAAA,EAAA9D,kBAAA,CAAI,IAAI,CAACN,eAAe,CAACnE,OAAO,CAAC,CAAA,CAAC;AAACzR,cAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;cAAA,OAEjC,IAAI,CAACod,KAAK,CAACxK,eAAe,CAAC,IAAI,CAACyK,YAAY,EAAE;AACpEvjB,gBAAAA,aAAa,EAAEyI,OAAO,CAACzI,aAAa,IAAI,KAAK;AAC7CD,gBAAAA,mBAAmB,EAAE0I,OAAO,CAAC3I,UAAU,IAAI;AAC7C,eAAC,CAAC;AAAA,YAAA,KAAA,CAAA;cAHIuD,SAAS,GAAA8K,SAAA,CAAA/H,CAAA;AAAA+H,cAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,cAAA,OAKTuc,2BAA2B,CAC/B,IAAI,CAACa,KAAK,EACVjgB,SAAS,EACT,IAAI,CAACukB,gBAAgB,EACrBnf,OAAO,CAAC3I,UAAU,IAAI,WACxB,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAqO,SAAA,CAAAhI,CAAA,CAAA,CAAA,EAEM9C,SAAS,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAwK,QAAA,EAAA,IAAA,CAAA;MAAA,CACjB,CAAA,CAAA;MAAA,SA1BKua,cAAcA,CAAAhR,IAAA,EAAA;AAAA,QAAA,OAAA8Q,eAAA,CAAAxiB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAdqnB,cAAc;AAAA,IAAA,CAAA;AA4BpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AAPE;AAAA,GAAA,EAAA;IAAAzmB,GAAA,EAAA,MAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAymB,KAAA,GAAA1iB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAQA,SAAAmJ,QAAAA,CAAW8U,MAAM,EAAA;AAAA,QAAA,IAAAwE,mBAAA;AAAA,QAAA,IAAA7f,OAAA;UAAAmX,OAAA;UAAAoF,QAAA;AAAAuD,UAAAA,MAAA,GAAAxnB,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoJ,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjJ,CAAA;AAAA,YAAA,KAAA,CAAA;AAAEuC,cAAAA,OAAO,GAAA8f,MAAA,CAAAvnB,MAAA,GAAA,CAAA,IAAAunB,MAAA,CAAA,CAAA,CAAA,KAAAtnB,SAAA,GAAAsnB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACvB3I,cAAAA,OAAO,GAAGkE,MAAM,CAAClE,OAAO,IAAIkE,MAAM;AAClCkB,cAAAA,QAAQ,GAAGvc,OAAO,CAACuc,QAAQ,GAAG3C,WAAW,CAAC5Z,OAAO,CAACuc,QAAQ,CAAC,GAAGpF,OAAO,CAAClC,SAAS;AAAAvO,cAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;AAAA,cAAA,OAC/E,IAAI,CAAC4hB,KAAK,CAAC9C,QAAQ,CAAC;AAAA,YAAA,KAAA,CAAA;AAE1B;AACA,cAAA,CAAAsD,mBAAA,GAAA,IAAI,CAAC/E,YAAY,EAACvF,IAAI,CAAAtY,KAAA,CAAA4iB,mBAAA,EAAAjE,kBAAA,CAAI,IAAI,CAACN,eAAe,CAACnE,OAAO,CAAC,CAAA,CAAC;;AAExD;AAAA,cAAA,OAAAzQ,SAAA,CAAAhJ,CAAA,CAAA,CAAA,EACO,IAAI,CAACmd,KAAK,CAACxK,eAAe,CAAC,IAAI,CAACyK,YAAY,EAAE;AACnDvjB,gBAAAA,aAAa,EAAEyI,OAAO,CAACzI,aAAa,IAAI,KAAK;AAC7CD,gBAAAA,mBAAmB,EAAE0I,OAAO,CAAC3I,UAAU,IAAI;AAC7C,eAAC,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAkP,QAAA,EAAA,IAAA,CAAA;MAAA,CACH,CAAA,CAAA;MAAA,SAbKwZ,IAAIA,CAAA9Q,IAAA,EAAA;AAAA,QAAA,OAAA2Q,KAAA,CAAA3iB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAJynB,IAAI;AAAA,IAAA,CAAA;AAeV;AACF;AACA;AACA;AACA;AACA;AACA;AANE;AAAA,GAAA,EAAA;IAAA7mB,GAAA,EAAA,SAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA6mB,QAAA,GAAA9iB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAOA,SAAAyI,QAAAA,CAAcjL,SAAS,EAAA;AAAA,QAAA,IAAAvD,UAAA;AAAA4oB,UAAAA,MAAA,GAAA3nB,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA8I,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3I,CAAA;AAAA,YAAA,KAAA,CAAA;cAAEpG,UAAU,GAAA4oB,MAAA,CAAA1nB,MAAA,GAAA,CAAA,IAAA0nB,MAAA,CAAA,CAAA,CAAA,KAAAznB,SAAA,GAAAynB,MAAA,CAAA,CAAA,CAAA,GAAG,WAAW;cAAA,IAC1C,IAAI,CAACd,gBAAgB,EAAA;AAAA/Y,gBAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,MAClB,IAAIhD,oBAAoB,CAAC,aAAa,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAA2L,SAAA,CAAA1I,CAAA,CAAA,CAAA,EAExC,IAAI,CAACmd,KAAK,CAAC7J,kBAAkB,CAACpW,SAAS,EAAEvD,UAAU,EAAE,IAAI,CAAC8nB,gBAAgB,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAtZ,QAAA,EAAA,IAAA,CAAA;MAAA,CACnF,CAAA,CAAA;MAAA,SALKqa,OAAOA,CAAArQ,IAAA,EAAA;AAAA,QAAA,OAAAmQ,QAAA,CAAA/iB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAP4nB,OAAO;AAAA,IAAA,CAAA;AAOb;AACF;AACA;AACA;AACA;AACA;AACA;AANE;AAAA,GAAA,EAAA;IAAAhnB,GAAA,EAAA,UAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAgnB,SAAA,GAAAjjB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAOA,SAAAoK,QAAAA,CAAe6T,MAAM,EAAA;AAAA,QAAA,IAAA+E,mBAAA;QAAA,IAAAjJ,OAAA,CAAA,CAAA1C,GAAA,CAAA,CAAAxO,MAAA,EAAAoa,YAAA,CAAA,CAAAC,SAAA;AAAA,QAAA,OAAAnjB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmK,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjK,CAAA,GAAAiK,SAAA,CAAAhK,CAAA;AAAA,YAAA,KAAA,CAAA;AACb0Z,cAAAA,OAAO,GAAGkE,MAAM,CAAClE,OAAO,IAAIkE,MAAM;AAAA5T,cAAAA,SAAA,CAAAhK,CAAA,GAAA,CAAA;AAAA,cAAA,OAClC,IAAI,CAAC4hB,KAAK,CAAClI,OAAO,CAAClC,SAAS,CAAC;AAAA,YAAA,KAAA,CAAA;AACnC,cAAA,CAAAmL,mBAAA,GAAA,IAAI,CAACtF,YAAY,EAACvF,IAAI,CAAAtY,KAAA,CAAAmjB,mBAAA,EAAAxE,kBAAA,CAAI,IAAI,CAACN,eAAe,CAACnE,OAAO,CAAC,CAAA,CAAC;AAAC1P,cAAAA,SAAA,CAAAhK,CAAA,GAAA,CAAA;AAAA,cAAA,OAEvC2W,oBAAoB,CAAC,IAAI,CAACyG,KAAK,CAAC;AAAA,YAAA,KAAA,CAAA;cAA5CpG,GAAG,GAAAhN,SAAA,CAAA9J,CAAA;AAAA8J,cAAAA,SAAA,CAAAhK,CAAA,GAAA,CAAA;AAAA,cAAA,OACYgX,GAAG,CAAC8L,mBAAmB,CAAC,IAAI,CAACzF,YAAY,CAAC;AAAA,YAAA,KAAA,CAAA;cAAzD7U,MAAM,GAAAwB,SAAA,CAAA9J,CAAA;AAEZ;cACI0iB,YAAY,GAAG,IAAI,CAAA;AAAE5Y,cAAAA,SAAA,CAAAjK,CAAA,GAAA,CAAA;AAAAiK,cAAAA,SAAA,CAAAhK,CAAA,GAAA,CAAA;AAAA,cAAA,OAECgX,GAAG,CAAC+L,gBAAgB,CAC1C,IAAI,CAAC1F,YAAY,CAAC2F,cAAc,EAAE,EAClC,WACF,CAAC;AAAA,YAAA,KAAA,CAAA;cAHKH,SAAS,GAAA7Y,SAAA,CAAA9J,CAAA;cAIf,IAAI2iB,SAAS,CAACnnB,KAAK,EAAEknB,YAAY,GAAGC,SAAS,CAACnnB,KAAK;AAACsO,cAAAA,SAAA,CAAAhK,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAAgK,cAAAA,SAAA,CAAAjK,CAAA,GAAA,CAAA;cAAAiK,SAAA,CAAA9J,CAAA;AAAA,YAAA,KAAA,CAAA;cAAA,OAAA8J,SAAA,CAAA/J,CAAA,CAAA,CAAA,EAK/C;AACLkE,gBAAAA,GAAG,EAAEqE,MAAM,CAAC9M,KAAK,CAACyI,GAAG;AACrB/G,gBAAAA,IAAI,EAAEoL,MAAM,CAAC9M,KAAK,CAAC0B,IAAI,IAAI,EAAE;AAC7B6lB,gBAAAA,aAAa,EAAEza,MAAM,CAAC9M,KAAK,CAACunB,aAAa,IAAI,CAAC;AAC9CL,gBAAAA,YAAY,EAAZA,YAAY;AACZM,gBAAAA,UAAU,EAAE1a,MAAM,CAAC9M,KAAK,CAACwnB,UAAU,IAAI;eACxC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAnZ,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;MAAA,CACF,CAAA,CAAA;MAAA,SA3BKoZ,QAAQA,CAAAtQ,IAAA,EAAA;AAAA,QAAA,OAAA6P,SAAA,CAAAljB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAARsoB,QAAQ;AAAA,IAAA,CAAA,EAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA;;AA8BhB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAsBC,WAAWA,CAAA5P,IAAA,EAAAC,IAAA,EAAAK,IAAA,EAAAS,IAAA,EAAA;AAAA,EAAA,OAAA8O,YAAA,CAAA7jB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAyBjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA,SAAAwoB,YAAAA,GAAA;AAAAA,EAAAA,YAAA,GAAA5jB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAzBO,SAAA4K,QAAAA,CAA2B3C,UAAU,EAAE0b,WAAW,EAAEC,SAAS,EAAE9T,SAAS,EAAA;AAAA,IAAA,IAAAlN,OAAA;MAAAihB,EAAA;MAAA9J,OAAA;MAAAvc,SAAA;AAAAsmB,MAAAA,MAAA,GAAA5oB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA2K,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAxK,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAkhB,MAAA,CAAA3oB,MAAA,GAAA,CAAA,IAAA2oB,MAAA,CAAA,CAAA,CAAA,KAAA1oB,SAAA,GAAA0oB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACrFD,UAAAA,EAAE,GAAG,IAAIrG,eAAe,CAACvV,UAAU,CAAC;AAEpC8R,UAAAA,OAAO,GAAG4J,WAAW,CAAC5J,OAAO,IAAI4J,WAAW;UAClDE,EAAE,CAACjF,QAAQ,CAAC7E,OAAO,CAAClC,SAAS,EAAE+L,SAAS,EAAE9T,SAAS,CAAC;;AAEpD;UACA,IAAIlN,OAAO,CAACke,IAAI,EAAE;AAChB+C,YAAAA,EAAE,CAAChD,OAAO,CAACje,OAAO,CAACke,IAAI,CAAC;AAC1B,UAAA;AAACjW,UAAAA,SAAA,CAAAxK,CAAA,GAAA,CAAA;AAAA,UAAA,OAEuBwjB,EAAE,CAACtB,cAAc,CAACoB,WAAW,EAAE;YACrDxpB,aAAa,EAAEyI,OAAO,CAACzI,aAAa;YACpCF,UAAU,EAAE2I,OAAO,CAAC3I;AACtB,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHIuD,SAAS,GAAAqN,SAAA,CAAAtK,CAAA;UAAA,OAAAsK,SAAA,CAAAvK,CAAA,CAAA,CAAA,EAKR;AACL9C,YAAAA,SAAS,EAATA,SAAS;AACT0hB,YAAAA,MAAM,EAAEpP,SAAS;AACjB+K,YAAAA,IAAI,EAAEd,OAAO,CAAClC,SAAS,CAACjC,QAAQ,EAAE;AAClCiJ,YAAAA,EAAE,EAAE+E,SAAS;AACb9C,YAAAA,IAAI,EAAEle,OAAO,CAACke,IAAI,IAAI;WACvB,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAlW,QAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAA8Y,YAAA,CAAA7jB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAcD,SAAsBilB,aAAaA,CAAAjL,IAAA,EAAAY,IAAA,EAAAQ,IAAA,EAAAW,IAAA,EAAA8M,IAAA,EAAAC,IAAA,EAAA;AAAA,EAAA,OAAAC,eAAA,CAAApkB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAwBnC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAA+oB,eAAAA,GAAA;AAAAA,EAAAA,eAAA,GAAAnkB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAxBO,SAAAgL,QAAAA,CAA6B/C,UAAU,EAAE0b,WAAW,EAAEC,SAAS,EAAEtlB,WAAW,EAAE4gB,MAAM,EAAEhD,QAAQ,EAAA;AAAA,IAAA,IAAAtZ,OAAA;MAAAihB,EAAA;MAAA9J,OAAA;MAAAvc,SAAA;AAAA0mB,MAAAA,MAAA,GAAAhpB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA+K,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA5K,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAshB,MAAA,CAAA/oB,MAAA,GAAA,CAAA,IAAA+oB,MAAA,CAAA,CAAA,CAAA,KAAA9oB,SAAA,GAAA8oB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAC3GL,UAAAA,EAAE,GAAG,IAAIrG,eAAe,CAACvV,UAAU,CAAC;AAEpC8R,UAAAA,OAAO,GAAG4J,WAAW,CAAC5J,OAAO,IAAI4J,WAAW;AAAA1Y,UAAAA,SAAA,CAAA5K,CAAA,GAAA,CAAA;AAAA,UAAA,OAC5CwjB,EAAE,CAAC1D,aAAa,CAACpG,OAAO,CAAClC,SAAS,EAAE+L,SAAS,EAAEtlB,WAAW,EAAE4gB,MAAM,EAAEhD,QAAQ,CAAC;AAAA,QAAA,KAAA,CAAA;UAEnF,IAAItZ,OAAO,CAACke,IAAI,EAAE;AAChB+C,YAAAA,EAAE,CAAChD,OAAO,CAACje,OAAO,CAACke,IAAI,CAAC;AAC1B,UAAA;AAAC7V,UAAAA,SAAA,CAAA5K,CAAA,GAAA,CAAA;AAAA,UAAA,OAEuBwjB,EAAE,CAACtB,cAAc,CAACoB,WAAW,EAAE;YACrDxpB,aAAa,EAAEyI,OAAO,CAACzI,aAAa;YACpCF,UAAU,EAAE2I,OAAO,CAAC3I;AACtB,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHIuD,SAAS,GAAAyN,SAAA,CAAA1K,CAAA;UAAA,OAAA0K,SAAA,CAAA3K,CAAA,CAAA,CAAA,EAKR;AACL9C,YAAAA,SAAS,EAATA,SAAS;AACT2mB,YAAAA,IAAI,EAAE7lB,WAAW;AACjB4gB,YAAAA,MAAM,EAANA,MAAM;AACNrE,YAAAA,IAAI,EAAEd,OAAO,CAAClC,SAAS,CAACjC,QAAQ,EAAE;AAClCiJ,YAAAA,EAAE,EAAE+E;WACL,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA5Y,QAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAAiZ,eAAA,CAAApkB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AASD,SAAsBkpB,sBAAsBA,CAAAC,IAAA,EAAAC,IAAA,EAAA;AAAA,EAAA,OAAAC,uBAAA,CAAA1kB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAc3C,SAAAqpB,uBAAAA,GAAA;EAAAA,uBAAA,GAAAzkB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAdM,SAAAoL,QAAAA,CAAsCnD,UAAU,EAAE2K,WAAW,EAAA;AAAA,IAAA,IAAA4R,IAAA,CAAA,CAAAnN,GAAA,CAAA,CAAAoN,GAAA;AAAA,IAAA,OAAA1kB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmL,SAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjL,CAAA,GAAAiL,SAAA,CAAAhL,CAAA;AAAA,QAAA,KAAA,CAAA;AAC5DmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAAAzL,UAAAA,SAAA,CAAAjL,CAAA,GAAA,CAAA;AAAAiL,UAAAA,SAAA,CAAAhL,CAAA,GAAA,CAAA;UAAA,OAG7B2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAAhM,SAAA,CAAA9K,CAAA;AAAA8K,UAAAA,SAAA,CAAAhL,CAAA,GAAA,CAAA;UAAA,OACSgX,GAAG,CAAC+L,gBAAgB,CACpCxQ,WAAW,CAACyQ,cAAc,EAAE,EAC5B,WACF,CAAC;AAAA,QAAA,KAAA,CAAA;UAHKoB,GAAG,GAAApZ,SAAA,CAAA9K,CAAA;UAAA,OAAA8K,SAAA,CAAA/K,CAAA,CAAA,CAAA,EAIFmkB,GAAG,CAAC1oB,KAAK,IAAI,IAAI,CAAA;AAAA,QAAA,KAAA,CAAA;AAAAsP,UAAAA,SAAA,CAAAjL,CAAA,GAAA,CAAA;UAAAiL,SAAA,CAAA9K,CAAA;AAAA,UAAA,OAAA8K,SAAA,CAAA/K,CAAA,CAAA,CAAA,EAGjB,IAAI,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA8K,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;EAAA,CAEd,CAAA,CAAA;AAAA,EAAA,OAAAmZ,uBAAA,CAAA1kB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;ACngBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAsBwpB,UAAUA,CAAAxjB,EAAA,EAAAkM,GAAA,EAAA;AAAA,EAAA,OAAAuX,WAAA,CAAA9kB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AA2DhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,SAAAypB,WAAAA,GAAA;EAAAA,WAAA,GAAA7kB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CA3DO,SAAA6E,OAAAA,CAA0BoD,UAAU,EAAE2c,KAAK,EAAA;AAAA,IAAA,IAAAC,iBAAA;AAAA,IAAA,IAAAjiB,OAAA;MAAA4hB,IAAA;MAAAM,OAAA;MAAA1V,aAAA;MAAA2V,SAAA;MAAAxF,gBAAA;MAAAyF,gCAAA;MAAA9I,QAAA;MAAA+I,WAAA;MAAAC,aAAA;MAAAC,eAAA;MAAAC,YAAA;MAAAvB,EAAA;MAAArmB,SAAA;AAAA0b,MAAAA,KAAA,GAAAhe,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAjF,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAsW,KAAA,CAAA/d,MAAA,GAAA,CAAA,IAAA+d,KAAA,CAAA,CAAA,CAAA,KAAA9d,SAAA,GAAA8d,KAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACxDsL,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3CgO,UAAAA,OAAO,GAAGF,KAAK,CAAC7K,OAAO,IAAI6K,KAAK;AAAAtf,UAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;UAAA,OAM5B,OAAO,mBAAmB,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA+O,aAAA,GAAA9J,QAAA,CAAA/E,CAAA;UAHnCwkB,SAAS,GAAA3V,aAAA,CAAT2V,SAAS;UACTxF,gBAAgB,GAAAnQ,aAAA,CAAhBmQ,gBAAgB;UAChByF,gCAAgC,GAAA5V,aAAA,CAAhC4V,gCAAgC;UAG5B9I,QAAQ,GAAA,CAAA2I,iBAAA,GAAGjiB,OAAO,CAACsZ,QAAQ,MAAA,IAAA,IAAA2I,iBAAA,KAAA,MAAA,GAAAA,iBAAA,GAAI,CAAC;AAAA,UAAA,IAAA,EAClC,CAAC9E,MAAM,CAACE,SAAS,CAAC/D,QAAQ,CAAC,IAAIA,QAAQ,GAAG,CAAC,IAAIA,QAAQ,GAAG,CAAC,CAAA,EAAA;AAAA5W,YAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACvD,IAAIlC,cAAc,CAAC,8BAA8B,EAAE,EAAE,EAAE;AAAE+d,YAAAA,QAAQ,EAARA;AAAS,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAGtE+I,WAAW,GAAGriB,OAAO,CAACqiB,WAAW,IAAI7K,eAAO,CAACd,QAAQ,EAAE;AACvD4L,UAAAA,aAAa,GAAGtiB,OAAO,CAACsiB,aAAa,GAAG1I,WAAW,CAAC5Z,OAAO,CAACsiB,aAAa,CAAC,GAAGJ,OAAO,CAACjN,SAAS;UAC9FsN,eAAe,GAAGviB,OAAO,CAACuiB,eAAe,KAAK,IAAI,GACpD,IAAI,GACJviB,OAAO,CAACuiB,eAAe,GACrB3I,WAAW,CAAC5Z,OAAO,CAACuiB,eAAe,CAAC,GACpCL,OAAO,CAACjN,SAAS;AAAAvS,UAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,UAAA,OAEImkB,IAAI,CAACvP,iCAAiC,CAAC8P,SAAS,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtEK,YAAY,GAAA9f,QAAA,CAAA/E,CAAA;AAEZsjB,UAAAA,EAAE,GAAG,IAAIrG,eAAe,CAACgH,IAAI,CAAC,CAAA;AAEpCX,UAAAA,EAAE,CAAC/F,cAAc,CAACgB,qBAAa,CAACuG,aAAa,CAAC;YAC5CtG,UAAU,EAAE+F,OAAO,CAACjN,SAAS;YAC7ByN,gBAAgB,EAAEL,WAAW,CAACpN,SAAS;AACvC0N,YAAAA,KAAK,EAAER,SAAS;AAChB7U,YAAAA,QAAQ,EAAEkV,YAAY;AACtB1P,YAAAA,SAAS,EAAE6J;AACb,WAAC,CAAC,CAAC;AACH;AACAsE,UAAAA,EAAE,CAAC/F,cAAc,CAACkH,gCAAgC,CAChDC,WAAW,CAACpN,SAAS,EACrBqE,QAAQ,EACRgJ,aAAa,EACbC,eAAe,EACf5F,gBACF,CAAC,CAAC;AACF;AACAsE,UAAAA,EAAE,CAAC7F,SAAS,CAACiH,WAAW,CAAC;AAAC3f,UAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,UAAA,OAEFwjB,EAAE,CAACtB,cAAc,CAACuC,OAAO,EAAE;YACjD3qB,aAAa,EAAEyI,OAAO,CAACzI,aAAa;YACpCF,UAAU,EAAE2I,OAAO,CAAC3I;AACtB,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHIuD,SAAS,GAAA8H,QAAA,CAAA/E,CAAA;UAAA,OAAA+E,QAAA,CAAAhF,CAAA,CAAA,CAAA,EAKR;AACL9C,YAAAA,SAAS,EAATA,SAAS;AACT2mB,YAAAA,IAAI,EAAEc,WAAW,CAACpN,SAAS,CAACjC,QAAQ,EAAE;AACtCsG,YAAAA,QAAQ,EAARA,QAAQ;AACRgJ,YAAAA,aAAa,EAAEA,aAAa,CAACtP,QAAQ,EAAE;YACvCuP,eAAe,EAAEA,eAAe,GAAGA,eAAe,CAACvP,QAAQ,EAAE,GAAG;WACjE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA/Q,OAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAA8f,WAAA,CAAA9kB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAYD,SAAsBsqB,uBAAuBA,CAAA/X,GAAA,EAAAO,GAAA,EAAAC,GAAA,EAAAyB,GAAA,EAAA;AAAA,EAAA,OAAA+V,wBAAA,CAAA5lB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAkC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA,SAAAuqB,wBAAAA,GAAA;AAAAA,EAAAA,wBAAA,GAAA3lB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAlCO,SAAAoG,QAAAA,CAAuC6B,UAAU,EAAE2c,KAAK,EAAEtmB,WAAW,EAAEonB,YAAY,EAAA;IAAA,IAAAlB,IAAA,EAAAM,OAAA,EAAA/U,cAAA,EAAAqP,yBAAA,EAAAC,uCAAA,EAAAE,gBAAA,EAAAC,2BAAA,EAAAC,UAAA,EAAAkG,WAAA,EAAAC,GAAA,EAAAlU,IAAA,EAAAmS,EAAA,EAAArmB,SAAA;AAAA,IAAA,OAAAuC,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,CAAA;AAAA,QAAA,KAAA,CAAA;AAClFmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3CgO,UAAAA,OAAO,GAAGF,KAAK,CAAC7K,OAAO,IAAI6K,KAAK;AAAAve,UAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;UAAA,OAO5B,OAAO,mBAAmB,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA0P,cAAA,GAAA1J,SAAA,CAAA9F,CAAA;UAJnC6e,yBAAyB,GAAArP,cAAA,CAAzBqP,yBAAyB;UACzBC,uCAAuC,GAAAtP,cAAA,CAAvCsP,uCAAuC;UACvCE,gBAAgB,GAAAxP,cAAA,CAAhBwP,gBAAgB;UAChBC,2BAA2B,GAAAzP,cAAA,CAA3ByP,2BAA2B;AAGvBC,UAAAA,UAAU,GAAGjD,WAAW,CAACle,WAAW,CAAC;UACrCqnB,WAAW,GAAGD,YAAY,GAAGlJ,WAAW,CAACkJ,YAAY,CAAC,GAAGZ,OAAO,CAACjN,SAAS;AAAAxR,UAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,UAAA,OAC9D+e,yBAAyB,CAACK,UAAU,EAAEkG,WAAW,CAAC;AAAA,QAAA,KAAA,CAAA;UAA9DC,GAAG,GAAAvf,SAAA,CAAA9F,CAAA;AAAA8F,UAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,UAAA,OAEUmkB,IAAI,CAAClT,cAAc,CAACsU,GAAG,CAAC;AAAA,QAAA,KAAA,CAAA;UAArClU,IAAI,GAAArL,SAAA,CAAA9F,CAAA;AAAA,UAAA,IAAA,CACNmR,IAAI,EAAA;AAAArL,YAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;UAAA,OAAAgG,SAAA,CAAA/F,CAAA,CAAA,CAAA,EACC;AAAErC,YAAAA,OAAO,EAAE2nB,GAAG,CAAChQ,QAAQ,EAAE;AAAEiQ,YAAAA,OAAO,EAAE,KAAK;AAAEroB,YAAAA,SAAS,EAAE;WAAM,CAAA;AAAA,QAAA,KAAA,CAAA;AAG/DqmB,UAAAA,EAAE,GAAG,IAAIrG,eAAe,CAACgH,IAAI,CAAC;AACpCX,UAAAA,EAAE,CAAC/F,cAAc,CAACuB,uCAAuC,CACvDyF,OAAO,CAACjN,SAAS,EACjB+N,GAAG,EACHD,WAAW,EACXlG,UAAU,EACVF,gBAAgB,EAChBC,2BACF,CAAC,CAAC;AAACnZ,UAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,UAAA,OAEqBwjB,EAAE,CAACtB,cAAc,CAACuC,OAAO,CAAC;AAAA,QAAA,KAAA,CAAA;UAA5CtnB,SAAS,GAAA6I,SAAA,CAAA9F,CAAA;UAAA,OAAA8F,SAAA,CAAA/F,CAAA,CAAA,CAAA,EACR;AAAErC,YAAAA,OAAO,EAAE2nB,GAAG,CAAChQ,QAAQ,EAAE;AAAEiQ,YAAAA,OAAO,EAAE,IAAI;AAAEroB,YAAAA,SAAS,EAATA;WAAW,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA4I,QAAA,CAAA;EAAA,CAC7D,CAAA,CAAA;AAAA,EAAA,OAAAqf,wBAAA,CAAA5lB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAaD,SAAsB4qB,MAAMA,CAAAnW,GAAA,EAAAU,GAAA,EAAAC,GAAA,EAAAM,GAAA,EAAAK,GAAA,EAAA;AAAA,EAAA,OAAA8U,OAAA,CAAAlmB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAyD5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA,SAAA6qB,OAAAA,GAAA;AAAAA,EAAAA,OAAA,GAAAjmB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAzDO,SAAAwG,QAAAA,CAAsByB,UAAU,EAAEid,aAAa,EAAE5mB,WAAW,EAAEslB,SAAS,EAAE1E,MAAM,EAAA;AAAA,IAAA,IAAAtc,OAAA;MAAA4hB,IAAA;MAAAwB,WAAA;MAAAvV,cAAA;MAAA2O,yBAAA;MAAAC,uCAAA;MAAA4G,uBAAA;MAAA1G,gBAAA;MAAAC,2BAAA;MAAAC,UAAA;MAAAkG,WAAA;MAAAC,GAAA;MAAA/B,EAAA;MAAAqC,OAAA;MAAA1oB,SAAA;AAAA2d,MAAAA,MAAA,GAAAjgB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAuY,MAAA,CAAAhgB,MAAA,GAAA,CAAA,IAAAggB,MAAA,CAAA,CAAA,CAAA,KAAA/f,SAAA,GAAA+f,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAC5FqJ,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3CkP,UAAAA,WAAW,GAAGd,aAAa,CAACnL,OAAO,IAAImL,aAAa;AAAAze,UAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;UAAA,OAQhD,OAAO,mBAAmB,CAAC;AAAA,QAAA,KAAA,CAAA;UAAAoQ,cAAA,GAAAhK,SAAA,CAAAlG,CAAA;UALnC6e,yBAAyB,GAAA3O,cAAA,CAAzB2O,yBAAyB;UACzBC,uCAAuC,GAAA5O,cAAA,CAAvC4O,uCAAuC;UACvC4G,uBAAuB,GAAAxV,cAAA,CAAvBwV,uBAAuB;UACvB1G,gBAAgB,GAAA9O,cAAA,CAAhB8O,gBAAgB;UAChBC,2BAA2B,GAAA/O,cAAA,CAA3B+O,2BAA2B;UAAA,IAGxB2G,iBAAiB,CAACjH,MAAM,CAAC,EAAA;AAAAzY,YAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACtB,IAAIlC,cAAc,CAAC,YAAY,EAAEG,WAAW,EAAE;YAAE4gB,MAAM,EAAEkH,MAAM,CAAClH,MAAM;AAAE,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;AAG3EO,UAAAA,UAAU,GAAGjD,WAAW,CAACle,WAAW,CAAC;AACrCqnB,UAAAA,WAAW,GAAGnJ,WAAW,CAACoH,SAAS,CAAC;AAAAnd,UAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,UAAA,OACxB+e,yBAAyB,CAACK,UAAU,EAAEkG,WAAW,CAAC;AAAA,QAAA,KAAA,CAAA;UAA9DC,GAAG,GAAAnf,SAAA,CAAAlG,CAAA;AAEHsjB,UAAAA,EAAE,GAAG,IAAIrG,eAAe,CAACgH,IAAI,CAAC;AAAA/d,UAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,UAAA,OAEdmkB,IAAI,CAAClT,cAAc,CAACsU,GAAG,CAAC;AAAA,QAAA,KAAA,CAAA;UAAxCM,OAAO,GAAAzf,SAAA,CAAAlG,CAAA;UACb,IAAI,CAAC2lB,OAAO,EAAE;AACZrC,YAAAA,EAAE,CAAC/F,cAAc,CAACuB,uCAAuC,CACvD2G,WAAW,CAACnO,SAAS,EACrB+N,GAAG,EACHD,WAAW,EACXlG,UAAU,EACVF,gBAAgB,EAChBC,2BACF,CAAC,CAAC;AACJ,UAAA;UAEAqE,EAAE,CAAC/F,cAAc,CAACmI,uBAAuB,CACvCxG,UAAU,EACVmG,GAAG,EACHI,WAAW,CAACnO,SAAS,EACrBwO,MAAM,CAACnH,MAAM,CAAC,EACd,EAAE,EACFK,gBACF,CAAC,CAAC;AAAC9Y,UAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,UAAA,OAEqBwjB,EAAE,CAACtB,cAAc,CAACyD,WAAW,EAAE;YACrD7rB,aAAa,EAAEyI,OAAO,CAACzI,aAAa;YACpCF,UAAU,EAAE2I,OAAO,CAAC3I;AACtB,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHIuD,SAAS,GAAAiJ,SAAA,CAAAlG,CAAA;UAAA,OAAAkG,SAAA,CAAAnG,CAAA,CAAA,CAAA,EAKR;AACL9C,YAAAA,SAAS,EAATA,SAAS;AACT2mB,YAAAA,IAAI,EAAE7lB,WAAW;AACjBugB,YAAAA,EAAE,EAAE+E,SAAS;AACb1D,YAAAA,YAAY,EAAE0F,GAAG,CAAChQ,QAAQ,EAAE;YAC5BsJ,MAAM,EAAEkH,MAAM,CAAClH,MAAM;WACtB,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA1Y,QAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAAuf,OAAA,CAAAlmB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAaD,SAAsBorB,IAAIA,CAAA/U,IAAA,EAAAM,IAAA,EAAAY,IAAA,EAAAS,IAAA,EAAA;AAAA,EAAA,OAAAqT,KAAA,CAAA1mB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAqC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,SAAAqrB,KAAAA,GAAA;AAAAA,EAAAA,KAAA,GAAAzmB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CArCO,SAAAgI,QAAAA,CAAoBC,UAAU,EAAEoN,KAAK,EAAE/W,WAAW,EAAE4gB,MAAM,EAAA;AAAA,IAAA,IAAAtc,OAAA;MAAA4hB,IAAA;MAAAgC,OAAA;MAAApV,cAAA;MAAAgO,yBAAA;MAAAqH,qBAAA;MAAAC,4BAAA;MAAAnH,gBAAA;MAAAE,UAAA;MAAAmG,GAAA;MAAA/B,EAAA;MAAArmB,SAAA;AAAAge,MAAAA,MAAA,GAAAtgB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoI,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjI,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAA4Y,MAAA,CAAArgB,MAAA,GAAA,CAAA,IAAAqgB,MAAA,CAAA,CAAA,CAAA,KAAApgB,SAAA,GAAAogB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACvEgJ,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3C0P,UAAAA,OAAO,GAAGnR,KAAK,CAAC0E,OAAO,IAAI1E,KAAK;AAAA/M,UAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;UAAA,OAO5B,OAAO,mBAAmB,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA+Q,cAAA,GAAA9I,SAAA,CAAA/H,CAAA;UAJnC6e,yBAAyB,GAAAhO,cAAA,CAAzBgO,yBAAyB;UACzBqH,qBAAqB,GAAArV,cAAA,CAArBqV,qBAAqB;UACrBC,4BAA4B,GAAAtV,cAAA,CAA5BsV,4BAA4B;UAC5BnH,gBAAgB,GAAAnO,cAAA,CAAhBmO,gBAAgB;UAAA,IAGb4G,iBAAiB,CAACjH,MAAM,CAAC,EAAA;AAAA5W,YAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACtB,IAAIlC,cAAc,CAAC,YAAY,EAAEG,WAAW,EAAE;YAAE4gB,MAAM,EAAEkH,MAAM,CAAClH,MAAM;AAAE,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;AAG3EO,UAAAA,UAAU,GAAGjD,WAAW,CAACle,WAAW,CAAC;AAAAgK,UAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,UAAA,OACzB+e,yBAAyB,CAACK,UAAU,EAAE+G,OAAO,CAAC3O,SAAS,CAAC;AAAA,QAAA,KAAA,CAAA;UAApE+N,GAAG,GAAAtd,SAAA,CAAA/H,CAAA;AAEHsjB,UAAAA,EAAE,GAAG,IAAIrG,eAAe,CAACgH,IAAI,CAAC;UACpC,IAAIzE,MAAM,CAACE,SAAS,CAACrd,OAAO,CAACsZ,QAAQ,CAAC,EAAE;YACtC2H,EAAE,CAAC/F,cAAc,CAAC4I,4BAA4B,CAC5Cd,GAAG,EAAEnG,UAAU,EAAE+G,OAAO,CAAC3O,SAAS,EAAEwO,MAAM,CAACnH,MAAM,CAAC,EAAEtc,OAAO,CAACsZ,QAAQ,EAAE,EAAE,EAAEqD,gBAC5E,CAAC,CAAC;AACJ,UAAA,CAAC,MAAM;YACLsE,EAAE,CAAC/F,cAAc,CAAC2I,qBAAqB,CACrCb,GAAG,EAAEnG,UAAU,EAAE+G,OAAO,CAAC3O,SAAS,EAAEwO,MAAM,CAACnH,MAAM,CAAC,EAAE,EAAE,EAAEK,gBAC1D,CAAC,CAAC;AACJ,UAAA;AAACjX,UAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,UAAA,OAEuBwjB,EAAE,CAACtB,cAAc,CAACiE,OAAO,EAAE;YACjDrsB,aAAa,EAAEyI,OAAO,CAACzI,aAAa;YACpCF,UAAU,EAAE2I,OAAO,CAAC3I;AACtB,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHIuD,SAAS,GAAA8K,SAAA,CAAA/H,CAAA;UAAA,OAAA+H,SAAA,CAAAhI,CAAA,CAAA,CAAA,EAKR;AAAE9C,YAAAA,SAAS,EAATA,SAAS;AAAE2mB,YAAAA,IAAI,EAAE7lB,WAAW;YAAE4gB,MAAM,EAAEkH,MAAM,CAAClH,MAAM;WAAG,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAlX,QAAA,CAAA;EAAA,CAChE,CAAA,CAAA;AAAA,EAAA,OAAAue,KAAA,CAAA1mB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAYD,SAAsByrB,OAAOA,CAAA9S,IAAA,EAAAC,IAAA,EAAAK,IAAA,EAAAS,IAAA,EAAAM,IAAA,EAAA;AAAA,EAAA,OAAA0R,QAAA,CAAA/mB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AA0B7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,SAAA0rB,QAAAA,GAAA;AAAAA,EAAAA,QAAA,GAAA9mB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CA1BO,SAAAmJ,QAAAA,CAAuBlB,UAAU,EAAEoN,KAAK,EAAE/W,WAAW,EAAEuoB,eAAe,EAAE3H,MAAM,EAAA;AAAA,IAAA,IAAAtc,OAAA;MAAA4hB,IAAA;MAAAgC,OAAA;MAAAxU,cAAA;MAAAoN,yBAAA;MAAA0H,wBAAA;MAAAvH,gBAAA;MAAAE,UAAA;MAAAmG,GAAA;MAAA/B,EAAA;MAAArmB,SAAA;AAAAklB,MAAAA,MAAA,GAAAxnB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoJ,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjJ,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAA8f,MAAA,CAAAvnB,MAAA,GAAA,CAAA,IAAAunB,MAAA,CAAA,CAAA,CAAA,KAAAtnB,SAAA,GAAAsnB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAC3F8B,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3C0P,UAAAA,OAAO,GAAGnR,KAAK,CAAC0E,OAAO,IAAI1E,KAAK;AAAA/L,UAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;UAAA,OAM5B,OAAO,mBAAmB,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA2R,cAAA,GAAA1I,SAAA,CAAA/I,CAAA;UAHnC6e,yBAAyB,GAAApN,cAAA,CAAzBoN,yBAAyB;UACzB0H,wBAAwB,GAAA9U,cAAA,CAAxB8U,wBAAwB;UACxBvH,gBAAgB,GAAAvN,cAAA,CAAhBuN,gBAAgB;AAGZE,UAAAA,UAAU,GAAGjD,WAAW,CAACle,WAAW,CAAC;AAAAgL,UAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;AAAA,UAAA,OACzB+e,yBAAyB,CAACK,UAAU,EAAE+G,OAAO,CAAC3O,SAAS,CAAC;AAAA,QAAA,KAAA,CAAA;UAApE+N,GAAG,GAAAtc,SAAA,CAAA/I,CAAA;AAEHsjB,UAAAA,EAAE,GAAG,IAAIrG,eAAe,CAACgH,IAAI,CAAC;UACpCX,EAAE,CAAC/F,cAAc,CAACgJ,wBAAwB,CACxClB,GAAG,EAAEpJ,WAAW,CAACqK,eAAe,CAAC,EAAEL,OAAO,CAAC3O,SAAS,EAAEwO,MAAM,CAACnH,MAAM,CAAC,EAAE,EAAE,EAAEK,gBAC5E,CAAC,CAAC;AAACjW,UAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;AAAA,UAAA,OAEqBwjB,EAAE,CAACtB,cAAc,CAACiE,OAAO,EAAE;YACjDrsB,aAAa,EAAEyI,OAAO,CAACzI,aAAa;YACpCF,UAAU,EAAE2I,OAAO,CAAC3I;AACtB,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHIuD,SAAS,GAAA8L,SAAA,CAAA/I,CAAA;UAAA,OAAA+I,SAAA,CAAAhJ,CAAA,CAAA,CAAA,EAKR;AAAE9C,YAAAA,SAAS,EAATA,SAAS;AAAEupB,YAAAA,QAAQ,EAAEF,eAAe;YAAE3H,MAAM,EAAEkH,MAAM,CAAClH,MAAM;WAAG,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA/V,QAAA,CAAA;EAAA,CACxE,CAAA,CAAA;AAAA,EAAA,OAAAyd,QAAA,CAAA/mB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAUD,SAAsB8rB,MAAMA,CAAAlR,IAAA,EAAAQ,IAAA,EAAAW,IAAA,EAAA;AAAA,EAAA,OAAAgQ,OAAA,CAAApnB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAwB5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAA+rB,OAAAA,GAAA;AAAAA,EAAAA,OAAA,GAAAnnB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAxBO,SAAAyI,QAAAA,CAAsBR,UAAU,EAAEoN,KAAK,EAAE/W,WAAW,EAAA;AAAA,IAAA,IAAAsE,OAAA;MAAA4hB,IAAA;MAAAgC,OAAA;MAAAlS,cAAA;MAAA8K,yBAAA;MAAA8H,uBAAA;MAAA3H,gBAAA;MAAAE,UAAA;MAAAmG,GAAA;MAAA/B,EAAA;MAAArmB,SAAA;AAAAqlB,MAAAA,MAAA,GAAA3nB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA8I,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3I,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAigB,MAAA,CAAA1nB,MAAA,GAAA,CAAA,IAAA0nB,MAAA,CAAA,CAAA,CAAA,KAAAznB,SAAA,GAAAynB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACjE2B,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3C0P,UAAAA,OAAO,GAAGnR,KAAK,CAAC0E,OAAO,IAAI1E,KAAK;AAAArM,UAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;UAAA,OAM5B,OAAO,mBAAmB,CAAC;AAAA,QAAA,KAAA,CAAA;UAAAiU,cAAA,GAAAtL,SAAA,CAAAzI,CAAA;UAHnC6e,yBAAyB,GAAA9K,cAAA,CAAzB8K,yBAAyB;UACzB8H,uBAAuB,GAAA5S,cAAA,CAAvB4S,uBAAuB;UACvB3H,gBAAgB,GAAAjL,cAAA,CAAhBiL,gBAAgB;AAGZE,UAAAA,UAAU,GAAGjD,WAAW,CAACle,WAAW,CAAC;AAAA0K,UAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;AAAA,UAAA,OACzB+e,yBAAyB,CAACK,UAAU,EAAE+G,OAAO,CAAC3O,SAAS,CAAC;AAAA,QAAA,KAAA,CAAA;UAApE+N,GAAG,GAAA5c,SAAA,CAAAzI,CAAA;AAEHsjB,UAAAA,EAAE,GAAG,IAAIrG,eAAe,CAACgH,IAAI,CAAC;AACpCX,UAAAA,EAAE,CAAC/F,cAAc,CAACoJ,uBAAuB,CAACtB,GAAG,EAAEY,OAAO,CAAC3O,SAAS,EAAE,EAAE,EAAE0H,gBAAgB,CAAC,CAAC;AAACvW,UAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;AAAA,UAAA,OAEjEwjB,EAAE,CAACtB,cAAc,CAACiE,OAAO,EAAE;YACjDrsB,aAAa,EAAEyI,OAAO,CAACzI,aAAa;YACpCF,UAAU,EAAE2I,OAAO,CAAC3I;AACtB,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHIuD,SAAS,GAAAwL,SAAA,CAAAzI,CAAA;UAAA,OAAAyI,SAAA,CAAA1I,CAAA,CAAA,CAAA,EAKR;AAAE9C,YAAAA,SAAS,EAATA;WAAW,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAiL,QAAA,CAAA;EAAA,CACrB,CAAA,CAAA;AAAA,EAAA,OAAAwe,OAAA,CAAApnB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAWD,SAAsBisB,aAAaA,CAAApD,IAAA,EAAAC,IAAA,EAAAK,IAAA,EAAAC,IAAA,EAAA;AAAA,EAAA,OAAA8C,cAAA,CAAAvnB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAInC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAAksB,cAAAA,GAAA;AAAAA,EAAAA,cAAA,GAAAtnB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAJO,SAAAoK,QAAAA,CAA6BnC,UAAU,EAAEkd,eAAe,EAAE7mB,WAAW,EAAEonB,YAAY,EAAA;AAAA,IAAA,IAAA9iB,OAAA;AAAAykB,MAAAA,MAAA,GAAAnsB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmK,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhK,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAykB,MAAA,CAAAlsB,MAAA,GAAA,CAAA,IAAAksB,MAAA,CAAA,CAAA,CAAA,KAAAjsB,SAAA,GAAAisB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,UAAA,OAAAhd,SAAA,CAAA/J,CAAA,CAAA,CAAA,EAC/FgnB,aAAa,CAACrf,UAAU,EAAEkd,eAAe,EAAE7mB,WAAW,EAAEonB,YAAY,EAAE,IAAI,EAAE9iB,OAAO,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAwH,QAAA,CAAA;EAAA,CAC5F,CAAA,CAAA;AAAA,EAAA,OAAAgd,cAAA,CAAAvnB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAWD,SAAsBqsB,WAAWA,CAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAA;AAAA,EAAA,OAAAC,YAAA,CAAA/nB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAIjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,SAAA0sB,YAAAA,GAAA;AAAAA,EAAAA,YAAA,GAAA9nB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAJO,SAAAwK,QAAAA,CAA2BvC,UAAU,EAAEkd,eAAe,EAAE7mB,WAAW,EAAEonB,YAAY,EAAA;AAAA,IAAA,IAAA9iB,OAAA;AAAAwa,MAAAA,MAAA,GAAAliB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuK,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApK,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAwa,MAAA,CAAAjiB,MAAA,GAAA,CAAA,IAAAiiB,MAAA,CAAA,CAAA,CAAA,KAAAhiB,SAAA,GAAAgiB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,UAAA,OAAA3S,SAAA,CAAAnK,CAAA,CAAA,CAAA,EAC7FgnB,aAAa,CAACrf,UAAU,EAAEkd,eAAe,EAAE7mB,WAAW,EAAEonB,YAAY,EAAE,KAAK,EAAE9iB,OAAO,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA4H,QAAA,CAAA;EAAA,CAC7F,CAAA,CAAA;AAAA,EAAA,OAAAod,YAAA,CAAA/nB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAYD,SAAsB2sB,YAAYA,CAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAA;AAAA,EAAA,OAAAC,aAAA,CAAAtoB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AA0ClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAAitB,aAAAA,GAAA;AAAAA,EAAAA,aAAA,GAAAroB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CA1CO,SAAA4K,QAAAA,CAA4B3C,UAAU,EAAEmgB,gBAAgB,EAAEC,aAAa,EAAEC,aAAa,EAAEC,mBAAmB,EAAA;AAAA,IAAA,IAAA3lB,OAAA;MAAA4hB,IAAA;MAAAwB,WAAA;MAAA1Q,cAAA;MAAAkT,6BAAA;MAAAC,aAAA;MAAAlJ,gBAAA;MAAAmJ,QAAA;MAAAC,YAAA;MAAA9E,EAAA;MAAArmB,SAAA;AAAAsmB,MAAAA,MAAA,GAAA5oB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA2K,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAxK,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAkhB,MAAA,CAAA3oB,MAAA,GAAA,CAAA,IAAA2oB,MAAA,CAAA,CAAA,CAAA,KAAA1oB,SAAA,GAAA0oB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACxHU,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3CkP,UAAAA,WAAW,GAAGoC,gBAAgB,CAACrO,OAAO,IAAIqO,gBAAgB;AAAAvd,UAAAA,SAAA,CAAAxK,CAAA,GAAA,CAAA;UAAA,OAMtD,OAAO,mBAAmB,CAAC;AAAA,QAAA,KAAA,CAAA;UAAAiV,cAAA,GAAAzK,SAAA,CAAAtK,CAAA;UAHnCioB,6BAA6B,GAAAlT,cAAA,CAA7BkT,6BAA6B;UAC7BC,aAAa,GAAAnT,cAAA,CAAbmT,aAAa;UACblJ,gBAAgB,GAAAjK,cAAA,CAAhBiK,gBAAgB;AAGZmJ,UAAAA,QAAQ,GAAGD,aAAa,CAACH,aAAa,CAAC;UAAA,IAAA,EACzCI,QAAQ,KAAKttB,SAAS,CAAA,EAAA;AAAAyP,YAAAA,SAAA,CAAAxK,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;UAAA,MAClB,IAAIlC,cAAc,CAAA,wCAAA,CAAAhB,MAAA,CACXmrB,aAAa,EAAA,mFAAA,CAAA,EACxB,EAAE,EAAE;AAAEA,YAAAA,aAAa,EAAbA;AAAc,WACtB,CAAC;AAAA,QAAA,KAAA,CAAA;UAGGK,YAAY,GAAGJ,mBAAmB,GAAG/L,WAAW,CAAC+L,mBAAmB,CAAC,GAAG,IAAI;AAE5E1E,UAAAA,EAAE,GAAG,IAAIrG,eAAe,CAACgH,IAAI,CAAC;UACpCX,EAAE,CAAC/F,cAAc,CAAC0K,6BAA6B,CAC7ChM,WAAW,CAAC6L,aAAa,CAAC,EAC1BrC,WAAW,CAACnO,SAAS,EACrB6Q,QAAQ,EACRC,YAAY,EACZ,EAAE,EACFpJ,gBACF,CAAC,CAAC;AAAC1U,UAAAA,SAAA,CAAAxK,CAAA,GAAA,CAAA;AAAA,UAAA,OAEqBwjB,EAAE,CAACtB,cAAc,CAACyD,WAAW,EAAE;YACrD7rB,aAAa,EAAEyI,OAAO,CAACzI,aAAa;YACpCF,UAAU,EAAE2I,OAAO,CAAC3I;AACtB,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHIuD,SAAS,GAAAqN,SAAA,CAAAtK,CAAA;UAAA,OAAAsK,SAAA,CAAAvK,CAAA,CAAA,CAAA,EAKR;AACL9C,YAAAA,SAAS,EAATA,SAAS;AACT8qB,YAAAA,aAAa,EAAbA,aAAa;YACbK,YAAY,EAAEA,YAAY,GAAGA,YAAY,CAAC/S,QAAQ,EAAE,GAAG;WACxD,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAhL,QAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAAud,aAAA,CAAAtoB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAWD,SAAsB0tB,iBAAiBA,CAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAA;AAAA,EAAA,OAAAC,kBAAA,CAAAppB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AA2BvC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAA+tB,kBAAAA,GAAA;AAAAA,EAAAA,kBAAA,GAAAnpB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CA3BO,SAAAgL,QAAAA,CAAiC/C,UAAU,EAAEoN,KAAK,EAAE/W,WAAW,EAAE4qB,kBAAkB,EAAA;AAAA,IAAA,IAAAtmB,OAAA;MAAA4hB,IAAA;MAAAgC,OAAA;MAAAjR,cAAA;MAAA6J,yBAAA;MAAA+J,6BAAA;MAAA5J,gBAAA;MAAAE,UAAA;MAAAmG,GAAA;MAAAwD,WAAA;MAAAvF,EAAA;MAAArmB,SAAA;AAAA0mB,MAAAA,MAAA,GAAAhpB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA+K,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA5K,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAshB,MAAA,CAAA/oB,MAAA,GAAA,CAAA,IAAA+oB,MAAA,CAAA,CAAA,CAAA,KAAA9oB,SAAA,GAAA8oB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAChGM,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3C0P,UAAAA,OAAO,GAAGnR,KAAK,CAAC0E,OAAO,IAAI1E,KAAK;AAAApK,UAAAA,SAAA,CAAA5K,CAAA,GAAA,CAAA;UAAA,OAM5B,OAAO,mBAAmB,CAAC;AAAA,QAAA,KAAA,CAAA;UAAAkV,cAAA,GAAAtK,SAAA,CAAA1K,CAAA;UAHnC6e,yBAAyB,GAAA7J,cAAA,CAAzB6J,yBAAyB;UACzB+J,6BAA6B,GAAA5T,cAAA,CAA7B4T,6BAA6B;UAC7B5J,gBAAgB,GAAAhK,cAAA,CAAhBgK,gBAAgB;AAGZE,UAAAA,UAAU,GAAGjD,WAAW,CAACle,WAAW,CAAC;AAAA2M,UAAAA,SAAA,CAAA5K,CAAA,GAAA,CAAA;AAAA,UAAA,OACzB+e,yBAAyB,CAACK,UAAU,EAAE+G,OAAO,CAAC3O,SAAS,CAAC;AAAA,QAAA,KAAA,CAAA;UAApE+N,GAAG,GAAA3a,SAAA,CAAA1K,CAAA;UACH6oB,WAAW,GAAGF,kBAAkB,GAAG1M,WAAW,CAAC0M,kBAAkB,CAAC,GAAG1C,OAAO,CAAC3O,SAAS;AAEtFgM,UAAAA,EAAE,GAAG,IAAIrG,eAAe,CAACgH,IAAI,CAAC;AACpCX,UAAAA,EAAE,CAAC/F,cAAc,CAACqL,6BAA6B,CAC7CvD,GAAG,EAAEwD,WAAW,EAAE5C,OAAO,CAAC3O,SAAS,EAAE,EAAE,EAAE0H,gBAC3C,CAAC,CAAC;AAACtU,UAAAA,SAAA,CAAA5K,CAAA,GAAA,CAAA;AAAA,UAAA,OAEqBwjB,EAAE,CAACtB,cAAc,CAACiE,OAAO,EAAE;YACjDrsB,aAAa,EAAEyI,OAAO,CAACzI,aAAa;YACpCF,UAAU,EAAE2I,OAAO,CAAC3I;AACtB,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHIuD,SAAS,GAAAyN,SAAA,CAAA1K,CAAA;UAAA,OAAA0K,SAAA,CAAA3K,CAAA,CAAA,CAAA,EAKR;AAAE9C,YAAAA,SAAS,EAATA,SAAS;AAAE0iB,YAAAA,YAAY,EAAE0F,GAAG,CAAChQ,QAAQ;WAAI,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA5K,QAAA,CAAA;EAAA,CACnD,CAAA,CAAA;AAAA,EAAA,OAAAie,kBAAA,CAAAppB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AASD,SAAsBmuB,yBAAyBA,CAAAC,IAAA,EAAAC,IAAA,EAAA;AAAA,EAAA,OAAAC,0BAAA,CAAA3pB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAW/C;AAAA,SAAAsuB,0BAAAA,GAAA;EAAAA,0BAAA,GAAA1pB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAXO,SAAAoL,QAAAA,CAAyCnD,UAAU,EAAEgO,mBAAmB,EAAA;IAAA,IAAAwT,WAAA,EAAAC,qBAAA;AAAA,IAAA,IAAAlF,IAAA,EAAAnN,GAAA,EAAA3F,IAAA,EAAAiY,MAAA;AAAA,IAAA,OAAA5pB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmL,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhL,CAAA;AAAA,QAAA,KAAA,CAAA;AACvEmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAAAzL,UAAAA,SAAA,CAAAhL,CAAA,GAAA,CAAA;UAAA,OAC/B2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAAhM,SAAA,CAAA9K,CAAA;AAAA8K,UAAAA,SAAA,CAAAhL,CAAA,GAAA,CAAA;UAAA,OACUgX,GAAG,CAACuS,oBAAoB,CAAC,IAAIva,iBAAS,CAAC4G,mBAAmB,CAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAAzEvE,IAAI,GAAArG,SAAA,CAAA9K,CAAA;AACJopB,UAAAA,MAAM,GAAGjY,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,IAAA,CAAA+X,WAAA,GAAJ/X,IAAI,CAAE3V,KAAK,MAAA,IAAA,IAAA0tB,WAAA,gBAAAA,WAAA,GAAXA,WAAA,CAAapgB,IAAI,MAAA,IAAA,IAAAogB,WAAA,KAAA,MAAA,IAAA,CAAAA,WAAA,GAAjBA,WAAA,CAAmBE,MAAM,MAAA,IAAA,IAAAF,WAAA,KAAA,MAAA,GAAA,MAAA,GAAzBA,WAAA,CAA2B/X,IAAI;UAAA,OAAArG,SAAA,CAAA/K,CAAA,CAAA,CAAA,EACvC;YACLymB,QAAQ,EAAE,CAAA4C,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAE5C,QAAQ,KAAI,IAAI;AAClC8C,YAAAA,eAAe,EAAE,CAAAF,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAAD,qBAAA,GAANC,MAAM,CAAEE,eAAe,MAAA,IAAA,IAAAH,qBAAA,uBAAvBA,qBAAA,CAAyBxK,MAAM,KAAI;WACrD,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA9T,QAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAAoe,0BAAA,CAAA3pB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAID,SAASirB,iBAAiBA,CAACjH,MAAM,EAAE;EACjC,IAAI;AACF,IAAA,OAAOmH,MAAM,CAACnH,MAAM,CAAC,GAAG,EAAE;EAC5B,CAAC,CAAC,OAAA1X,OAAA,EAAM;AACN,IAAA,OAAO,KAAK;AACd,EAAA;AACF;AAAC,SAEc8f,aAAaA,CAAAwC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAA;AAAA,EAAA,OAAAC,cAAA,CAAAtqB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAAA,SAAAivB,cAAAA,GAAA;AAAAA,EAAAA,cAAA,GAAArqB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAA5B,SAAAwL,SAAAA,CAA6BvD,UAAU,EAAEkd,eAAe,EAAE7mB,WAAW,EAAEonB,YAAY,EAAE0E,MAAM,EAAA;AAAA,IAAA,IAAAxnB,OAAA;MAAA4hB,IAAA;MAAAwB,WAAA;MAAA9P,cAAA;MAAAkJ,yBAAA;MAAAiL,8BAAA;MAAAC,4BAAA;MAAA/K,gBAAA;MAAAE,UAAA;MAAAmG,GAAA;MAAA/B,EAAA;MAAA/B,EAAA;MAAAtkB,SAAA;AAAA+sB,MAAAA,OAAA,GAAArvB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuL,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAApL,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAA2nB,OAAA,CAAApvB,MAAA,GAAA,CAAA,IAAAovB,OAAA,CAAA,CAAA,CAAA,KAAAnvB,SAAA,GAAAmvB,OAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACjG/F,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3CkP,UAAAA,WAAW,GAAGb,eAAe,CAACpL,OAAO,IAAIoL,eAAe;AAAA1Z,UAAAA,UAAA,CAAApL,CAAA,GAAA,CAAA;UAAA,OAOpD,OAAO,mBAAmB,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA6V,cAAA,GAAAzK,UAAA,CAAAlL,CAAA;UAJnC6e,yBAAyB,GAAAlJ,cAAA,CAAzBkJ,yBAAyB;UACzBiL,8BAA8B,GAAAnU,cAAA,CAA9BmU,8BAA8B;UAC9BC,4BAA4B,GAAApU,cAAA,CAA5BoU,4BAA4B;UAC5B/K,gBAAgB,GAAArJ,cAAA,CAAhBqJ,gBAAgB;AAGZE,UAAAA,UAAU,GAAGjD,WAAW,CAACle,WAAW,CAAC;AAAAmN,UAAAA,UAAA,CAAApL,CAAA,GAAA,CAAA;UAAA,OACzB+e,yBAAyB,CAACK,UAAU,EAAEjD,WAAW,CAACkJ,YAAY,CAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAA5EE,GAAG,GAAAna,UAAA,CAAAlL,CAAA;AAEHsjB,UAAAA,EAAE,GAAG,IAAIrG,eAAe,CAACgH,IAAI,CAAC;AAC9B1C,UAAAA,EAAE,GAAGsI,MAAM,GACbC,8BAA8B,CAACzE,GAAG,EAAEnG,UAAU,EAAEuG,WAAW,CAACnO,SAAS,EAAE,EAAE,EAAE0H,gBAAgB,CAAC,GAC5F+K,4BAA4B,CAAC1E,GAAG,EAAEnG,UAAU,EAAEuG,WAAW,CAACnO,SAAS,EAAE,EAAE,EAAE0H,gBAAgB,CAAC;AAC9FsE,UAAAA,EAAE,CAAC/F,cAAc,CAACgE,EAAE,CAAC;AAACrW,UAAAA,UAAA,CAAApL,CAAA,GAAA,CAAA;AAAA,UAAA,OAEEwjB,EAAE,CAACtB,cAAc,CAACyD,WAAW,EAAE;YACrD7rB,aAAa,EAAEyI,OAAO,CAACzI,aAAa;YACpCF,UAAU,EAAE2I,OAAO,CAAC3I;AACtB,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHIuD,SAAS,GAAAiO,UAAA,CAAAlL,CAAA;UAAA,OAAAkL,UAAA,CAAAnL,CAAA,CAAA,CAAA,EAKR;AAAE9C,YAAAA,SAAS,EAATA,SAAS;AAAE0iB,YAAAA,YAAY,EAAE0F,GAAG,CAAChQ,QAAQ;WAAI,CAAA;AAAA;AAAA,IAAA,CAAA,EAAApK,SAAA,CAAA;EAAA,CACnD,CAAA,CAAA;AAAA,EAAA,OAAA2e,cAAA,CAAAtqB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;ACpeM,IAAMsvB,qBAAqB,GAAG;AAC9B,IAAMC,yBAAyB,GAAG;AAClC,IAAMC,0BAA0B,GAAG;AAE1C,SAASC,iBAAiBA,CAACC,KAAK,EAAE;AAChC,EAAA,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,KAAK,CAAC,CAACI,MAAM,CAAC,UAAAC,IAAA,EAAA;AAAA,IAAA,IAAA3X,KAAA,GAAA4X,cAAA,CAAAD,IAAA,EAAA,CAAA,CAAA;AAAIlvB,MAAAA,KAAK,GAAAuX,KAAA,CAAA,CAAA,CAAA;IAAA,OAAMvX,KAAK,KAAKX,SAAS,IAAIW,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAAE;AAAA,EAAA,CAAA,CACnG,CAAC;AACH;AAEO,SAASovB,mBAAmBA,CAACC,OAAO,EAAgB;AAAA,EAAA,IAAdxoB,OAAO,GAAA1H,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACvD,EAAA,IAAMmwB,SAAS,GAAGzoB,OAAO,CAACyoB,SAAS,IAAIb,qBAAqB;AAC5D,EAAA,IAAMc,WAAW,GAAGX,iBAAiB,CAAApsB,cAAA,CAAA;AACnCgtB,IAAAA,EAAE,EAAEF,SAAS;IACbG,MAAM,EAAE,CAAAJ,OAAO,KAAA,IAAA,IAAPA,OAAO,uBAAPA,OAAO,CAAEI,MAAM,KAAI,QAAQ;AACnCC,IAAAA,OAAO,EAAEL,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEK,OAAO;AACzBC,IAAAA,GAAG,EAAEN,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEM,GAAG;AACjBC,IAAAA,aAAa,EAAEP,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEO,aAAa;AACrCC,IAAAA,WAAW,EAAER,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEQ,WAAW;AACjCC,IAAAA,aAAa,EAAET,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAES,aAAa;AACrCC,IAAAA,eAAe,EAAEV,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEU,eAAe;AACzCC,IAAAA,YAAY,EAAEX,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEW,YAAY;AACnCC,IAAAA,OAAO,EAAEZ,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEY,OAAO;AACzBvwB,IAAAA,SAAS,EAAE2vB,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAE3vB;GAAS,EAC1B2vB,OAAO,aAAPA,OAAO,KAAA,MAAA,GAAA,MAAA,GAAPA,OAAO,CAAEa,KAAK,CAClB,CAAC;AAEF,EAAA,IAAMnL,IAAI,GAAGpX,IAAI,CAACC,SAAS,CAAC2hB,WAAW,CAAC;EACxC,IAAMY,SAAS,GAAG,IAAI7T,WAAW,EAAE,CAACL,MAAM,CAAC8I,IAAI,CAAC;AAChD,EAAA,IAAMqL,QAAQ,GAAGvpB,OAAO,CAACupB,QAAQ,IAAIzB,0BAA0B;AAE/D,EAAA,IAAIwB,SAAS,CAAC/wB,MAAM,GAAGgxB,QAAQ,EAAE;AAC/B,IAAA,MAAM,IAAIjwB,KAAK,CAAA,8BAAA,CAAAiB,MAAA,CAAgC+uB,SAAS,CAAC/wB,MAAM,EAAA,cAAA,CAAA,CAAAgC,MAAA,CAAegvB,QAAQ,WAAQ,CAAC;AACjG,EAAA;AAEA,EAAA,OAAOrL,IAAI;AACb;AAEO,SAASsL,mBAAmBA,CAACtL,IAAI,EAAgB;AAAA,EAAA,IAAdle,OAAO,GAAA1H,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;EACpD,IAAI,CAAC4lB,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI;EAElD,IAAI;AACF,IAAA,IAAM6I,MAAM,GAAGjgB,IAAI,CAAC2iB,KAAK,CAACvL,IAAI,CAAC;IAC/B,IAAI,CAAC6I,MAAM,IAAI2C,OAAA,CAAO3C,MAAM,CAAA,KAAK,QAAQ,EAAE,OAAO,IAAI;AACtD,IAAA,IAAI/mB,OAAO,CAACyoB,SAAS,IAAI1B,MAAM,CAAC4B,EAAE,KAAK3oB,OAAO,CAACyoB,SAAS,EAAE,OAAO,IAAI;IACrE,IAAI,CAAC1B,MAAM,CAAC4B,EAAE,IAAI,CAAC5B,MAAM,CAAC6B,MAAM,EAAE,OAAO,IAAI;AAC7C,IAAA,OAAO7B,MAAM;EACf,CAAC,CAAC,OAAAniB,OAAA,EAAM;AACN,IAAA,OAAO,IAAI;AACb,EAAA;AACF;AAEA,SAAS+kB,YAAYA,CAAC3Z,WAAW,EAAE4Z,KAAK,EAAE;AAAA,EAAA,IAAAC,qBAAA,EAAAC,WAAA,EAAAC,kBAAA,EAAAC,YAAA,EAAAC,qBAAA,EAAAC,WAAA,EAAAC,aAAA;AACxC,EAAA,IAAMjxB,GAAG,GAAG8W,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,IAAA,CAAA6Z,qBAAA,GAAX7Z,WAAW,CAAEA,WAAW,MAAA,IAAA,IAAA6Z,qBAAA,gBAAAA,qBAAA,GAAxBA,qBAAA,CAA0B1xB,OAAO,MAAA,IAAA,IAAA0xB,qBAAA,KAAA,MAAA,IAAA,CAAAA,qBAAA,GAAjCA,qBAAA,CAAmCO,WAAW,cAAAP,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA9CA,qBAAA,CAAiDD,KAAK,CAAC;EACnE,OACE,CAAA1wB,GAAG,KAAA,IAAA,IAAHA,GAAG,gBAAA4wB,WAAA,GAAH5wB,GAAG,CAAEmU,MAAM,MAAA,IAAA,IAAAyc,WAAA,KAAA,MAAA,IAAA,CAAAC,kBAAA,GAAXD,WAAA,CAAa9W,QAAQ,MAAA,IAAA,IAAA+W,kBAAA,KAAA,MAAA,GAAA,MAAA,GAArBA,kBAAA,CAAAhoB,IAAA,CAAA+nB,WAAwB,CAAC,MACzB5wB,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,MAAA,IAAA,CAAA8wB,YAAA,GAAH9wB,GAAG,CAAEmU,MAAM,cAAA2c,YAAA,KAAA,MAAA,IAAA,CAAAC,qBAAA,GAAXD,YAAA,CAAarlB,QAAQ,MAAA,IAAA,IAAAslB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAArBA,qBAAA,CAAAloB,IAAA,CAAAioB,YAAwB,CAAC,MACzB9wB,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,MAAA,GAAA,MAAA,GAAHA,GAAG,CAAEmU,MAAM,CAAA,KACXnU,GAAG,aAAHA,GAAG,KAAA,MAAA,IAAA,CAAAgxB,WAAA,GAAHhxB,GAAG,CAAE8Z,QAAQ,MAAA,IAAA,IAAAkX,WAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,WAAA,CAAAnoB,IAAA,CAAA7I,GAAgB,CAAC,MACjBA,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,MAAA,IAAA,CAAAixB,aAAA,GAAHjxB,GAAG,CAAEyL,QAAQ,cAAAwlB,aAAA,KAAA,MAAA,GAAA,MAAA,GAAbA,aAAA,CAAApoB,IAAA,CAAA7I,GAAgB,CAAC,CAAA,IACjBA,GAAG,IACH,IAAI;AAER;AAEA,SAASmxB,oBAAoBA,CAAClP,WAAW,EAAEnL,WAAW,EAAE;AAAA,EAAA,IAAAsa,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACtD,IAAI,QAAOtP,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAEuP,cAAc,CAAA,KAAK,QAAQ,EAAE;AACnD,IAAA,OAAOf,YAAY,CAAC3Z,WAAW,EAAEmL,WAAW,CAACuP,cAAc,CAAC;AAC9D,EAAA;AAEA,EAAA,OACE,CAAAvP,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,IAAA,CAAAmP,qBAAA,GAAXnP,WAAW,CAAErI,SAAS,MAAA,IAAA,IAAAwX,qBAAA,KAAA,MAAA,IAAA,CAAAC,sBAAA,GAAtBD,qBAAA,CAAwBtX,QAAQ,MAAA,IAAA,IAAAuX,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAhCA,sBAAA,CAAAxoB,IAAA,CAAAuoB,qBAAmC,CAAC,MACpCnP,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,IAAA,CAAAqP,sBAAA,GAAXrP,WAAW,CAAErI,SAAS,MAAA,IAAA,IAAA0X,sBAAA,KAAA,MAAA,IAAA,CAAAC,sBAAA,GAAtBD,sBAAA,CAAwB7lB,QAAQ,cAAA8lB,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAhCA,sBAAA,CAAA1oB,IAAA,CAAAyoB,sBAAmC,CAAC,CAAA,KACpCrP,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAErI,SAAS,KACtB,IAAI;AAER;AAEA,SAAS6X,qBAAqBA,CAACxP,WAAW,EAAEnL,WAAW,EAAE;AACvD,EAAA,IAAI,CAACmL,WAAW,EAAE,OAAO,IAAI;AAC7B,EAAA,IAAIA,WAAW,CAACyP,OAAO,KAAK,UAAU,IAAI,OAAOzP,WAAW,CAAC4L,MAAM,KAAK,QAAQ,EAAE;IAChF,OAAO5L,WAAW,CAAC4L,MAAM;AAC3B,EAAA;AAEA,EAAA,IAAMjU,SAAS,GAAGuX,oBAAoB,CAAClP,WAAW,EAAEnL,WAAW,CAAC;AAChE,EAAA,IAAM6a,aAAa,GAAG/X,SAAS,KAAKxc,cAAc,CAACI,YAAY,IAAIykB,WAAW,CAACyP,OAAO,KAAK,MAAM;EACjG,IAAI,CAACC,aAAa,IAAI,OAAO1P,WAAW,CAAC1U,IAAI,KAAK,QAAQ,EAAE;AAC1D,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,IAAI;AACF,IAAA,OAAO,IAAIqkB,WAAW,EAAE,CAAClT,MAAM,CAACzC,IAAI,CAACyC,MAAM,CAACuD,WAAW,CAAC1U,IAAI,CAAC,CAAC;EAChE,CAAC,CAAC,OAAAskB,QAAA,EAAM;AACN,IAAA,OAAO,IAAI;AACb,EAAA;AACF;AAEA,SAASC,mBAAmBA,CAAChb,WAAW,EAAE;EAAA,IAAAib,sBAAA,EAAAC,iBAAA;EACxC,IAAMC,YAAY,GAAG,EAAE;EACvB,IAAMC,mBAAmB,GAAGpb,WAAW,KAAA,IAAA,IAAXA,WAAW,gBAAAib,sBAAA,GAAXjb,WAAW,CAAEA,WAAW,MAAA,IAAA,IAAAib,sBAAA,KAAA,MAAA,IAAA,CAAAA,sBAAA,GAAxBA,sBAAA,CAA0B9yB,OAAO,cAAA8yB,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAjCA,sBAAA,CAAmCE,YAAY;AAC3E,EAAA,IAAIE,KAAK,CAACC,OAAO,CAACF,mBAAmB,CAAC,EAAE;IACtCD,YAAY,CAAC3S,IAAI,CAAAvb,KAAA,CAAjBkuB,YAAY,EAAAvP,kBAAA,CAASwP,mBAAmB,CAAA,CAAC;AAC3C,EAAA;AAEA,EAAA,IAAMG,iBAAiB,GAAGvb,WAAW,KAAA,IAAA,IAAXA,WAAW,gBAAAkb,iBAAA,GAAXlb,WAAW,CAAEwb,IAAI,MAAA,IAAA,IAAAN,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAjBA,iBAAA,CAAmBK,iBAAiB;AAC9D,EAAA,IAAIF,KAAK,CAACC,OAAO,CAACC,iBAAiB,CAAC,EAAE;AAAA,IAAA,IAAA7N,SAAA,GAAAC,0BAAA,CAChB4N,iBAAiB,CAAA;MAAA3N,KAAA;AAAA,IAAA,IAAA;MAArC,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAAjgB,CAAA,EAAA,EAAAqgB,IAAA,GAAuC;AAAA,QAAA,IAA5B2N,KAAK,GAAA7N,KAAA,CAAAzkB,KAAA;QACd,IAAIkyB,KAAK,CAACC,OAAO,CAACG,KAAK,CAACN,YAAY,CAAC,EAAE;AACrCA,UAAAA,YAAY,CAAC3S,IAAI,CAAAvb,KAAA,CAAjBkuB,YAAY,EAAAvP,kBAAA,CAAS6P,KAAK,CAACN,YAAY,CAAA,CAAC;AAC1C,QAAA;AACF,MAAA;AAAC,IAAA,CAAA,CAAA,OAAAvpB,GAAA,EAAA;MAAA8b,SAAA,CAAAM,CAAA,CAAApc,GAAA,CAAA;AAAA,IAAA,CAAA,SAAA;AAAA8b,MAAAA,SAAA,CAAArW,CAAA,EAAA;AAAA,IAAA;AACH,EAAA;AAEA,EAAA,OAAO8jB,YAAY;AACrB;AAEO,SAASO,sBAAsBA,CAAC1b,WAAW,EAAgB;AAAA,EAAA,IAAdhQ,OAAO,GAAA1H,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;EAC9D,OAAO0yB,mBAAmB,CAAChb,WAAW,CAAC,CACpCpD,GAAG,CAAC,UAACuO,WAAW,EAAA;AAAA,IAAA,OAAKwP,qBAAqB,CAACxP,WAAW,EAAEnL,WAAW,CAAC;AAAA,EAAA,CAAA,CAAC,CACrEpD,GAAG,CAAC,UAACsR,IAAI,EAAA;AAAA,IAAA,OAAKsL,mBAAmB,CAACtL,IAAI,EAAEle,OAAO,CAAC;AAAA,EAAA,CAAA,CAAC,CACjDooB,MAAM,CAACuD,OAAO,CAAC;AACpB;AAEA,SAAsBC,2BAA2BA,CAAAttB,EAAA,EAAAkM,GAAA,EAAAK,GAAA,EAAA;AAAA,EAAA,OAAAghB,4BAAA,CAAA5uB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAsBhD,SAAAuzB,4BAAAA,GAAA;AAAAA,EAAAA,4BAAA,GAAA3uB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAtBM,SAAA6E,OAAAA,CAA2CoD,UAAU,EAAEkX,QAAQ,EAAEiM,OAAO,EAAA;AAAA,IAAA,IAAAxoB,OAAA;MAAAke,IAAA;MAAA4N,SAAA;MAAA9b,WAAA;AAAAsG,MAAAA,KAAA,GAAAhe,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAjF,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAsW,KAAA,CAAA/d,MAAA,GAAA,CAAA,IAAA+d,KAAA,CAAA,CAAA,CAAA,KAAA9d,SAAA,GAAA8d,KAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,UAAA,IACtFjR,UAAU,EAAA;AAAA3C,YAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACP,IAAInE,KAAK,CAAC,yBAAyB,CAAC;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,IAEvCijB,QAAQ,EAAA;AAAA7Z,YAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACL,IAAInE,KAAK,CAAC,mBAAmB,CAAC;AAAA,QAAA,KAAA,CAAA;AAGhC4kB,UAAAA,IAAI,GAAGqK,mBAAmB,CAACC,OAAO,EAAExoB,OAAO,CAAC;AAC5C8rB,UAAAA,SAAS,GAAG,IAAIlR,eAAe,CAACvV,UAAU,CAAC;AACjDymB,UAAAA,SAAS,CAAC7N,OAAO,CAACC,IAAI,CAAC;UAEvB,IAAIle,OAAO,CAAC+rB,WAAW,EAAE;AACvBD,YAAAA,SAAS,CAACnN,cAAc,CAAC3e,OAAO,CAAC+rB,WAAW,CAAC;AAC/C,UAAA;AAACrpB,UAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,UAAA,OAEyBquB,SAAS,CAACzM,KAAK,CAAC9C,QAAQ,CAAC;AAAA,QAAA,KAAA,CAAA;UAA7CvM,WAAW,GAAAtN,QAAA,CAAA/E,CAAA;UAAA,OAAA+E,QAAA,CAAAhF,CAAA,CAAA,CAAA,EACV;AACLsS,YAAAA,WAAW,EAAXA,WAAW;AACXkO,YAAAA,IAAI,EAAJA,IAAI;YACJsK,OAAO,EAAEgB,mBAAmB,CAACtL,IAAI;WAClC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAjc,OAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAA4pB,4BAAA,CAAA5uB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAED,SAAS0zB,aAAaA,CAAC/lB,MAAM,EAAE;AAC7B,EAAA,IAAI,CAACA,MAAM,EAAE,OAAO,IAAI;AACxB,EAAA,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE,OAAOA,MAAM;AAC7C,EAAA,OAAOA,MAAM,CAACrL,SAAS,IAAIqL,MAAM,CAACgmB,MAAM,IAAIhmB,MAAM,CAACimB,OAAO,IAAIjmB,MAAM,CAACkmB,IAAI,IAAI,IAAI;AACnF;AAEA,SAASC,iBAAiBA,CAACC,aAAa,EAAgB;AAAA,EAAA,IAAdrsB,OAAO,GAAA1H,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACpD,EAAA,IAAI,OAAO+zB,aAAa,KAAK,QAAQ,EAAE,OAAOA,aAAa;AAC3D,EAAA,OAAO9D,mBAAmB,CAAC8D,aAAa,EAAErsB,OAAO,CAAC;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAsBssB,yBAAyBA,CAAAlhB,GAAA,EAAAC,GAAA,EAAA;AAAA,EAAA,OAAAkhB,0BAAA,CAAAtvB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AA8C/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhBA,SAAAi0B,0BAAAA,GAAA;EAAAA,0BAAA,GAAArvB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CA9CO,SAAAoG,QAAAA,CAAyC6B,UAAU,EAAEzK,SAAS,EAAA;AAAA,IAAA,IAAAoF,OAAA;MAAA3I,UAAA;MAAAm1B,MAAA;MAAAC,QAAA;MAAAhY,GAAA;MAAAjF,CAAA;MAAA0K,eAAA;MAAAC,QAAA;MAAAC,MAAA;MAAAC,kBAAA;MAAAqS,YAAA;MAAAC,YAAA;AAAAvV,MAAAA,MAAA,GAAA9e,SAAA;MAAA6N,EAAA;AAAA,IAAA,OAAAhJ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjG,CAAA,GAAAiG,SAAA,CAAAhG,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAoX,MAAA,CAAA7e,MAAA,GAAA,CAAA,IAAA6e,MAAA,CAAA,CAAA,CAAA,KAAA5e,SAAA,GAAA4e,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAC3E/f,UAAAA,UAAU,GAAG2I,OAAO,CAAC3I,UAAU,IAAI,WAAW;AAC9Cm1B,UAAAA,MAAM,GAAGxsB,OAAO,CAAC4sB,cAAc,IAAI,IAAI;UACvCH,QAAQ,GAAGzsB,OAAO,CAACM,SAAS,GAC9BvC,IAAI,CAAC8uB,GAAG,CAAC,CAAC,EAAE9uB,IAAI,CAAC+uB,IAAI,CAAC9sB,OAAO,CAACM,SAAS,GAAGksB,MAAM,CAAC,CAAC,GAClDxsB,OAAO,CAACysB,QAAQ,IAAI,EAAE;AAAAhpB,UAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;UAAA,OAER2W,oBAAoB,CAAC/O,UAAU,CAAC;AAAA,QAAA,KAAA,CAAA;UAA5CoP,GAAG,GAAAhR,SAAA,CAAA9F,CAAA;AAAA,UAAA,IACJ8W,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,MAAA,IAAHA,GAAG,CAAEgG,oBAAoB,EAAA;AAAAhX,YAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACtB,IAAInE,KAAK,CAAC,mCAAmC,CAAC;AAAA,QAAA,KAAA,CAAA;AAG7CkW,UAAAA,CAAC,GAAG,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA,IAAA,EAAEA,CAAC,GAAGid,QAAQ,CAAA,EAAA;AAAAhpB,YAAAA,SAAA,CAAAhG,CAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA;AAAAgG,UAAAA,SAAA,CAAAjG,CAAA,GAAA,CAAA;AAAAiG,UAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,UAAA,OAEDgX,GAAG,CAACgG,oBAAoB,CAAC,CAAC7f,SAAS,CAAC,EAAE;AAAE8f,YAAAA,wBAAwB,EAAE;AAAK,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAA1FP,QAAQ,GAAA1W,SAAA,CAAA9F,CAAA;AACRyc,UAAAA,MAAM,GAAGD,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,MAAA,IAAA,CAAAD,eAAA,GAARC,QAAQ,CAAEhhB,KAAK,cAAA+gB,eAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,eAAA,CAAkB,CAAC,CAAC,CAAA;AAEnC,UAAA,IAAA,EACIE,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAExY,GAAG,CAAA,EAAA;AAAA6B,YAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACP,IAAInE,KAAK,CAAA,oDAAA,CAAAiB,MAAA,CAAcuM,IAAI,CAACC,SAAS,CAACqT,MAAM,CAACxY,GAAG,CAAC,CAAE,CAAC;AAAA,QAAA,KAAA,CAAA;AAGtDyY,UAAAA,kBAAkB,GAAGD,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEC,kBAAkB;AAAA,UAAA,IAAA,EAEnDA,kBAAkB,KAAKhjB,UAAU,IACjCgjB,kBAAkB,KAAK,WAAW,IACjChjB,UAAU,KAAK,WAAW,IAAI,CAAA+iB,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEE,aAAa,KAAI,IAAI,IAAI,CAAAF,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEE,aAAa,IAAG,CAAE,CAAA,EAAA;AAAA7W,YAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;UAAA,OAAAgG,SAAA,CAAA/F,CAAA,CAAA,CAAA,EAEnF;AAAEqvB,YAAAA,SAAS,EAAE,IAAI;AAAE/iB,YAAAA,IAAI,EAAA,CAAA0iB,YAAA,GAAEtS,MAAM,aAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEpQ,IAAI,MAAA,IAAA,IAAA0iB,YAAA,KAAA,MAAA,GAAAA,YAAA,GAAI,IAAI;AAAEtS,YAAAA,MAAM,EAAEC;WAAoB,CAAA;AAAA,QAAA,KAAA,CAAA;AAAA5W,UAAAA,SAAA,CAAAhG,CAAA,GAAA,EAAA;AAAA,UAAA;AAAA,QAAA,KAAA,CAAA;AAAAgG,UAAAA,SAAA,CAAAjG,CAAA,GAAA,CAAA;UAAA2I,EAAA,GAAA1C,SAAA,CAAA9F,CAAA;AAAA,UAAA,IAAA,EAAA,CAAAgvB,YAAA,GAIhFxmB,EAAA,CAAIhO,OAAO,MAAA,IAAA,IAAAw0B,YAAA,KAAA,MAAA,IAAXA,YAAA,CAAa9sB,UAAU,CAAC,UAAU,CAAC,CAAA,EAAA;AAAA4D,YAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MAAA0I,EAAA;AAAA,QAAA,KAAA,CAAA;AAGvC7G,UAAAA,OAAO,CAACC,IAAI,CAAA,uFAAA,CAAAhF,MAAA,CAA4CiV,CAAC,GAAG,CAAC,EAAA,wBAAA,CAAA,CAAAjV,MAAA,CAAU4L,EAAA,CAAIhO,OAAO,CAAE,CAAC;AAAC,QAAA,KAAA,EAAA;AAAA,UAAA,IAAA,EAGpFqX,CAAC,GAAGid,QAAQ,GAAG,CAAC,CAAA,EAAA;AAAAhpB,YAAAA,SAAA,CAAAhG,CAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA;AAAAgG,UAAAA,SAAA,CAAAhG,CAAA,GAAA,EAAA;AAAA,UAAA,OACZ,IAAI+B,OAAO,CAAC,UAACmb,OAAO,EAAA;AAAA,YAAA,OAAKjb,UAAU,CAACib,OAAO,EAAE6R,MAAM,CAAC;UAAA,CAAA,CAAC;AAAA,QAAA,KAAA,EAAA;AA3BjChd,UAAAA,CAAC,IAAI,CAAC;AAAA/L,UAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,UAAA;AAAA,QAAA,KAAA,EAAA;UAAA,OAAAgG,SAAA,CAAA/F,CAAA,CAAA,CAAA,EA+B7B;AAAEqvB,YAAAA,SAAS,EAAE,KAAK;AAAE/iB,YAAAA,IAAI,EAAE,IAAI;AAAEoQ,YAAAA,MAAM,EAAE,IAAI;AAAE4S,YAAAA,QAAQ,EAAE;WAAM,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAxpB,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;EAAA,CACtE,CAAA,CAAA;AAAA,EAAA,OAAA+oB,0BAAA,CAAAtvB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAmBD,SAAsB20B,mBAAmBA,CAAAngB,GAAA,EAAAC,GAAA,EAAAU,GAAA,EAAA;AAAA,EAAA,OAAAyf,oBAAA,CAAAjwB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAyDzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,SAAA40B,oBAAAA,GAAA;AAAAA,EAAAA,oBAAA,GAAAhwB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAzDO,SAAAwG,QAAAA,CAAmCyB,UAAU,EAAE8nB,QAAQ,EAAEd,aAAa,EAAA;AAAA,IAAA,IAAAe,mBAAA,EAAAC,qBAAA,EAAAC,oBAAA,EAAAC,qBAAA;AAAA,IAAA,IAAAvtB,OAAA;MAAAwtB,YAAA;MAAAtP,IAAA;MAAA4N,SAAA;MAAA9b,WAAA;MAAAic,MAAA;MAAAxX,GAAA;MAAAxO,MAAA;MAAAwnB,MAAA;MAAAjnB,QAAA;MAAAknB,YAAA;AAAAnV,MAAAA,MAAA,GAAAjgB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAuY,MAAA,CAAAhgB,MAAA,GAAA,CAAA,IAAAggB,MAAA,CAAA,CAAA,CAAA,KAAA/f,SAAA,GAAA+f,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,UAAA,IACpFlT,UAAU,EAAA;AAAAxB,YAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACP,IAAInE,KAAK,CAAC,yBAAyB,CAAC;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,IAEvC6zB,QAAQ,EAAA;AAAAtpB,YAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACL,IAAInE,KAAK,CAAC,yBAAyB,CAAC;AAAA,QAAA,KAAA,CAAA;UAGtCk0B,YAAY,GAChBxtB,OAAO,CAAC3E,OAAO,MAAA+xB,mBAAA,GACfD,QAAQ,CAAClY,SAAS,MAAA,IAAA,IAAAmY,mBAAA,KAAA,MAAA,IAAA,CAAAC,qBAAA,GAAlBD,mBAAA,CAAoBpa,QAAQ,MAAA,IAAA,IAAAqa,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA5BA,qBAAA,CAAAtrB,IAAA,CAAAqrB,mBAA+B,CAAC,OAAAE,oBAAA,GAChCH,QAAQ,CAAClY,SAAS,MAAA,IAAA,IAAAqY,oBAAA,KAAA,MAAA,IAAA,CAAAC,qBAAA,GAAlBD,oBAAA,CAAoB3oB,QAAQ,MAAA,IAAA,IAAA4oB,qBAAA,KAAA,MAAA,GAAA,MAAA,GAA5BA,qBAAA,CAAAxrB,IAAA,CAAAurB,oBAA+B,CAAC,CAAA;AAAA,UAAA,IAE7BE,YAAY,EAAA;AAAA3pB,YAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACT,IAAInE,KAAK,CAAC,wBAAwB,CAAC;AAAA,QAAA,KAAA,CAAA;AAGrC4kB,UAAAA,IAAI,GAAGkO,iBAAiB,CAACC,aAAa,EAAErsB,OAAO,CAAC;AAChD8rB,UAAAA,SAAS,GAAG,IAAIlR,eAAe,CAACvV,UAAU,CAAC;AACjDymB,UAAAA,SAAS,CAAC7N,OAAO,CAACC,IAAI,CAAC;UACvB,IAAIle,OAAO,CAAC+rB,WAAW,EAAE;AACvBD,YAAAA,SAAS,CAACnN,cAAc,CAAC3e,OAAO,CAAC+rB,WAAW,CAAC;AAC/C,UAAA;AAACloB,UAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,UAAA,OAEyBquB,SAAS,CAACzM,KAAK,CAACmO,YAAY,CAAC;AAAA,QAAA,KAAA,CAAA;UAAjDxd,WAAW,GAAAnM,SAAA,CAAAlG,CAAA;AAAA,UAAA,IAAA,EAIb,OAAOwvB,QAAQ,CAACQ,sBAAsB,KAAK,UAAU,CAAA,EAAA;AAAA9pB,YAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAAoG,UAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,UAAA,OAClC0vB,QAAQ,CAACQ,sBAAsB,CAAC3d,WAAW,EAAE;AAChEzY,YAAAA,aAAa,EAAEyI,OAAO,CAACzI,aAAa,IAAI,KAAK;AAC7CD,YAAAA,mBAAmB,EAAE0I,OAAO,CAAC1I,mBAAmB,IAAI;AACtD,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHI2O,MAAM,GAAApC,SAAA,CAAAlG,CAAA;AAIZsuB,UAAAA,MAAM,GAAGD,aAAa,CAAC/lB,MAAM,CAAC;AAC9BwO,UAAAA,GAAG,GAAGxO,MAAM;AAACpC,UAAAA,SAAA,CAAApG,CAAA,GAAA,EAAA;AAAA,UAAA;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,IAAA,EACJ,OAAO0vB,QAAQ,CAAC3N,eAAe,KAAK,UAAU,CAAA,EAAA;AAAA3b,YAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAAoG,UAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,UAAA,OAClC0vB,QAAQ,CAAC3N,eAAe,CAACxP,WAAW,CAAC;AAAA,QAAA,KAAA,CAAA;UAApDyd,MAAM,GAAA5pB,SAAA,CAAAlG,CAAA;AAAAkG,UAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,UAAA,OACG4H,UAAU,CAACgL,eAAe,CAACod,MAAM,EAAE;AAChDl2B,YAAAA,aAAa,EAAEyI,OAAO,CAACzI,aAAa,IAAI,KAAK;AAC7CD,YAAAA,mBAAmB,EAAE0I,OAAO,CAAC1I,mBAAmB,IAAI;AACtD,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHF20B,MAAM,GAAApoB,SAAA,CAAAlG,CAAA;AAIN8W,UAAAA,GAAG,GAAGgZ,MAAM;AAAC5pB,UAAAA,SAAA,CAAApG,CAAA,GAAA,EAAA;AAAA,UAAA;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,MAEP,IAAInE,KAAK,CAAC,gDAAgD,CAAC;AAAA,QAAA,KAAA,EAAA;AAG7DkN,UAAAA,QAAQ,GAAG;AAAEylB,YAAAA,MAAM,EAANA,MAAM;AAAE/N,YAAAA,IAAI,EAAJA,IAAI;AAAEzJ,YAAAA,GAAG,EAAHA;WAAK;AAAA,UAAA,IAAA,EAElCzU,OAAO,CAAC4tB,mBAAmB,IAAI3B,MAAM,CAAA,EAAA;AAAApoB,YAAAA,SAAA,CAAApG,CAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA;AAAAoG,UAAAA,SAAA,CAAApG,CAAA,GAAA,EAAA;AAAA,UAAA,OACZ6uB,yBAAyB,CAACjnB,UAAU,EAAE4mB,MAAM,EAAEjsB,OAAO,CAAC;AAAA,QAAA,KAAA,EAAA;UAA3E0tB,YAAY,GAAA7pB,SAAA,CAAAlG,CAAA;AAClB6I,UAAAA,QAAQ,CAACumB,SAAS,GAAGW,YAAY,CAACX,SAAS;AAC3CvmB,UAAAA,QAAQ,CAACwD,IAAI,GAAG0jB,YAAY,CAAC1jB,IAAI;AAAC,QAAA,KAAA,EAAA;AAAA,UAAA,OAAAnG,SAAA,CAAAnG,CAAA,CAAA,CAAA,EAG7B8I,QAAQ,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA5C,QAAA,CAAA;EAAA,CAChB,CAAA,CAAA;AAAA,EAAA,OAAAspB,oBAAA,CAAAjwB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAUD,SAAsBu1B,kBAAkBA,CAAAngB,GAAA,EAAAM,GAAA,EAAA;AAAA,EAAA,OAAA8f,mBAAA,CAAA7wB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAwBvC,SAAAw1B,mBAAAA,GAAA;EAAAA,mBAAA,GAAA5wB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAxBM,SAAAgI,QAAAA,CAAkCC,UAAU,EAAE4mB,MAAM,EAAA;AAAA,IAAA,IAAAjsB,OAAA;MAAAyU,GAAA;MAAAwM,EAAA;MAAA8M,KAAA;MAAAC,OAAA;AAAApV,MAAAA,MAAA,GAAAtgB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoI,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjI,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAA4Y,MAAA,CAAArgB,MAAA,GAAA,CAAA,IAAAqgB,MAAA,CAAA,CAAA,CAAA,KAAApgB,SAAA,GAAAogB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA,UAAA,IAClEqT,MAAM,EAAA;AAAAvmB,YAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,MACH,IAAInE,KAAK,CAAC,gBAAgB,CAAC;AAAA,QAAA,KAAA,CAAA;AAAAoM,UAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;UAAA,OAGjB2W,oBAAoB,CAAC/O,UAAU,CAAC;AAAA,QAAA,KAAA,CAAA;UAA5CoP,GAAG,GAAA/O,SAAA,CAAA/H,CAAA;AAAA+H,UAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,UAAA,OACQgX,GAAG,CAACwZ,oBAAoB,CAAChC,MAAM,EAAE;AAChD5hB,YAAAA,8BAA8B,EAAE,CAAC;AACjChT,YAAAA,UAAU,EAAE2I,OAAO,CAAC3I,UAAU,IAAI;AACpC,WAAC,CAAC;AAAA,QAAA,KAAA,CAAA;UAHI4pB,EAAE,GAAAvb,SAAA,CAAA/H,CAAA;AAAA,UAAA,IAKHsjB,EAAE,EAAA;AAAAvb,YAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;UAAA,OAAAiI,SAAA,CAAAhI,CAAA,CAAA,CAAA,EACE;AAAEwwB,YAAAA,KAAK,EAAE,KAAK;AAAEF,YAAAA,OAAO,EAAE,KAAK;AAAED,YAAAA,KAAK,EAAE;WAAI,CAAA;AAAA,QAAA,KAAA,CAAA;AAG9CA,UAAAA,KAAK,GAAGrC,sBAAsB,CAACzK,EAAE,EAAE;YAAEwH,SAAS,EAAEzoB,OAAO,CAACyoB;AAAU,WAAC,CAAC;AACtEuF,UAAAA,OAAO,GAAGD,KAAK,CAACx1B,MAAM,GAAG,CAAC;UAC9B,IAAIyH,OAAO,CAACmuB,KAAK,IAAIJ,KAAK,CAACx1B,MAAM,GAAG,CAAC,EAAE;AACrCy1B,YAAAA,OAAO,GAAGD,KAAK,CAACK,IAAI,CAAC,UAAChxB,CAAC,EAAA;AAAA,cAAA,OACrB6qB,MAAM,CAACE,OAAO,CAACnoB,OAAO,CAACmuB,KAAK,CAAC,CAACE,KAAK,CAAC,UAAAC,KAAA,EAAA;AAAA,gBAAA,IAAAC,KAAA,GAAAjG,cAAA,CAAAgG,KAAA,EAAA,CAAA,CAAA;AAAEp1B,kBAAAA,GAAG,GAAAq1B,KAAA,CAAA,CAAA,CAAA;AAAEp1B,kBAAAA,KAAK,GAAAo1B,KAAA,CAAA,CAAA,CAAA;AAAA,gBAAA,OAAMnxB,CAAC,CAAClE,GAAG,CAAC,KAAKC,KAAK;cAAA,CAAA,CAAC;AAAA,YAAA,CACzE,CAAC;AACH,UAAA;UAAC,OAAAuM,SAAA,CAAAhI,CAAA,CAAA,CAAA,EAEM;AAAEwwB,YAAAA,KAAK,EAAEH,KAAK,CAACx1B,MAAM,GAAG,CAAC;AAAEy1B,YAAAA,OAAO,EAAPA,OAAO;AAAED,YAAAA,KAAK,EAALA;WAAO,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA3oB,QAAA,CAAA;EAAA,CACnD,CAAA,CAAA;AAAA,EAAA,OAAA0oB,mBAAA,CAAA7wB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;ACjUD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAsBoW,cAAcA,CAAApQ,EAAA,EAAAkM,GAAA,EAAA;AAAA,EAAA,OAAA8D,eAAA,CAAArR,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAuBpC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAgW,eAAAA,GAAA;EAAAA,eAAA,GAAApR,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAvBO,SAAA6E,OAAAA,CAA8B5G,OAAO,EAAEgK,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA,EAAAnN,GAAA,EAAApH,MAAA,EAAAyB,IAAA;AAAA,IAAA,OAAA3R,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAjF,CAAA;AAAA,QAAA,KAAA,CAAA;AAChDmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAAAxR,UAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;UAAA,OAC/B2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAA/R,QAAA,CAAA/E,CAAA;AACH0P,UAAAA,MAAM,GAAGuM,WAAW,CAACve,OAAO,CAAC;AAAAqH,UAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,UAAA,OAChBY,SAAS,CAC1B,YAAA;AAAA,YAAA,OAAMoW,GAAG,CAAC/F,cAAc,CAACrB,MAAM,CAAC;UAAA,CAAA,EAChC,CAAC,EACD,gBACF,CAAC;AAAA,QAAA,KAAA,CAAA;UAJKyB,IAAI,GAAApM,QAAA,CAAA/E,CAAA;AAAA,UAAA,IAMLmR,IAAI,EAAA;AAAApM,YAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAAA,OAAAiF,QAAA,CAAAhF,CAAA,CAAA,CAAA,EAAS,IAAI,CAAA;AAAA,QAAA,KAAA,CAAA;UAAA,OAAAgF,QAAA,CAAAhF,CAAA,CAAA,CAAA,EAEf;AACLrC,YAAAA,OAAO,EAAPA,OAAO;YACPiS,QAAQ,EAAEwB,IAAI,CAACxB,QAAQ;AACvBqC,YAAAA,GAAG,EAAEyJ,aAAa,CAACtK,IAAI,CAACxB,QAAQ,CAAC;AACjCmF,YAAAA,KAAK,EAAE3D,IAAI,CAAC2D,KAAK,CAACO,QAAQ,EAAE;YAC5Bwb,UAAU,EAAE1f,IAAI,CAAC0f,UAAU;YAC3BC,SAAS,EAAE3f,IAAI,CAAC2f,SAAS;AACzBtc,YAAAA,QAAQ,EAAErD,IAAI,CAACrI,IAAI,CAAClO;WACrB,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA0J,OAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAAqM,eAAA,CAAArR,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AASD,SAAsByV,UAAUA,CAAAlD,GAAA,EAAAO,GAAA,EAAA;AAAA,EAAA,OAAAuC,WAAA,CAAA1Q,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAShC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAqV,WAAAA,GAAA;EAAAA,WAAA,GAAAzQ,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CATO,SAAAoG,QAAAA,CAA0BnI,OAAO,EAAEgK,UAAU,EAAA;IAAA,IAAAuc,IAAA,EAAAtU,QAAA;AAAA,IAAA,OAAAnQ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,CAAA;AAAA,QAAA,KAAA,CAAA;AAC5CmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAAAzQ,UAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,UAAA,OAC1BmkB,IAAI,CAAC7T,UAAU,CAAC1S,OAAO,CAAC;AAAA,QAAA,KAAA,CAAA;UAAzCiS,QAAQ,GAAA7J,SAAA,CAAA9F,CAAA;UAAA,OAAA8F,SAAA,CAAA/F,CAAA,CAAA,CAAA,EACP;AACL4P,YAAAA,QAAQ,EAARA,QAAQ;YACRqC,GAAG,EAAEyJ,aAAa,CAAC9L,QAAQ;WAC5B,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA9J,QAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAAmK,WAAA,CAAA1Q,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AASD,SAAsBo2B,gBAAgBA,CAAArjB,GAAA,EAAAyB,GAAA,EAAA;AAAA,EAAA,OAAA6hB,iBAAA,CAAA1xB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AA0BtC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAq2B,iBAAAA,GAAA;EAAAA,iBAAA,GAAAzxB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CA1BO,SAAAwG,QAAAA,CAAgCkf,YAAY,EAAEzd,UAAU,EAAA;IAAA,IAAAuc,IAAA,EAAAnN,GAAA,EAAApH,MAAA,EAAAuhB,cAAA,EAAApoB,QAAA;AAAA,IAAA,OAAArJ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,QAAA,KAAA,CAAA;AACvDmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAAArQ,UAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;UAAA,OAC/B2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAA5Q,SAAA,CAAAlG,CAAA;AACH0P,UAAAA,MAAM,GAAGuM,WAAW,CAACkJ,YAAY,CAAC;AAElC8L,UAAAA,cAAc,GAAG,IAAIniB,iBAAS,CAACnW,cAAc,CAACE,aAAa,CAAC;AAAAqN,UAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,UAAA,OAE3CY,SAAS,CAC9B,YAAA;AAAA,YAAA,OAAMoW,GAAG,CAACoa,6BAA6B,CAACxhB,MAAM,EAAE;AAAEyF,cAAAA,SAAS,EAAE8b;AAAe,aAAC,CAAC;UAAA,CAAA,EAC9E,CAAC,EACD,kBACF,CAAC;AAAA,QAAA,KAAA,CAAA;UAJKpoB,QAAQ,GAAA3C,SAAA,CAAAlG,CAAA;AAAA,UAAA,OAAAkG,SAAA,CAAAnG,CAAA,CAAA,CAAA,EAMP8I,QAAQ,CAACrN,KAAK,CAACyT,GAAG,CAAC,UAAAmG,IAAI,EAAI;AAAA,YAAA,IAAA+b,qBAAA,EAAAC,mBAAA,EAAAC,oBAAA,EAAAC,oBAAA;AAChC,YAAA,IAAMlI,MAAM,GAAA,CAAA+H,qBAAA,GAAG/b,IAAI,CAACE,OAAO,CAACxM,IAAI,CAACsgB,MAAM,MAAA,IAAA,IAAA+H,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAxBA,qBAAA,CAA0BhgB,IAAI;YAC7C,OAAO;AACLzT,cAAAA,OAAO,EAAE0X,IAAI,CAAC1F,MAAM,CAAC2F,QAAQ,EAAE;cAC/BuO,IAAI,EAAE,CAAAwF,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAExF,IAAI,KAAI,EAAE;cACxB9O,KAAK,EAAE,CAAAsU,MAAM,KAAA,IAAA,IAANA,MAAM,uBAANA,MAAM,CAAEtU,KAAK,KAAIqQ,YAAY;AACpCxG,cAAAA,MAAM,EAAE,CAAAyK,MAAM,aAANA,MAAM,KAAA,MAAA,IAAA,CAAAgI,mBAAA,GAANhI,MAAM,CAAEmI,WAAW,cAAAH,mBAAA,KAAA,MAAA,GAAA,MAAA,GAAnBA,mBAAA,CAAqBzS,MAAM,KAAI,GAAG;AAC1ChD,cAAAA,QAAQ,EAAE,CAAAyN,MAAM,aAANA,MAAM,KAAA,MAAA,IAAA,CAAAiI,oBAAA,GAANjI,MAAM,CAAEmI,WAAW,cAAAF,oBAAA,KAAA,MAAA,GAAA,MAAA,GAAnBA,oBAAA,CAAqB1V,QAAQ,KAAI,CAAC;AAC5C6V,cAAAA,QAAQ,EAAE,CAAApI,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAAkI,oBAAA,GAANlI,MAAM,CAAEmI,WAAW,MAAA,IAAA,IAAAD,oBAAA,uBAAnBA,oBAAA,CAAqBE,QAAQ,KAAI;aAC5C;AACH,UAAA,CAAC,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAvrB,QAAA,CAAA;EAAA,CACH,CAAA,CAAA;AAAA,EAAA,OAAA+qB,iBAAA,CAAA1xB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AASD,SAAsB82B,gBAAgBA,CAAAriB,GAAA,EAAAU,GAAA,EAAA;AAAA,EAAA,OAAA4hB,iBAAA,CAAApyB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AA8BtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAA+2B,iBAAAA,GAAA;EAAAA,iBAAA,GAAAnyB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CA9BO,SAAAgI,QAAAA,CAAgC1J,WAAW,EAAE2J,UAAU,EAAA;IAAA,IAAAiqB,qBAAA,EAAAC,qBAAA;IAAA,IAAA3N,IAAA,EAAAnN,GAAA,EAAAoI,UAAA,EAAA/N,IAAA,EAAAiY,MAAA;AAAA,IAAA,OAAA5pB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoI,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjI,CAAA;AAAA,QAAA,KAAA,CAAA;AACtDmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAAAxO,UAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;UAAA,OAC/B2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAA/O,SAAA,CAAA/H,CAAA;AACHkf,UAAAA,UAAU,GAAGjD,WAAW,CAACle,WAAW,CAAC;AAAAgK,UAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,UAAA,OAExBY,SAAS,CAC1B,YAAA;AAAA,YAAA,OAAMoW,GAAG,CAACuS,oBAAoB,CAACnK,UAAU,CAAC;UAAA,CAAA,EAC1C,CAAC,EACD,kBACF,CAAC;AAAA,QAAA,KAAA,CAAA;UAJK/N,IAAI,GAAApJ,SAAA,CAAA/H,CAAA;UAAA,IAMLmR,IAAI,CAAC3V,KAAK,EAAA;AAAAuM,YAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;UAAA,MACP,IAAIlC,cAAc,CAAA,iCAAA,CAAAhB,MAAA,CAAoBmB,WAAW,CAAA,EAAIA,WAAW,CAAC;AAAA,QAAA,KAAA,CAAA;AAGnEqrB,UAAAA,MAAM,GAAA,CAAAuI,qBAAA,GAAGxgB,IAAI,CAAC3V,KAAK,CAACsN,IAAI,CAACsgB,MAAM,MAAA,IAAA,IAAAuI,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAtBA,qBAAA,CAAwBxgB,IAAI;AAAA,UAAA,IACtCiY,MAAM,EAAA;AAAArhB,YAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;UAAA,MACH,IAAIlC,cAAc,CAAA,oDAAA,CAAAhB,MAAA,CAAwBmB,WAAW,CAAA,EAAIA,WAAW,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA,OAAAgK,SAAA,CAAAhI,CAAA,CAAA,CAAA,EAGtE;AACLrC,YAAAA,OAAO,EAAEK,WAAW;YACpB8zB,MAAM,EAAEzI,MAAM,CAACyI,MAAM;YACrBlW,QAAQ,EAAEyN,MAAM,CAACzN,QAAQ;AACzBgJ,YAAAA,aAAa,EAAEyE,MAAM,CAACzE,aAAa,IAAI,IAAI;AAC3CC,YAAAA,eAAe,EAAEwE,MAAM,CAACxE,eAAe,IAAI,IAAI;YAC/CkN,aAAa,EAAA,CAAAF,qBAAA,GAAExI,MAAM,CAAC0I,aAAa,MAAA,IAAA,IAAAF,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI;WACxC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAnqB,QAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAAiqB,iBAAA,CAAApyB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAWD,SAAsBo3B,yBAAyBA,CAAAhiB,GAAA,EAAAM,GAAA,EAAAK,GAAA,EAAA;AAAA,EAAA,OAAAshB,0BAAA,CAAA1yB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAkB/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAXA,SAAAq3B,0BAAAA,GAAA;AAAAA,EAAAA,0BAAA,GAAAzyB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAlBO,SAAAmJ,QAAAA,CAAyCuc,YAAY,EAAEpnB,WAAW,EAAE2J,UAAU,EAAA;AAAA,IAAA,IAAAmH,aAAA,EAAAgQ,yBAAA,EAAAuG,WAAA,EAAAlG,UAAA,EAAA+S,UAAA,EAAAhO,IAAA,EAAAnN,GAAA,EAAA3F,IAAA;AAAA,IAAA,OAAA3R,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoJ,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjJ,CAAA;AAAA,QAAA,KAAA,CAAA;AAAAiJ,UAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;UAAA,OACvC,OAAO,mBAAmB,CAAC;AAAA,QAAA,KAAA,CAAA;UAAA+O,aAAA,GAAA9F,SAAA,CAAA/I,CAAA;UAA/D6e,yBAAyB,GAAAhQ,aAAA,CAAzBgQ,yBAAyB;AAE3BuG,UAAAA,WAAW,GAAGnJ,WAAW,CAACkJ,YAAY,CAAC;AACvCjG,UAAAA,UAAU,GAAGjD,WAAW,CAACle,WAAW,CAAC;AAAAgL,UAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;AAAA,UAAA,OAElB+e,yBAAyB,CAACK,UAAU,EAAEkG,WAAW,CAAC;AAAA,QAAA,KAAA,CAAA;UAArE6M,UAAU,GAAAlpB,SAAA,CAAA/I,CAAA;AAEVikB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAAAxN,UAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;UAAA,OAC/B2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAA/N,SAAA,CAAA/I,CAAA;AAAA+I,UAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;AAAA,UAAA,OACUgX,GAAG,CAAC/F,cAAc,CAACkhB,UAAU,CAAC;AAAA,QAAA,KAAA,CAAA;UAA3C9gB,IAAI,GAAApI,SAAA,CAAA/I,CAAA;UAAA,OAAA+I,SAAA,CAAAhJ,CAAA,CAAA,CAAA,EAEH;AACLrC,YAAAA,OAAO,EAAEu0B,UAAU,CAAC5c,QAAQ,EAAE;YAC9B6c,MAAM,EAAE/gB,IAAI,KAAK;WAClB,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAvI,QAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAAopB,0BAAA,CAAA1yB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAcD,SAAsBw3B,qBAAqBA,CAAAnhB,IAAA,EAAA;AAAA,EAAA,OAAAohB,sBAAA,CAAA9yB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAiD3C;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAy3B,sBAAAA,GAAA;EAAAA,sBAAA,GAAA7yB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAjDO,SAAAyI,QAAAA,CAAqCxK,OAAO,EAAA;AAAA,IAAA,IAAA2E,OAAA;MAAAqF,UAAA;MAAAuc,IAAA;MAAAnN,GAAA;MAAApH,MAAA;MAAA2iB,UAAA;MAAAC,MAAA;MAAAC,cAAA;MAAAz3B,OAAA;AAAAwnB,MAAAA,MAAA,GAAA3nB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA8I,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3I,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAigB,MAAA,CAAA1nB,MAAA,GAAA,CAAA,IAAA0nB,MAAA,CAAA,CAAA,CAAA,KAAAznB,SAAA,GAAAynB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAE5a,UAAAA,UAAU,GAAA4a,MAAA,CAAA1nB,MAAA,GAAA,CAAA,GAAA0nB,MAAA,MAAAznB,SAAA;AACrEopB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAAA9N,UAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;UAAA,OAC/B2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAArO,SAAA,CAAAzI,CAAA;AACH0P,UAAAA,MAAM,GAAGuM,WAAW,CAACve,OAAO,CAAC,CAAA;AAEnC+K,UAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;AAAA,UAAA,OACyBY,SAAS,CAChC,YAAA;AAAA,YAAA,OAAMoW,GAAG,CAAC5C,uBAAuB,CAACxE,MAAM,EAAE;AACxCzB,cAAAA,KAAK,EAAE5L,OAAO,CAAC4L,KAAK,IAAI,EAAE;cAC1BkG,MAAM,EAAE9R,OAAO,CAAC8R,MAAM;cACtBC,KAAK,EAAE/R,OAAO,CAAC+R;AACjB,aAAC,CAAC;UAAA,CAAA,EACF,CAAC,EACD,yBACF,CAAC;AAAA,QAAA,KAAA,CAAA;UARKie,UAAU,GAAA5pB,SAAA,CAAAzI,CAAA;AAUhB;AACMsyB,UAAAA,MAAM,GAAGD,UAAU,CAACpjB,GAAG,CAAC,UAAAiJ,GAAG,EAAA;YAAA,OAAK;cACpCjb,SAAS,EAAEib,GAAG,CAACjb,SAAS;cACxBoP,IAAI,EAAE6L,GAAG,CAAC7L,IAAI;cACdmmB,SAAS,EAAEta,GAAG,CAACsa,SAAS;cACxB9V,kBAAkB,EAAExE,GAAG,CAACwE,kBAAkB;cAC1CzY,GAAG,EAAEiU,GAAG,CAACjU,GAAG;cACZsc,IAAI,EAAErI,GAAG,CAACqI;aACX;AAAA,UAAA,CAAC,CAAC,CAAA;UAEH,IAAA,EACIle,OAAO,CAACowB,WAAW,IAAIH,MAAM,CAAC13B,MAAM,GAAG,CAAC,CAAA,EAAA;AAAA6N,YAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AACpCyyB,UAAAA,cAAc,GAAGD,MAAM,CAACrjB,GAAG,CAAC,UAAAqU,EAAE,EAAA;AAAA,YAAA,OAClCxM,GAAG,CAACnD,cAAc,CAAC2P,EAAE,CAACrmB,SAAS,EAAE;AAC/ByP,cAAAA,8BAA8B,EAAE;aACjC,CAAC,SAAM,CAAC,YAAA;AAAA,cAAA,OAAM,IAAI;YAAA,CAAA,CAAC;AAAA,UAAA,CACtB,CAAC;AAAAjE,UAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;AAAA,UAAA,OAEqB+B,OAAO,CAAC6wB,GAAG,CAACH,cAAc,CAAC;AAAA,QAAA,KAAA,CAAA;UAA3Cz3B,OAAO,GAAA2N,SAAA,CAAAzI,CAAA;AAEbsyB,UAAAA,MAAM,CAACK,OAAO,CAAC,UAACrP,EAAE,EAAEzR,CAAC,EAAK;AACxB,YAAA,IAAI/W,OAAO,CAAC+W,CAAC,CAAC,EAAE;AAAA,cAAA,IAAA+gB,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;AACdzP,cAAAA,EAAE,CAACY,GAAG,GAAA,CAAA0O,eAAA,GAAG93B,OAAO,CAAC+W,CAAC,CAAC,CAACgc,IAAI,MAAA,IAAA,IAAA+E,eAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,eAAA,CAAiB1O,GAAG;AAC7BZ,cAAAA,EAAE,CAAC0P,WAAW,GAAA,CAAAH,gBAAA,GAAG/3B,OAAO,CAAC+W,CAAC,CAAC,CAACgc,IAAI,MAAA,IAAA,IAAAgF,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,gBAAA,CAAiBG,WAAW;AAC7C1P,cAAAA,EAAE,CAAC2P,YAAY,GAAA,CAAAH,gBAAA,GAAGh4B,OAAO,CAAC+W,CAAC,CAAC,CAACgc,IAAI,MAAA,IAAA,IAAAiF,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,gBAAA,CAAiBG,YAAY;AAC/C3P,cAAAA,EAAE,CAAC4P,WAAW,GAAA,CAAAH,gBAAA,GAAGj4B,OAAO,CAAC+W,CAAC,CAAC,CAACgc,IAAI,MAAA,IAAA,IAAAkF,gBAAA,KAAA,MAAA,GAAA,MAAA,GAAfA,gBAAA,CAAiBG,WAAW;AAC/C,YAAA;AACF,UAAA,CAAC,CAAC;AAAC,QAAA,KAAA,CAAA;AAAA,UAAA,OAAAzqB,SAAA,CAAA1I,CAAA,CAAA,CAAA,EAGEuyB,MAAM,CAAA;AAAA;AAAA,IAAA,CAAA,EAAApqB,QAAA,CAAA;EAAA,CACd,CAAA,CAAA;AAAA,EAAA,OAAAkqB,sBAAA,CAAA9yB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AASD,SAAsBw4B,kBAAgBA,CAAA7hB,IAAA,EAAAY,IAAA,EAAA;AAAA,EAAA,OAAAkhB,kBAAA,CAAA9zB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAIrC,SAAAy4B,kBAAAA,GAAA;EAAAA,kBAAA,GAAA7zB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAJM,SAAAoK,QAAAA,CAAgCsb,YAAY,EAAEzd,UAAU,EAAA;IAAA,IAAA8H,cAAA,EAAA6jB,iBAAA;AAAA,IAAA,OAAA7zB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmK,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhK,CAAA;AAAA,QAAA,KAAA,CAAA;AAAAgK,UAAAA,SAAA,CAAAhK,CAAA,GAAA,CAAA;UAAA,OAEP,qDAAoB;AAAA,QAAA,KAAA,CAAA;UAAA0P,cAAA,GAAA1F,SAAA,CAAA9J,CAAA;UAAhDqzB,iBAAiB,GAAA7jB,cAAA,CAAnC2jB,gBAAgB;UAAA,OAAArpB,SAAA,CAAA/J,CAAA,CAAA,CAAA,EACjBszB,iBAAiB,CAAC3rB,UAAU,EAAEyd,YAAY,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAtb,QAAA,CAAA;EAAA,CACnD,CAAA,CAAA;AAAA,EAAA,OAAAupB,kBAAA,CAAA9zB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;;;;;;;;;;;;AC9MD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAsB24B,kBAAkBA,CAAA3yB,EAAA,EAAAkM,GAAA,EAAAK,GAAA,EAAAO,GAAA,EAAA;AAAA,EAAA,OAAA8lB,mBAAA,CAAAj0B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AA8DxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAA44B,mBAAAA,GAAA;AAAAA,EAAAA,mBAAA,GAAAh0B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CA9DO,SAAA6E,OAAAA,CAAkCoD,UAAU,EAAE0b,WAAW,EAAEoQ,kBAAkB,EAAEjkB,SAAS,EAAA;AAAA,IAAA,IAAAlN,OAAA;MAAA4hB,IAAA;MAAA3J,IAAA;MAAAmZ,YAAA;MAAAC,MAAA;MAAAC,UAAA;MAAAC,UAAA;MAAAC,MAAA;MAAAlkB,QAAA;MAAAmkB,aAAA;MAAAC,aAAA;MAAAC,oBAAA;MAAAC,UAAA;MAAA3Q,EAAA;MAAAxM,GAAA;MAAA7Z,SAAA;AAAA0b,MAAAA,KAAA,GAAAhe,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAjF,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAsW,KAAA,CAAA/d,MAAA,GAAA,CAAA,IAAA+d,KAAA,CAAA,CAAA,CAAA,KAAA9d,SAAA,GAAA8d,KAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACnGsL,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3C+D,UAAAA,IAAI,GAAG8I,WAAW,CAAC5J,OAAO,IAAI4J,WAAW,CAAA;UAGzCqQ,YAAY,GAAGpxB,OAAO,CAACoxB,YAAY,IAAI5Z,eAAO,CAACd,QAAQ,EAAE,CAAA;AAGzD2a,UAAAA,MAAM,GAAGrxB,OAAO,CAACqxB,MAAM,GAAGzX,WAAW,CAAC5Z,OAAO,CAACqxB,MAAM,CAAC,GAAGpZ,IAAI,CAAChD,SAAS;AACtEqc,UAAAA,UAAU,GAAGtxB,OAAO,CAACsxB,UAAU,GAAG1X,WAAW,CAAC5Z,OAAO,CAACsxB,UAAU,CAAC,GAAGrZ,IAAI,CAAChD,SAAS;UAClFsc,UAAU,GAAG,IAAIM,kBAAU,CAACR,MAAM,EAAEC,UAAU,CAAC,CAAA;UAG/CE,MAAM,GAAG,IAAIM,cAAM,CAAC,CAAC,EAAE,CAAC,EAAE7Z,IAAI,CAAChD,SAAS,CAAC;AAEzC3H,UAAAA,QAAQ,GAAG6L,aAAa,CAACjM,SAAS,CAAC,CAAA;AAEzCxK,UAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,UAAA,OAC4BmkB,IAAI,CAACvP,iCAAiC,CAC9D0f,oBAAY,CAACpP,KACjB,CAAC;AAAA,QAAA,KAAA,CAAA;UAFK8O,aAAa,GAAA/uB,QAAA,CAAA/E,CAAA;AAInB;UACM+zB,aAAa,GAAG3zB,IAAI,CAAC8uB,GAAG,CAACvf,QAAQ,EAAEmkB,aAAa,CAAC,CAAA;AAGjDE,UAAAA,oBAAoB,GAAGI,oBAAY,CAACtP,aAAa,CAAC;YACpDtG,UAAU,EAAElE,IAAI,CAAChD,SAAS;YAC1B+c,WAAW,EAAEZ,YAAY,CAACnc,SAAS;AACnCsc,YAAAA,UAAU,EAAVA,UAAU;AACVC,YAAAA,MAAM,EAANA,MAAM;AACNlkB,YAAAA,QAAQ,EAAEokB;AACd,WAAC,CAAC,CAAA;AAGIE,UAAAA,UAAU,GAAGG,oBAAY,CAAC5N,QAAQ,CAAC;YACrC6N,WAAW,EAAEZ,YAAY,CAACnc,SAAS;AACnCgd,YAAAA,gBAAgB,EAAEZ,MAAM;YACxBa,UAAU,EAAEtY,WAAW,CAACuX,kBAAkB;AAC9C,WAAC,CAAC,CAAA;AAGIlQ,UAAAA,EAAE,GAAG,IAAIlG,mBAAW,EAAE;AAC5BkG,UAAAA,EAAE,CAAClF,GAAG,CAAA9e,KAAA,CAANgkB,EAAE,EAAArF,kBAAA,CAAQ+V,oBAAoB,CAACxG,YAAY,CAAA,CAAC;AAC5ClK,UAAAA,EAAE,CAAClF,GAAG,CAAA9e,KAAA,CAANgkB,EAAE,EAAArF,kBAAA,CAAQgW,UAAU,CAACzG,YAAY,CAAA,CAAC;AAACzoB,UAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;UAAA,OACjB2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAA/R,QAAA,CAAA/E,CAAA;AAAA+E,UAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;UAAA,OAEe00B,iCAAyB,CAC7C1d,GAAG,EACHwM,EAAE,EACF,CAAChJ,IAAI,EAAEmZ,YAAY,CAAC,EACpB;AAAE/5B,YAAAA,UAAU,EAAE;AAAY,WAC9B,CAAC;AAAA,QAAA,KAAA,CAAA;UALKuD,SAAS,GAAA8H,QAAA,CAAA/E,CAAA;UAAA,OAAA+E,QAAA,CAAAhF,CAAA,CAAA,CAAA,EAOR;AACH9C,YAAAA,SAAS,EAATA,SAAS;AACTw3B,YAAAA,YAAY,EAAEhB,YAAY,CAACnc,SAAS,CAACjC,QAAQ,EAAE;AAC/CsJ,YAAAA,MAAM,EAAEpP,SAAS;AACjBmlB,YAAAA,SAAS,EAAElB;WACd,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAlvB,OAAA,CAAA;EAAA,CACJ,CAAA,CAAA;AAAA,EAAA,OAAAivB,mBAAA,CAAAj0B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAWD,SAAsB6rB,QAAQA,CAAA9Y,GAAA,EAAAyB,GAAA,EAAAC,GAAA,EAAAU,GAAA,EAAA;AAAA,EAAA,OAAA6kB,SAAA,CAAAr1B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAmB9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,SAAAg6B,SAAAA,GAAA;AAAAA,EAAAA,SAAA,GAAAp1B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAnBO,SAAAoG,QAAAA,CAAwB6B,UAAU,EAAEktB,iBAAiB,EAAEC,mBAAmB,EAAErB,kBAAkB,EAAA;AAAA,IAAA,IAAAvP,IAAA,EAAA2P,UAAA,EAAAtQ,EAAA,EAAAxM,GAAA;AAAA,IAAA,OAAAtX,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,CAAA;AAAA,QAAA,KAAA,CAAA;AAC3FmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3Cqd,UAAAA,UAAU,GAAGgB,iBAAiB,CAACpb,OAAO,IAAIob,iBAAiB;AAE3DtR,UAAAA,EAAE,GAAG8Q,oBAAY,CAAC5N,QAAQ,CAAC;AAC7B6N,YAAAA,WAAW,EAAEpY,WAAW,CAAC4Y,mBAAmB,CAAC;YAC7CP,gBAAgB,EAAEV,UAAU,CAACtc,SAAS;YACtCid,UAAU,EAAEtY,WAAW,CAACuX,kBAAkB;AAC9C,WAAC,CAAC;AAAA1tB,UAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;UAAA,OACgB2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAAhR,SAAA,CAAA9F,CAAA;AAAA,UAAA,OAAA8F,SAAA,CAAA/F,CAAA,CAAA,CAAA,EAEFy0B,iCAAyB,CAC5B1d,GAAG,EACHwM,EAAE,EACF,CAACsQ,UAAU,CAAC,EACZ;AAAEl6B,YAAAA,UAAU,EAAE;AAAY,WAC9B,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAmM,QAAA,CAAA;EAAA,CACJ,CAAA,CAAA;AAAA,EAAA,OAAA8uB,SAAA,CAAAr1B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAUD,SAAsBm6B,UAAUA,CAAA/kB,GAAA,EAAAM,GAAA,EAAAK,GAAA,EAAA;AAAA,EAAA,OAAAqkB,WAAA,CAAAz1B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAkBhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA,SAAAo6B,WAAAA,GAAA;AAAAA,EAAAA,WAAA,GAAAx1B,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAlBO,SAAAwG,QAAAA,CAA0ByB,UAAU,EAAEktB,iBAAiB,EAAEC,mBAAmB,EAAA;AAAA,IAAA,IAAA5Q,IAAA,EAAA2P,UAAA,EAAAtQ,EAAA,EAAAxM,GAAA;AAAA,IAAA,OAAAtX,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,QAAA,KAAA,CAAA;AACzEmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3Cqd,UAAAA,UAAU,GAAGgB,iBAAiB,CAACpb,OAAO,IAAIob,iBAAiB;AAE3DtR,UAAAA,EAAE,GAAG8Q,oBAAY,CAACU,UAAU,CAAC;AAC/BT,YAAAA,WAAW,EAAEpY,WAAW,CAAC4Y,mBAAmB,CAAC;YAC7CP,gBAAgB,EAAEV,UAAU,CAACtc;AACjC,WAAC,CAAC;AAAApR,UAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;UAAA,OACgB2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAA5Q,SAAA,CAAAlG,CAAA;AAAA,UAAA,OAAAkG,SAAA,CAAAnG,CAAA,CAAA,CAAA,EAEFy0B,iCAAyB,CAC5B1d,GAAG,EACHwM,EAAE,EACF,CAACsQ,UAAU,CAAC,EACZ;AAAEl6B,YAAAA,UAAU,EAAE;AAAY,WAC9B,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAuM,QAAA,CAAA;EAAA,CACJ,CAAA,CAAA;AAAA,EAAA,OAAA8uB,WAAA,CAAAz1B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAaD,SAAsBq6B,aAAaA,CAAAhkB,IAAA,EAAAM,IAAA,EAAAY,IAAA,EAAAS,IAAA,EAAA;AAAA,EAAA,OAAAsiB,cAAA,CAAA31B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AA6BnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,SAAAs6B,cAAAA,GAAA;AAAAA,EAAAA,cAAA,GAAA11B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CA7BO,SAAAgI,QAAAA,CAA6BC,UAAU,EAAEwtB,iBAAiB,EAAEL,mBAAmB,EAAExR,SAAS,EAAA;AAAA,IAAA,IAAA9T,SAAA;MAAA0U,IAAA;MAAA0P,UAAA;MAAAU,WAAA;MAAA1kB,QAAA;MAAA2T,EAAA;MAAAxM,GAAA;AAAAmE,MAAAA,MAAA,GAAAtgB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoI,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjI,CAAA;AAAA,QAAA,KAAA,CAAA;UAAEyP,SAAS,GAAA0L,MAAA,CAAArgB,MAAA,GAAA,CAAA,IAAAqgB,MAAA,CAAA,CAAA,CAAA,KAAApgB,SAAA,GAAAogB,MAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AACtGgJ,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3Cod,UAAAA,UAAU,GAAGuB,iBAAiB,CAAC1b,OAAO,IAAI0b,iBAAiB;AAC3Db,UAAAA,WAAW,GAAGpY,WAAW,CAAC4Y,mBAAmB,CAAC,CAAA;UAEpD,IAAA,EAEItlB,SAAS,KAAK,CAAC,CAAA,EAAA;AAAAxH,YAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA;AAAAiI,UAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,UAAA,OACEmkB,IAAI,CAAC7T,UAAU,CAACikB,WAAW,CAAC;AAAA,QAAA,KAAA,CAAA;UAA7C1kB,QAAQ,GAAA5H,SAAA,CAAA/H,CAAA;AAAA+H,UAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,UAAA;AAAA,QAAA,KAAA,CAAA;AAER6P,UAAAA,QAAQ,GAAG6L,aAAa,CAACjM,SAAS,CAAC;AAAC,QAAA,KAAA,CAAA;AAGlC+T,UAAAA,EAAE,GAAG8Q,oBAAY,CAACe,QAAQ,CAAC;AAC7Bd,YAAAA,WAAW,EAAXA,WAAW;YACXC,gBAAgB,EAAEX,UAAU,CAACrc,SAAS;AACtCmH,YAAAA,QAAQ,EAAExC,WAAW,CAACoH,SAAS,CAAC;AAChC1T,YAAAA,QAAQ,EAARA;AACJ,WAAC,CAAC;AAAA5H,UAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;UAAA,OACgB2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAA/O,SAAA,CAAA/H,CAAA;AAAA,UAAA,OAAA+H,SAAA,CAAAhI,CAAA,CAAA,CAAA,EAEFy0B,iCAAyB,CAC5B1d,GAAG,EACHwM,EAAE,EACF,CAACqQ,UAAU,CAAC,EACZ;AAAEj6B,YAAAA,UAAU,EAAE;AAAY,WAC9B,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA+N,QAAA,CAAA;EAAA,CACJ,CAAA,CAAA;AAAA,EAAA,OAAAwtB,cAAA,CAAA31B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAUD,SAAsBy6B,kBAAkBA,CAAA9hB,IAAA,EAAAC,IAAA,EAAA;AAAA,EAAA,OAAA8hB,mBAAA,CAAA/1B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAYxC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAA06B,mBAAAA,GAAA;EAAAA,mBAAA,GAAA91B,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAZO,SAAAmJ,QAAAA,CAAkClB,UAAU,EAAEmtB,mBAAmB,EAAA;AAAA,IAAA,IAAA5Q,IAAA,EAAAoQ,WAAA,EAAAvd,GAAA;AAAA,IAAA,OAAAtX,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoJ,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjJ,CAAA;AAAA,QAAA,KAAA,CAAA;AAC9DmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAC3C8d,UAAAA,WAAW,GAAGpY,WAAW,CAAC4Y,mBAAmB,CAAC;AAAA9rB,UAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;UAAA,OAClC2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAA/N,SAAA,CAAA/I,CAAA;AAAA,UAAA,OAAA+I,SAAA,CAAAhJ,CAAA,CAAA,CAAA,EAEFW,SAAS,CACZ,YAAA;AAAA,YAAA,OAAMoW,GAAG,CAACse,kBAAkB,CAACf,WAAW,CAAC;UAAA,CAAA,EACzC,CAAC,EACD,oBACJ,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAzrB,QAAA,CAAA;EAAA,CACJ,CAAA,CAAA;AAAA,EAAA,OAAAysB,mBAAA,CAAA/1B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AASD,SAAsBw4B,gBAAgBA,CAAAvf,IAAA,EAAAS,IAAA,EAAA;AAAA,EAAA,OAAAgf,iBAAA,CAAA/zB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAuCtC;AACA;AACA;AACA;AACA;AACA;AALA,SAAA04B,iBAAAA,GAAA;EAAAA,iBAAA,GAAA9zB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAvCO,SAAAyI,QAAAA,CAAgCR,UAAU,EAAEyd,YAAY,EAAA;AAAA,IAAA,IAAAlB,IAAA,EAAAnN,GAAA,EAAAsO,WAAA,EAAAkQ,QAAA;AAAA,IAAA,OAAA91B,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA8I,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3I,CAAA;AAAA,QAAA,KAAA,CAAA;AACrDmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAAA9N,UAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;UAAA,OAC/B2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAArO,SAAA,CAAAzI,CAAA;AACHolB,UAAAA,WAAW,GAAGnJ,WAAW,CAACkJ,YAAY,CAAC,CAAA;AAE7C1c,UAAAA,SAAA,CAAA3I,CAAA,GAAA,CAAA;AAAA,UAAA,OACuBY,SAAS,CAC5B,YAAA;YAAA,OAAMoW,GAAG,CAACye,wBAAwB,CAC9B,IAAIzmB,iBAAS,CAACnW,cAAc,CAACK,aAAa,CAAC,EAC3C;AACIw8B,cAAAA,OAAO,EAAE,CACL;AAAEhhB,gBAAAA,QAAQ,EAAE;eAAK;AAAE;AACnB,cAAA;AACIihB,gBAAAA,MAAM,EAAE;AACJC,kBAAAA,MAAM,EAAE,EAAE;AAAE;AACZC,kBAAAA,KAAK,EAAEvQ,WAAW,CAAC/P,QAAQ;AAC/B;eACH;AAET,aACJ,CAAC;UAAA,CAAA,EACD,CAAC,EACD,kBACJ,CAAC;AAAA,QAAA,KAAA,CAAA;UAjBKigB,QAAQ,GAAA7sB,SAAA,CAAAzI,CAAA;UAAA,OAAAyI,SAAA,CAAA1I,CAAA,CAAA,CAAA,EAmBPu1B,QAAQ,CAACrmB,GAAG,CAAC,UAAA2mB,GAAG,EAAI;AAAA,YAAA,IAAAC,qBAAA,EAAAC,aAAA,EAAAC,YAAA,EAAAC,aAAA;AACvB,YAAA,IAAM5M,MAAM,GAAA,CAAAyM,qBAAA,GAAGD,GAAG,CAACtgB,OAAO,CAACxM,IAAI,CAACsgB,MAAM,MAAA,IAAA,IAAAyM,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAvBA,qBAAA,CAAyB1kB,IAAI;YAC5C,OAAO;AACHzT,cAAAA,OAAO,EAAEk4B,GAAG,CAAClmB,MAAM,CAAC2F,QAAQ,EAAE;AAC9B1F,cAAAA,QAAQ,EAAEimB,GAAG,CAACtgB,OAAO,CAAC3F,QAAQ;cAC9BqC,GAAG,EAAEyJ,aAAa,CAACma,GAAG,CAACtgB,OAAO,CAAC3F,QAAQ,CAAC;cACxC+kB,SAAS,EAAE,CAAAtL,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAA0M,aAAA,GAAN1M,MAAM,CAAE6M,KAAK,MAAA,IAAA,IAAAH,aAAA,gBAAAA,aAAA,GAAbA,aAAA,CAAeI,UAAU,MAAA,IAAA,IAAAJ,aAAA,KAAA,MAAA,GAAA,MAAA,GAAzBA,aAAA,CAA2BK,KAAK,KAAI,IAAI;cACnDC,KAAK,EAAEhN,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAANA,MAAM,CAAE6M,KAAK,GAAG,WAAW,GAAG,aAAa;cAClDvC,MAAM,EAAE,CAAAtK,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,IAAA,CAAA2M,YAAA,GAAN3M,MAAM,CAAEyE,IAAI,MAAA,IAAA,IAAAkI,YAAA,gBAAAA,YAAA,GAAZA,YAAA,CAAcnC,UAAU,MAAA,IAAA,IAAAmC,YAAA,KAAA,MAAA,GAAA,MAAA,GAAxBA,YAAA,CAA0BrC,MAAM,KAAI,IAAI;cAChDC,UAAU,EAAE,CAAAvK,MAAM,KAAA,IAAA,IAANA,MAAM,gBAAA4M,aAAA,GAAN5M,MAAM,CAAEyE,IAAI,MAAA,IAAA,IAAAmI,aAAA,KAAA,MAAA,IAAA,CAAAA,aAAA,GAAZA,aAAA,CAAcpC,UAAU,MAAA,IAAA,IAAAoC,aAAA,KAAA,MAAA,GAAA,MAAA,GAAxBA,aAAA,CAA0BrC,UAAU,KAAI;aACvD;AACL,UAAA,CAAC,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAzrB,QAAA,CAAA;EAAA,CACL,CAAA,CAAA;AAAA,EAAA,OAAAmrB,iBAAA,CAAA/zB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAQD,SAAsB07B,aAAaA,CAAA1hB,IAAA,EAAA;AAAA,EAAA,OAAA2hB,cAAA,CAAAh3B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAkClC,SAAA27B,cAAAA,GAAA;EAAAA,cAAA,GAAA/2B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAlCM,SAAAoK,QAAAA,CAA6BnC,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA,EAAAnN,GAAA,EAAAyf,YAAA;AAAA,IAAA,OAAA/2B,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmK,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhK,CAAA;AAAA,QAAA,KAAA,CAAA;AACpCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAAAzM,UAAAA,SAAA,CAAAhK,CAAA,GAAA,CAAA;UAAA,OAC/B2W,oBAAoB,CAACwN,IAAI,CAAC;AAAA,QAAA,KAAA,CAAA;UAAtCnN,GAAG,GAAAhN,SAAA,CAAA9J,CAAA;AAAA8J,UAAAA,SAAA,CAAAhK,CAAA,GAAA,CAAA;AAAA,UAAA,OAEkBY,SAAS,CAChC,YAAA;AAAA,YAAA,OAAMoW,GAAG,CAAChL,eAAe,EAAE;UAAA,CAAA,EAC3B,CAAC,EACD,iBACJ,CAAC;AAAA,QAAA,KAAA,CAAA;UAJKyqB,YAAY,GAAAzsB,SAAA,CAAA9J,CAAA;UAAA,OAAA8J,SAAA,CAAA/J,CAAA,CAAA,CAAA,EAMX;YACHy2B,OAAO,EAAED,YAAY,CAACC,OAAO,CAACvnB,GAAG,CAAC,UAAAjP,CAAC,EAAA;cAAA,OAAK;gBACpCu0B,UAAU,EAAEv0B,CAAC,CAACu0B,UAAU;gBACxBkC,UAAU,EAAEz2B,CAAC,CAACy2B,UAAU;gBACxBC,cAAc,EAAE12B,CAAC,CAAC02B,cAAc;AAChCC,gBAAAA,iBAAiB,EAAElb,aAAa,CAACzb,CAAC,CAAC02B,cAAc,CAAC;gBAClDE,UAAU,EAAE52B,CAAC,CAAC42B,UAAU;gBACxBC,QAAQ,EAAE72B,CAAC,CAAC62B,QAAQ;gBACpBC,YAAY,EAAE92B,CAAC,CAAC82B;eACnB;AAAA,YAAA,CAAC,CAAC;YACHC,UAAU,EAAER,YAAY,CAACQ,UAAU,CAAC9nB,GAAG,CAAC,UAAAjP,CAAC,EAAA;cAAA,OAAK;gBAC1Cu0B,UAAU,EAAEv0B,CAAC,CAACu0B,UAAU;gBACxBkC,UAAU,EAAEz2B,CAAC,CAACy2B,UAAU;gBACxBC,cAAc,EAAE12B,CAAC,CAAC02B,cAAc;AAChCC,gBAAAA,iBAAiB,EAAElb,aAAa,CAACzb,CAAC,CAAC02B,cAAc,CAAC;gBAClDE,UAAU,EAAE52B,CAAC,CAAC42B,UAAU;gBACxBC,QAAQ,EAAE72B,CAAC,CAAC62B;eACf;AAAA,YAAA,CAAC,CAAC;YACHG,eAAe,EAAET,YAAY,CAACC,OAAO,CAAC57B,MAAM,GAAG27B,YAAY,CAACQ,UAAU,CAACn8B,MAAM;AAC7Eq8B,YAAAA,UAAU,EAAExb,aAAa,CACrB8a,YAAY,CAACC,OAAO,CAACU,MAAM,CAAC,UAACC,GAAG,EAAEn3B,CAAC,EAAA;AAAA,cAAA,OAAKm3B,GAAG,GAAGn3B,CAAC,CAAC02B,cAAc;AAAA,YAAA,CAAA,EAAE,CAAC,CAAC,GAClEH,YAAY,CAACQ,UAAU,CAACG,MAAM,CAAC,UAACC,GAAG,EAAEn3B,CAAC,EAAA;AAAA,cAAA,OAAKm3B,GAAG,GAAGn3B,CAAC,CAAC02B,cAAc;AAAA,YAAA,CAAA,EAAE,CAAC,CACxE;WACH,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA7sB,QAAA,CAAA;EAAA,CACJ,CAAA,CAAA;AAAA,EAAA,OAAAysB,cAAA,CAAAh3B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;;;;;;;;;;;;AC7RD;AACA;AACA;AACA;AACA;AACA,SAAsBy8B,cAAcA,CAAAz2B,EAAA,EAAA;AAAA,EAAA,OAAA02B,eAAA,CAAA/3B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKpC;AACA;AACA;AACA;AACA;AAJA,SAAA08B,eAAAA,GAAA;EAAAA,eAAA,GAAA93B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAA6E,OAAAA,CAA8BoD,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAjF,CAAA;AAAA,QAAA,KAAA,CAAA;AACvCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAxR,QAAA,CAAAhF,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACta,SAAS,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAArF,OAAA,CAAA;EAAA,CACxB,CAAA,CAAA;AAAA,EAAA,OAAA+yB,eAAA,CAAA/3B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsB28B,eAAeA,CAAAzqB,GAAA,EAAA;AAAA,EAAA,OAAA0qB,gBAAA,CAAAj4B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKrC;AACA;AACA;AACA;AACA;AAJA,SAAA48B,gBAAAA,GAAA;EAAAA,gBAAA,GAAAh4B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAAoG,QAAAA,CAA+B6B,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,CAAA;AAAA,QAAA,KAAA,CAAA;AACxCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAzQ,SAAA,CAAA/F,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACla,UAAU,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAlE,QAAA,CAAA;EAAA,CACzB,CAAA,CAAA;AAAA,EAAA,OAAA0xB,gBAAA,CAAAj4B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsB4P,cAAcA,CAAA2C,GAAA,EAAA;AAAA,EAAA,OAAA9C,eAAA,CAAA9K,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKpC;AACA;AACA;AACA;AACA;AAJA,SAAAyP,eAAAA,GAAA;EAAAA,eAAA,GAAA7K,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAAwG,QAAAA,CAA8ByB,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,QAAA,KAAA,CAAA;AACvCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAArQ,SAAA,CAAAnG,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAAC1Z,cAAc,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAtE,QAAA,CAAA;EAAA,CAC7B,CAAA,CAAA;AAAA,EAAA,OAAAmE,eAAA,CAAA9K,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsBwP,OAAOA,CAAAsD,GAAA,EAAA;AAAA,EAAA,OAAAzD,QAAA,CAAA1K,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAK7B;AACA;AACA;AACA;AACA;AAJA,SAAAqP,QAAAA,GAAA;EAAAA,QAAA,GAAAzK,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAAgI,QAAAA,CAAuBC,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoI,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjI,CAAA;AAAA,QAAA,KAAA,CAAA;AAChCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAxO,SAAA,CAAAhI,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAAC9Z,OAAO,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA1C,QAAA,CAAA;EAAA,CACtB,CAAA,CAAA;AAAA,EAAA,OAAAuC,QAAA,CAAA1K,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsBgQ,YAAYA,CAAA+C,GAAA,EAAA;AAAA,EAAA,OAAAlD,aAAA,CAAAlL,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKlC;AACA;AACA;AACA;AACA;AAJA,SAAA6P,aAAAA,GAAA;EAAAA,aAAA,GAAAjL,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAAmJ,QAAAA,CAA4BlB,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoJ,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjJ,CAAA;AAAA,QAAA,KAAA,CAAA;AACrCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAxN,SAAA,CAAAhJ,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACtZ,YAAY,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA/B,QAAA,CAAA;EAAA,CAC3B,CAAA,CAAA;AAAA,EAAA,OAAA4B,aAAA,CAAAlL,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsBoQ,kBAAkBA,CAAAoE,GAAA,EAAA;AAAA,EAAA,OAAAvE,mBAAA,CAAAtL,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKxC;AACA;AACA;AACA;AACA;AAJA,SAAAiQ,mBAAAA,GAAA;EAAAA,mBAAA,GAAArL,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAAyI,QAAAA,CAAkCR,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA8I,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA3I,CAAA;AAAA,QAAA,KAAA,CAAA;AAC3CmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAA9N,SAAA,CAAA1I,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAAClZ,kBAAkB,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA7C,QAAA,CAAA;EAAA,CACjC,CAAA,CAAA;AAAA,EAAA,OAAA0C,mBAAA,CAAAtL,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsBqN,cAAcA,CAAAoH,GAAA,EAAA;AAAA,EAAA,OAAApE,eAAA,CAAA1L,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKpC;AACA;AACA;AACA;AACA;AAJA,SAAAqQ,eAAAA,GAAA;EAAAA,eAAA,GAAAzL,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAAoK,QAAAA,CAA8BnC,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmK,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhK,CAAA;AAAA,QAAA,KAAA,CAAA;AACvCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAzM,SAAA,CAAA/J,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACjc,cAAc,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA6B,QAAA,CAAA;EAAA,CAC7B,CAAA,CAAA;AAAA,EAAA,OAAAmB,eAAA,CAAA1L,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsB2Q,SAASA,CAAAwE,GAAA,EAAA;AAAA,EAAA,OAAA3E,UAAA,CAAA7L,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAK/B;AACA;AACA;AACA;AACA;AACA;AALA,SAAAwQ,UAAAA,GAAA;EAAAA,UAAA,GAAA5L,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAAwK,QAAAA,CAAyBvC,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuK,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApK,CAAA;AAAA,QAAA,KAAA,CAAA;AAClCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAArM,SAAA,CAAAnK,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAAC3Y,SAAS,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAArB,QAAA,CAAA;EAAA,CACxB,CAAA,CAAA;AAAA,EAAA,OAAAkB,UAAA,CAAA7L,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAQD,SAAsB+Z,iCAAiCA,GAAA;AAAA,EAAA,OAAAJ,kCAAA,CAAAhV,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKvD;AACA;AACA;AACA;AACA;AAJA,SAAA2Z,kCAAAA,GAAA;EAAAA,kCAAA,GAAA/U,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAA4K,QAAAA,GAAA;AAAA,IAAA,IAAAmK,QAAA;MAAA9M,UAAA;MAAAuc,IAAA;AAAAV,MAAAA,MAAA,GAAA5oB,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA2K,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAxK,CAAA;AAAA,QAAA,KAAA,CAAA;UAAiD0U,QAAQ,GAAA+O,MAAA,CAAA3oB,MAAA,GAAA,CAAA,IAAA2oB,MAAA,CAAA,CAAA,CAAA,KAAA1oB,SAAA,GAAA0oB,MAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAAE7b,UAAAA,UAAU,GAAA6b,MAAA,CAAA3oB,MAAA,GAAA,CAAA,GAAA2oB,MAAA,MAAA1oB,SAAA;AACxEopB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAjM,SAAA,CAAAvK,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACvP,iCAAiC,CAACF,QAAQ,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAnK,QAAA,CAAA;EAAA,CACxD,CAAA,CAAA;AAAA,EAAA,OAAAiK,kCAAA,CAAAhV,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsB+Q,eAAeA,CAAAqE,GAAA,EAAA;AAAA,EAAA,OAAAxE,gBAAA,CAAAjM,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKrC;AACA;AACA;AACA;AACA;AAJA,SAAA4Q,gBAAAA,GAAA;EAAAA,gBAAA,GAAAhM,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAAgL,QAAAA,CAA+B/C,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA+K,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA5K,CAAA;AAAA,QAAA,KAAA,CAAA;AACxCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAA7L,SAAA,CAAA3K,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACvY,eAAe,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAjB,QAAA,CAAA;EAAA,CAC9B,CAAA,CAAA;AAAA,EAAA,OAAAc,gBAAA,CAAAjM,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsBmR,eAAeA,CAAAuE,GAAA,EAAA;AAAA,EAAA,OAAA1E,gBAAA,CAAArM,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKrC;AACA;AACA;AACA;AACA;AAJA,SAAAgR,gBAAAA,GAAA;EAAAA,gBAAA,GAAApM,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAAoL,QAAAA,CAA+BnD,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmL,SAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhL,CAAA;AAAA,QAAA,KAAA,CAAA;AACxCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAzL,SAAA,CAAA/K,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACnY,eAAe,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAjB,QAAA,CAAA;EAAA,CAC9B,CAAA,CAAA;AAAA,EAAA,OAAAc,gBAAA,CAAArM,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsBuR,mBAAmBA,CAAAwE,GAAA,EAAA;AAAA,EAAA,OAAA3E,oBAAA,CAAAzM,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKzC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAoR,oBAAAA,GAAA;EAAAA,oBAAA,GAAAxM,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAAwL,SAAAA,CAAmCvD,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuL,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAApL,CAAA;AAAA,QAAA,KAAA,CAAA;AAC5CmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAArL,UAAA,CAAAnL,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAAC/X,mBAAmB,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAjB,SAAA,CAAA;EAAA,CAClC,CAAA,CAAA;AAAA,EAAA,OAAAc,oBAAA,CAAAzM,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AASD,SAAsB8R,QAAQA,CAAAuE,IAAA,EAAA;AAAA,EAAA,OAAA7E,SAAA,CAAA7M,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAK9B;AACA;AACA;AACA;AACA;AACA;AALA,SAAAwR,SAAAA,GAAA;EAAAA,SAAA,GAAA5M,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAA2L,SAAAA,CAAwBiB,IAAI,EAAA;AAAA,IAAA,IAAAhK,OAAA;MAAAqF,UAAA;MAAAuc,IAAA;AAAAuT,MAAAA,OAAA,GAAA78B,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA0L,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAvL,CAAA;AAAA,QAAA,KAAA,CAAA;AAAEuC,UAAAA,OAAO,GAAAm1B,OAAA,CAAA58B,MAAA,GAAA,CAAA,IAAA48B,OAAA,CAAA,CAAA,CAAA,KAAA38B,SAAA,GAAA28B,OAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAE9vB,UAAAA,UAAU,GAAA8vB,OAAA,CAAA58B,MAAA,GAAA,CAAA,GAAA48B,OAAA,MAAA38B,SAAA;AACrDopB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAlL,UAAA,CAAAtL,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACxX,QAAQ,CAACJ,IAAI,EAAEhK,OAAO,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA+I,SAAA,CAAA;EAAA,CACpC,CAAA,CAAA;AAAA,EAAA,OAAAe,SAAA,CAAA7M,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAQD,SAAsBsS,YAAYA,CAAAqE,IAAA,EAAAY,IAAA,EAAA;AAAA,EAAA,OAAApF,aAAA,CAAAxN,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKlC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAmS,aAAAA,GAAA;EAAAA,aAAA,GAAAvN,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CALO,SAAA+L,SAAAA,CAA4Ba,IAAI,EAAE3E,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA8L,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA3L,CAAA;AAAA,QAAA,KAAA,CAAA;AAC3CmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAA9K,UAAA,CAAA1L,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAAChX,YAAY,CAACZ,IAAI,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAb,SAAA,CAAA;EAAA,CAC/B,CAAA,CAAA;AAAA,EAAA,OAAAsB,aAAA,CAAAxN,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AASD,SAAsB6S,SAASA,CAAAmF,IAAA,EAAAW,IAAA,EAAAC,IAAA,EAAA;AAAA,EAAA,OAAApG,UAAA,CAAA7N,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAK/B;AACA;AACA;AACA;AACA;AACA;AALA,SAAAwS,UAAAA,GAAA;AAAAA,EAAAA,UAAA,GAAA5N,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CALO,SAAAmM,SAAAA,CAAyByB,SAAS,EAAEC,OAAO,EAAE5F,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAkM,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA/L,CAAA;AAAA,QAAA,KAAA,CAAA;AACtDmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAA1K,UAAA,CAAA9L,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACzW,SAAS,CAACH,SAAS,EAAEC,OAAO,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAA1B,SAAA,CAAA;EAAA,CAC1C,CAAA,CAAA;AAAA,EAAA,OAAAuB,UAAA,CAAA7N,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAQD,SAAsByT,2BAA2BA,GAAA;AAAA,EAAA,OAAAL,4BAAA,CAAAzO,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKjD;AACA;AACA;AACA;AACA;AAJA,SAAAoT,4BAAAA,GAAA;EAAAA,4BAAA,GAAAxO,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAAuM,SAAAA,GAAA;AAAA,IAAA,IAAAiC,KAAA;MAAAvG,UAAA;MAAAuc,IAAA;AAAAwT,MAAAA,OAAA,GAAA98B,SAAA;AAAA,IAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAsM,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAnM,CAAA;AAAA,QAAA,KAAA,CAAA;UAA2CmO,KAAK,GAAAwpB,OAAA,CAAA78B,MAAA,GAAA,CAAA,IAAA68B,OAAA,CAAA,CAAA,CAAA,KAAA58B,SAAA,GAAA48B,OAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAAE/vB,UAAAA,UAAU,GAAA+vB,OAAA,CAAA78B,MAAA,GAAA,CAAA,GAAA68B,OAAA,MAAA58B,SAAA;AAC/DopB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAtK,UAAA,CAAAlM,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAAC7V,2BAA2B,CAACH,KAAK,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAjC,SAAA,CAAA;EAAA,CAC/C,CAAA,CAAA;AAAA,EAAA,OAAA+B,4BAAA,CAAAzO,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsB6T,gBAAgBA,CAAAoF,IAAA,EAAA;AAAA,EAAA,OAAAvF,iBAAA,CAAA/O,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKtC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAA0T,iBAAAA,GAAA;EAAAA,iBAAA,GAAA9O,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAA2M,SAAAA,CAAgC1E,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA4M,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAzM,CAAA;AAAA,QAAA,KAAA,CAAA;AACzCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAhK,UAAA,CAAAxM,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACzV,gBAAgB,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAApC,SAAA,CAAA;EAAA,CAC/B,CAAA,CAAA;AAAA,EAAA,OAAAiC,iBAAA,CAAA/O,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AASD,SAAsBkV,cAAcA,CAAAwE,IAAA,EAAAM,IAAA,EAAAY,IAAA,EAAA;AAAA,EAAA,OAAAlG,eAAA,CAAA/P,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKpC;AACA;AACA;AACA;AACA;AAJA,SAAA0U,eAAAA,GAAA;AAAAA,EAAAA,eAAA,GAAA9P,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CALO,SAAAsN,SAAAA,CAA8BrP,OAAO,EAAE6R,SAAS,EAAE7H,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAqN,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAlN,CAAA;AAAA,QAAA,KAAA,CAAA;AAC3DmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAvJ,UAAA,CAAAjN,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACpU,cAAc,CAACnS,OAAO,EAAE6R,SAAS,CAAC,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAxC,SAAA,CAAA;EAAA,CAC/C,CAAA,CAAA;AAAA,EAAA,OAAAsC,eAAA,CAAA/P,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsBqJ,eAAeA,CAAA+R,IAAA,EAAA;AAAA,EAAA,OAAAvO,gBAAA,CAAAlI,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;AAKrC;AACA;AACA;AACA;AACA;AAJA,SAAA6M,gBAAAA,GAAA;EAAAA,gBAAA,GAAAjI,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CALO,SAAA2N,SAAAA,CAA+B1F,UAAU,EAAA;AAAA,IAAA,IAAAuc,IAAA;AAAA,IAAA,OAAAzkB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAA4N,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAAzN,CAAA;AAAA,QAAA,KAAA,CAAA;AACxCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;UAAA,OAAAhJ,UAAA,CAAAxN,CAAA,CAAA,CAAA,EAC1CkkB,IAAI,CAACjgB,eAAe,EAAE,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAoJ,SAAA,CAAA;EAAA,CAC9B,CAAA,CAAA;AAAA,EAAA,OAAA5F,gBAAA,CAAAlI,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AAOD,SAAsB+8B,cAAcA,CAAAhhB,IAAA,EAAA;AAAA,EAAA,OAAAihB,eAAA,CAAAr4B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;AA8BnC,SAAAg9B,eAAAA,GAAA;EAAAA,eAAA,GAAAp4B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CA9BM,SAAAmO,SAAAA,CAA8BlG,UAAU,EAAA;IAAA,IAAAkwB,aAAA,EAAAC,cAAA;AAAA,IAAA,IAAA5T,IAAA,EAAA6T,kBAAA,EAAAC,mBAAA,EAAAC,MAAA,EAAAvM,OAAA,EAAAwM,SAAA,EAAApG,MAAA;AAAA,IAAA,OAAAryB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAkO,UAAA,EAAA;MAAA,OAAA,CAAA,EAAA,QAAAA,UAAA,CAAA/N,CAAA;AAAA,QAAA,KAAA,CAAA;AACvCmkB,UAAAA,IAAI,GAAGvc,UAAU,IAAI6O,oBAAoB,EAAE;AAAA1I,UAAAA,UAAA,CAAA/N,CAAA,GAAA,CAAA;UAAA,OAEE+B,OAAO,CAAC6wB,GAAG,CAAC,CAC7DzO,IAAI,CAACta,SAAS,EAAE,CAAA,OAAA,CAAM,CAAC,YAAA;AAAA,YAAA,OAAM,SAAS;AAAA,UAAA,CAAA,CAAC,EACvCsa,IAAI,CAACla,UAAU,EAAE,SAAM,CAAC,YAAA;AAAA,YAAA,OAAO,EAAE;UAAA,CAAC,CAAC,EACnCka,IAAI,CAACtZ,YAAY,EAAE,SAAM,CAAC,YAAA;AAAA,YAAA,OAAO,EAAE;UAAA,CAAC,CAAC,EACrCsZ,IAAI,CAAC3Y,SAAS,EAAE,SAAM,CAAC,YAAA;YAAA,OAAO;AAAE9P,cAAAA,KAAK,EAAE;aAAI;UAAA,CAAC,CAAC,CAC9C,CAAC;AAAA,QAAA,KAAA,CAAA;UAAAs8B,kBAAA,GAAAjqB,UAAA,CAAA7N,CAAA;UAAA+3B,mBAAA,GAAApN,cAAA,CAAAmN,kBAAA,EAAA,CAAA,CAAA;AALKE,UAAAA,MAAM,GAAAD,mBAAA,CAAA,CAAA,CAAA;AAAEtM,UAAAA,OAAO,GAAAsM,mBAAA,CAAA,CAAA,CAAA;AAAEE,UAAAA,SAAS,GAAAF,mBAAA,CAAA,CAAA,CAAA;AAAElG,UAAAA,MAAM,GAAAkG,mBAAA,CAAA,CAAA,CAAA;UAAA,OAAAlqB,UAAA,CAAA9N,CAAA,CAAA,CAAA,EAOlC;AACLi4B,YAAAA,MAAM,EAANA,MAAM;YACNt7B,OAAO,EAAEunB,IAAI,CAACvnB,OAAO;YACrBN,QAAQ,EAAE6nB,IAAI,CAAC7nB,QAAQ;YACvBqvB,OAAO,EAAEA,OAAO,CAAC,WAAW,CAAC,IAAIA,OAAO,CAAC,aAAa,CAAC,IAAI,SAAS;AACpEyM,YAAAA,UAAU,EAAEzM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;YACvC7c,KAAK,EAAEqpB,SAAS,CAACrpB,KAAK;YACtBupB,WAAW,EAAEF,SAAS,CAACE,WAAW;YAClC9rB,IAAI,EAAE4rB,SAAS,CAACG,YAAY;YAC5BC,YAAY,EAAEJ,SAAS,CAACK,YAAY,MAAA17B,MAAA,CAC7B,CAAEq7B,SAAS,CAACM,SAAS,GAAGN,SAAS,CAACK,YAAY,GAAI,GAAG,EAAE1c,OAAO,CAAC,CAAC,CAAC,EAAA,GAAA,CAAA,GACpE,KAAK;YACT4c,cAAc,EAAE,CAAAZ,aAAA,GAAA/F,MAAM,CAACr2B,KAAK,MAAA,IAAA,IAAAo8B,aAAA,KAAA,MAAA,IAAZA,aAAA,CAAca,KAAK,GAC/Bhd,aAAa,CAACoW,MAAM,CAACr2B,KAAK,CAACi9B,KAAK,CAAC,GACjC,CAAC;YACLC,cAAc,EAAE,CAAAb,cAAA,GAAAhG,MAAM,CAACr2B,KAAK,MAAA,IAAA,IAAAq8B,cAAA,KAAA,MAAA,IAAZA,cAAA,CAAcc,WAAW,GACrCld,aAAa,CAACoW,MAAM,CAACr2B,KAAK,CAACm9B,WAAW,CAAC,GACvC,CAAC;AACLC,YAAAA,gBAAgB,EAAEX,SAAS,CAACW,gBAAgB,IAAI;WACjD,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAhrB,SAAA,CAAA;EAAA,CACF,CAAA,CAAA;AAAA,EAAA,OAAA+pB,eAAA,CAAAr4B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA;;ACzND;AACA;AACA;AACA,IAAak+B,gBAAgB,gBAAA,YAAA;AACzB;AACJ;AACA;EACI,SAAAA,gBAAAA,CAAYnxB,UAAU,EAAE;AAAA3M,IAAAA,eAAA,OAAA89B,gBAAA,CAAA;IACpB,IAAI,CAACj1B,WAAW,GAAG8D,UAAU;AAC7B;AACA,IAAA,IAAI,CAACoxB,cAAc,GAAG,IAAIC,GAAG,EAAE;IAC/B,IAAI,CAACC,OAAO,GAAG,CAAC;AACpB,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAPI,OAAA19B,YAAA,CAAAu9B,gBAAA,EAAA,CAAA;IAAAt9B,GAAA,EAAA,iBAAA;AAAAC,IAAAA,KAAA,EAQA,SAAAy9B,eAAeA,CAACv7B,OAAO,EAAEw7B,QAAQ,EAA4B;AAAA,MAAA,IAA1Bx/B,UAAU,GAAAiB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,WAAW;AACvD,MAAA,IAAM+U,MAAM,GAAG,IAAIZ,iBAAS,CAACpR,OAAO,CAAC;AACrC,MAAA,IAAMoZ,GAAG,GAAG,IAAI,CAAClT,WAAW,CAACkT,GAAG;AAEhC,MAAA,IAAMqiB,IAAI,GAAGriB,GAAG,CAACmiB,eAAe,CAC5BvpB,MAAM,EACN,UAAC0pB,WAAW,EAAEtmB,OAAO,EAAK;AAAA,QAAA,IAAAumB,iBAAA;AACtBH,QAAAA,QAAQ,CAAC;AACLx7B,UAAAA,OAAO,EAAPA,OAAO;UACPiS,QAAQ,EAAEypB,WAAW,CAACzpB,QAAQ;AAC9BmF,UAAAA,KAAK,EAAEskB,WAAW,CAACtkB,KAAK,CAACO,QAAQ,EAAE;AACnCb,UAAAA,QAAQ,EAAE,CAAA,CAAA6kB,iBAAA,GAAAD,WAAW,CAACtwB,IAAI,MAAA,IAAA,IAAAuwB,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,iBAAA,CAAkBz+B,MAAM,KAAI,CAAC;UACvCi2B,UAAU,EAAEuI,WAAW,CAACvI,UAAU;UAClCC,SAAS,EAAEsI,WAAW,CAACtI,SAAS;UAChCzkB,IAAI,EAAEyG,OAAO,CAACzG;SACjB,EAAEyG,OAAO,CAAC;MACf,CAAC,EACDpZ,UACJ,CAAC;AAED,MAAA,IAAM4P,EAAE,GAAG,IAAI,CAAC0vB,OAAO,EAAE;AACzB,MAAA,IAAI,CAACF,cAAc,CAACQ,GAAG,CAAChwB,EAAE,EAAE;AACxBiwB,QAAAA,IAAI,EAAE,eAAe;AACrB77B,QAAAA,OAAO,EAAPA,OAAO;AACPy7B,QAAAA,IAAI,EAAJA,IAAI;QACJK,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,UAAA,OAAQ1iB,GAAG,CAAC2iB,2BAA2B,CAACN,IAAI,CAAC;AAAA,QAAA;AACxD,OAAC,CAAC;AAEF,MAAA,OAAO7vB,EAAE;AACb,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AAPI,GAAA,EAAA;IAAA/N,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAQA,SAAAk+B,aAAaA,CAACvkB,SAAS,EAAE+jB,QAAQ,EAA4B;AAAA,MAAA,IAA1Bx/B,UAAU,GAAAiB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,WAAW;AACvD,MAAA,IAAMmc,GAAG,GAAG,IAAI,CAAClT,WAAW,CAACkT,GAAG;AAEhC,MAAA,IAAMqiB,IAAI,GAAGriB,GAAG,CAAC6iB,MAAM,CACnB,IAAI7qB,iBAAS,CAACqG,SAAS,CAAC,EACxB,UAACjY,IAAI,EAAE4V,OAAO,EAAK;AACfomB,QAAAA,QAAQ,CAAC;AACL/jB,UAAAA,SAAS,EAATA,SAAS;UACTlY,SAAS,EAAEC,IAAI,CAACD,SAAS;UACzBgH,GAAG,EAAE/G,IAAI,CAAC+G,GAAG;UACb/G,IAAI,EAAEA,IAAI,CAACA,IAAI;UACfmP,IAAI,EAAEyG,OAAO,CAACzG;SACjB,EAAEyG,OAAO,CAAC;MACf,CAAC,EACDpZ,UACJ,CAAC;AAED,MAAA,IAAM4P,EAAE,GAAG,IAAI,CAAC0vB,OAAO,EAAE;AACzB,MAAA,IAAI,CAACF,cAAc,CAACQ,GAAG,CAAChwB,EAAE,EAAE;AACxBiwB,QAAAA,IAAI,EAAE,aAAa;AACnBpkB,QAAAA,SAAS,EAATA,SAAS;AACTgkB,QAAAA,IAAI,EAAJA,IAAI;QACJK,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,UAAA,OAAQ1iB,GAAG,CAAC8iB,oBAAoB,CAACT,IAAI,CAAC;AAAA,QAAA;AACjD,OAAC,CAAC;AAEF,MAAA,OAAO7vB,EAAE;AACb,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AANI,GAAA,EAAA;IAAA/N,GAAA,EAAA,WAAA;AAAAC,IAAAA,KAAA,EAOA,SAAAq+B,SAASA,CAACX,QAAQ,EAA4B;AAAA,MAAA,IAA1Bx/B,UAAU,GAAAiB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,WAAW;AACxC,MAAA,IAAMmc,GAAG,GAAG,IAAI,CAAClT,WAAW,CAACkT,GAAG;AAEhC,MAAA,IAAMqiB,IAAI,GAAGriB,GAAG,CAAC6iB,MAAM,CACnB,KAAK,EACL,UAACz8B,IAAI,EAAE4V,OAAO,EAAK;AACfomB,QAAAA,QAAQ,CAAC;UACLj8B,SAAS,EAAEC,IAAI,CAACD,SAAS;UACzBgH,GAAG,EAAE/G,IAAI,CAAC+G,GAAG;UACb/G,IAAI,EAAEA,IAAI,CAACA,IAAI;UACfmP,IAAI,EAAEyG,OAAO,CAACzG;SACjB,EAAEyG,OAAO,CAAC;MACf,CAAC,EACDpZ,UACJ,CAAC;AAED,MAAA,IAAM4P,EAAE,GAAG,IAAI,CAAC0vB,OAAO,EAAE;AACzB,MAAA,IAAI,CAACF,cAAc,CAACQ,GAAG,CAAChwB,EAAE,EAAE;AACxBiwB,QAAAA,IAAI,EAAE,SAAS;AACfJ,QAAAA,IAAI,EAAJA,IAAI;QACJK,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,UAAA,OAAQ1iB,GAAG,CAAC8iB,oBAAoB,CAACT,IAAI,CAAC;AAAA,QAAA;AACjD,OAAC,CAAC;AAEF,MAAA,OAAO7vB,EAAE;AACb,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AALI,GAAA,EAAA;IAAA/N,GAAA,EAAA,cAAA;AAAAC,IAAAA,KAAA,EAMA,SAAAs+B,YAAYA,CAACZ,QAAQ,EAAE;AACnB,MAAA,IAAMpiB,GAAG,GAAG,IAAI,CAAClT,WAAW,CAACkT,GAAG;MAEhC,IAAMqiB,IAAI,GAAGriB,GAAG,CAACgjB,YAAY,CAAC,UAACC,QAAQ,EAAK;AACxCb,QAAAA,QAAQ,CAAC;UACL7sB,IAAI,EAAE0tB,QAAQ,CAAC1tB,IAAI;UACnB2tB,MAAM,EAAED,QAAQ,CAACC,MAAM;UACvBC,IAAI,EAAEF,QAAQ,CAACE;AACnB,SAAC,CAAC;AACN,MAAA,CAAC,CAAC;AAEF,MAAA,IAAM3wB,EAAE,GAAG,IAAI,CAAC0vB,OAAO,EAAE;AACzB,MAAA,IAAI,CAACF,cAAc,CAACQ,GAAG,CAAChwB,EAAE,EAAE;AACxBiwB,QAAAA,IAAI,EAAE,YAAY;AAClBJ,QAAAA,IAAI,EAAJA,IAAI;QACJK,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,UAAA,OAAQ1iB,GAAG,CAACojB,wBAAwB,CAACf,IAAI,CAAC;AAAA,QAAA;AACrD,OAAC,CAAC;AAEF,MAAA,OAAO7vB,EAAE;AACb,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AAPI,GAAA,EAAA;IAAA/N,GAAA,EAAA,aAAA;AAAAC,IAAAA,KAAA,EAQA,SAAA2+B,WAAWA,CAACl9B,SAAS,EAAEi8B,QAAQ,EAA4B;AAAA,MAAA,IAAAz+B,KAAA,GAAA,IAAA;AAAA,MAAA,IAA1Bf,UAAU,GAAAiB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,WAAW;AACrD,MAAA,IAAMmc,GAAG,GAAG,IAAI,CAAClT,WAAW,CAACkT,GAAG;AAChC,MAAA,IAAMxN,EAAE,GAAG,IAAI,CAAC0vB,OAAO,EAAE;AAEzB,MAAA,IAAMG,IAAI,GAAGriB,GAAG,CAACqjB,WAAW,CACxBl9B,SAAS,EACT,UAACqL,MAAM,EAAEwK,OAAO,EAAK;AACjBomB,QAAAA,QAAQ,CAAC;AACLj8B,UAAAA,SAAS,EAATA,SAAS;UACTgH,GAAG,EAAEqE,MAAM,CAACrE,GAAG;AACfmrB,UAAAA,SAAS,EAAE,CAAC9mB,MAAM,CAACrE,GAAG;UACtBoI,IAAI,EAAEyG,OAAO,CAACzG;SACjB,EAAEyG,OAAO,CAAC;;AAEX;AACArY,QAAAA,KAAI,CAACoK,WAAW,CAACyE,EAAE,CAAC;MACxB,CAAC,EACD5P,UACJ,CAAC;AAED,MAAA,IAAI,CAACo/B,cAAc,CAACQ,GAAG,CAAChwB,EAAE,EAAE;AACxBiwB,QAAAA,IAAI,EAAE,WAAW;AACjBt8B,QAAAA,SAAS,EAATA,SAAS;AACTk8B,QAAAA,IAAI,EAAJA,IAAI;QACJK,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,UAAA,OAAQ1iB,GAAG,CAACsjB,uBAAuB,CAACjB,IAAI,CAAC;AAAA,QAAA;AACpD,OAAC,CAAC;AAEF,MAAA,OAAO7vB,EAAE;AACb,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AALI,GAAA,EAAA;IAAA/N,GAAA,EAAA,cAAA;AAAAC,IAAAA,KAAA,EAMA,SAAA6+B,YAAYA,CAACnB,QAAQ,EAAE;AACnB,MAAA,IAAMpiB,GAAG,GAAG,IAAI,CAAClT,WAAW,CAACkT,GAAG;MAEhC,IAAMqiB,IAAI,GAAGriB,GAAG,CAACujB,YAAY,CAAC,UAACJ,IAAI,EAAK;AACpCf,QAAAA,QAAQ,CAAC;AAAEe,UAAAA,IAAI,EAAJA;AAAK,SAAC,CAAC;AACtB,MAAA,CAAC,CAAC;AAEF,MAAA,IAAM3wB,EAAE,GAAG,IAAI,CAAC0vB,OAAO,EAAE;AACzB,MAAA,IAAI,CAACF,cAAc,CAACQ,GAAG,CAAChwB,EAAE,EAAE;AACxBiwB,QAAAA,IAAI,EAAE,YAAY;AAClBJ,QAAAA,IAAI,EAAJA,IAAI;QACJK,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,UAAA,OAAQ1iB,GAAG,CAACwjB,wBAAwB,CAACnB,IAAI,CAAC;AAAA,QAAA;AACrD,OAAC,CAAC;AAEF,MAAA,OAAO7vB,EAAE;AACb,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AAJI,GAAA,EAAA;IAAA/N,GAAA,EAAA,aAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAqJ,WAAWA,CAAC01B,cAAc,EAAE;MACxB,IAAMC,GAAG,GAAG,IAAI,CAAC1B,cAAc,CAAClyB,GAAG,CAAC2zB,cAAc,CAAC;AACnD,MAAA,IAAI,CAACC,GAAG,EAAE,OAAO,KAAK;MAEtB,IAAI;QACAA,GAAG,CAAChB,OAAO,EAAE;MACjB,CAAC,CAAC,OAAAvyB,OAAA,EAAM;AACJ;AAAA,MAAA;AAEJ,MAAA,IAAI,CAAC6xB,cAAc,CAAA,QAAA,CAAO,CAACyB,cAAc,CAAC;AAC1C,MAAA,OAAO,IAAI;AACf,IAAA;;AAEA;AACJ;AACA;AAFI,GAAA,EAAA;IAAAh/B,GAAA,EAAA,gBAAA;AAAAC,IAAAA,KAAA,EAGA,SAAAi/B,cAAcA,GAAG;AAAA,MAAA,IAAA1a,SAAA,GAAAC,0BAAA,CACM,IAAI,CAAC8Y,cAAc,CAAA;QAAA7Y,KAAA;AAAA,MAAA,IAAA;QAAtC,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAAjgB,CAAA,EAAA,EAAAqgB,IAAA,GAAwC;AAAA,UAAA,IAAAC,WAAA,GAAAuK,cAAA,CAAA1K,KAAA,CAAAzkB,KAAA,EAAA,CAAA,CAAA;AAA5B8N,YAAAA,EAAE,GAAA8W,WAAA,CAAA,CAAA,CAAA;AACV,UAAA,IAAI,CAACvb,WAAW,CAACyE,EAAE,CAAC;AACxB,QAAA;AAAC,MAAA,CAAA,CAAA,OAAArF,GAAA,EAAA;QAAA8b,SAAA,CAAAM,CAAA,CAAApc,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAA8b,QAAAA,SAAA,CAAArW,CAAA,EAAA;AAAA,MAAA;AACL,IAAA;;AAEA;AACJ;AACA;AACA;AAHI,GAAA,EAAA;IAAAnO,GAAA,EAAA,wBAAA;AAAAC,IAAAA,KAAA,EAIA,SAAAk/B,sBAAsBA,GAAG;AACrB,MAAA,OAAOzc,kBAAA,CAAI,IAAI,CAAC6a,cAAc,CAACtO,OAAO,EAAE,CAAA,CAAEvb,GAAG,CAAC,UAAAyb,IAAA,EAAA;AAAA,QAAA,IAAA3X,KAAA,GAAA4X,cAAA,CAAAD,IAAA,EAAA,CAAA,CAAA;AAAEphB,UAAAA,EAAE,GAAAyJ,KAAA,CAAA,CAAA,CAAA;AAAEynB,UAAAA,GAAG,GAAAznB,KAAA,CAAA,CAAA,CAAA;QAAA,OAAO;AAC1DzJ,UAAAA,EAAE,EAAFA,EAAE;UACFiwB,IAAI,EAAEiB,GAAG,CAACjB,IAAI;AACdoB,UAAAA,MAAM,EAAEH,GAAG,CAAC98B,OAAO,IAAI88B,GAAG,CAACrlB,SAAS,IAAIqlB,GAAG,CAACv9B,SAAS,IAAIpC;SAC5D;AAAA,MAAA,CAAC,CAAC;AACP,IAAA;;AAEA;AACJ;AACA;AAFI,GAAA,EAAA;IAAAU,GAAA,EAAA,aAAA;IAAAqL,GAAA,EAGA,SAAAA,GAAAA,GAAkB;AACd,MAAA,OAAO,IAAI,CAACkyB,cAAc,CAAC8B,IAAI;AACnC,IAAA;;AAEA;AACJ;AACA;AAFI,GAAA,EAAA;IAAAr/B,GAAA,EAAA,SAAA;AAAAC,IAAAA,KAAA,EAGA,SAAA2a,OAAOA,GAAG;MACN,IAAI,CAACskB,cAAc,EAAE;AACzB,IAAA;AAAC,GAAA,CAAA,CAAA;AAAA,CAAA;;AC3PL,IAAMI,cAAc,GAAG,CACnB;AACIn9B,EAAAA,OAAO,EAAE,QAAQ;AACjBo9B,EAAAA,MAAM,EAAE,KAAK;AACb7/B,EAAAA,IAAI,EAAE,MAAM;AACZ0gB,EAAAA,QAAQ,EAAE,CAAC;AACXof,EAAAA,IAAI,EAAE,GAAG;AACTC,EAAAA,QAAQ,EAAE,QAAQ;AAClBC,EAAAA,QAAQ,EAAE;AACd,CAAC,EACD;AACIv9B,EAAAA,OAAO,EAAE,6CAA6C;AACtDo9B,EAAAA,MAAM,EAAE,MAAM;AACd7/B,EAAAA,IAAI,EAAE,aAAa;AACnB0gB,EAAAA,QAAQ,EAAE,CAAC;AACXof,EAAAA,IAAI,EAAE,GAAG;AACTC,EAAAA,QAAQ,EAAE,SAAS;AACnBC,EAAAA,QAAQ,EAAE;AACd,CAAC,EACD;AACIv9B,EAAAA,OAAO,EAAE,8CAA8C;AACvDo9B,EAAAA,MAAM,EAAE,MAAM;AACd7/B,EAAAA,IAAI,EAAE,UAAU;AAChB0gB,EAAAA,QAAQ,EAAE,CAAC;AACXof,EAAAA,IAAI,EAAE,IAAI;AACVC,EAAAA,QAAQ,EAAE,YAAY;AACtBC,EAAAA,QAAQ,EAAE;AACd,CAAC,EACD;AACIv9B,EAAAA,OAAO,EAAE,8CAA8C;AACvDo9B,EAAAA,MAAM,EAAE,MAAM;AACd7/B,EAAAA,IAAI,EAAE,YAAY;AAClB0gB,EAAAA,QAAQ,EAAE,CAAC;AACXof,EAAAA,IAAI,EAAE,IAAI;AACVC,EAAAA,QAAQ,EAAE,YAAY;AACtBC,EAAAA,QAAQ,EAAE;AACd,CAAC,CACJ;;AAED;AACA;AACA;AACA,IAAaC,aAAa,gBAAA,YAAA;AACtB;AACJ;AACA;AACI,EAAA,SAAAA,gBAA+B;AAAA,IAAA,IAAnBxzB,UAAU,GAAA/M,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI;AAAAI,IAAAA,eAAA,OAAAmgC,aAAA,CAAA;IACzB,IAAI,CAACt3B,WAAW,GAAG8D,UAAU;AAC7B;AACA,IAAA,IAAI,CAACyzB,SAAS,GAAG,IAAIpC,GAAG,EAAE;AAC1B;AACA,IAAA,IAAI,CAACqC,UAAU,GAAG,IAAIrC,GAAG,EAAE;;AAE3B;AAAA,IAAA,IAAAhZ,SAAA,GAAAC,0BAAA,CACoB6a,cAAc,CAAA;MAAA5a,KAAA;AAAA,IAAA,IAAA;MAAlC,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAAjgB,CAAA,EAAA,EAAAqgB,IAAA,GAAoC;AAAA,QAAA,IAAzBkb,KAAK,GAAApb,KAAA,CAAAzkB,KAAA;AACZ,QAAA,IAAI,CAAC2/B,SAAS,CAAC7B,GAAG,CAAC+B,KAAK,CAAC39B,OAAO,EAAAM,cAAA,CAAA,EAAA,EAAOq9B,KAAK,CAAE,CAAC;AACnD,MAAA;AAAC,IAAA,CAAA,CAAA,OAAAp3B,GAAA,EAAA;MAAA8b,SAAA,CAAAM,CAAA,CAAApc,GAAA,CAAA;AAAA,IAAA,CAAA,SAAA;AAAA8b,MAAAA,SAAA,CAAArW,CAAA,EAAA;AAAA,IAAA;AACL,EAAA;;AAEA;AACJ;AACA;AACA;AACA;EAJI,OAAApO,YAAA,CAAA4/B,aAAA,EAAA,CAAA;IAAA3/B,GAAA,EAAA,UAAA;AAAAC,IAAAA,KAAA,EAKA,SAAA8/B,QAAQA,CAACv9B,WAAW,EAAE;MAClB,OAAO,IAAI,CAACo9B,SAAS,CAACv0B,GAAG,CAAC7I,WAAW,CAAC,IAAI,IAAI;AAClD,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AAJI,GAAA,EAAA;IAAAxC,GAAA,EAAA,cAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAA+/B,aAAA,GAAAh8B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAKA,SAAA6E,OAAAA,CAAmBvG,WAAW,EAAA;AAAA,QAAA,IAAAy9B,MAAA,EAAAC,OAAA,EAAAnzB,MAAA;AAAA,QAAA,OAAA9I,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAlF,CAAA,GAAAkF,QAAA,CAAAjF,CAAA;AAAA,YAAA,KAAA,CAAA;AAC1B;cACM07B,MAAM,GAAG,IAAI,CAACL,SAAS,CAACv0B,GAAG,CAAC7I,WAAW,CAAC;AAAA,cAAA,IAAA,CAC1Cy9B,MAAM,EAAA;AAAAz2B,gBAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,OAAAiF,QAAA,CAAAhF,CAAA,CAAA,CAAA,EAASy7B,MAAM,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,IAAA,CAGrB,IAAI,CAACJ,UAAU,CAACjd,GAAG,CAACpgB,WAAW,CAAC,EAAA;AAAAgH,gBAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cAAA,OAAAiF,QAAA,CAAAhF,CAAA,CAAA,CAAA,EACzB,IAAI,CAACq7B,UAAU,CAACx0B,GAAG,CAAC7I,WAAW,CAAC,CAAA;AAAA,YAAA,KAAA,CAAA;AAG3C;AACM09B,cAAAA,OAAO,GAAG,IAAI,CAACC,eAAe,CAAC39B,WAAW,CAAC;cACjD,IAAI,CAACq9B,UAAU,CAAC9B,GAAG,CAACv7B,WAAW,EAAE09B,OAAO,CAAC;AAAC12B,cAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;AAAAkF,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA,OAGjB27B,OAAO;AAAA,YAAA,KAAA,CAAA;cAAtBnzB,MAAM,GAAAvD,QAAA,CAAA/E,CAAA;AAAA,cAAA,OAAA+E,QAAA,CAAAhF,CAAA,CAAA,CAAA,EACLuI,MAAM,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAvD,cAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;AAEb,cAAA,IAAI,CAACu7B,UAAU,CAAA,QAAA,CAAO,CAACr9B,WAAW,CAAC;cAAC,OAAAgH,QAAA,CAAA2E,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;cAAA,OAAA3E,QAAA,CAAAhF,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAuE,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;MAAA,CAE3C,CAAA,CAAA;MAAA,SApBKq3B,YAAYA,CAAAh7B,EAAA,EAAA;AAAA,QAAA,OAAA46B,aAAA,CAAAj8B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAZghC,YAAY;AAAA,IAAA,CAAA;AAsBlB;AACJ;AACA;AACA;AACA;AAJI;AAAA,GAAA,EAAA;IAAApgC,GAAA,EAAA,aAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAogC,YAAA,GAAAr8B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAKA,SAAAwG,QAAAA,CAAkB41B,aAAa,EAAA;AAAA,QAAA,IAAAphC,KAAA,GAAA,IAAA;QAAA,IAAAqhC,OAAA,EAAAC,QAAA;AAAA,QAAA,OAAAv8B,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,YAAA,KAAA,CAAA;AACrBg8B,cAAAA,OAAO,GAAG,IAAI/C,GAAG,EAAE;cACnBgD,QAAQ,GAAGF,aAAa,CAAC5sB,GAAG,cAAA,YAAA;gBAAA,IAAAyb,IAAA,GAAAnrB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAAC,SAAAoG,QAAAA,CAAOm2B,IAAI,EAAA;AAAA,kBAAA,IAAAnO,IAAA;AAAA,kBAAA,OAAAruB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;oBAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,CAAA;AAAA,sBAAA,KAAA,CAAA;AAAAgG,wBAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,wBAAA,OACvBrF,KAAI,CAACkhC,YAAY,CAACK,IAAI,CAAC;AAAA,sBAAA,KAAA,CAAA;wBAApCnO,IAAI,GAAA/nB,SAAA,CAAA9F,CAAA;wBACV,IAAI6tB,IAAI,EAAEiO,OAAO,CAACxC,GAAG,CAAC0C,IAAI,EAAEnO,IAAI,CAAC;AAAC,sBAAA,KAAA,CAAA;wBAAA,OAAA/nB,SAAA,CAAA/F,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,kBAAA,CAAA,EAAA8F,QAAA,CAAA;gBAAA,CACrC,CAAA,CAAA;AAAA,gBAAA,OAAA,UAAAqH,GAAA,EAAA;AAAA,kBAAA,OAAAwd,IAAA,CAAAprB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,gBAAA,CAAA;cAAA,CAAA,EAAA,CAAC;AAAAuL,cAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,cAAA,OACI+B,OAAO,CAACo6B,UAAU,CAACF,QAAQ,CAAC;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAA71B,SAAA,CAAAnG,CAAA,CAAA,CAAA,EAC3B+7B,OAAO,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA71B,QAAA,CAAA;MAAA,CACjB,CAAA,CAAA;MAAA,SARKi2B,WAAWA,CAAArvB,GAAA,EAAA;AAAA,QAAA,OAAA+uB,YAAA,CAAAt8B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAXuhC,WAAW;AAAA,IAAA,CAAA;AAUjB;AACJ;AACA;AACA;AAHI;AAAA,GAAA,EAAA;IAAA3gC,GAAA,EAAA,UAAA;AAAAC,IAAAA,KAAA,EAIA,SAAA2gC,QAAQA,CAACC,SAAS,EAAE;MAChB,IAAI,CAACA,SAAS,CAAC1+B,OAAO,EAAE,MAAM,IAAIE,cAAc,CAAC,2BAA2B,CAAC;MAC7E,IAAI,CAACu9B,SAAS,CAAC7B,GAAG,CAAC8C,SAAS,CAAC1+B,OAAO,EAAAM,cAAA,CAAA;AAChC2d,QAAAA,QAAQ,EAAE,CAAC;AACXof,QAAAA,IAAI,EAAE,IAAI;AACVC,QAAAA,QAAQ,EAAE,SAAS;AACnBC,QAAAA,QAAQ,EAAE;OAAK,EACZmB,SAAS,CACf,CAAC;AACN,IAAA;;AAEA;AACJ;AACA;AACA;AAHI,GAAA,EAAA;IAAA7gC,GAAA,EAAA,cAAA;AAAAC,IAAAA,KAAA,EAIA,SAAA6gC,YAAYA,CAACC,MAAM,EAAE;AAAA,MAAA,IAAAxgC,MAAA,GAAA,IAAA;AACjBwgC,MAAAA,MAAM,CAAC3J,OAAO,CAAC,UAAA4J,CAAC,EAAA;AAAA,QAAA,OAAIzgC,MAAI,CAACqgC,QAAQ,CAACI,CAAC,CAAC;MAAA,CAAA,CAAC;AACzC,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AAJI,GAAA,EAAA;IAAAhhC,GAAA,EAAA,QAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAghC,MAAMA,GAAkB;AAAA,MAAA,IAAjBxB,QAAQ,GAAArgC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI;MAClB,IAAM+3B,GAAG,GAAAzU,kBAAA,CAAO,IAAI,CAACkd,SAAS,CAACsB,MAAM,EAAE,CAAC;MACxC,IAAIzB,QAAQ,EAAE,OAAOtI,GAAG,CAACjI,MAAM,CAAC,UAAA8R,CAAC,EAAA;AAAA,QAAA,OAAIA,CAAC,CAACvB,QAAQ,KAAKA,QAAQ;MAAA,CAAA,CAAC;AAC7D,MAAA,OAAOtI,GAAG;AACd,IAAA;;AAEA;AACJ;AACA;AACA;AAHI,GAAA,EAAA;IAAAn3B,GAAA,EAAA,aAAA;AAAAC,IAAAA,KAAA,EAIA,SAAAkhC,WAAWA,GAAG;AACV,MAAA,OAAOze,kBAAA,CAAI,IAAI,CAACkd,SAAS,CAACsB,MAAM,EAAE,CAAA,CAAEhS,MAAM,CAAC,UAAA8R,CAAC,EAAA;QAAA,OAAIA,CAAC,CAACtB,QAAQ;MAAA,CAAA,CAAC;AAC/D,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AAJI,GAAA,EAAA;IAAA1/B,GAAA,EAAA,QAAA;AAAAC,IAAAA,KAAA,EAKA,SAAAmhC,MAAMA,CAACC,KAAK,EAAE;AACV,MAAA,IAAMC,CAAC,GAAGD,KAAK,CAACE,WAAW,EAAE;AAC7B,MAAA,OAAO7e,kBAAA,CAAI,IAAI,CAACkd,SAAS,CAACsB,MAAM,EAAE,CAAA,CAAEhS,MAAM,CAAC,UAAA8R,CAAC,EAAA;AAAA,QAAA,OACxCA,CAAC,CAACzB,MAAM,CAACgC,WAAW,EAAE,CAACC,QAAQ,CAACF,CAAC,CAAC,IAClCN,CAAC,CAACthC,IAAI,CAAC6hC,WAAW,EAAE,CAACC,QAAQ,CAACF,CAAC,CAAC,IAChCN,CAAC,CAAC7+B,OAAO,CAACo/B,WAAW,EAAE,CAACC,QAAQ,CAACF,CAAC,CAAC;AAAA,MAAA,CACvC,CAAC;AACL,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AANI,GAAA,EAAA;IAAAthC,GAAA,EAAA,cAAA;AAAAC,IAAAA,KAAA,EAOA,SAAAwhC,YAAYA,CAACj/B,WAAW,EAAEk/B,SAAS,EAAuB;AAAA,MAAA,IAArBC,eAAe,GAAAviC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC;MACpD,IAAM0gC,KAAK,GAAG,IAAI,CAACF,SAAS,CAACv0B,GAAG,CAAC7I,WAAW,CAAC;MAC7C,IAAM4d,QAAQ,GAAG,CAAA0f,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAE1f,QAAQ,KAAI,CAAC;AACrC,MAAA,IAAMgD,MAAM,GAAGa,MAAM,CAACyd,SAAS,CAAC,GAAG78B,IAAI,CAACE,GAAG,CAAC,EAAE,EAAEqb,QAAQ,CAAC;AACzD,MAAA,OAAOgD,MAAM,CAAC/C,OAAO,CAACshB,eAAe,CAAC;AAC1C,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AALI,GAAA,EAAA;IAAA3hC,GAAA,EAAA,kBAAA;AAAAC,IAAAA,KAAA,EAMA,SAAA2hC,gBAAgBA,CAACp/B,WAAW,EAAEk/B,SAAS,EAAE;MACrC,IAAM5B,KAAK,GAAG,IAAI,CAACF,SAAS,CAACv0B,GAAG,CAAC7I,WAAW,CAAC;MAC7C,IAAMq/B,SAAS,GAAG,IAAI,CAACJ,YAAY,CAACj/B,WAAW,EAAEk/B,SAAS,CAAC;AAC3D,MAAA,OAAA,EAAA,CAAArgC,MAAA,CAAUwgC,SAAS,EAAA,GAAA,CAAA,CAAAxgC,MAAA,CAAI,CAAAy+B,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,MAAA,GAAA,MAAA,GAALA,KAAK,CAAEP,MAAM,KAAI,SAAS,CAAA;AACrD,IAAA;;AAEA;AACJ;AACA;AAFI,GAAA,EAAA;IAAAv/B,GAAA,EAAA,MAAA;IAAAqL,GAAA,EAGA,SAAAA,GAAAA,GAAW;AACP,MAAA,OAAO,IAAI,CAACu0B,SAAS,CAACP,IAAI;AAC9B,IAAA;;AAEA;;AAEA;AACJ;AACA;AACA;AAHI,GAAA,EAAA;IAAAr/B,GAAA,EAAA,iBAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAA6hC,gBAAA,GAAA99B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAIA,SAAAgI,QAAAA,CAAsB1J,WAAW,EAAA;QAAA,IAAA8Q,aAAA,EAAA4iB,gBAAA,CAAA,CAAAtgB,IAAA,CAAA,CAAAirB,SAAA;AAAA,QAAA,OAAA58B,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoI,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAlI,CAAA,GAAAkI,SAAA,CAAAjI,CAAA;AAAA,YAAA,KAAA,CAAA;cAAA,IACxB,IAAI,CAAC8D,WAAW,EAAA;AAAAmE,gBAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,OAAAiI,SAAA,CAAAhI,CAAA,CAAA,CAAA,EAAS,IAAI,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAgI,cAAAA,SAAA,CAAAlI,CAAA,GAAA,CAAA;AAAAkI,cAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;cAAA,OAIK,uDAAsB;AAAA,YAAA,KAAA,CAAA;cAAA+O,aAAA,GAAA9G,SAAA,CAAA/H,CAAA;cAAjDyxB,gBAAgB,GAAA5iB,aAAA,CAAhB4iB,gBAAgB;AAAA1pB,cAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,cAAA,OACL2xB,gBAAgB,CAAC1zB,WAAW,EAAE,IAAI,CAAC6F,WAAW,CAAC;AAAA,YAAA,KAAA,CAAA;cAA5DuN,IAAI,GAAApJ,SAAA,CAAA/H,CAAA;AAAA,cAAA,IAELmR,IAAI,EAAA;AAAApJ,gBAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAAA,OAAAiI,SAAA,CAAAhI,CAAA,CAAA,CAAA,EAAS,IAAI,CAAA;AAAA,YAAA,KAAA,CAAA;AAEhBq8B,cAAAA,SAAS,GAAG;AACd1+B,gBAAAA,OAAO,EAAEK,WAAW;gBACpB+8B,MAAM,EAAA,QAAA,CAAAl+B,MAAA,CAAWmB,WAAW,CAAClB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE;gBAC1C5B,IAAI,EAAA,iBAAA,CAAA2B,MAAA,CAAoBmB,WAAW,CAAClB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAA,MAAA,CAAM;gBACrD8e,QAAQ,EAAExK,IAAI,CAACwK,QAAQ;AACvBof,gBAAAA,IAAI,EAAE,IAAI;AACVC,gBAAAA,QAAQ,EAAE,SAAS;AACnBC,gBAAAA,QAAQ,EAAE,KAAK;gBACftW,aAAa,EAAExT,IAAI,CAACwT,aAAa;gBACjCC,eAAe,EAAEzT,IAAI,CAACyT,eAAe;gBACrCiN,MAAM,EAAE1gB,IAAI,CAAC0gB;AACjB,eAAC,CAAA;cAGD,IAAI,CAACsJ,SAAS,CAAC7B,GAAG,CAACv7B,WAAW,EAAEq+B,SAAS,CAAC;AAAC,cAAA,OAAAr0B,SAAA,CAAAhI,CAAA,CAAA,CAAA,EACpCq8B,SAAS,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAr0B,cAAAA,SAAA,CAAAlI,CAAA,GAAA,CAAA;cAAAkI,SAAA,CAAA/H,CAAA;AAAA,cAAA,OAAA+H,SAAA,CAAAhI,CAAA,CAAA,CAAA,EAET,IAAI,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA0H,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;MAAA,CAElB,CAAA,CAAA;MAAA,SA7BKi0B,eAAeA,CAAAjuB,GAAA,EAAA;AAAA,QAAA,OAAA4vB,gBAAA,CAAA/9B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAf+gC,eAAe;AAAA,IAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA;;AAgCzB;;AAEA,IAAI4B,gBAAgB,GAAG,IAAI;;AAE3B;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,GAAoB;AAAA,EAAA,IAAnB71B,UAAU,GAAA/M,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI;EAC9C,IAAI,CAAC2iC,gBAAgB,EAAE;AACnBA,IAAAA,gBAAgB,GAAG,IAAIpC,aAAa,CAACxzB,UAAU,CAAC;AACpD,EAAA;AACA,EAAA,OAAO41B,gBAAgB;AAC3B;;AAEA;AACA;AACA;AACO,IAAME,YAAY,GAAGlT,MAAM,CAACT,MAAM,CACrCgR,cAAc,CAAC3D,MAAM,CAAC,UAACtB,GAAG,EAAE2G,CAAC,EAAK;AAC9B3G,EAAAA,GAAG,CAAC2G,CAAC,CAACzB,MAAM,CAAC,GAAGyB,CAAC;AACjB,EAAA,OAAO3G,GAAG;AACd,CAAC,EAAE,EAAE,CACT;;ACzRA;AACA,IAAM6H,aAAa,GAAG;AAClB,EAAA,kCAAkC,EAAE,QAAQ;AAC5C,EAAA,6CAA6C,EAAE,OAAO;AACtD,EAAA,8CAA8C,EAAE,KAAK;AACrD,EAAA,6CAA6C,EAAE,MAAM;AACrD,EAAA,4CAA4C,EAAE,WAAW;AACzD,EAAA,6CAA6C,EAAE,eAAe;AAC9D,EAAA,6CAA6C,EAAE,OAAO;AACtD,EAAA,6CAA6C,EAAE;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAaC,iBAAiB,gBAAA,YAAA;AAC1B;AACJ;AACA;EACI,SAAAA,iBAAAA,CAAYh2B,UAAU,EAAE;AAAA3M,IAAAA,eAAA,OAAA2iC,iBAAA,CAAA;IACpB,IAAI,CAAC95B,WAAW,GAAG8D,UAAU;AACjC,EAAA;;AAEA;AACJ;AACA;AACA;AACA;EAJI,OAAApM,YAAA,CAAAoiC,iBAAA,EAAA,CAAA;IAAAniC,GAAA,EAAA,OAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAmiC,MAAA,GAAAp+B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAKA,SAAA6E,OAAAA,CAAYrH,SAAS,EAAA;AAAA,QAAA,IAAA2gC,QAAA,EAAAC,SAAA,EAAAC,SAAA;AAAA,QAAA,IAAAhnB,GAAA,CAAA,CAAAwM,EAAA,CAAA,CAAAya,MAAA,EAAAxE,IAAA,CAAA,CAAAyE,OAAA,CAAA,CAAAC,QAAA,CAAA,CAAA/Z,GAAA;AAAA,QAAA,OAAA1kB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAlF,CAAA,GAAAkF,QAAA,CAAAjF,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAiF,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA,OACC2W,oBAAoB,CAAC,IAAI,CAAC7S,WAAW,CAAC;AAAA,YAAA,KAAA,CAAA;cAAlDkT,GAAG,GAAA/R,QAAA,CAAA/E,CAAA;AAAA+E,cAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;AAAAkF,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA,OAGMY,SAAS,CAChB,YAAA;AAAA,gBAAA,OAAMoW,GAAG,CAACwZ,oBAAoB,CAACrzB,SAAS,EAAE;AACtCyP,kBAAAA,8BAA8B,EAAE,CAAC;AACjChT,kBAAAA,UAAU,EAAE;AAChB,iBAAC,CAAC;cAAA,CAAA,EACF,CAAC,EACD,sBACJ,CAAC;AAAA,YAAA,KAAA,CAAA;cAPD4pB,EAAE,GAAAve,QAAA,CAAA/E,CAAA;AAAA+E,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAAiF,cAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;cAAAkF,QAAA,CAAA/E,CAAA;AAAA+E,cAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;AAAAkF,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA,OAUaY,SAAS,CAChB,YAAA;AAAA,gBAAA,OAAMoW,GAAG,CAACnD,cAAc,CAAC1W,SAAS,EAAE;AAChCihC,kBAAAA,QAAQ,EAAE,YAAY;AACtBxxB,kBAAAA,8BAA8B,EAAE,CAAC;AACjChT,kBAAAA,UAAU,EAAE;AAChB,iBAAC,CAAC;cAAA,CAAA,EACF,CAAC,EACD,gBACJ,CAAC;AAAA,YAAA,KAAA,CAAA;cARD4pB,EAAE,GAAAve,QAAA,CAAA/E,CAAA;AAAA+E,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA,KAAA,CAAA;AAAAiF,cAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;cAAAkF,QAAA,CAAA/E,CAAA;AAUF;AACAsjB,cAAAA,EAAE,GAAG,IAAI;AAAC,YAAA,KAAA,CAAA;AAAA,cAAA,IAIbA,EAAE,EAAA;AAAAve,gBAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,gBAAA;AAAA,cAAA;cAAA,OAAAiF,QAAA,CAAAhF,CAAA,CAAA,CAAA,EACI;AACH9C,gBAAAA,SAAS,EAATA,SAAS;AACTs8B,gBAAAA,IAAI,EAAE,SAAS;AACf4E,gBAAAA,OAAO,EAAE,YAAY;AACrBC,gBAAAA,OAAO,EAAE,KAAK;AACdla,gBAAAA,GAAG,EAAE,CAAC;AACNma,gBAAAA,MAAM,EAAE,CAAC;AACT7L,gBAAAA,SAAS,EAAE,IAAI;AACfnmB,gBAAAA,IAAI,EAAE,CAAC;AACP0xB,gBAAAA,MAAM,EAAE,EAAE;AACVC,gBAAAA,OAAO,EAAE,EAAE;AACXC,gBAAAA,QAAQ,EAAE,EAAE;AACZ/gC,gBAAAA,IAAI,EAAE,EAAE;AACR4Z,gBAAAA,GAAG,EAAE;eACR,CAAA;AAAA,YAAA,KAAA,CAAA;AAGCinB,cAAAA,MAAM,GAAG,IAAI,CAACO,cAAc,CAAChb,EAAE,CAAC;AAChCiW,cAAAA,IAAI,GAAG,IAAI,CAACgF,oBAAoB,CAACR,MAAM,CAAC;AACxCC,cAAAA,OAAO,GAAG1a,EAAE,CAACjR,WAAW,CAAC7X,OAAO,CAACiyB,WAAW,CAC7ChC,MAAM,CAAC,UAAA+T,CAAC,EAAA;gBAAA,OAAIA,CAAC,CAAC9gB,MAAM;AAAA,cAAA,CAAA,CAAC,CACrBzO,GAAG,CAAC,UAAAuvB,CAAC,EAAA;AAAA,gBAAA,OAAIA,CAAC,CAAC9uB,MAAM,CAAC2F,QAAQ,EAAE;cAAA,CAAA,CAAC;AAC5B4oB,cAAAA,QAAQ,GAAAhgB,kBAAA,CAAO,IAAIH,GAAG,CACxBwF,EAAE,CAACjR,WAAW,CAAC7X,OAAO,CAACgzB,YAAY,CAACve,GAAG,CAAC,UAAA4C,CAAC,EAAA;AAAA,gBAAA,OACrC,OAAOA,CAAC,CAACsD,SAAS,KAAK,QAAQ,GAAGtD,CAAC,CAACsD,SAAS,GAAGtD,CAAC,CAACsD,SAAS,CAACE,QAAQ,EAAE;AAAA,cAAA,CAC1E,CACJ,CAAC,CAAA;AAEK6O,cAAAA,GAAG,GAAG,CAAA,CAAA0Z,QAAA,GAAAta,EAAE,CAACuK,IAAI,MAAA,IAAA,IAAA+P,QAAA,KAAA,MAAA,GAAA,MAAA,GAAPA,QAAA,CAAS1Z,GAAG,KAAI,CAAC;cAAA,OAAAnf,QAAA,CAAAhF,CAAA,CAAA,CAAA,EAEtB;AACH9C,gBAAAA,SAAS,EAATA,SAAS;AACTs8B,gBAAAA,IAAI,EAAJA,IAAI;gBACJ4E,OAAO,EAAE,IAAI,CAACM,aAAa,CAAClF,IAAI,EAAEwE,MAAM,EAAE7Z,GAAG,CAAC;AAC9Cka,gBAAAA,OAAO,EAAE,EAAA,CAAAP,SAAA,GAACva,EAAE,CAACuK,IAAI,MAAA,IAAA,IAAAgQ,SAAA,KAAA,MAAA,IAAPA,SAAA,CAAS55B,GAAG,CAAA;AACtBigB,gBAAAA,GAAG,EAAHA,GAAG;AACHma,gBAAAA,MAAM,EAAE5iB,aAAa,CAACyI,GAAG,CAAC;gBAC1BsO,SAAS,EAAElP,EAAE,CAACkP,SAAS;gBACvBnmB,IAAI,EAAEiX,EAAE,CAACjX,IAAI;AACb0xB,gBAAAA,MAAM,EAANA,MAAM;AACNC,gBAAAA,OAAO,EAAPA,OAAO;AACPC,gBAAAA,QAAQ,EAAEA,QAAQ,CAAChvB,GAAG,CAAC,UAAApP,CAAC,EAAA;kBAAA,OAAK;AACzBnC,oBAAAA,OAAO,EAAEmC,CAAC;AACV5E,oBAAAA,IAAI,EAAEwiC,aAAa,CAAC59B,CAAC,CAAC,IAAI;mBAC7B;AAAA,gBAAA,CAAC,CAAC;AACH3C,gBAAAA,IAAI,EAAE,CAAA,CAAA4gC,SAAA,GAAAxa,EAAE,CAACuK,IAAI,MAAA,IAAA,IAAAiQ,SAAA,KAAA,MAAA,GAAA,MAAA,GAAPA,SAAA,CAAS5K,WAAW,KAAI,EAAE;AAChCpc,gBAAAA,GAAG,EAAEwM;eACR,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAhf,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;MAAA,CACJ,CAAA,CAAA;MAAA,SA9EKwnB,KAAKA,CAAAnrB,EAAA,EAAA;AAAA,QAAA,OAAAg9B,MAAA,CAAAr+B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAALmxB,KAAK;AAAA,IAAA,CAAA;AAgFX;AACJ;AACA;AACA;AACA;AAJI;AAAA,GAAA,EAAA;IAAAvwB,GAAA,EAAA,WAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAkjC,UAAA,GAAAn/B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAKA,SAAAoG,QAAAA,CAAgBwsB,UAAU,EAAA;AAAA,QAAA,IAAA53B,KAAA,GAAA,IAAA;AAAA,QAAA,IAAAqhC,OAAA;AAAA,QAAA,OAAAt8B,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAgG,cAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;cAAA,OACA+B,OAAO,CAACo6B,UAAU,CACpC5J,UAAU,CAACpjB,GAAG,CAAC,UAAAiJ,GAAG,EAAA;AAAA,gBAAA,OAAIzd,KAAI,CAACqxB,KAAK,CAAC5T,GAAG,CAAC;AAAA,cAAA,CAAA,CACzC,CAAC;AAAA,YAAA,KAAA,CAAA;cAFK4jB,OAAO,GAAAh2B,SAAA,CAAA9F,CAAA;cAAA,OAAA8F,SAAA,CAAA/F,CAAA,CAAA,CAAA,EAGN+7B,OAAO,CAAC7sB,GAAG,CAAC,UAACnN,CAAC,EAAE+P,CAAC,EAAA;AAAA,gBAAA,IAAA8sB,SAAA;gBAAA,OACpB78B,CAAC,CAAC2a,MAAM,KAAK,WAAW,GAClB3a,CAAC,CAACtG,KAAK,GACP;AAAEyB,kBAAAA,SAAS,EAAEo1B,UAAU,CAACxgB,CAAC,CAAC;AAAE0nB,kBAAAA,IAAI,EAAE,OAAO;kBAAE4E,OAAO,EAAA,CAAAQ,SAAA,GAAE78B,CAAC,CAACuU,MAAM,MAAA,IAAA,IAAAsoB,SAAA,KAAA,MAAA,GAAA,MAAA,GAARA,SAAA,CAAUnkC,OAAO;AAAE4jC,kBAAAA,OAAO,EAAE,KAAK;AAAEL,kBAAAA,MAAM,EAAE;iBAAI;AAAA,cAAA,CAC7G,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAl4B,QAAA,CAAA;MAAA,CACJ,CAAA,CAAA;MAAA,SATK+4B,SAASA,CAAA/xB,GAAA,EAAA;AAAA,QAAA,OAAA6xB,UAAA,CAAAp/B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAATikC,SAAS;AAAA,IAAA,CAAA;AAWf;AACJ;AACA;AACA;AACA;AACA;AALI;AAAA,GAAA,EAAA;IAAArjC,GAAA,EAAA,uBAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAqjC,sBAAA,GAAAt/B,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAAwG,QAAAA,CAA4BvI,OAAO,EAAA;AAAA,QAAA,IAAAuQ,KAAA;UAAA6I,GAAA;UAAApH,MAAA;UAAAovB,IAAA;AAAAlkB,UAAAA,MAAA,GAAAjgB,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,YAAA,KAAA,CAAA;cAAEmO,KAAK,GAAA2M,MAAA,CAAAhgB,MAAA,GAAA,CAAA,IAAAggB,MAAA,CAAA,CAAA,CAAA,KAAA/f,SAAA,GAAA+f,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAA1U,cAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,cAAA,OACzB2W,oBAAoB,CAAC,IAAI,CAAC7S,WAAW,CAAC;AAAA,YAAA,KAAA,CAAA;cAAlDkT,GAAG,GAAA5Q,SAAA,CAAAlG,CAAA;AACH0P,cAAAA,MAAM,GAAG,IAAIZ,iBAAS,CAACpR,OAAO,CAAC;AAAAwI,cAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,cAAA,OAClBY,SAAS,CACxB,YAAA;AAAA,gBAAA,OAAMoW,GAAG,CAAC5C,uBAAuB,CAACxE,MAAM,EAAE;AAAEzB,kBAAAA,KAAK,EAALA;AAAM,iBAAC,CAAC;cAAA,CAAA,EACpD,CAAC,EACD,yBACJ,CAAC;AAAA,YAAA,KAAA,CAAA;cAJK6wB,IAAI,GAAA54B,SAAA,CAAAlG,CAAA;AAAA,cAAA,OAAAkG,SAAA,CAAAnG,CAAA,CAAA,CAAA,EAKH,IAAI,CAAC6+B,SAAS,CAACE,IAAI,CAAC7vB,GAAG,CAAC,UAAAiR,CAAC,EAAA;gBAAA,OAAIA,CAAC,CAACjjB,SAAS;AAAA,cAAA,CAAA,CAAC,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAgJ,QAAA,EAAA,IAAA,CAAA;MAAA,CACpD,CAAA,CAAA;MAAA,SATK84B,qBAAqBA,CAAA7xB,GAAA,EAAA;AAAA,QAAA,OAAA2xB,sBAAA,CAAAv/B,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAArBokC,qBAAqB;IAAA,CAAA,EAAA;AAa3B;AACJ;AACA;AACA;AAHI;AAAA,GAAA,EAAA;IAAAxjC,GAAA,EAAA,gBAAA;AAAAC,IAAAA,KAAA,EAIA,SAAA8iC,cAAcA,CAAChb,EAAE,EAAE;AAAA,MAAA,IAAA0b,SAAA;MACf,IAAMjB,MAAM,GAAG,EAAE;MACjB,IAAMvQ,YAAY,GAAGlK,EAAE,CAACjR,WAAW,CAAC7X,OAAO,CAACgzB,YAAY;AAAC,MAAA,IAAAzN,SAAA,GAAAC,0BAAA,CAExCwN,YAAY,CAAA;QAAAvN,KAAA;AAAA,MAAA,IAAA;QAA7B,KAAAF,SAAA,CAAAG,CAAA,EAAA,EAAA,CAAA,CAAAD,KAAA,GAAAF,SAAA,CAAAjgB,CAAA,EAAA,EAAAqgB,IAAA,GAA+B;AAAA,UAAA,IAApBoB,GAAE,GAAAtB,KAAA,CAAAzkB,KAAA;AACT,UAAA,IAAM2Z,UAAS,GAAG,OAAOoM,GAAE,CAACpM,SAAS,KAAK,QAAQ,GAC5CoM,GAAE,CAACpM,SAAS,GACZoM,GAAE,CAACpM,SAAS,CAACE,QAAQ,EAAE;AAC7B,UAAA,IAAM+T,MAAM,GAAG7H,GAAE,CAAC6H,MAAM;AAExB,UAAA,IAAIA,MAAM,EAAE;AACR;YACA2U,MAAM,CAACljB,IAAI,CAAC,IAAI,CAACokB,uBAAuB,CAAC9pB,UAAS,EAAEiU,MAAM,CAAC,CAAC;AAChE,UAAA,CAAC,MAAM;AACH;YACA2U,MAAM,CAACljB,IAAI,CAAC;AACR0e,cAAAA,IAAI,EAAE,aAAa;AACnBtM,cAAAA,OAAO,EAAEwQ,aAAa,CAACtoB,UAAS,CAAC,IAAIA,UAAS;AAC9CA,cAAAA,SAAS,EAATA,UAAS;cACTrM,IAAI,EAAEyY,GAAE,CAACzY;AACb,aAAC,CAAC;AACN,UAAA;AACJ,QAAA;;AAEA;AAAA,MAAA,CAAA,CAAA,OAAA7E,GAAA,EAAA;QAAA8b,SAAA,CAAAM,CAAA,CAAApc,GAAA,CAAA;AAAA,MAAA,CAAA,SAAA;AAAA8b,QAAAA,SAAA,CAAArW,CAAA,EAAA;AAAA,MAAA;MACA,IAAA,CAAAs1B,SAAA,GAAI1b,EAAE,CAACuK,IAAI,MAAA,IAAA,IAAAmR,SAAA,KAAA,MAAA,IAAPA,SAAA,CAASpR,iBAAiB,EAAE;QAAA,IAAAvM,UAAA,GAAArB,0BAAA,CACRsD,EAAE,CAACuK,IAAI,CAACD,iBAAiB,CAAA;UAAAtM,MAAA;AAAA,QAAA,IAAA;UAA7C,KAAAD,UAAA,CAAAnB,CAAA,EAAA,EAAA,CAAA,CAAAoB,MAAA,GAAAD,UAAA,CAAAvhB,CAAA,EAAA,EAAAqgB,IAAA,GAA+C;AAAA,YAAA,IAApC+e,KAAK,GAAA5d,MAAA,CAAA9lB,KAAA;AAAA,YAAA,IAAA2jC,UAAA,GAAAnf,0BAAA,CACKkf,KAAK,CAAC1R,YAAY,CAAA;cAAA4R,MAAA;AAAA,YAAA,IAAA;cAAnC,KAAAD,UAAA,CAAAjf,CAAA,EAAA,EAAA,CAAA,CAAAkf,MAAA,GAAAD,UAAA,CAAAr/B,CAAA,EAAA,EAAAqgB,IAAA,GAAqC;AAAA,gBAAA,IAA1BoB,EAAE,GAAA6d,MAAA,CAAA5jC,KAAA;gBACT,IAAI+lB,EAAE,CAAC6H,MAAM,EAAE;AACX,kBAAA,IAAMjU,SAAS,GAAG,OAAOoM,EAAE,CAACpM,SAAS,KAAK,QAAQ,GAC5CoM,EAAE,CAACpM,SAAS,GACZoM,EAAE,CAACpM,SAAS,CAACE,QAAQ,EAAE;AAC7B0oB,kBAAAA,MAAM,CAACljB,IAAI,CAAA7c,cAAA,CAAAA,cAAA,CAAA,EAAA,EACJ,IAAI,CAACihC,uBAAuB,CAAC9pB,SAAS,EAAEoM,EAAE,CAAC6H,MAAM,CAAC,CAAA,EAAA,EAAA,EAAA;AACrD8V,oBAAAA,KAAK,EAAE;AAAI,mBAAA,CACd,CAAC;AACN,gBAAA;AACJ,cAAA;AAAC,YAAA,CAAA,CAAA,OAAAj7B,GAAA,EAAA;cAAAk7B,UAAA,CAAA9e,CAAA,CAAApc,GAAA,CAAA;AAAA,YAAA,CAAA,SAAA;AAAAk7B,cAAAA,UAAA,CAAAz1B,CAAA,EAAA;AAAA,YAAA;AACL,UAAA;AAAC,QAAA,CAAA,CAAA,OAAAzF,GAAA,EAAA;UAAAod,UAAA,CAAAhB,CAAA,CAAApc,GAAA,CAAA;AAAA,QAAA,CAAA,SAAA;AAAAod,UAAAA,UAAA,CAAA3X,CAAA,EAAA;AAAA,QAAA;AACL,MAAA;AAEA,MAAA,OAAOq0B,MAAM;AACjB,IAAA;;AAEA;AACJ;AACA;AACA;AAHI,GAAA,EAAA;IAAAxiC,GAAA,EAAA,yBAAA;AAAAC,IAAAA,KAAA,EAIA,SAAAyjC,uBAAuBA,CAAC9pB,SAAS,EAAEiU,MAAM,EAAE;MAAA,IAAAiW,iBAAA,EAAAC,kBAAA;AACvC,MAAA,IAAM/F,IAAI,GAAGnQ,MAAM,CAACmQ,IAAI;AACxB,MAAA,IAAMpoB,IAAI,GAAGiY,MAAM,CAACjY,IAAI,IAAI,EAAE;AAE9B,MAAA,QAAQooB,IAAI;AACR,QAAA,KAAK,UAAU;UACX,OAAO;AACHA,YAAAA,IAAI,EAAE,UAAU;YAChBjf,IAAI,EAAEnJ,IAAI,CAACouB,MAAM;YACjBjhB,EAAE,EAAEnN,IAAI,CAAC0X,WAAW;YACpBlK,MAAM,EAAExN,IAAI,CAACxB,QAAQ;YACrBJ,SAAS,EAAEkM,aAAa,CAACtK,IAAI,CAACxB,QAAQ,IAAI,CAAC,CAAC;AAC5Csd,YAAAA,OAAO,EAAEwQ,aAAa,CAACtoB,SAAS,CAAC,IAAIA;WACxC;AAEL,QAAA,KAAK,iBAAiB;UAClB,OAAO;AACHokB,YAAAA,IAAI,EAAE,eAAe;YACrBjf,IAAI,EAAEnJ,IAAI,CAACouB,MAAM;YACjBjhB,EAAE,EAAEnN,IAAI,CAAC0X,WAAW;YACpBjF,IAAI,EAAEzS,IAAI,CAACyS,IAAI;AACfjF,YAAAA,MAAM,EAAE,CAAA,CAAA0gB,iBAAA,GAAAluB,IAAI,CAACogB,WAAW,MAAA,IAAA,IAAA8N,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,iBAAA,CAAkB7N,QAAQ,KAAI,CAAC;AACvC7V,YAAAA,QAAQ,EAAE,CAAA,CAAA2jB,kBAAA,GAAAnuB,IAAI,CAACogB,WAAW,MAAA,IAAA,IAAA+N,kBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,kBAAA,CAAkB3jB,QAAQ,KAAI,CAAC;AACzCsR,YAAAA,OAAO,EAAE;WACZ;AAEL,QAAA,KAAK,eAAe;UAChB,OAAO;AACHsM,YAAAA,IAAI,EAAE,eAAe;YACrBjf,IAAI,EAAEnJ,IAAI,CAACouB,MAAM;YACjBC,UAAU,EAAEruB,IAAI,CAACquB,UAAU;YAC3B7vB,QAAQ,EAAEwB,IAAI,CAACxB,QAAQ;YACvBqV,KAAK,EAAE7T,IAAI,CAAC6T,KAAK;YACjBlQ,KAAK,EAAE3D,IAAI,CAAC2D,KAAK;AACjBmY,YAAAA,OAAO,EAAE;WACZ;AAEL,QAAA,KAAK,UAAU;UACX,OAAO;AACHsM,YAAAA,IAAI,EAAE,eAAe;YACrB9E,YAAY,EAAEtjB,IAAI,CAACsjB,YAAY;YAC/BgL,WAAW,EAAEtuB,IAAI,CAACsuB,WAAW;YAC7BC,SAAS,EAAEvuB,IAAI,CAACwuB,cAAc;AAC9B1S,YAAAA,OAAO,EAAE;WACZ;AAEL,QAAA,KAAK,YAAY;UACb,OAAO;AACHsM,YAAAA,IAAI,EAAE,iBAAiB;YACvB9E,YAAY,EAAEtjB,IAAI,CAACsjB,YAAY;YAC/BiL,SAAS,EAAEvuB,IAAI,CAACwuB,cAAc;AAC9B1S,YAAAA,OAAO,EAAE;WACZ;AAEL,QAAA,KAAK,UAAU;UACX,OAAO;AACHsM,YAAAA,IAAI,EAAE,eAAe;YACrB9E,YAAY,EAAEtjB,IAAI,CAACsjB,YAAY;YAC/BnW,EAAE,EAAEnN,IAAI,CAAC0X,WAAW;YACpBlK,MAAM,EAAExN,IAAI,CAACxB,QAAQ;YACrBJ,SAAS,EAAEkM,aAAa,CAACtK,IAAI,CAACxB,QAAQ,IAAI,CAAC,CAAC;AAC5Csd,YAAAA,OAAO,EAAE;WACZ;AAEL,QAAA;UACI,OAAO;AACHsM,YAAAA,IAAI,EAAJA,IAAI;AACJtM,YAAAA,OAAO,EAAEwQ,aAAa,CAACtoB,SAAS,CAAC,IAAIA,SAAS;AAC9ChE,YAAAA,IAAI,EAAJA;WACH;AACT;AACJ,IAAA;;AAEA;AACJ;AACA;AACA;AAHI,GAAA,EAAA;IAAA5V,GAAA,EAAA,sBAAA;AAAAC,IAAAA,KAAA,EAIA,SAAA+iC,oBAAoBA,CAACR,MAAM,EAAE;AACzB,MAAA,IAAM6B,KAAK,GAAG7B,MAAM,CAAC9uB,GAAG,CAAC,UAAAoR,CAAC,EAAA;QAAA,OAAIA,CAAC,CAACkZ,IAAI;MAAA,CAAA,CAAC;MAErC,IAAIqG,KAAK,CAAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,gBAAgB;MAC5D,IAAI6C,KAAK,CAAC7C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,kBAAkB;MAChE,IAAI6C,KAAK,CAAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,gBAAgB;MAC5D,IAAI6C,KAAK,CAAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,gBAAgB;AAC5D,MAAA,IAAI6C,KAAK,CAAC7C,QAAQ,CAAC,UAAU,CAAC,IAAIgB,MAAM,CAACtN,IAAI,CAAC,UAAApQ,CAAC,EAAA;AAAA,QAAA,OAAIA,CAAC,CAACkZ,IAAI,KAAK,eAAe;MAAA,CAAA,CAAC,EAAE,OAAO,iBAAiB;MACxG,IAAIqG,KAAK,CAAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,UAAU;MACjD,IAAI6C,KAAK,CAAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,gBAAgB;AAC5D,MAAA,IAAI6C,KAAK,CAAChlC,MAAM,KAAK,CAAC,EAAE,OAAO,SAAS;AACxC,MAAA,OAAO,SAAS;AACpB,IAAA;;AAEA;AACJ;AACA;AACA;AAHI,GAAA,EAAA;IAAAW,GAAA,EAAA,eAAA;IAAAC,KAAA,EAIA,SAAAijC,aAAaA,CAAClF,IAAI,EAAEwE,MAAM,EAAE7Z,GAAG,EAAE;AAC7B,MAAA,QAAQqV,IAAI;AACR,QAAA,KAAK,UAAU;AAAE,UAAA;AACb,YAAA,IAAMlZ,CAAC,GAAG0d,MAAM,CAAC8B,IAAI,CAAC,UAAAxf,CAAC,EAAA;AAAA,cAAA,OAAIA,CAAC,CAACkZ,IAAI,KAAK,UAAU;YAAA,CAAA,CAAC;AACjD,YAAA,IAAIlZ,CAAC,EAAE,OAAA,eAAA,CAAAzjB,MAAA,CAAayjB,CAAC,CAAC9Q,SAAS,EAAA,cAAA,CAAA,CAAA3S,MAAA,CAAUkf,cAAc,CAACuE,CAAC,CAAC/B,EAAE,CAAC,CAAA;AAC7D,YAAA,OAAO,MAAM;AACjB,UAAA;AACA,QAAA,KAAK,gBAAgB;AAAE,UAAA;AACnB,YAAA,IAAM+B,EAAC,GAAG0d,MAAM,CAAC8B,IAAI,CAAC,UAAAxf,CAAC,EAAA;AAAA,cAAA,OAAIA,CAAC,CAACkZ,IAAI,KAAK,eAAe;YAAA,CAAA,CAAC;AACtD,YAAA,IAAIlZ,EAAC,EAAE,OAAA,qBAAA,CAAAzjB,MAAA,CAAmByjB,EAAC,CAAC1B,MAAM,EAAA,UAAA,CAAA,CAAA/hB,MAAA,CAAMkf,cAAc,CAACuE,EAAC,CAAC/B,EAAE,CAAC,CAAA;AAC5D,YAAA,OAAO,UAAU;AACrB,UAAA;AACA,QAAA,KAAK,gBAAgB;AAAE,UAAA;AACnB,YAAA,IAAM+B,GAAC,GAAG0d,MAAM,CAAC8B,IAAI,CAAC,UAAAxf,CAAC,EAAA;AAAA,cAAA,OAAIA,CAAC,CAACkZ,IAAI,KAAK,eAAe;YAAA,CAAA,CAAC;YACtD,IAAIlZ,GAAC,EAAE,OAAA,qDAAA,CAAAzjB,MAAA,CAAqBkf,cAAc,CAACuE,GAAC,CAACof,WAAW,CAAC,CAAA;AACzD,YAAA,OAAO,MAAM;AACjB,UAAA;AACA,QAAA,KAAK,kBAAkB;AACnB,UAAA,OAAO,MAAM;AACjB,QAAA,KAAK,gBAAgB;AAAE,UAAA;AACnB,YAAA,IAAMpf,GAAC,GAAG0d,MAAM,CAAC8B,IAAI,CAAC,UAAAxf,CAAC,EAAA;AAAA,cAAA,OAAIA,CAAC,CAACkZ,IAAI,KAAK,eAAe;YAAA,CAAA,CAAC;AACtD,YAAA,IAAIlZ,GAAC,EAAE,OAAA,2BAAA,CAAAzjB,MAAA,CAAeyjB,GAAC,CAAC9Q,SAAS,EAAA,MAAA,CAAA;AACjC,YAAA,OAAO,MAAM;AACjB,UAAA;AACA,QAAA,KAAK,gBAAgB;AACjB,UAAA,OAAO,MAAM;AACjB,QAAA,KAAK,iBAAiB;AAClB,UAAA,OAAO,SAAS;AACpB,QAAA;UACI,OAAA,4BAAA,CAAA3S,MAAA,CAAgBmhC,MAAM,CAACnjC,MAAM,EAAA,oCAAA,CAAA,CAAAgC,MAAA,CAAY6e,aAAa,CAACyI,GAAG,CAAC,EAAA,OAAA,CAAA;AACnE;AACJ,IAAA;AAAC,GAAA,CAAA,CAAA;AAAA,CAAA;;ACtUL;AACA;AACA;AACA,IAAa4b,aAAa,gBAAA,YAAA;AACtB;AACJ;AACA;AACA;AACI,EAAA,SAAAA,aAAAA,CAAYp4B,UAAU,EAAEyN,SAAS,EAAE;AAAApa,IAAAA,eAAA,OAAA+kC,aAAA,CAAA;IAC/B,IAAI,CAACl8B,WAAW,GAAG8D,UAAU;AAC7B,IAAA,IAAI,CAACq4B,UAAU,GAAG,OAAO5qB,SAAS,KAAK,QAAQ,GAAG,IAAIrG,iBAAS,CAACqG,SAAS,CAAC,GAAGA,SAAS;AAC1F,EAAA;;AAEA;AACJ;AACA;EAFI,OAAA7Z,YAAA,CAAAwkC,aAAA,EAAA,CAAA;IAAAvkC,GAAA,EAAA,WAAA;IAAAqL,GAAA,EAGA,SAAAA,GAAAA,GAAgB;MACZ,OAAO,IAAI,CAACm5B,UAAU;AAC1B,IAAA;;AAEA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AALI,GAAA,EAAA;IAAAxkC,GAAA,EAAA,SAAA;AAAAC,IAAAA,KAAA,EAMA,SAAAwkC,OAAOA,CAACC,KAAK,EAAE;MACX,IAAMC,cAAc,GAAGD,KAAK,CAAChxB,GAAG,CAAC,UAAAiR,CAAC,EAAI;QAClC,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE,OAAOQ,MAAM,CAACpG,IAAI,CAAC4F,CAAC,CAAC;QAChD,IAAIA,CAAC,YAAYpR,iBAAS,EAAE,OAAOoR,CAAC,CAACigB,QAAQ,EAAE;AAC/C,QAAA,OAAOjgB,CAAC;AACZ,MAAA,CAAC,CAAC;MACF,OAAOpR,iBAAS,CAACsxB,sBAAsB,CAACF,cAAc,EAAE,IAAI,CAACH,UAAU,CAAC;AAC5E,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AAJI,GAAA,EAAA;IAAAxkC,GAAA,EAAA,aAAA;AAAAC,IAAAA,KAAA,EAKA,SAAA6kC,WAAWA,CAACC,SAAS,EAAE;AAAA,MAAA,IAAA7lC,KAAA,GAAA,IAAA;AACnB,MAAA,OAAO6lC,SAAS,CAACrxB,GAAG,CAAC,UAAAgxB,KAAK,EAAA;AAAA,QAAA,OAAIxlC,KAAI,CAACulC,OAAO,CAACC,KAAK,CAAC;MAAA,CAAA,CAAC;AACtD,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AAJI,GAAA,EAAA;IAAA1kC,GAAA,EAAA,OAAA;AAAAC,IAAAA,KAAA,EAKA,SAAA+kC,KAAKA,CAAC7iC,OAAO,EAAE;AACX,MAAA,IAAMgS,MAAM,GAAG,OAAOhS,OAAO,KAAK,QAAQ,GAAG,IAAIoR,iBAAS,CAACpR,OAAO,CAAC,GAAGA,OAAO;MAC7E,OAAO,CAACoR,iBAAS,CAAC0xB,SAAS,CAAC9wB,MAAM,CAAC4L,OAAO,EAAE,CAAC;AACjD,IAAA;;AAEA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AANI,GAAA,EAAA;IAAA/f,GAAA,EAAA,kBAAA;AAAAC,IAAAA,KAAA,EAOA,SAAAilC,gBAAgBA,CAAC33B,IAAI,EAAE2X,IAAI,EAAE;MACzB,OAAO,IAAIigB,8BAAsB,CAAC;QAC9BvrB,SAAS,EAAE,IAAI,CAAC4qB,UAAU;AAC1Btf,QAAAA,IAAI,EAAEA,IAAI,CAACxR,GAAG,CAAC,UAAAuvB,CAAC,EAAA;UAAA,OAAK;AACjB9uB,YAAAA,MAAM,EAAE,OAAO8uB,CAAC,CAAC9uB,MAAM,KAAK,QAAQ,GAAG,IAAIZ,iBAAS,CAAC0vB,CAAC,CAAC9uB,MAAM,CAAC,GAAG8uB,CAAC,CAAC9uB,MAAM;AACzEixB,YAAAA,QAAQ,EAAEnC,CAAC,CAACmC,QAAQ,IAAI,KAAK;AAC7BC,YAAAA,UAAU,EAAEpC,CAAC,CAACoC,UAAU,IAAI;WAC/B;AAAA,QAAA,CAAC,CAAC;AACH93B,QAAAA,IAAI,EAAE4X,MAAM,CAACpG,IAAI,CAACxR,IAAI;AAC1B,OAAC,CAAC;AACN,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AAPI,GAAA,EAAA;IAAAvN,GAAA,EAAA,yBAAA;IAAAC,KAAA,EAQA,SAAAqlC,uBAAuBA,CAACC,gBAAgB,EAAEjW,OAAO,EAAEpK,IAAI,EAAE;AACrD,MAAA,IAAMsgB,QAAQ,GAAGrgB,MAAM,CAACsgB,KAAK,CAAC,CAAC,CAAC;AAChCD,MAAAA,QAAQ,CAACE,UAAU,CAACH,gBAAgB,CAAC;MAErC,IAAMh4B,IAAI,GAAG+hB,OAAO,GACdnK,MAAM,CAAC9jB,MAAM,CAAC,CAACmkC,QAAQ,EAAErgB,MAAM,CAACpG,IAAI,CAACuQ,OAAO,CAAC,CAAC,CAAC,GAC/CkW,QAAQ;AAEd,MAAA,OAAO,IAAI,CAACN,gBAAgB,CAAC33B,IAAI,EAAE2X,IAAI,CAAC;AAC5C,IAAA;;AAEA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATI,GAAA,EAAA;IAAAllB,GAAA,EAAA,SAAA;IAAAC,KAAA,EAAA,YAAA;AAAA,MAAA,IAAA0lC,QAAA,GAAA3hC,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAUA,SAAA6E,OAAAA,CAAcoZ,MAAM,EAAE8P,YAAY,EAAA;AAAA,QAAA,IAAAnrB,OAAA;UAAAihB,EAAA;UAAAxM,GAAA;AAAA6B,UAAAA,KAAA,GAAAhe,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAjF,CAAA;AAAA,YAAA,KAAA,CAAA;AAAEuC,cAAAA,OAAO,GAAAsW,KAAA,CAAA/d,MAAA,GAAA,CAAA,IAAA+d,KAAA,CAAA,CAAA,CAAA,KAAA9d,SAAA,GAAA8d,KAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACtC2K,cAAAA,EAAE,GAAG,IAAIlG,mBAAW,EAAE;AAC5BoQ,cAAAA,YAAY,CAACmF,OAAO,CAAC,UAAApR,EAAE,EAAA;AAAA,gBAAA,OAAI+B,EAAE,CAAClF,GAAG,CAACmD,EAAE,CAAC;cAAA,CAAA,CAAC;AAACxc,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA,OACrB2W,oBAAoB,CAAC,IAAI,CAAC7S,WAAW,CAAC;AAAA,YAAA,KAAA,CAAA;cAAlDkT,GAAG,GAAA/R,QAAA,CAAA/E,CAAA;AAAA,cAAA,OAAA+E,QAAA,CAAAhF,CAAA,CAAA,CAAA,EAEFW,SAAS,CACZ,YAAA;gBAAA,OAAM8zB,iCAAyB,CAC3B1d,GAAG,EACHwM,EAAE,EACF,CAAC5F,MAAM,CAAC,EACR;AACI9jB,kBAAAA,aAAa,EAAEyI,OAAO,CAACzI,aAAa,IAAI,KAAK;AAC7CF,kBAAAA,UAAU,EAAE2I,OAAO,CAAC3I,UAAU,IAAI;AACtC,iBACJ,CAAC;cAAA,CAAA,EACD,CAAC,EACD,gBACJ,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA4K,OAAA,EAAA,IAAA,CAAA;MAAA,CACJ,CAAA,CAAA;AAAA,MAAA,SAlBK68B,OAAOA,CAAAxgC,EAAA,EAAAkM,GAAA,EAAA;AAAA,QAAA,OAAAq0B,QAAA,CAAA5hC,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAPwmC,OAAO;AAAA,IAAA,CAAA;AAoBb;AACJ;AACA;AACA;AACA;AACA;AACA;AANI,GAAA,EAAA;IAAA5lC,GAAA,EAAA,UAAA;IAAAC,KAAA,GAAA,YAAA;AAAA,MAAA,IAAAgnB,SAAA,GAAAjjB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAOA,SAAAoG,QAAAA,CAAe6X,MAAM,EAAE8P,YAAY,EAAA;QAAA,IAAAlK,EAAA,EAAAxM,GAAA,EAAAsqB,qBAAA,EAAApuB,SAAA,EAAA1K,MAAA;AAAA,QAAA,OAAA9I,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,CAAA;AAAA,YAAA,KAAA,CAAA;AACzBwjB,cAAAA,EAAE,GAAG,IAAIlG,mBAAW,EAAE;AAC5BoQ,cAAAA,YAAY,CAACmF,OAAO,CAAC,UAAApR,EAAE,EAAA;AAAA,gBAAA,OAAI+B,EAAE,CAAClF,GAAG,CAACmD,EAAE,CAAC;cAAA,CAAA,CAAC;AAEtC+B,cAAAA,EAAE,CAAC1E,QAAQ,GAAGlB,MAAM,CAACpG,SAAS;AAACxR,cAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,cAAA,OACb2W,oBAAoB,CAAC,IAAI,CAAC7S,WAAW,CAAC;AAAA,YAAA,KAAA,CAAA;cAAlDkT,GAAG,GAAAhR,SAAA,CAAA9F,CAAA;AAAA8F,cAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,cAAA,OACmBgX,GAAG,CAAC/L,kBAAkB,EAAE;AAAA,YAAA,KAAA,CAAA;cAAAq2B,qBAAA,GAAAt7B,SAAA,CAAA9F,CAAA;cAA5CgT,SAAS,GAAAouB,qBAAA,CAATpuB,SAAS;cACjBsQ,EAAE,CAAC7B,eAAe,GAAGzO,SAAS;AAAClN,cAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,cAAA,OAEVgX,GAAG,CAAC8L,mBAAmB,CAACU,EAAE,CAAC;AAAA,YAAA,KAAA,CAAA;cAA1Chb,MAAM,GAAAxC,SAAA,CAAA9F,CAAA;cAAA,OAAA8F,SAAA,CAAA/F,CAAA,CAAA,CAAA,EACL;AACHkE,gBAAAA,GAAG,EAAEqE,MAAM,CAAC9M,KAAK,CAACyI,GAAG;AACrB/G,gBAAAA,IAAI,EAAEoL,MAAM,CAAC9M,KAAK,CAAC0B,IAAI,IAAI,EAAE;AAC7B6lB,gBAAAA,aAAa,EAAEza,MAAM,CAAC9M,KAAK,CAACunB,aAAa,IAAI;eAChD,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAld,QAAA,EAAA,IAAA,CAAA;MAAA,CACJ,CAAA,CAAA;AAAA,MAAA,SAfKod,QAAQA,CAAA/V,GAAA,EAAAO,GAAA,EAAA;AAAA,QAAA,OAAA+U,SAAA,CAAAljB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAARsoB,QAAQ;IAAA,CAAA,EAAA;AAmBd;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AAPI;AAAA,GAAA,EAAA;IAAA1nB,GAAA,EAAA,aAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAA6lC,YAAA,GAAA9hC,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAQA,SAAAgI,QAAAA,GAAA;AAAA,QAAA,IAAA3L,MAAA,GAAA,IAAA;AAAA,QAAA,IAAA05B,OAAA;UAAA8L,cAAA;UAAAhM,QAAA;AAAAra,UAAAA,MAAA,GAAAtgB,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoI,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjI,CAAA;AAAA,YAAA,KAAA,CAAA;AAAkB01B,cAAAA,OAAO,GAAAva,MAAA,CAAArgB,MAAA,GAAA,CAAA,IAAAqgB,MAAA,CAAA,CAAA,CAAA,KAAApgB,SAAA,GAAAogB,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AACpBqmB,cAAAA,cAAc,GAAG,EAAE;AAEzB,cAAA,IAAI9L,OAAO,CAAChhB,QAAQ,KAAK3Z,SAAS,EAAE;gBAChCymC,cAAc,CAACzmB,IAAI,CAAC;kBAAErG,QAAQ,EAAEghB,OAAO,CAAChhB;AAAS,iBAAC,CAAC;AACvD,cAAA;cACA,IAAIghB,OAAO,CAACC,MAAM,EAAE;AAChBD,gBAAAA,OAAO,CAACC,MAAM,CAAC9C,OAAO,CAAC,UAAAlzB,CAAC,EAAA;kBAAA,OAAI6hC,cAAc,CAACzmB,IAAI,CAAC;AAAE4a,oBAAAA,MAAM,EAAEh2B;AAAE,mBAAC,CAAC;gBAAA,CAAA,CAAC;AACnE,cAAA;AAACsI,cAAAA,SAAA,CAAAjI,CAAA,GAAA,CAAA;cAAA,OAEsBY,SAAS,cAAAnB,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAC5B,SAAAwG,QAAAA,GAAA;AAAA,gBAAA,IAAA6Q,GAAA;AAAA,gBAAA,OAAAtX,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;kBAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,oBAAA,KAAA,CAAA;AAAAoG,sBAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,sBAAA,OACsB2W,oBAAoB,CAAC3a,MAAI,CAAC8H,WAAW,CAAC;AAAA,oBAAA,KAAA,CAAA;sBAAlDkT,GAAG,GAAA5Q,SAAA,CAAAlG,CAAA;sBAAA,OAAAkG,SAAA,CAAAnG,CAAA,CAAA,CAAA,EACF+W,GAAG,CAACyqB,kBAAkB,CAACzlC,MAAI,CAACikC,UAAU,EAAE;wBAC/CvK,OAAO,EAAE8L,cAAc,CAAC1mC,MAAM,GAAG,CAAC,GAAG0mC,cAAc,GAAGzmC;AACtD,uBAAC,CAAC,CAAA;AAAA;AAAA,gBAAA,CAAA,EAAAoL,QAAA,CAAA;AAAA,cAAA,CACL,CAAA,CAAA,EACD,CAAC,EACD,oBACJ,CAAC;AAAA,YAAA,KAAA,CAAA;cATKqvB,QAAQ,GAAAvtB,SAAA,CAAA/H,CAAA;cAAA,OAAA+H,SAAA,CAAAhI,CAAA,CAAA,CAAA,EAWPu1B,QAAQ,CAACrmB,GAAG,CAAC,UAAAlP,CAAC,EAAA;gBAAA,OAAK;AACtB2P,kBAAAA,MAAM,EAAE3P,CAAC,CAAC2P,MAAM,CAAC2F,QAAQ,EAAE;AAC3B1F,kBAAAA,QAAQ,EAAE5P,CAAC,CAACuV,OAAO,CAAC3F,QAAQ;AAC5B6E,kBAAAA,QAAQ,EAAEzU,CAAC,CAACuV,OAAO,CAACxM,IAAI,CAAClO,MAAM;AAC/BkO,kBAAAA,IAAI,EAAE/I,CAAC,CAACuV,OAAO,CAACxM,IAAI;kBACpBgM,KAAK,EAAE/U,CAAC,CAACuV,OAAO,CAACR,KAAK,CAACO,QAAQ;iBAClC;AAAA,cAAA,CAAC,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA5N,QAAA,CAAA;MAAA,CACN,CAAA,CAAA;AAAA,MAAA,SA5BK+5B,WAAWA,GAAA;AAAA,QAAA,OAAAH,YAAA,CAAA/hC,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAX6mC,WAAW;AAAA,IAAA,CAAA;AA8BjB;AACJ;AACA;AACA;AACA;AACA;AALI,GAAA,EAAA;IAAAjmC,GAAA,EAAA,eAAA;IAAAC,KAAA,GAAA,YAAA;MAAA,IAAAimC,cAAA,GAAAliC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAMA,SAAAmJ,QAAAA,CAAoBq3B,KAAK,EAAA;QAAA,IAAAyB,aAAA,EAAAC,cAAA,EAAAC,GAAA,EAAA9qB,GAAA,EAAA3F,IAAA;AAAA,QAAA,OAAA3R,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoJ,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjJ,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA4hC,cAAAA,aAAA,GACP,IAAI,CAAC1B,OAAO,CAACC,KAAK,CAAC,EAAA0B,cAAA,GAAAhX,cAAA,CAAA+W,aAAA,EAAA,CAAA,CAAA,EAA1BE,GAAG,GAAAD,cAAA,CAAA,CAAA,CAAA;AAAA54B,cAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;AAAA,cAAA,OACQ2W,oBAAoB,CAAC,IAAI,CAAC7S,WAAW,CAAC;AAAA,YAAA,KAAA,CAAA;cAAlDkT,GAAG,GAAA/N,SAAA,CAAA/I,CAAA;AAAA+I,cAAAA,SAAA,CAAAjJ,CAAA,GAAA,CAAA;AAAA,cAAA,OACUgX,GAAG,CAAC/F,cAAc,CAAC6wB,GAAG,CAAC;AAAA,YAAA,KAAA,CAAA;cAApCzwB,IAAI,GAAApI,SAAA,CAAA/I,CAAA;cAAA,OAAA+I,SAAA,CAAAhJ,CAAA,CAAA,CAAA,EAEH;AACHrC,gBAAAA,OAAO,EAAEkkC,GAAG,CAACvsB,QAAQ,EAAE;gBACvB6c,MAAM,EAAE,CAAC,CAAC/gB,IAAI;gBACdrI,IAAI,EAAE,CAAAqI,IAAI,KAAA,IAAA,IAAJA,IAAI,uBAAJA,IAAI,CAAErI,IAAI,KAAI,IAAI;gBACxB6G,QAAQ,EAAE,CAAAwB,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,MAAA,GAAA,MAAA,GAAJA,IAAI,CAAExB,QAAQ,KAAI;eAC/B,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA/G,QAAA,EAAA,IAAA,CAAA;MAAA,CACJ,CAAA,CAAA;MAAA,SAXKi5B,aAAaA,CAAAn0B,GAAA,EAAA;AAAA,QAAA,OAAA+zB,cAAA,CAAAniC,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAbknC,aAAa;IAAA,CAAA,EAAA;AAenB;AACJ;AACA;AACA;AACA;AAJI;AAAA,GAAA,CAAA,EAAA,CAAA;IAAAtmC,GAAA,EAAA,WAAA;AAAAC,IAAAA,KAAA,EAKA,SAAOsmC,SAASA,CAACtmC,KAAK,EAAE;AACpB,MAAA,IAAMumC,GAAG,GAAGrhB,MAAM,CAACsgB,KAAK,CAAC,CAAC,CAAC;AAC3Be,MAAAA,GAAG,CAACC,aAAa,CAACxmC,KAAK,CAAC;AACxB,MAAA,OAAOumC,GAAG;AACd,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AAJI,GAAA,EAAA;IAAAxmC,GAAA,EAAA,WAAA;AAAAC,IAAAA,KAAA,EAKA,SAAOymC,SAASA,CAACzmC,KAAK,EAAE;AACpB,MAAA,IAAMumC,GAAG,GAAGrhB,MAAM,CAACsgB,KAAK,CAAC,CAAC,CAAC;AAC3Be,MAAAA,GAAG,CAACG,gBAAgB,CAACpc,MAAM,CAACtqB,KAAK,CAAC,CAAC;AACnC,MAAA,OAAOumC,GAAG;AACd,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AAJI,GAAA,EAAA;IAAAxmC,GAAA,EAAA,cAAA;AAAAC,IAAAA,KAAA,EAKA,SAAO2mC,YAAYA,CAACC,GAAG,EAAE;MACrB,IAAMC,OAAO,GAAG3hB,MAAM,CAACpG,IAAI,CAAC8nB,GAAG,EAAE,OAAO,CAAC;AACzC,MAAA,IAAME,GAAG,GAAG5hB,MAAM,CAACsgB,KAAK,CAAC,CAAC,CAAC;AAC3BsB,MAAAA,GAAG,CAACN,aAAa,CAACK,OAAO,CAACznC,MAAM,CAAC;MACjC,OAAO8lB,MAAM,CAAC9jB,MAAM,CAAC,CAAC0lC,GAAG,EAAED,OAAO,CAAC,CAAC;AACxC,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AALI,GAAA,EAAA;IAAA9mC,GAAA,EAAA,WAAA;AAAAC,IAAAA,KAAA,EAMA,SAAO+mC,SAASA,CAACR,GAAG,EAAc;AAAA,MAAA,IAAZrM,MAAM,GAAA/6B,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAC5B,MAAA,OAAOonC,GAAG,CAACS,YAAY,CAAC9M,MAAM,CAAC;AACnC,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AALI,GAAA,EAAA;IAAAn6B,GAAA,EAAA,WAAA;AAAAC,IAAAA,KAAA,EAMA,SAAOinC,SAASA,CAACV,GAAG,EAAc;AAAA,MAAA,IAAZrM,MAAM,GAAA/6B,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAC5B,MAAA,OAAOonC,GAAG,CAACW,eAAe,CAAChN,MAAM,CAAC;AACtC,IAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AALI,GAAA,EAAA;IAAAn6B,GAAA,EAAA,cAAA;AAAAC,IAAAA,KAAA,EAMA,SAAOmnC,YAAYA,CAACZ,GAAG,EAAc;AAAA,MAAA,IAAZrM,MAAM,GAAA/6B,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,CAAC;AAC/B,MAAA,IAAM2nC,GAAG,GAAGP,GAAG,CAACS,YAAY,CAAC9M,MAAM,CAAC;AACpC,MAAA,IAAMl6B,KAAK,GAAGumC,GAAG,CAAC/6B,QAAQ,CAAC,OAAO,EAAE0uB,MAAM,GAAG,CAAC,EAAEA,MAAM,GAAG,CAAC,GAAG4M,GAAG,CAAC;MACjE,OAAO;AAAE9mC,QAAAA,KAAK,EAALA,KAAK;QAAEonC,SAAS,EAAE,CAAC,GAAGN;OAAK;AACxC,IAAA;AAAC,GAAA,CAAA,CAAA;AAAA,CAAA;;AC5SL,IAAaO,cAAc,0BAAAC,cAAA,EAAA;AACzB,EAAA,SAAAD,iBAAyB;AAAA,IAAA,IAAbE,MAAM,GAAApoC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE;AAAAI,IAAAA,eAAA,OAAA8nC,cAAA,CAAA;AAAA,IAAA,OAAA7nC,UAAA,CAAA,IAAA,EAAA6nC,cAAA,EAAA,CACf,QAAQ,EAAEE,MAAM,CAAA,CAAA;AACxB,EAAA;;AAEA;EAAA1nC,SAAA,CAAAwnC,cAAA,EAAAC,cAAA,CAAA;EAAA,OAAAxnC,YAAA,CAAAunC,cAAA,EAAA,CAAA;IAAAtnC,GAAA,EAAA,iBAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAwnC,gBAAA,GAAAzjC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CACA,SAAA6E,OAAAA,CAAsBgqB,MAAM,EAAA;AAAA,QAAA,IAAAzD,OAAA;AAAAlS,UAAAA,KAAA,GAAAhe,SAAA;AAAA,QAAA,OAAA6E,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAjF,CAAA;AAAA,YAAA,KAAA,CAAA;AAAE+qB,cAAAA,OAAO,GAAAlS,KAAA,CAAA/d,MAAA,GAAA,CAAA,IAAA+d,KAAA,CAAA,CAAA,CAAA,KAAA9d,SAAA,GAAA8d,KAAA,CAAA,CAAA,CAAA,GAAG,EAAE;cAAA,OAAA5T,QAAA,CAAAhF,CAAA,CAAA,CAAA,EACjC,IAAI,CAACkjC,IAAI,CAAC,UAAU,EAAAjlC,cAAA,CAAA;AAAIswB,gBAAAA,MAAM,EAANA;eAAM,EAAKzD,OAAO,CAAE,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAvmB,OAAA,EAAA,IAAA,CAAA;MAAA,CACrD,CAAA,CAAA;MAAA,SAFK4+B,eAAeA,CAAAviC,EAAA,EAAA;AAAA,QAAA,OAAAqiC,gBAAA,CAAA1jC,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAfuoC,eAAe;IAAA,CAAA,EAAA;AAIrB,GAAA,EAAA;IAAA3nC,GAAA,EAAA,uBAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAA2nC,sBAAA,GAAA5jC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CACA,SAAAoG,QAAAA,CAA4ByoB,MAAM,EAAA;AAAA,QAAA,OAAA9uB,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAhG,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAgG,SAAA,CAAA/F,CAAA,CAAA,CAAA,EACzB,IAAI,CAAC6G,GAAG,CAAA,MAAA,CAAAhK,MAAA,CAAQ0xB,MAAM,CAAE,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAzoB,QAAA,EAAA,IAAA,CAAA;MAAA,CACjC,CAAA,CAAA;MAAA,SAFKu9B,qBAAqBA,CAAAv2B,GAAA,EAAA;AAAA,QAAA,OAAAs2B,sBAAA,CAAA7jC,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAArByoC,qBAAqB;IAAA,CAAA,EAAA;AAI3B,GAAA,EAAA;IAAA7nC,GAAA,EAAA,eAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAA6nC,cAAA,GAAA9jC,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CACA,SAAAwG,QAAAA,GAAA;AAAA,QAAA,OAAAzG,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAApG,CAAA;AAAA,YAAA,KAAA,CAAA;cAAA,OAAAoG,SAAA,CAAAnG,CAAA,CAAA,CAAA,EACS,IAAI,CAAC6G,GAAG,CAAC,SAAS,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAAX,QAAA,EAAA,IAAA,CAAA;MAAA,CAC3B,CAAA,CAAA;AAAA,MAAA,SAFKq9B,aAAaA,GAAA;AAAA,QAAA,OAAAD,cAAA,CAAA/jC,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAb2oC,aAAa;IAAA,CAAA,EAAA;AAInB,GAAA,EAAA;IAAA/nC,GAAA,EAAA,mBAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAA+nC,kBAAA,GAAAhkC,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CACA,SAAAgI,QAAAA,CAAwB/J,OAAO,EAAA;AAAA,QAAA,OAAA8B,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoI,SAAA,EAAA;UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjI,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAiI,SAAA,CAAAhI,CAAA,CAAA,CAAA,EACtB,IAAI,CAAC6G,GAAG,CAAA,mBAAA,CAAAhK,MAAA,CAAqBc,OAAO,CAAE,CAAC,CAAA;AAAA;AAAA,QAAA,CAAA,EAAA+J,QAAA,EAAA,IAAA,CAAA;MAAA,CAC/C,CAAA,CAAA;MAAA,SAFK+7B,iBAAiBA,CAAAt2B,GAAA,EAAA;AAAA,QAAA,OAAAq2B,kBAAA,CAAAjkC,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,MAAA;AAAA,MAAA,OAAjB6oC,iBAAiB;AAAA,IAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,CArBWC,yBAAa;IA0BpCC,QAAQ,GAAG,IAAIb,cAAc;;ACxBnC,SAASc,QAAQA,GAAG;AACzB,EAAA,IAAAC,SAAA,GAA8BC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAnZ,cAAA,CAAAiZ,SAAA,EAAA,CAAA,CAAA;AAAtCG,IAAAA,OAAO,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAC1B,EAAA,IAAAG,UAAA,GAA0BJ,cAAQ,CAAC,IAAI,CAAC;IAAAK,UAAA,GAAAvZ,cAAA,CAAAsZ,UAAA,EAAA,CAAA,CAAA;AAAjC9/B,IAAAA,KAAK,GAAA+/B,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,QAAQ,GAAAD,UAAA,CAAA,CAAA,CAAA;AACtB,EAAA,IAAAE,UAAA,GAAsCP,cAAQ,CAAC,IAAI,CAAC;IAAAQ,UAAA,GAAA1Z,cAAA,CAAAyZ,UAAA,EAAA,CAAA,CAAA;AAA7CE,IAAAA,WAAW,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,cAAc,GAAAF,UAAA,CAAA,CAAA,CAAA;AAClC,EAAA,IAAAG,UAAA,GAAkCX,cAAQ,CAAC,IAAI,CAAC;IAAAY,UAAA,GAAA9Z,cAAA,CAAA6Z,UAAA,EAAA,CAAA,CAAA;AAAzCE,IAAAA,SAAS,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA;;AAE9B;EACA,IAAMG,YAAY,GAAGC,iBAAW,cAAAtlC,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAAC,SAAA6E,OAAAA,GAAA;AAAA,IAAA,IAAAwgC,SAAA,EAAAC,UAAA,EAAA5zB,IAAA,EAAA3I,EAAA;AAAA,IAAA,OAAAhJ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAlF,CAAA,GAAAkF,QAAA,CAAAjF,CAAA;AAAA,QAAA,KAAA,CAAA;UAC/BkkC,UAAU,CAAC,IAAI,CAAC;UAChBG,QAAQ,CAAC,IAAI,CAAC;AAACp/B,UAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;AAAAkF,UAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;UAAA,OAEWs3B,cAAc,EAAE;AAAA,QAAA,KAAA,CAAA;UAAlC0N,SAAS,GAAA//B,QAAA,CAAA/E,CAAA;AAAA+E,UAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;UAAA,OACU43B,cAAc,EAAE;AAAA,QAAA,KAAA,CAAA;UAAnCqN,UAAU,GAAAhgC,QAAA,CAAA/E,CAAA;AACVmR,UAAAA,IAAI,GAAAnT,cAAA,CAAA;YACRgnC,OAAO,EAAEF,SAAS,KAAK;AAAI,WAAA,EACxBC,UAAU,CAAA;UAEfR,cAAc,CAACpzB,IAAI,CAAC;AAAC,UAAA,OAAApM,QAAA,CAAAhF,CAAA,CAAA,CAAA,EACdoR,IAAI,CAAA;AAAA,QAAA,KAAA,CAAA;AAAApM,UAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;UAAA2I,EAAA,GAAAzD,QAAA,CAAA/E,CAAA;UAEXmkC,QAAQ,CAAA37B,EAAI,CAAC;AAAC,UAAA,MAAAA,EAAA;AAAA,QAAA,KAAA,CAAA;AAAAzD,UAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;UAGdmkC,UAAU,CAAC,KAAK,CAAC;UAAC,OAAAj/B,QAAA,CAAA2E,CAAA,CAAA,CAAA,CAAA;AAAA,QAAA,KAAA,CAAA;UAAA,OAAA3E,QAAA,CAAAhF,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,IAAA,CAAA,EAAAuE,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;EAAA,CAErB,CAAA,CAAA,EAAE,EAAE,CAAC;;AAEN;EACA,IAAM2gC,cAAc,GAAGJ,iBAAW,cAAA,YAAA;IAAA,IAAA9xB,KAAA,GAAAxT,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAAC,SAAAoG,QAAAA,CAAOyoB,MAAM,EAAA;MAAA,IAAA4W,OAAA,EAAA/xB,GAAA;AAAA,MAAA,OAAA3T,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAmG,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAjG,CAAA,GAAAiG,SAAA,CAAAhG,CAAA;AAAA,UAAA,KAAA,CAAA;YAC9CkkC,UAAU,CAAC,IAAI,CAAC;YAChBG,QAAQ,CAAC,IAAI,CAAC;AAACr+B,YAAAA,SAAA,CAAAjG,CAAA,GAAA,CAAA;AAAAiG,YAAAA,SAAA,CAAAhG,CAAA,GAAA,CAAA;AAAA,YAAA,OAGS4jC,QAAQ,CAACN,qBAAqB,CAAC9U,MAAM,CAAC;AAAA,UAAA,KAAA,CAAA;YAAtD4W,OAAO,GAAAp/B,SAAA,CAAA9F,CAAA;YACb2kC,YAAY,CAACO,OAAO,CAAC;AAAC,YAAA,OAAAp/B,SAAA,CAAA/F,CAAA,CAAA,CAAA,EACfmlC,OAAO,CAAA;AAAA,UAAA,KAAA,CAAA;AAAAp/B,YAAAA,SAAA,CAAAjG,CAAA,GAAA,CAAA;YAAAsT,GAAA,GAAArN,SAAA,CAAA9F,CAAA;YAEdmkC,QAAQ,CAAAhxB,GAAI,CAAC;AAAC,YAAA,MAAAA,GAAA;AAAA,UAAA,KAAA,CAAA;AAAArN,YAAAA,SAAA,CAAAjG,CAAA,GAAA,CAAA;YAGdmkC,UAAU,CAAC,KAAK,CAAC;YAAC,OAAAl+B,SAAA,CAAA4D,CAAA,CAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAAA,OAAA5D,SAAA,CAAA/F,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,MAAA,CAAA,EAAA8F,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IAAA,CAErB,CAAA,CAAA;AAAA,IAAA,OAAA,UAAAlF,EAAA,EAAA;AAAA,MAAA,OAAAoS,KAAA,CAAAzT,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,IAAA,CAAA;AAAA,EAAA,CAAA,EAAA,EAAE,EAAE,CAAC;;AAEN;EACA,IAAMwqC,MAAM,GAAGN,iBAAW,cAAA,YAAA;IAAA,IAAAlU,KAAA,GAAApxB,iBAAA,cAAAC,YAAA,GAAAC,CAAA,CAAC,SAAAwG,QAAAA,CAAOqoB,MAAM,EAAA;AAAA,MAAA,IAAAzD,OAAA;QAAAua,GAAA;AAAAxqB,QAAAA,MAAA,GAAAjgB,SAAA;QAAA0qC,GAAA;AAAA,MAAA,OAAA7lC,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAuG,SAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAArG,CAAA,GAAAqG,SAAA,CAAApG,CAAA;AAAA,UAAA,KAAA,CAAA;AAAE+qB,YAAAA,OAAO,GAAAjQ,MAAA,CAAAhgB,MAAA,GAAA,CAAA,IAAAggB,MAAA,CAAA,CAAA,CAAA,KAAA/f,SAAA,GAAA+f,MAAA,CAAA,CAAA,CAAA,GAAG,EAAE;YACpDopB,UAAU,CAAC,IAAI,CAAC;YAChBG,QAAQ,CAAC,IAAI,CAAC;AAACj+B,YAAAA,SAAA,CAAArG,CAAA,GAAA,CAAA;AAAAqG,YAAAA,SAAA,CAAApG,CAAA,GAAA,CAAA;AAAA,YAAA,OAEK4jC,QAAQ,CAACR,eAAe,CAAC5U,MAAM,EAAEzD,OAAO,CAAC;AAAA,UAAA,KAAA,CAAA;YAArDua,GAAG,GAAAl/B,SAAA,CAAAlG,CAAA;AAAA,YAAA,OAAAkG,SAAA,CAAAnG,CAAA,CAAA,CAAA,EACFqlC,GAAG,CAAA;AAAA,UAAA,KAAA,CAAA;AAAAl/B,YAAAA,SAAA,CAAArG,CAAA,GAAA,CAAA;YAAAwlC,GAAA,GAAAn/B,SAAA,CAAAlG,CAAA;YAEVmkC,QAAQ,CAAAkB,GAAI,CAAC;AAAC,YAAA,MAAAA,GAAA;AAAA,UAAA,KAAA,CAAA;AAAAn/B,YAAAA,SAAA,CAAArG,CAAA,GAAA,CAAA;YAGdmkC,UAAU,CAAC,KAAK,CAAC;YAAC,OAAA99B,SAAA,CAAAwD,CAAA,CAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAAA,OAAAxD,SAAA,CAAAnG,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,MAAA,CAAA,EAAAkG,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IAAA,CAErB,CAAA,CAAA;AAAA,IAAA,OAAA,UAAA4G,GAAA,EAAA;AAAA,MAAA,OAAA8jB,KAAA,CAAArxB,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,IAAA,CAAA;AAAA,EAAA,CAAA,EAAA,EAAE,EAAE,CAAC;EAEN,OAAO;AACLopC,IAAAA,OAAO,EAAPA,OAAO;AACP5/B,IAAAA,KAAK,EAALA,KAAK;AACLmgC,IAAAA,WAAW,EAAXA,WAAW;AACXI,IAAAA,SAAS,EAATA,SAAS;AACTE,IAAAA,YAAY,EAAZA,YAAY;AACZK,IAAAA,cAAc,EAAdA,cAAc;AACdE,IAAAA,MAAM,EAANA;GACD;AACH;;AC9EA;AACA;AACA;;AAEA,IAAMG,QAAQ,GAAG;AACfC,EAAAA,EAAE,EAAE;AACFC,IAAAA,WAAW,EAAE,cAAc;AAC3B9oC,IAAAA,OAAO,EAAE,SAAS;AAClBy7B,IAAAA,WAAW,EAAE,cAAc;AAC3BsN,IAAAA,GAAG,EAAE,+BAA+B;AACpCT,IAAAA,OAAO,EAAE,SAAS;AAClBU,IAAAA,SAAS,EAAE,WAAW;AACtBC,IAAAA,OAAO,EAAE,YAAY;AACrBC,IAAAA,SAAS,EAAE,qBAAqB;AAChCtX,IAAAA,MAAM,EAAE,kBAAkB;AAC1B5wB,IAAAA,OAAO,EAAE,SAAS;AAClBmoC,IAAAA,OAAO,EAAE,SAAS;AAClBC,IAAAA,SAAS,EAAE,6BAA6B;AACxCC,IAAAA,WAAW,EAAE,6BAA6B;AAC1CtpB,IAAAA,MAAM,EAAE,QAAQ;AAChBupB,IAAAA,WAAW,EAAE,cAAc;AAC3BC,IAAAA,MAAM,EAAE,SAAS;AACjBC,IAAAA,aAAa,EAAE,oBAAoB;AACnCC,IAAAA,iBAAiB,EAAE,qBAAqB;AACxCC,IAAAA,UAAU,EAAE,gCAAgC;AAC5CC,IAAAA,aAAa,EAAE,uEAAuE;AACtFC,IAAAA,KAAK,EAAE,OAAO;AACdC,IAAAA,OAAO,EAAE,SAAS;AAClBnX,IAAAA,SAAS,EAAE;GACZ;AACDoX,EAAAA,EAAE,EAAE;AACFhB,IAAAA,WAAW,EAAE,OAAO;AACpB9oC,IAAAA,OAAO,EAAE,IAAI;AACby7B,IAAAA,WAAW,EAAE,MAAM;AACnBsN,IAAAA,GAAG,EAAE,aAAa;AAClBT,IAAAA,OAAO,EAAE,MAAM;AACfU,IAAAA,SAAS,EAAE,MAAM;AACjBC,IAAAA,OAAO,EAAE,QAAQ;AACjBC,IAAAA,SAAS,EAAE,MAAM;AACjBtX,IAAAA,MAAM,EAAE,MAAM;AACd5wB,IAAAA,OAAO,EAAE,MAAM;AACfmoC,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,SAAS,EAAE,aAAa;AACxBC,IAAAA,WAAW,EAAE,QAAQ;AACrBtpB,IAAAA,MAAM,EAAE,IAAI;AACZupB,IAAAA,WAAW,EAAE,KAAK;AAClBC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,aAAa,EAAE,UAAU;AACzBC,IAAAA,iBAAiB,EAAE,QAAQ;AAC3BC,IAAAA,UAAU,EAAE,WAAW;AACvBC,IAAAA,aAAa,EAAE,wBAAwB;AACvCC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,OAAO,EAAE,IAAI;AACbnX,IAAAA,SAAS,EAAE;GACZ;AACDqX,EAAAA,EAAE,EAAE;AACFjB,IAAAA,WAAW,EAAE,eAAe;AAC5B9oC,IAAAA,OAAO,EAAE,QAAQ;AACjBy7B,IAAAA,WAAW,EAAE,OAAO;AACpBsN,IAAAA,GAAG,EAAE,mBAAmB;AACxBT,IAAAA,OAAO,EAAE,MAAM;AACfU,IAAAA,SAAS,EAAE,MAAM;AACjBC,IAAAA,OAAO,EAAE,QAAQ;AACjBC,IAAAA,SAAS,EAAE,YAAY;AACvBtX,IAAAA,MAAM,EAAE,cAAc;AACtB5wB,IAAAA,OAAO,EAAE,WAAW;AACpBmoC,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,SAAS,EAAE,sBAAsB;AACjCC,IAAAA,WAAW,EAAE,oBAAoB;AACjCtpB,IAAAA,MAAM,EAAE,OAAO;AACfupB,IAAAA,WAAW,EAAE,QAAQ;AACrBC,IAAAA,MAAM,EAAE,KAAK;AACbC,IAAAA,aAAa,EAAE,aAAa;AAC5BC,IAAAA,iBAAiB,EAAE,aAAa;AAChCC,IAAAA,UAAU,EAAE,sBAAsB;AAClCC,IAAAA,aAAa,EAAE,2CAA2C;AAC1DC,IAAAA,KAAK,EAAE,KAAK;AACZC,IAAAA,OAAO,EAAE,IAAI;AACbnX,IAAAA,SAAS,EAAE;GACZ;AACDsX,EAAAA,EAAE,EAAE;AACFlB,IAAAA,WAAW,EAAE,SAAS;AACtB9oC,IAAAA,OAAO,EAAE,MAAM;AACfy7B,IAAAA,WAAW,EAAE,OAAO;AACpBsN,IAAAA,GAAG,EAAE,iBAAiB;AACtBT,IAAAA,OAAO,EAAE,OAAO;AAChBU,IAAAA,SAAS,EAAE,SAAS;AACpBC,IAAAA,OAAO,EAAE,UAAU;AACnBC,IAAAA,SAAS,EAAE,SAAS;AACpBtX,IAAAA,MAAM,EAAE,SAAS;AACjB5wB,IAAAA,OAAO,EAAE,OAAO;AAChBmoC,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,SAAS,EAAE,kBAAkB;AAC7BC,IAAAA,WAAW,EAAE,YAAY;AACzBtpB,IAAAA,MAAM,EAAE,IAAI;AACZupB,IAAAA,WAAW,EAAE,OAAO;AACpBC,IAAAA,MAAM,EAAE,QAAQ;AAChBC,IAAAA,aAAa,EAAE,aAAa;AAC5BC,IAAAA,iBAAiB,EAAE,YAAY;AAC/BC,IAAAA,UAAU,EAAE,oBAAoB;AAChCC,IAAAA,aAAa,EAAE,0CAA0C;AACzDC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,OAAO,EAAE,QAAQ;AACjBnX,IAAAA,SAAS,EAAE;AACb;AACF;AAEA,IAAMuX,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AACnD,IAAIC,eAAe,GAAG,IAAI;AAEnB,SAASC,WAAWA,CAACC,IAAI,EAAE;EAChC,IAAIH,mBAAmB,CAAC5J,QAAQ,CAAC+J,IAAI,CAAC,EAAEF,eAAe,GAAGE,IAAI;AAChE;AAEO,SAASC,WAAWA,GAAG;AAC5B,EAAA,OAAOH,eAAe;AACxB;AAEO,SAASrK,CAACA,CAAChhC,GAAG,EAAE;AACrB,EAAA,OAAO,CAAC+pC,QAAQ,CAACsB,eAAe,CAAC,IAAItB,QAAQ,CAACC,EAAE,EAAEhqC,GAAG,CAAC,IAAIA,GAAG;AAC/D;;ACxHA;AACA;AACA;AACA;AACA;;AAMO,SAASyrC,eAAeA,CAAAtc,IAAA,EAAuC;AAAA,EAAA,IAAAuc,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,gBAAA;AAAA,EAAA,IAAAC,cAAA,GAAA3c,IAAA,CAApC4c,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;IAAAE,aAAA,GAAA7c,IAAA,CAAE8c,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,aAAA;AAChE,EAAA,IAAAE,SAAA,GAAsD9D,QAAQ,EAAE;IAAjD8D,SAAA,CAAP1D,OAAO;QAAE5/B,KAAK,GAAAsjC,SAAA,CAALtjC,KAAK;IAAEmgC,WAAW,GAAAmD,SAAA,CAAXnD,WAAW;IAAEM,YAAY,GAAA6C,SAAA,CAAZ7C;AAErC8C,EAAAA,eAAS,CAAC,YAAM;AACd9C,IAAAA,YAAY,EAAE,CAAA,OAAA,CAAM,CAAC,UAAA3gC,GAAG,EAAA;AAAA,MAAA,OAAItC,OAAO,CAACwC,KAAK,CAAC,qCAAqC,EAAEF,GAAG,CAAC;IAAA,CAAA,CAAC;AAEtF,IAAA,IAAM0jC,KAAK,GAAGC,WAAW,CAAC,YAAM;AAC9BhD,MAAAA,YAAY,EAAE,CAAA,OAAA,CAAM,CAAC,UAAA3gC,GAAG,EAAA;AAAA,QAAA,OAAItC,OAAO,CAACwC,KAAK,CAAC,8BAA8B,EAAEF,GAAG,CAAC;MAAA,CAAA,CAAC;IACjF,CAAC,EAAEujC,QAAQ,CAAC;IAEZ,OAAO,YAAA;MAAA,OAAMK,aAAa,CAACF,KAAK,CAAC;AAAA,IAAA,CAAA;AACnC,EAAA,CAAC,EAAE,CAAC/C,YAAY,EAAE4C,QAAQ,CAAC,CAAC;AAE5B,EAAA,IAAM1C,SAAS,GAAA,CAAAmC,oBAAA,GAAG3C,WAAW,aAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAEU,OAAO,MAAA,IAAA,IAAAiC,oBAAA,KAAA,MAAA,GAAAA,oBAAA,GAAI,KAAK;AAC/C,EAAA,IAAM9O,WAAW,GAAA,CAAA+O,qBAAA,GAAG5C,WAAW,aAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAEnM,WAAW,MAAA,IAAA,IAAA+O,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI,KAAK;AACrD,EAAA,IAAMY,WAAW,GAAA,CAAAX,qBAAA,GAAG7C,WAAW,aAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAEwD,WAAW,MAAA,IAAA,IAAAX,qBAAA,KAAA,MAAA,GAAAA,qBAAA,GAAI,cAAc;AAC9D,EAAA,IAAM1B,GAAG,GAAA,CAAA2B,gBAAA,GAAG9C,WAAW,aAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAEmB,GAAG,MAAA,IAAA,IAAA2B,gBAAA,KAAA,MAAA,GAAAA,gBAAA,GAAI,CAAC;EAEjC,oBACEW,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKV,SAAS,EAAA,yBAAA,CAAA1qC,MAAA,CAA4BkoC,SAAS,GAAG,SAAS,GAAG,WAAW,EAAA,GAAA,CAAA,CAAAloC,MAAA,CAAI0qC,SAAS;GAAG,eAC3FS,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAiB,eAC9BS,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAoB,eACjCS,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAuB,eACpCS,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMV,IAAAA,SAAS,EAAC;AAAe,GAAO,CAAC,eACvCS,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMV,IAAAA,SAAS,EAAC;AAAqB,GAAA,EAClCxC,SAAS,GAAGvI,CAAC,CAAC,SAAS,CAAC,GAAGA,CAAC,CAAC,WAAW,CACrC,CACH,CAAC,eACNwL,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMV,IAAAA,SAAS,EAAC;AAAoB,GAAA,EAAEQ,WAAkB,CACrD,CAAC,eAENC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAkB,eAC/BS,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAkB,eAC/BS,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAiB,EAAE/K,CAAC,CAAC,aAAa,CAAO,CAAC,eACzDwL,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAiB,EAAEnP,WAAW,CAAC8P,cAAc,EAAQ,CACjE,CAAC,eACNF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAkB,eAC/BS,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAiB,EAAE/K,CAAC,CAAC,KAAK,CAAO,CAAC,eACjDwL,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAiB,EAAE7B,GAAS,CACxC,CACF,CAAC,EAELthC,KAAK,iBACJ4jC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;AAAoB,GAAA,EAAC,SAC3B,EAACnjC,KAAK,CAAC3J,OAAO,IAAI,mBACtB,CAEJ,CAAC,eAENutC,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA,IAAA,EAAA,smGA6GS,CACN,CAAC;AAEV;;ACjKO,SAASE,uBAAuBA,CAAAxd,IAAA,EAKpC;AAAA,EAAA,IAJDyd,MAAM,GAAAzd,IAAA,CAANyd,MAAM;IACNC,OAAO,GAAA1d,IAAA,CAAP0d,OAAO;IACP9Z,MAAM,GAAA5D,IAAA,CAAN4D,MAAM;IACN+Z,cAAc,GAAA3d,IAAA,CAAd2d,cAAc;AAEd,EAAA,IAAAZ,SAAA,GAA8D9D,QAAQ,EAAE;IAAhEI,OAAO,GAAA0D,SAAA,CAAP1D,OAAO;IAAE5/B,KAAK,GAAAsjC,SAAA,CAALtjC,KAAK;IAAEugC,SAAS,GAAA+C,SAAA,CAAT/C,SAAS;IAAEO,cAAc,GAAAwC,SAAA,CAAdxC,cAAc;IAAEE,MAAM,GAAAsC,SAAA,CAANtC,MAAM;AACzD,EAAA,IAAAvB,SAAA,GAA8BC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAnZ,cAAA,CAAAiZ,SAAA,EAAA,CAAA,CAAA;AAAtC+B,IAAAA,OAAO,GAAA7B,UAAA,CAAA,CAAA,CAAA;AAAEwE,IAAAA,UAAU,GAAAxE,UAAA,CAAA,CAAA,CAAA;AAC1B,EAAA,IAAAG,UAAA,GAAoCJ,cAAQ,CAAC,IAAI,CAAC;IAAAK,UAAA,GAAAvZ,cAAA,CAAAsZ,UAAA,EAAA,CAAA,CAAA;AAA3CsE,IAAAA,UAAU,GAAArE,UAAA,CAAA,CAAA,CAAA;AAAEsE,IAAAA,aAAa,GAAAtE,UAAA,CAAA,CAAA,CAAA;AAEhCwD,EAAAA,eAAS,CAAC,YAAM;IACd,IAAIS,MAAM,IAAI7Z,MAAM,EAAE;AACpB2W,MAAAA,cAAc,CAAC3W,MAAM,CAAC,CAAA,OAAA,CAAM,CAAC,UAAArqB,GAAG,EAAA;AAAA,QAAA,OAAItC,OAAO,CAACwC,KAAK,CAAC,4BAA4B,EAAEF,GAAG,CAAC;MAAA,CAAA,CAAC;AACvF,IAAA;EACF,CAAC,EAAE,CAACkkC,MAAM,EAAE7Z,MAAM,EAAE2W,cAAc,CAAC,CAAC;AAEpC,EAAA,IAAI,CAACkD,MAAM,EAAE,OAAO,IAAI;AAExB,EAAA,IAAMM,mBAAmB,gBAAA,YAAA;IAAA,IAAA11B,KAAA,GAAAxT,iBAAA,cAAAC,YAAA,EAAA,CAAAC,CAAA,CAAG,SAAA6E,OAAAA,GAAA;AAAA,MAAA,IAAAkE,EAAA;AAAA,MAAA,OAAAhJ,YAAA,EAAA,CAAAG,CAAA,CAAA,UAAAoF,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAlF,CAAA,GAAAkF,QAAA,CAAAjF,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,IACrBwuB,MAAM,EAAA;AAAAvpB,cAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;YAAA,OAAAiF,QAAA,CAAAhF,CAAA,CAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YACXuoC,UAAU,CAAC,IAAI,CAAC;YAChBE,aAAa,CAAC,IAAI,CAAC;AAACzjC,YAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;AAAAkF,YAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;YAAA,OAEZqlC,MAAM,CAAC7W,MAAM,EAAE;AACnBoa,cAAAA,WAAW,EAAEvtC,IAAI,CAACC,GAAG,EAAE;AACvBsB,cAAAA,OAAO,EAAE;AACX,aAAC,CAAC;AAAA,UAAA,KAAA,CAAA;YACF8rC,aAAa,CAAC,SAAS,CAAC;AACxB,YAAA,IAAIH,cAAc,EAAE;cAClBA,cAAc,CAAC/Z,MAAM,CAAC;AACxB,YAAA;AAACvpB,YAAAA,QAAA,CAAAjF,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA,KAAA,CAAA;AAAAiF,YAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;YAAA2I,EAAA,GAAAzD,QAAA,CAAA/E,CAAA;AAED2B,YAAAA,OAAO,CAACwC,KAAK,CAAAqE,EAAI,CAAC;YAClBggC,aAAa,CAAC,QAAQ,CAAC;AAAC,UAAA,KAAA,CAAA;AAAAzjC,YAAAA,QAAA,CAAAlF,CAAA,GAAA,CAAA;YAExByoC,UAAU,CAAC,KAAK,CAAC;YAAC,OAAAvjC,QAAA,CAAA2E,CAAA,CAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAAA,OAAA3E,QAAA,CAAAhF,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,MAAA,CAAA,EAAAuE,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IAAA,CAErB,CAAA,CAAA;AAAA,IAAA,OAAA,SAnBKmkC,mBAAmBA,GAAA;AAAA,MAAA,OAAA11B,KAAA,CAAAzT,KAAA,CAAA,IAAA,EAAA3E,SAAA,CAAA;AAAA,IAAA,CAAA;EAAA,CAAA,EAmBxB;EAED,oBACEotC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAA6B,eAC1CS,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAyB,eACtCS,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;AAA2B,GAAA,eACxCS,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA,IAAA,EAAKzL,CAAC,CAAC,WAAW,CAAM,CAAC,eACzBwL,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQV,IAAAA,SAAS,EAAC,oBAAoB;AAACqB,IAAAA,OAAO,EAAEP;AAAQ,GAAA,EAAC,MAAe,CACrE,CAAC,eAENL,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;AAAyB,GAAA,EACrCvD,OAAO,iBAAIgE,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAsB,EAAE/K,CAAC,CAAC,WAAW,CAAO,CAAC,EACvEp4B,KAAK,iBAAI4jC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;AAAoB,GAAA,EAAC,SAAO,EAACnjC,KAAK,CAAC3J,OAAO,IAAI+hC,CAAC,CAAC,aAAa,CAAO,CAAC,EAE7FmI,SAAS,gBACRqD,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAmB,eAChCS,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAkB,eAC/BS,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMV,IAAAA,SAAS,EAAC;GAAO,EAAE/K,CAAC,CAAC,QAAQ,CAAC,EAAC,GAAO,CAAC,eAC7CwL,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMV,IAAAA,SAAS,EAAC;AAAY,GAAA,EAAEhZ,MAAa,CACxC,CAAC,eACNyZ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAkB,eAC/BS,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMV,IAAAA,SAAS,EAAC;GAAO,EAAE/K,CAAC,CAAC,QAAQ,CAAC,EAAC,GAAO,CAAC,eAC7CwL,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;IAAMV,SAAS,EAAA,cAAA,CAAA1qC,MAAA,CAAiB8nC,SAAS,CAACjoB,MAAM,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS;AAAG,GAAA,EACtFioB,SAAS,CAACjoB,MAAM,IAAI8f,CAAC,CAAC,WAAW,CAC9B,CACH,CAAC,eACNwL,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAkB,eAC/BS,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMV,IAAAA,SAAS,EAAC;GAAO,EAAE/K,CAAC,CAAC,aAAa,CAAC,EAAC,GAAO,CAAC,eAClDwL,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMV,IAAAA,SAAS,EAAC;AAAO,GAAA,EAAE5C,SAAS,CAACr4B,IAAI,IAAIq4B,SAAS,CAACsB,WAAW,IAAIzJ,CAAC,CAAC,SAAS,CAAQ,CACpF,CAAC,eACNwL,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAkB,eAC/BS,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMV,IAAAA,SAAS,EAAC;GAAO,EAAE/K,CAAC,CAAC,QAAQ,CAAC,EAAC,GAAO,CAAC,eAC7CwL,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMV,IAAAA,SAAS,EAAC;AAAO,GAAA,EAAE5C,SAAS,CAACxgB,GAAG,GAAGwgB,SAAS,CAACxgB,GAAG,GAAG,MAAM,GAAG,cAAqB,CACpF,CAAC,eAEN6jB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAAyB,eACtCS,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEV,IAAAA,SAAS,EAAC,uBAAuB;AACjCqB,IAAAA,OAAO,EAAEF,mBAAoB;AAC7BG,IAAAA,QAAQ,EAAEjD,OAAO,IAAI4C,UAAU,KAAK;AAAU,GAAA,EAE7C5C,OAAO,GAAGpJ,CAAC,CAAC,SAAS,CAAC,GAAGgM,UAAU,KAAK,SAAS,GAAGhM,CAAC,CAAC,mBAAmB,CAAC,GAAGA,CAAC,CAAC,eAAe,CACzF,CAAC,EACRgM,UAAU,KAAK,QAAQ,iBACtBR,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AAAGV,IAAAA,SAAS,EAAC;GAAe,EAAE/K,CAAC,CAAC,YAAY,CAAK,CAEhD,CACF,CAAC,gBAENwL,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;AAAoB,GAAA,eACjCS,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA,IAAA,EAAIzL,CAAC,CAAC,QAAQ,CAAC,EAAC,GAAI,CAAC,eACrBwL,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA,IAAA,EAAO1Z,MAAa,CAAC,eACrByZ,KAAA,CAAAC,aAAA,YAAIzL,CAAC,CAAC,eAAe,CAAK,CACvB,CAEJ,CAAC,eAENwL,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKV,IAAAA,SAAS,EAAC;GAA2B,eACxCS,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQV,IAAAA,SAAS,EAAC,wBAAwB;AAACqB,IAAAA,OAAO,EAAEP;AAAQ,GAAA,EACzD7L,CAAC,CAAC,OAAO,CACJ,CACL,CACF,CAAC,eAENwL,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA,IAAA,EAAA,qkIA6IS,CACN,CAAC;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}