@msafe/sui3-sdk 0.0.4 → 0.0.6-pre-0bd976e.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.
- package/dist/index.cjs +14638 -1492
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +24 -89
- package/dist/index.d.ts +24 -89
- package/dist/index.js +14630 -1447
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/backend/BackendImpl.ts +196 -0
- package/src/backend/PseudoBackend.ts +25 -14
- package/src/backend/interface.ts +10 -10
- package/src/backend/types.ts +0 -21
- package/src/core/CreateHelper.ts +22 -12
- package/src/core/MSafeAccount.ts +9 -5
- package/src/core/MSafeClient.ts +2 -6
- package/src/globals/MSafeGlobals.ts +2 -1
- package/src/globals/const.ts +8 -1
- package/src/types/msafe.ts +0 -20
- package/src/utils/index.ts +0 -1
- package/src/utils/multi-sig.ts +0 -113
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/transactions/coin-transfer.ts","../src/utils/format.ts","../src/utils/coin.ts","../src/utils/sui.ts","../src/utils/crypto.ts","../src/utils/buffer.ts","../src/transactions/object-transfer.ts","../src/transactions/reject.ts","../src/transactions/intention.ts","../src/core/MessageHelper.ts","../src/utils/multi-sig.ts","../src/core/CreateHelper.ts","../src/core/MSafeAccount.ts","../src/core/PublicKeyHelper.ts","../src/globals/MSafeGlobals.ts","../src/backend/PseudoBackend.ts","../src/backend/CoreDatabase.ts","../src/globals/const.ts","../src/core/MSafeClient.ts"],"sourcesContent":["export * from './core';\nexport * from './globals';\nexport * from './transactions';\nexport * from './types';\nexport * from './utils';\n","import { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\n\nimport { Formatter } from '@/utils/format';\nimport { getAllCoins, SUI_COIN } from '@/utils/sui';\n\nexport interface IntentionCoinTransfer {\n txType: 'CoinTransfer';\n recipient: string;\n coinType: string;\n amount: string;\n}\n\nexport async function buildCoinTransferTxb(input: {\n suiClient: SuiClient;\n sender: string;\n intention: IntentionCoinTransfer;\n}) {\n if (Formatter.isSuiStructEqual(input.intention.coinType, SUI_COIN)) {\n return buildSuiCoinTransferTxb(input);\n }\n return buildOtherCoinTransferTxb(input);\n}\n\nfunction buildSuiCoinTransferTxb(input: { sender: string; intention: IntentionCoinTransfer }): TransactionBlock {\n const txb = new TransactionBlock();\n const [coin] = txb.splitCoins(txb.gas, [txb.pure(input.intention.amount)]);\n txb.transferObjects([coin], txb.pure(input.intention.recipient));\n txb.setSender(input.sender);\n return txb;\n}\n\nasync function buildOtherCoinTransferTxb(input: {\n suiClient: SuiClient;\n sender: string;\n intention: IntentionCoinTransfer;\n}) {\n const { suiClient, sender, intention } = input;\n\n const objs = await getAllCoins({\n suiClient,\n owner: sender,\n coinType: intention.coinType,\n });\n if (objs.length === 0) {\n throw new Error('No valid coin found to send');\n }\n const totalBal = objs.reduce((sum, coin) => sum + BigInt(coin.balance), 0n);\n if (totalBal < BigInt(intention.amount)) {\n throw new Error('Not enough balance');\n }\n const txb = new TransactionBlock();\n const primary = txb.object(objs[0].coinObjectId);\n if (objs.length > 1) {\n txb.mergeCoins(\n primary,\n objs.slice(1).map((obj) => txb.object(obj.coinObjectId)),\n );\n }\n const [coin] = txb.splitCoins(primary, [txb.pure(intention.amount)]);\n txb.transferObjects([coin], txb.pure(intention.recipient));\n txb.setSender(input.sender);\n return txb;\n}\n","import { normalizeSuiAddress, normalizeStructTag } from '@mysten/sui.js/utils';\n\nimport { Coin } from '@/utils/coin';\n\nexport class Formatter {\n static normalizeSuiAddress(addr: string) {\n return normalizeSuiAddress(addr);\n }\n\n static normalizeStructTag(struct: string) {\n return normalizeStructTag(struct);\n }\n\n static isSuiAddressEqual(addr1: string, addr2: string) {\n return normalizeSuiAddress(addr1) === normalizeSuiAddress(addr2);\n }\n\n static isSuiStructEqual(struct1: string, struct2: string) {\n return normalizeStructTag(struct1) === normalizeStructTag(struct2);\n }\n\n static isCoinObjectType(struct: string) {\n return Coin.isCoin(struct);\n }\n}\n","import { CoinMetadata, SuiClient, SuiObjectData } from '@mysten/sui.js/client';\nimport { normalizeStructTag } from '@mysten/sui.js/utils';\n\n// CoinHelper is the coin helper to query for coin metadata.\nexport class CoinHelper {\n private _client: SuiClient;\n\n private _coinMetaReg: Map<string, CoinMetadata>;\n\n constructor(client: SuiClient) {\n this._client = client;\n this._coinMetaReg = new Map();\n }\n\n async getCoinMeta(coinType: string): Promise<CoinMetadata | undefined> {\n const normalized = normalizeStructTag(coinType);\n if (this._coinMetaReg.has(normalized)) {\n return this._coinMetaReg.get(normalized);\n }\n const meta = await this.queryCoinMeta(normalized);\n if (meta) {\n this._coinMetaReg.set(normalized, meta);\n }\n return meta;\n }\n\n private async queryCoinMeta(coinType: string): Promise<CoinMetadata | undefined> {\n const res = await this._client.getCoinMetadata({ coinType });\n return res || undefined;\n }\n}\n\n// Copied from sui/sdk/typescript/src/framework/framework.ts\n\nexport const COIN_TYPE_ARG_REGEX =\n /^0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<(.+)>$/;\n\nexport class Coin {\n static isCoin(type: string | undefined | null): boolean {\n if (!type) {\n return false;\n }\n return normalizeStructTag(type).match(COIN_TYPE_ARG_REGEX) != null;\n }\n\n static getCoinType(type: string) {\n const [, res] = normalizeStructTag(type).match(COIN_TYPE_ARG_REGEX) ?? [];\n return res || null;\n }\n\n static getBalance(data: SuiObjectData): bigint | undefined {\n if (!Coin.isCoin(data.type)) {\n return undefined;\n }\n if (data.content?.dataType !== 'moveObject') {\n return undefined;\n }\n const { balance } = data.content?.fields as any;\n if (balance === undefined) {\n return undefined;\n }\n return BigInt(balance);\n }\n}\n","import { SuiClient, PaginatedTransactionResponse, PaginatedCoins, CoinStruct } from '@mysten/sui.js/client';\nimport { parseSerializedSignature, PublicKey, SerializedSignature } from '@mysten/sui.js/cryptography';\nimport { MultiSigPublicKey } from '@mysten/sui.js/multisig';\n\nimport { PublicKeySerde } from '@/utils/crypto';\nimport { Formatter } from '@/utils/format';\n\nexport const SUI_COIN = '0x2::sui::SUI';\n\nexport async function getPublicKeyFromChain(suiClient: SuiClient, address: string): Promise<PublicKey | undefined> {\n let txs: PaginatedTransactionResponse;\n try {\n txs = await suiClient.queryTransactionBlocks({\n // Disable naming rule since the variable is defined by Mysten\n filter: { FromAddress: address },\n options: { showInput: true },\n limit: 2,\n });\n } catch (e) {\n // Currently when there is no history transaction, will report an error:\n // Error: byte deserialization failed, cause by: Odd number of digits\n // TODO: remove the catch logic when sui part is fixed;\n return undefined;\n }\n\n if (txs.data.length === 0 || !txs.data[0].transaction?.txSignatures) {\n return undefined;\n }\n const tx = txs.data[0];\n const signatures = tx.transaction?.txSignatures as string[];\n\n for (let i = 0; i !== signatures.length; i++) {\n const serializedSig = signatures[i];\n const pk = getAddressFromSignatures(serializedSig, address);\n if (!pk) {\n continue;\n }\n return pk;\n }\n return undefined;\n}\n\nfunction getAddressFromSignatures(serializedSig: SerializedSignature, targetAddress: string) {\n const decoded = parseSerializedSignature(serializedSig);\n switch (decoded.signatureScheme) {\n case 'MultiSig': {\n const multiSigAddress = new MultiSigPublicKey(decoded.multisig.multisig_pk).toSuiAddress();\n if (Formatter.isSuiAddressEqual(multiSigAddress, targetAddress)) {\n throw new Error('multi-sig wallet cannot be owner');\n }\n return undefined;\n }\n case 'ZkLogin': {\n if (Formatter.isSuiAddressEqual(decoded.zkLogin.address, targetAddress)) {\n throw new Error('ZkLogin wallet cannot be owner');\n }\n return undefined;\n }\n\n case 'ED25519':\n case 'Secp256k1':\n case 'Secp256r1': {\n const pk = PublicKeySerde.de({ publicKey: decoded.publicKey, scheme: decoded.signatureScheme });\n if (Formatter.isSuiAddressEqual(pk.toSuiAddress(), targetAddress)) {\n return pk;\n }\n return undefined;\n }\n\n default:\n throw new Error('Unknown schema');\n }\n}\n\nexport async function getAllCoins(input: { suiClient: SuiClient; owner: string; coinType: string | undefined }) {\n let hasNext = true;\n let cursor: string | undefined | null;\n const res: CoinStruct[] = [];\n while (hasNext) {\n const currentPage: PaginatedCoins = await input.suiClient.getCoins({\n owner: input.owner,\n coinType: input.coinType,\n cursor,\n });\n res.push(...currentPage.data);\n hasNext = currentPage.hasNextPage;\n cursor = currentPage.nextCursor;\n }\n return res;\n}\n","import {\n PublicKey,\n SerializedSignature,\n SIGNATURE_FLAG_TO_SCHEME,\n SignatureFlag,\n SignatureScheme,\n} from '@mysten/sui.js/cryptography';\nimport { Ed25519PublicKey } from '@mysten/sui.js/keypairs/ed25519';\nimport { Secp256k1PublicKey } from '@mysten/sui.js/keypairs/secp256k1';\nimport { Secp256r1PublicKey } from '@mysten/sui.js/keypairs/secp256r1';\nimport { verifyPersonalMessage, verifyTransactionBlock } from '@mysten/sui.js/verify';\n\nimport { stringToBuffer } from '@/utils/buffer';\nimport { Formatter } from '@/utils/format';\n\nexport class SignatureVerifier {\n static async getPublicKeyFromSignature(input: {\n message: Uint8Array;\n messageType: 'TransactionBlock' | 'Personal';\n signature: SerializedSignature;\n }) {\n if (input.messageType === 'TransactionBlock') {\n return verifyTransactionBlock(input.message, input.signature);\n }\n return verifyPersonalMessage(input.message, input.signature);\n }\n\n static async getPublicKeyFromPersonalSignature(input: { messageStr: string; signature: SerializedSignature }) {\n const message = stringToBuffer(input.messageStr);\n return this.getPublicKeyFromSignature({\n message,\n messageType: 'Personal',\n signature: input.signature,\n });\n }\n\n static async verifySignature(input: {\n message: Uint8Array;\n messageType: 'TransactionBlock' | 'Personal';\n signature: SerializedSignature;\n targetAddress: string;\n }) {\n const publicKey = await SignatureVerifier.getPublicKeyFromSignature(input);\n return Formatter.isSuiAddressEqual(publicKey.toSuiAddress(), input.targetAddress);\n }\n\n static async verifyPersonalSignature(input: {\n messageStr: string;\n signature: SerializedSignature;\n targetAddress: string;\n }) {\n const message = stringToBuffer(input.messageStr);\n return this.verifySignature({\n message,\n messageType: 'Personal',\n signature: input.signature,\n targetAddress: input.targetAddress,\n });\n }\n\n static async verifyTransactionSignature(input: {\n payload: Uint8Array;\n signature: SerializedSignature;\n targetAddress: string;\n }): Promise<boolean> {\n return this.verifySignature({\n messageType: 'TransactionBlock',\n message: input.payload,\n signature: input.signature,\n targetAddress: input.targetAddress,\n });\n }\n}\n\nexport class PublicKeySerde {\n static ser(publicKey: PublicKey) {\n return {\n publicKey: publicKey.toBase64(),\n scheme: SIGNATURE_FLAG_TO_SCHEME[publicKey.flag() as SignatureFlag],\n };\n }\n\n static de(input: { publicKey: string | Uint8Array; scheme: SignatureScheme }): PublicKey {\n switch (input.scheme) {\n case 'ED25519':\n return new Ed25519PublicKey(input.publicKey);\n case 'Secp256k1':\n return new Secp256k1PublicKey(input.publicKey);\n case 'Secp256r1':\n return new Secp256r1PublicKey(input.publicKey);\n default:\n throw new Error('Unsupported signature scheme: $input.scheme');\n }\n }\n}\n","export function stringToBuffer(s: string) {\n return Buffer.from(s, 'utf-8');\n}\n\nexport function Uint8ArrayToHex(b: Uint8Array): string {\n return `0x${Array.prototype.map.call(b, (x) => `0${x.toString(16)}`.slice(-2)).join('')}`;\n}\n\nexport function HexToUint8Array(hex: string): Uint8Array {\n return Uint8Array.from(Buffer.from(hex.startsWith('0x') ? hex.slice(2) : hex, 'hex'));\n}\n","import { SuiClient } from '@mysten/sui.js/client';\nimport type { SuiObjectResponse } from '@mysten/sui.js/src/client/types';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\n\nimport { Formatter } from '@/utils/format';\n\nexport interface IntentionObjectTransfer {\n txType: 'ObjectTransfer';\n receiver: string;\n objectId: string;\n objectType: string;\n}\n\nexport async function buildObjectTransferTxb(input: {\n suiClient: SuiClient;\n sender: string;\n intention: IntentionObjectTransfer;\n}) {\n await validateObjectTransfer(input);\n\n const txb = new TransactionBlock();\n txb.transferObjects([txb.object(input.intention.objectId)], txb.pure(input.intention.receiver));\n txb.setSender(input.sender);\n\n return txb;\n}\n\nasync function validateObjectTransfer(input: {\n suiClient: SuiClient;\n sender: string;\n intention: IntentionObjectTransfer;\n}) {\n const { suiClient, sender, intention } = input;\n const obj = await suiClient.getObject({\n id: intention.objectId,\n });\n\n if (obj.data === undefined) {\n throw new Error('Object not found');\n }\n if (!obj.data?.type) {\n throw new Error('Object type is null');\n }\n if (!Formatter.isSuiStructEqual(obj.data.type, intention.objectType)) {\n throw new Error('Object type not expected');\n }\n if (Formatter.isCoinObjectType(obj.data.type)) {\n throw new Error('Can not transfer coin object in Object Transfer transactions');\n }\n const addressOwner = getAddressOwner(obj);\n if (!Formatter.isSuiAddressEqual(addressOwner, sender)) {\n throw new Error('Object owner not match');\n }\n}\n\nfunction getAddressOwner(object: SuiObjectResponse) {\n const owner = object.data?.owner;\n if (!owner) {\n throw new Error('Object Owner not found');\n }\n\n if (typeof owner !== 'object' || !('AddressOwner' in owner)) {\n throw new Error('Invalid object owner');\n }\n return owner.AddressOwner;\n}\n","import { TransactionBlock } from '@mysten/sui.js/transactions';\n\nimport { HexToUint8Array } from '@/utils/buffer';\n\nexport async function buildRejectTxb(input: { sender: string; payloadToReject: string }) {\n const approveTxb = TransactionBlock.from(HexToUint8Array(input.payloadToReject) as Uint8Array);\n const gasPayment = approveTxb.blockData.gasConfig.payment;\n if (!gasPayment) {\n throw new Error('No gas payment found for approve payload');\n }\n // Reject transaction is an empty transaction block with the same gas payment as the\n // transaction to be rejected.\n const txb = new TransactionBlock();\n txb.setGasPayment(gasPayment);\n txb.setSender(input.sender);\n return txb;\n}\n","import { SuiClient } from '@mysten/sui.js/client';\n\nimport { buildCoinTransferTxb, IntentionCoinTransfer } from '@/transactions/coin-transfer';\nimport { buildObjectTransferTxb, IntentionObjectTransfer } from '@/transactions/object-transfer';\nimport { buildRejectTxb } from '@/transactions/reject';\n\nexport type TxIntention = IntentionObjectTransfer | IntentionCoinTransfer;\n\n// TODO: Refactor later\nexport class IntentionHelper {\n static ser(intention: TxIntention) {\n return JSON.stringify(intention);\n }\n\n static de(val: string): TxIntention {\n const intention = JSON.parse(val);\n if (typeof intention !== 'object' || !('txType' in intention)) {\n throw new Error(`Failed to deserialize intention: ${val}`);\n }\n return JSON.parse(val);\n }\n\n // TODO: Add gas option here.\n static buildTxb(input: { suiClient: SuiClient; intention: TxIntention; sender: string }) {\n switch (input.intention.txType) {\n case 'CoinTransfer':\n return buildCoinTransferTxb({\n suiClient: input.suiClient,\n sender: input.sender,\n intention: input.intention as IntentionCoinTransfer,\n });\n case 'ObjectTransfer':\n return buildObjectTransferTxb({\n suiClient: input.suiClient,\n sender: input.sender,\n intention: input.intention as IntentionObjectTransfer,\n });\n default:\n throw new Error(`Unknown tx type: ${input.intention}`);\n }\n }\n\n static getTxType(intention: TxIntention) {\n switch (intention.txType) {\n case 'CoinTransfer':\n return {\n txType: 'CoinTransfer',\n txSubType: 'CoinTransfer',\n };\n case 'ObjectTransfer':\n return {\n txType: 'ObjectTransfer',\n txSubType: 'ObjectTransfer',\n };\n default:\n throw new Error('Unknown intention type');\n }\n }\n\n static buildRejectTransaction(input: { msafeAddress: string; payloadToReject: string }) {\n return buildRejectTxb({ sender: input.msafeAddress, payloadToReject: input.payloadToReject });\n }\n}\n","import { IntentionHelper, TxIntention } from '@/transactions/intention';\n\nexport class MessageHelper {\n // Message used for MSafe creation\n static createMSafeMessage(msafeAddress: string): string {\n return `Create MSafe Account: ${msafeAddress}`;\n }\n\n static deCreateMSafeMessage(msg: string) {\n const regex = /Create MSafe Account: (.+)/;\n const matches = msg.match(regex);\n return matches ? matches[1] : undefined;\n }\n\n // Message to be used when user login. The timestamp string\n // is used to for extra validation.\n static welcomeMessage(timestamp: string): string {\n return `Welcome to MSafe. ${timestamp}`;\n }\n\n static deWelcomeMessage(msg: string): string | undefined {\n const regex = /Welcome to MSafe. (.+)/;\n const matches = msg.match(regex);\n return matches ? matches[1] : undefined;\n }\n\n static proposeIntentionMessage(data: ProposeIntentionData) {\n const { intention, sn } = data;\n const intentionData = IntentionHelper.ser(intention);\n const msg: ProposeIntentionMessage = {\n intentionData,\n sequenceNumber: sn,\n };\n return JSON.stringify(msg);\n }\n\n static deProposeIntentionMessage(s: string): ProposeIntentionData {\n const de = JSON.parse(s);\n if (\n !('intentionData' in de) ||\n typeof de.intentionData !== 'string' ||\n !('sequenceNumber' in de) ||\n typeof de.sequenceNumber !== 'number'\n ) {\n throw new Error('Invalid intention data');\n }\n const { sequenceNumber, intentionData } = de;\n return {\n sn: sequenceNumber,\n intention: IntentionHelper.de(intentionData),\n };\n }\n}\n\nexport interface ProposeIntentionData {\n intention: TxIntention;\n sn: number;\n}\n\nexport interface ProposeIntentionMessage {\n intentionData: string;\n sequenceNumber: number;\n}\n","import { PublicKey, SerializedSignature } from '@mysten/sui.js/cryptography';\nimport { Ed25519PublicKey } from '@mysten/sui.js/keypairs/ed25519';\nimport { MultiSigPublicKey } from '@mysten/sui.js/multisig';\n\nimport { MSafeAccountInfo } from '@/types/msafe';\nimport { stringToBuffer } from '@/utils/buffer';\n\nexport interface PublicKeyWithWeight {\n publicKey: PublicKey;\n weight: number;\n}\n\nexport interface MultiSigConfig {\n threshold: number;\n ownerWithWeight: PublicKeyWithWeight[];\n creationNonce: number | undefined;\n}\n\nexport const NONCE_PK_PREFIX = 'maven';\nexport const NONCE_PREFIX_MAX_SIZE = 16;\nexport const NONCE_PK_WEIGHT = 1;\n\nexport const MAX_WEIGHT = 255;\nexport const MIN_WEIGHT = 1;\nexport const MAX_OWNER_WITH_NONCE = 9;\nexport const MAX_OWNER_WITHOUT_NONCE = 10;\nexport const MIN_THRESHOLD = 1;\n\nexport class RawMultiSig {\n rawMsPK: MultiSigPublicKey;\n\n constructor(public readonly config: MultiSigConfig) {\n this.rawMsPK = getMultiSigPublicKey(config);\n }\n\n static fromMSafeAccountInfo(info: MSafeAccountInfo) {\n const parsed: MultiSigConfig = {\n threshold: info.threshold,\n ownerWithWeight: info.ownersWithWeightPK,\n creationNonce: info.creationNonce,\n };\n return new RawMultiSig(parsed);\n }\n\n get suiAddress(): string {\n return this.rawMsPK.toSuiAddress();\n }\n\n get publicKeys(): PublicKeyWithWeight[] {\n return this.rawMsPK.getPublicKeys();\n }\n\n get threshold(): number {\n return this.config.threshold;\n }\n\n combinePartialSignatures(signatures: SerializedSignature[]): SerializedSignature {\n return this.rawMsPK.combinePartialSignatures(signatures);\n }\n\n async verifyPersonalMessage(messageStr: string, multiSigSignature: SerializedSignature): Promise<boolean> {\n const message = stringToBuffer(messageStr);\n return this.rawMsPK.verifyPersonalMessage(message, multiSigSignature);\n }\n}\n\nexport function getMultiSigPublicKey(config: MultiSigConfig) {\n const { ownerWithWeight, threshold, creationNonce } = config;\n const pks = ownerWithWeight.map((pk) => ({\n publicKey: pk.publicKey,\n weight: pk.weight,\n }));\n if (creationNonce !== undefined) {\n pks.push({\n publicKey: makeNoncePublicKey(creationNonce),\n weight: NONCE_PK_WEIGHT,\n });\n }\n return MultiSigPublicKey.fromPublicKeys({ threshold, publicKeys: pks });\n}\n\nexport function makeNoncePublicKey(nonce: number) {\n const buffer = new ArrayBuffer(Ed25519PublicKey.SIZE);\n const textEncoder = new TextEncoder();\n textEncoder.encodeInto(NONCE_PK_PREFIX, new Uint8Array(buffer, 0, NONCE_PREFIX_MAX_SIZE));\n const nonceView = new DataView(buffer, NONCE_PREFIX_MAX_SIZE, 4);\n nonceView.setUint32(0, nonce, true);\n return new Ed25519PublicKey(new Uint8Array(buffer));\n}\n\nexport function validateMultiSigConfig(config: MultiSigConfig) {\n config.ownerWithWeight.forEach((pk) => {\n const { weight } = pk;\n if (weight < MIN_WEIGHT || weight > MAX_WEIGHT) {\n throw new Error(`Invalid multi-sig weight: ${weight} (1-${MAX_WEIGHT})`);\n }\n });\n const totalWeight = config.ownerWithWeight.reduce((s, pk) => s + pk.weight, 0);\n if (config.threshold > totalWeight) {\n throw new Error('Threshold is larger than total weight');\n }\n if (config.threshold < MIN_THRESHOLD) {\n throw new Error('Threshold is smaller than 1');\n }\n const maxOwner = config.creationNonce === undefined ? MAX_OWNER_WITHOUT_NONCE : MAX_OWNER_WITH_NONCE;\n if (config.ownerWithWeight.length > maxOwner) {\n throw new Error('Owner number bigger than upper cap');\n }\n const addressSet = new Set(config.ownerWithWeight.map((pk) => pk.publicKey.toSuiAddress()));\n if (addressSet.size !== config.ownerWithWeight.length) {\n throw new Error('Duplicate address detected');\n }\n}\n","import { PublicKey, SerializedSignature } from '@mysten/sui.js/cryptography';\n\nimport { MessageHelper } from '@/core/MessageHelper';\nimport { PublicKeyHelper } from '@/core/PublicKeyHelper';\nimport { MSafeGlobals } from '@/globals/MSafeGlobals';\nimport { CreateMSafeAccountInfo, CreatePermissionInfo } from '@/types/creation';\nimport { MultiSigConfig, RawMultiSig, validateMultiSigConfig } from '@/utils/multi-sig';\n\nexport class CreateHelper {\n constructor(\n public readonly globals: MSafeGlobals,\n public readonly pkHelper: PublicKeyHelper,\n ) {}\n\n async getPublicKeyBatch(addresses: string[]) {\n return this.pkHelper.getPublicKeyBatch(addresses);\n }\n\n async calculateMSafeAddress(info: CreatePermissionInfo) {\n const msConfig = await this.reduceCreationInfoToRawConfig(info);\n const ms = new RawMultiSig(msConfig);\n return ms.suiAddress;\n }\n\n // Validate the create info and return the msafe address.\n async validateCreateInfo(createInfo: CreateMSafeAccountInfo) {\n const rawConfig = await this.reduceCreationInfoToRawConfig(createInfo);\n validateMultiSigConfig(rawConfig);\n\n // Calculate the sui address will check the multi-sig\n return this.calculateMSafeAddress(createInfo);\n }\n\n async submitMSafeCreation(creationInfo: CreateMSafeAccountInfo) {\n const msafeAddress = await this.validateCreateInfo(creationInfo);\n\n const signingMessage = MessageHelper.createMSafeMessage(msafeAddress);\n const signature = await this.globals.wallet.signPersonalMessage({ messageStr: signingMessage });\n\n await this.submitToBackend(creationInfo, signature.signature);\n return msafeAddress;\n }\n\n private async reduceCreationInfoToRawConfig(info: CreatePermissionInfo): Promise<MultiSigConfig> {\n const publicKeys = await this.getPublicKeyBatch(info.ownerWithWeight.map((oww) => oww.address));\n publicKeys.forEach((pk, i) => {\n if (pk === undefined) {\n throw new Error(`Unknown public key for address: ${info.ownerWithWeight[i].address}`);\n }\n });\n return {\n threshold: info.threshold,\n ownerWithWeight: info.ownerWithWeight.map((owner, i) => ({\n publicKey: publicKeys[i] as PublicKey,\n weight: owner.weight,\n })),\n creationNonce: info.creationNonce,\n };\n }\n\n private async submitToBackend(createInfo: CreateMSafeAccountInfo, signature: SerializedSignature) {\n const pks = await this.pkHelper.getPublicKeyBatch(createInfo.ownerWithWeight.map((owner) => owner.address));\n await this.globals.backend.createMSafeAccount({\n ownerWithWeight: createInfo.ownerWithWeight.map((owner, i) => ({\n address: owner.address,\n weight: owner.weight,\n publicKey: pks[i] as PublicKey, // PublicKey has been verified.\n })),\n threshold: createInfo.threshold,\n name: createInfo.name, // name validation is deferred to backend\n description: createInfo.description, // description validation is deferred to backend\n creationNonce: createInfo.creationNonce,\n signature,\n });\n }\n}\n","import { SerializedSignature } from '@mysten/sui.js/cryptography';\n\nimport { MessageHelper } from '@/core/MessageHelper';\nimport { MSafeGlobals } from '@/globals/MSafeGlobals';\nimport { IntentionHelper, TxIntention } from '@/transactions/intention';\nimport { MSafeAccountInfo, PendingTx } from '@/types/msafe';\nimport { HexToUint8Array } from '@/utils/buffer';\nimport { RawMultiSig } from '@/utils/multi-sig';\n\nexport class MSafeAccount {\n public rawMultiSig: RawMultiSig;\n\n constructor(\n public readonly globals: MSafeGlobals,\n public readonly info: MSafeAccountInfo,\n ) {\n this.rawMultiSig = RawMultiSig.fromMSafeAccountInfo(info);\n }\n\n static async new(globals: MSafeGlobals, address: string) {\n const info = await globals.backend.getMSafeAccountInfo(address);\n return new MSafeAccount(globals, info);\n }\n\n async pendingTransactions() {\n return this.backend.getPendingTransactions(this.address);\n }\n\n async historyTransaction() {\n return this.backend.getHistoryTransactions(this.address);\n }\n\n async futureIntentions() {\n return this.backend.getFutureIntentions(this.address);\n }\n\n async currentSequenceNumber() {\n return this.backend.getCurrentSequenceNumber(this.address);\n }\n\n async nextSequenceNumber() {\n return this.backend.getNextSequenceNumber(this.address);\n }\n\n async proposeIntention(intention: TxIntention, sequenceNumber: number) {\n const message = MessageHelper.proposeIntentionMessage({ intention, sn: sequenceNumber });\n const signature = await this.wallet.signPersonalMessage({\n messageStr: message,\n });\n await this.backend.proposeIntention({\n intention,\n sequenceNumber,\n msafeAddress: this.address,\n userAddress: await this.userAddress(),\n signature: signature.signature,\n });\n }\n\n async voteForTransaction(digest: string, payload: string) {\n const payloadBytes = HexToUint8Array(payload);\n const signature = await this.wallet.signTransactionBlock({ transactionBlock: payloadBytes });\n return this.backend.voteForTransaction({\n msafeAddress: this.address,\n userAddress: await this.userAddress(),\n txDigest: digest,\n signature: signature.signature,\n });\n }\n\n // Shortcut for proposing a transaction to be a pending transaction, and add user vote to it.\n // Requires the multi-sig to be empty in pending transaction.\n async proposePendingTransaction(intention: TxIntention) {\n const txb = await IntentionHelper.buildTxb({\n suiClient: this.suiClient,\n intention,\n sender: this.address,\n });\n const payload = await txb.build({ client: this.suiClient });\n const digest = await txb.getDigest({ client: this.suiClient });\n const signature = await this.wallet.signTransactionBlock({ transactionBlock: payload });\n return this.backend.proposePendingTransaction({\n msafeAddress: this.address,\n userAddress: await this.userAddress(),\n intention,\n digest,\n signature: signature.signature,\n });\n }\n\n async rejectCurrentTx(pending?: PendingTx) {\n let payloadToReject: string;\n if (pending) {\n if (pending.isRejectTx) {\n throw new Error('Pending not reject transaction');\n }\n payloadToReject = pending.payload;\n } else {\n const pendings = await this.pendingTransactions();\n if (pendings.length !== 1 || pendings[0].isRejectTx) {\n throw new Error('Already rejected');\n }\n payloadToReject = pendings[0].payload;\n }\n const rejectTxb = await IntentionHelper.buildRejectTransaction({\n msafeAddress: this.address,\n payloadToReject,\n });\n const digest = await rejectTxb.getDigest({ client: this.suiClient });\n const payload = await rejectTxb.build({ client: this.suiClient });\n const signature = await this.wallet.signTransactionBlock({ transactionBlock: payload });\n return this.backend.rejectCurrentTx({\n msafeAddress: this.address,\n userAddress: await this.userAddress(),\n digest,\n signature: signature.signature,\n });\n }\n\n async buildNextIntentionAndAddToPending() {\n return this.backend.buildNextIntentionAndAddToPending({ msafeAddress: this.address });\n }\n\n async skipNextFailedIntention() {\n return this.backend.skipNextFailedIntention({ msafeAddress: this.address, userAddress: await this.userAddress() });\n }\n\n async executePendingTx(pending: PendingTx) {\n if (pending.votes.length < this.info.threshold) {\n throw new Error('Not enough signatures');\n }\n const sigs: SerializedSignature[] = [];\n const gotSigs = new Map(pending.votes.map((vote) => [vote.userAddress, vote.signature]));\n for (let i = 0; i < this.info.ownersWithWeightPK.length; i++) {\n const owner = this.info.ownersWithWeightPK[i];\n const signature = gotSigs.get(owner.publicKey.toSuiAddress());\n if (signature) {\n sigs.push(signature);\n }\n }\n const multiSignature = this.rawMultiSig.combinePartialSignatures(sigs);\n return this.suiClient.executeTransactionBlock({\n transactionBlock: HexToUint8Array(pending.payload),\n signature: multiSignature,\n options: { showEffects: true },\n });\n }\n\n get address() {\n return this.info.address;\n }\n\n private get backend() {\n return this.globals.backend;\n }\n\n private get wallet() {\n return this.globals.wallet;\n }\n\n private async userAddress() {\n return this.globals.wallet.address();\n }\n\n private get suiClient() {\n return this.globals.suiClient;\n }\n}\n","import { PublicKey } from '@mysten/sui.js/src/cryptography';\n\nimport { MSafeGlobals } from '@/globals/MSafeGlobals';\nimport { getPublicKeyFromChain } from '@/utils/sui';\n\n/**\n * PublicKeyHelper is the helper to query for public keys from\n * backend and blockchain.\n */\nexport class PublicKeyHelper {\n private knownPublicKeys: Map<string, PublicKey>;\n\n constructor(public readonly globals: MSafeGlobals) {\n this.knownPublicKeys = new Map<string, PublicKey>();\n }\n\n async getPublicKey(address: string) {\n const cached = this.knownPublicKeys.get(address);\n if (cached) {\n return cached;\n }\n const pk = await this._getPublicKey(address);\n if (pk) {\n this.knownPublicKeys.set(address, pk);\n }\n return pk;\n }\n\n async getPublicKeyBatch(addresses: string[]): Promise<(PublicKey | undefined)[]> {\n const results: (PublicKey | undefined)[] = new Array(addresses.length).fill(undefined);\n\n // Query local cache first\n for (let i = 0; i < addresses.length; i++) {\n const address = addresses[i];\n results[i] = this.knownPublicKeys.get(address);\n }\n\n // Query backend in batch\n const emptyIndexes = results\n .map((elem, index) => (elem === undefined ? index : -1))\n .filter((index) => index !== -1);\n const backendResult = await this.globals.backend.getPublicKeyBatch(emptyIndexes.map((index) => addresses[index]));\n for (let i = 0; i < emptyIndexes.length; i++) {\n const index = emptyIndexes[i];\n results[index] = backendResult[i];\n }\n\n // Query the public key from blockchain\n for (let i = 0; i < results.length; i++) {\n if (results[i] === undefined) {\n results[i] = await this.getPublicKeyFromChain(addresses[i]);\n }\n }\n\n // Finally, write the public keys to the local cache\n for (let i = 0; i < addresses.length; i++) {\n if (results[i]) {\n this.knownPublicKeys.set(addresses[i], results[i] as PublicKey);\n }\n }\n return results;\n }\n\n private async _getPublicKey(address: string) {\n const pkBackend = await this.getPublicKeyFromBackend(address);\n if (pkBackend) {\n return pkBackend;\n }\n const pkChain = await this.getPublicKeyFromChain(address);\n if (pkChain) {\n return pkChain;\n }\n return undefined;\n }\n\n private async getPublicKeyFromBackend(address: string): Promise<PublicKey | undefined> {\n try {\n const pk = await this.globals.backend.getPublicKey(address);\n return pk;\n } catch (_) {\n return undefined;\n }\n }\n\n private async getPublicKeyFromChain(address: string): Promise<PublicKey | undefined> {\n return getPublicKeyFromChain(this.globals.suiClient, address);\n }\n}\n","import { SuiClient } from '@mysten/sui.js/client';\n\nimport { IBackend } from '@/backend/interface';\nimport { PseudoBackend } from '@/backend/PseudoBackend';\nimport { getMSafeConfig, MSafeConfig, MSafeConfigOptions, MSafeEnv } from '@/globals/const';\nimport { IWallet } from '@/types/wallet';\n\nexport class MSafeGlobals {\n public readonly backend: IBackend;\n\n public readonly suiClient: SuiClient;\n\n public readonly config: MSafeConfig;\n\n _wallet: IWallet | undefined;\n\n constructor(input: { backend: IBackend; suiClient: SuiClient; config: MSafeConfig }) {\n this.backend = input.backend;\n this.suiClient = input.suiClient;\n this.config = input.config;\n }\n\n static async New(env: MSafeEnv, options?: MSafeConfigOptions) {\n const config = getMSafeConfig(env, options);\n const suiClient = new SuiClient(config.suiClient);\n const backend = await PseudoBackend.New(config.backend, suiClient);\n return new MSafeGlobals({\n backend,\n suiClient,\n config,\n });\n }\n\n connectWallet(wallet: IWallet) {\n this._wallet = wallet;\n }\n\n get wallet() {\n if (!this._wallet) {\n throw new Error('wallet not connected');\n }\n return this._wallet;\n }\n\n set wallet(val: IWallet) {\n this._wallet = val;\n }\n}\n","import 'reflect-metadata';\nimport {\n User,\n UserMSafe,\n HistoryTransaction,\n MSafe,\n TransactionIntention,\n UserVote,\n PendingTransaction,\n} from '@msafe/sui3-model/core';\nimport { SuiClient } from '@mysten/sui.js/client';\nimport { PublicKey, SerializedSignature } from '@mysten/sui.js/cryptography';\nimport { SignatureScheme } from '@mysten/sui.js/src/cryptography/signature-scheme';\nimport { MoreThanOrEqual } from 'typeorm';\n\nimport { CoreDB } from '@/backend/CoreDatabase';\nimport { IBackend } from '@/backend/interface';\nimport { CreateMSafeParams, JWTToken, UserWithOwnedMSafe } from '@/backend/types';\nimport { MessageHelper } from '@/core/MessageHelper';\nimport { DBConfig } from '@/globals/const';\nimport { IntentionHelper, TxIntention } from '@/transactions/intention';\nimport { FutureIntention, HistorySendTx, MSafeAccountInfo, PendingTx } from '@/types/msafe';\nimport { Uint8ArrayToHex, HexToUint8Array } from '@/utils/buffer';\nimport { PublicKeySerde, SignatureVerifier } from '@/utils/crypto';\nimport { Formatter } from '@/utils/format';\nimport { RawMultiSig } from '@/utils/multi-sig';\n\n/**\n * Represents a PseudoBackend class that implements the IBackend interface.\n * This class is responsible for interacting with a database and performing various operations.\n * Notice: For backend production code, all DB errors need to be handled correctly\n * TODO: Use QueryRunner to make all db operations atomic.\n * TODO: Permission validation for each request.\n * TODO: More input validation and normalization.\n */\nexport class PseudoBackend implements IBackend {\n private _token: JWTToken;\n\n private constructor(\n public readonly db: CoreDB,\n private readonly _suiClient: SuiClient,\n ) {}\n\n static async New(dbConfig: DBConfig, suiClient: SuiClient) {\n const db = await CoreDB.New(dbConfig);\n return new PseudoBackend(db, suiClient);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,unused-imports/no-unused-vars\n async isJWTTokenValid(_jwt: JWTToken): Promise<boolean> {\n return true;\n }\n\n async authSign(input: {\n address: string;\n message: string;\n signature: SerializedSignature;\n walletType: string;\n }): Promise<JWTToken> {\n const timestamp = MessageHelper.deWelcomeMessage(input.message);\n if (!timestamp) {\n throw new Error('Invalid welcome message');\n }\n // Check if the signing message has expired\n const date = Date.parse(timestamp);\n if (new Date().getTime() - date < 0) {\n throw new Error('Invalid timestamp');\n }\n if (new Date().getTime() - date > 10 * 1000) {\n throw new Error('Signing message expired');\n }\n\n const publicKey = await SignatureVerifier.getPublicKeyFromPersonalSignature({\n messageStr: input.message,\n signature: input.signature,\n });\n if (!Formatter.isSuiAddressEqual(input.address, publicKey.toSuiAddress())) {\n throw new Error('Invalid signature');\n }\n // Add user data to database\n await this.db.upsertUser({\n address: input.address,\n publicKey,\n lastLogin: new Date(),\n });\n\n // Add wallet type\n await this.db.updateUserWalletType({\n address: input.address,\n walletType: input.walletType,\n });\n\n this._token = '';\n return this._token;\n }\n\n setJWTToken(token: JWTToken) {\n this._token = token;\n }\n\n async getPublicKey(address: string) {\n const user = await this.model.user.findOneBy({\n address,\n });\n if (user === null) {\n return undefined;\n }\n return PublicKeySerde.de({\n publicKey: user.publicKey,\n scheme: user.schema as SignatureScheme,\n });\n }\n\n async getPublicKeyBatch(addresses: string[]): Promise<(PublicKey | undefined)[]> {\n const res: (PublicKey | undefined)[] = [];\n for (let i = 0; i < addresses.length; i++) {\n const address = addresses[i];\n const user = await this.getUser(address);\n res.push(\n user\n ? PublicKeySerde.de({\n publicKey: user.publicKey,\n scheme: user.schema as SignatureScheme,\n })\n : undefined,\n );\n }\n return res;\n }\n\n async createMSafeAccount(input: CreateMSafeParams) {\n const ms = new RawMultiSig(input);\n const msafeAddr = ms.suiAddress;\n\n const signingMsg = MessageHelper.createMSafeMessage(msafeAddr);\n const targetAddr = input.ownerWithWeight[0].address;\n const verifyResult = await SignatureVerifier.verifyPersonalSignature({\n messageStr: signingMsg,\n signature: input.signature,\n targetAddress: targetAddr,\n });\n if (!verifyResult) {\n throw new Error('Signature verification failed');\n }\n // TODO: In production, we will also need to verify whether the\n // JWT token align with the creator (targetAddr)\n // Check and verify the creation message.\n if (input.name.length > 128) {\n throw new Error('Name too long');\n }\n if (input.description && input.description.length > 512) {\n throw new Error('Description too long');\n }\n const creatorAddress = input.ownerWithWeight[0].address;\n const creator = await this.getUser(creatorAddress);\n if (creator === null) {\n throw new Error('Creator not found');\n }\n if (creator.nonce !== input.creationNonce) {\n throw new Error('Nonce not match');\n }\n const msafeExistCheck = await this.model.msafe.findOneBy({\n address: msafeAddr,\n });\n if (msafeExistCheck !== null) {\n throw new Error('MSafe already exist in database');\n }\n input.ownerWithWeight.forEach((ownerInfo) => {\n if (!Formatter.isSuiAddressEqual(ownerInfo.address, ownerInfo.publicKey.toSuiAddress())) {\n throw new Error('Sui address public key not match');\n }\n });\n\n // For each manager, add user info if not exist. Add userMSafe entry.\n for (let i = 0; i !== input.ownerWithWeight.length; i++) {\n const ownerInfo = input.ownerWithWeight[i];\n // Creator has been verified and already exist in database\n if (i !== 0) {\n const coManager = await this.getUser(ownerInfo.address);\n const serPK = PublicKeySerde.ser(ownerInfo.publicKey);\n // Add user with public key if not exist\n if (coManager === null) {\n const user: User = {\n address: ownerInfo.address,\n publicKey: serPK.publicKey,\n schema: serPK.scheme,\n nonce: 0,\n lastLogin: new Date(),\n };\n await this.model.user.save(user);\n }\n }\n\n // Add userMSafe record\n const userMSafe: UserMSafe = {\n userAddress: ownerInfo.address,\n msafeAddress: msafeAddr,\n index: i,\n weight: ownerInfo.weight,\n status: i === 0 ? 'active' : 'pending',\n };\n await this.model.userMSafe.save(userMSafe);\n }\n\n // Increment the creator nonce\n const creationNonce = creator.nonce;\n creator.nonce++;\n await this.model.user.save(creator);\n\n // Add MSafe record\n const msafe: MSafe = {\n address: msafeAddr,\n creationNonce,\n creator: creatorAddress,\n name: input.name,\n description: input.description,\n threshold: input.threshold,\n };\n await this.model.msafe.save(msafe);\n }\n\n async getMSafeAccountInfo(msafeAddress: string): Promise<MSafeAccountInfo> {\n // TODO: In production, we need verify whether the msafe\n // account belongs to the single signer from JWT token.\n\n const msafe = await this.model.msafe.findOneBy({ address: msafeAddress });\n if (msafe === null) {\n throw new Error('MSafe not found');\n }\n const userMSafes = await this.model.userMSafe.find({\n where: {\n msafeAddress,\n },\n order: {\n index: 'asc',\n },\n });\n if (userMSafes.length === 0) {\n throw new Error('MSafe does not have user info.');\n }\n const users = await Promise.all(userMSafes.map((um) => this.getUser(um.userAddress)));\n users.forEach((user) => {\n if (user === null) {\n throw new Error('User not found');\n }\n });\n const ownersWithWeightPK = userMSafes.map((userMSafe, i) => ({\n address: userMSafe.userAddress,\n weight: userMSafe.weight,\n publicKey: PublicKeySerde.de({ publicKey: users[i]!.publicKey, scheme: users[i]!.schema as SignatureScheme }),\n }));\n return {\n address: msafeAddress,\n ownersWithWeightPK,\n threshold: msafe.threshold,\n name: msafe.name,\n description: msafe.description,\n creationNonce: msafe.creationNonce,\n };\n }\n\n async getUserInfo(userAddress: string): Promise<UserWithOwnedMSafe> {\n // TODO: Do permission check on user JWT token.\n const user = await this.getUser(userAddress);\n if (user === null) {\n throw new Error('404: user not found');\n }\n // TODO: Add invitation status as well.\n const msafeAccounts = await this.model.userMSafe.findBy({ userAddress });\n const ownedMSafe = await Promise.all(\n msafeAccounts.map(async (msafeAccount) => this.getMSafeAccountInfo(msafeAccount.msafeAddress)),\n );\n return {\n address: userAddress,\n publicKey: user.publicKey,\n schema: user.schema,\n creationNonce: user.nonce,\n ownedMSafe,\n };\n }\n\n async getPendingTransactions(msafeAddress: string): Promise<PendingTx[]> {\n const pendings = await this.db.coreModel.pendingTransaction.findBy({\n msafeAddress,\n });\n if (pendings.length === 0) {\n return [];\n }\n const votes = await Promise.all(\n pendings.map((pending) => this.db.coreModel.userVote.findBy({ txDigest: pending.digest, isValid: true })),\n );\n const intention = await this.model.transactionIntention.findOneBy({\n msafeAddress,\n sequenceNumber: pendings[0].sequenceNumber,\n });\n if (intention === null) {\n throw new Error('Intention not found');\n }\n const intent = IntentionHelper.de(intention.data);\n return pendings.map((pending, i) => ({\n digest: pending.digest,\n payload: pending.payload,\n msafeAddress: pending.msafeAddress,\n isRejectTx: pending.isRejectTx,\n creator: pending.creator,\n createdAt: pending.createdAt as Date,\n votes: votes[i].map((vote) => ({\n userAddress: vote.userAddress,\n signature: vote.signature,\n timestamp: vote.updatedAt as Date,\n })),\n sequenceNumber: pending.sequenceNumber,\n intention: pending.isRejectTx ? undefined : intent,\n }));\n }\n\n async getCurrentSequenceNumber(msafeAddress: string): Promise<number> {\n // TODO: validate user permission\n const maxSNHistory = await this.model.historyTransaction.findOne({\n where: { msafeAddress },\n order: { sequenceNumber: 'desc' },\n });\n return maxSNHistory === null ? 0 : maxSNHistory.sequenceNumber + 1;\n }\n\n async getNextSequenceNumber(msafeAddress: string): Promise<number> {\n // TODO: validate user permission\n const maxSNIntention = await this.model.transactionIntention.findOne({\n where: { msafeAddress },\n order: { sequenceNumber: 'desc' },\n });\n return maxSNIntention === null ? 0 : maxSNIntention.sequenceNumber + 1;\n }\n\n async getHistoryTransactions(msafeAddress: string): Promise<HistorySendTx[]> {\n // TODO: Add pagination options. Filter by sequence number based\n // on pagination options.\n // Notice there can be multiple transactions with the same sequence\n // number.\n // TODO: Add permission validation\n const transactions = await this.db.coreModel.historyTransaction.find({\n where: {\n msafeAddress,\n },\n order: { sequenceNumber: 'desc' },\n });\n const votes = await Promise.all(\n transactions.map((tx) =>\n this.db.coreModel.userVote.findBy({\n txDigest: tx.digest,\n isValid: true,\n }),\n ),\n );\n return transactions.map((tx, i) => ({\n digest: tx.digest,\n payload: tx.payload,\n msafeAddress: tx.msafeAddress,\n isRejectTx: tx.isRejectTx,\n status: tx.status,\n creator: tx.creator,\n createdAt: tx.createdAt as Date,\n sequenceNumber: tx.sequenceNumber,\n votes: votes[i].map((vote) => ({\n userAddress: vote.userAddress,\n timestamp: vote.updatedAt as Date,\n })),\n }));\n }\n\n async getFutureIntentions(msafeAddress: string): Promise<FutureIntention[]> {\n // TODO: Add pagination options, add user permission validation\n const currentSequenceNumber = await this.getCurrentSequenceNumber(msafeAddress);\n const hasPending = (await this.model.pendingTransaction.findOneBy({ msafeAddress })) !== null;\n const futureSNStart = hasPending ? currentSequenceNumber + 1 : currentSequenceNumber;\n\n const futureTxs = await this.model.transactionIntention.find({\n where: { msafeAddress, sequenceNumber: MoreThanOrEqual(futureSNStart) },\n order: { sequenceNumber: 'asc' },\n });\n return futureTxs.map((tx) => ({\n intention: IntentionHelper.de(tx.data),\n msafeAddress: tx.msafeAddress,\n sequenceNumber: tx.sequenceNumber,\n rawData: tx.data,\n txType: tx.txType,\n txSubType: tx.txSubType,\n processed: tx.processed,\n status: tx.status,\n statusRemark: tx.statusRemark,\n creator: tx.creator,\n createdAt: tx.createdAt as Date,\n }));\n }\n\n async proposeIntention(input: {\n intention: TxIntention;\n sequenceNumber: number;\n userAddress: string;\n msafeAddress: string;\n signature: SerializedSignature;\n }) {\n // Validation:\n // 1. Whether the current wallet have permission\n // 2. Verify signature\n const userMSafe = await this.model.userMSafe.findOneBy({\n msafeAddress: input.msafeAddress,\n userAddress: input.userAddress,\n });\n if (!userMSafe) {\n throw new Error('User does not have permission to propose intention');\n }\n const verified = await SignatureVerifier.verifyPersonalSignature({\n messageStr: MessageHelper.proposeIntentionMessage({ intention: input.intention, sn: input.sequenceNumber }),\n signature: input.signature,\n targetAddress: input.userAddress,\n });\n if (!verified) {\n throw new Error('Invalid signature');\n }\n\n const sequenceNumber = await this.model.transactionIntention.count({\n where: {\n msafeAddress: input.msafeAddress,\n },\n });\n if (sequenceNumber !== input.sequenceNumber) {\n throw new Error('Sequence number not expected');\n }\n const intention: TransactionIntention = {\n msafeAddress: input.msafeAddress,\n sequenceNumber,\n processed: false,\n ...IntentionHelper.getTxType(input.intention),\n data: IntentionHelper.ser(input.intention),\n status: 'NEW',\n creator: input.userAddress,\n };\n await this.model.transactionIntention.save(intention);\n }\n\n // Propose a pending transaction. Require the msafe account\n // Does not have any pending transactions.\n async proposePendingTransaction(input: {\n intention: TxIntention;\n userAddress: string;\n msafeAddress: string;\n digest: string;\n signature: SerializedSignature;\n }) {\n const userMSafe = await this.model.userMSafe.findOneBy({\n msafeAddress: input.msafeAddress,\n userAddress: input.userAddress,\n });\n if (userMSafe === null) {\n throw new Error('Unauthorized');\n }\n\n const msafePendings = await this.model.pendingTransaction.findBy({\n msafeAddress: input.msafeAddress,\n });\n if (msafePendings.length !== 0) {\n throw new Error('Still have pending transaction');\n }\n\n const txb = await IntentionHelper.buildTxb({\n suiClient: this._suiClient,\n intention: input.intention,\n sender: input.msafeAddress,\n });\n const payload = await txb.build({ client: this._suiClient });\n const txDigest = await txb.getDigest({ client: this._suiClient });\n if (txDigest !== input.digest) {\n throw new Error('Transaction digest un-match');\n }\n\n const verified = await SignatureVerifier.verifyTransactionSignature({\n payload,\n targetAddress: input.userAddress,\n signature: input.signature,\n });\n if (!verified) {\n throw new Error('Failed to verify signature');\n }\n\n // Write intention\n const maxSNHistory = await this.model.historyTransaction.findOne({\n where: { msafeAddress: input.msafeAddress },\n order: { sequenceNumber: 'desc' },\n });\n const sequenceNumber = maxSNHistory === null ? 0 : maxSNHistory.sequenceNumber + 1;\n const intention: TransactionIntention = {\n msafeAddress: input.msafeAddress,\n sequenceNumber,\n processed: false,\n ...IntentionHelper.getTxType(input.intention),\n data: IntentionHelper.ser(input.intention),\n status: 'SUCCESS',\n creator: input.userAddress,\n };\n await this.model.transactionIntention.save(intention);\n\n // Write pending transaction\n const pendingTx: PendingTransaction = {\n digest: txDigest,\n msafeAddress: input.msafeAddress,\n payload: Uint8ArrayToHex(payload),\n sequenceNumber,\n isRejectTx: false,\n creator: input.userAddress,\n };\n await this.model.pendingTransaction.save(pendingTx);\n\n // Write user vote\n const userVote: UserVote = {\n userAddress: input.userAddress,\n txDigest,\n msafeAddress: input.msafeAddress,\n signature: input.signature,\n isValid: true,\n };\n await this.model.userVote.save(userVote);\n }\n\n // Calls for the first reject transaction\n async rejectCurrentTx(input: {\n userAddress: string;\n msafeAddress: string;\n digest: string;\n signature: SerializedSignature;\n }) {\n const userMSafe = await this.model.userMSafe.findOneBy({\n userAddress: input.userAddress,\n msafeAddress: input.msafeAddress,\n });\n if (userMSafe === null) {\n throw new Error('User does not have permission to MSafe');\n }\n\n const currentPending = await this.model.pendingTransaction.findOneBy({\n msafeAddress: input.msafeAddress,\n isRejectTx: false,\n });\n if (currentPending === null) {\n throw new Error('No active pending transaction');\n }\n\n const txb = await IntentionHelper.buildRejectTransaction({\n msafeAddress: input.msafeAddress,\n payloadToReject: currentPending.payload,\n });\n const payload = await txb.build({ client: this._suiClient });\n const digest = await txb.getDigest({ client: this._suiClient });\n if (input.digest !== digest) {\n throw new Error('Digest not match');\n }\n const verified = await SignatureVerifier.verifyTransactionSignature({\n payload,\n targetAddress: input.userAddress,\n signature: input.signature,\n });\n if (!verified) {\n throw new Error('Signature unverified');\n }\n\n const existPendingReject = await this.model.pendingTransaction.findOneBy({\n msafeAddress: input.msafeAddress,\n isRejectTx: true,\n });\n if (existPendingReject !== null) {\n await this.voteForTransaction({\n txDigest: existPendingReject.digest,\n msafeAddress: input.msafeAddress,\n userAddress: input.userAddress,\n signature: input.signature,\n });\n return;\n }\n\n const rejectPayloadStr = Uint8ArrayToHex(payload);\n const rejectDigest = await txb.getDigest({ client: this._suiClient });\n const rejectPending: PendingTransaction = {\n msafeAddress: input.msafeAddress,\n digest: rejectDigest,\n payload: rejectPayloadStr,\n sequenceNumber: currentPending.sequenceNumber,\n isRejectTx: true,\n creator: input.userAddress,\n };\n await this.model.pendingTransaction.save(rejectPending);\n\n // Vote for the transaction\n const rejectVote: UserVote = {\n userAddress: input.userAddress,\n msafeAddress: input.msafeAddress,\n txDigest: rejectDigest,\n signature: input.signature,\n isValid: true,\n };\n await this.model.userVote.save(rejectVote);\n\n // If user has previously voted in the other way, revoke the vote\n const existVote = await this.model.userVote.findOneBy({\n txDigest: currentPending.digest,\n userAddress: input.userAddress,\n });\n if (existVote !== null) {\n await this.model.userVote.update(\n { userAddress: input.userAddress, txDigest: currentPending.digest },\n { isValid: false },\n );\n }\n }\n\n async voteForTransaction(input: {\n txDigest: string;\n msafeAddress: string;\n userAddress: string;\n signature: SerializedSignature;\n }) {\n const pendingTx = await this.model.pendingTransaction.findOneBy({ digest: input.txDigest });\n if (!pendingTx) {\n throw new Error(`Pending transaction not found: ${input.txDigest}`);\n }\n if (pendingTx.msafeAddress !== input.msafeAddress) {\n throw new Error('MSafe address not match');\n }\n\n // Ensure user owns the msafe address\n const userMSafe = await this.model.userMSafe.findOneBy({\n userAddress: input.userAddress,\n msafeAddress: input.msafeAddress,\n });\n if (userMSafe === null) {\n throw new Error(`User (${input.userAddress}) does not have permission on MSafe account (${input.msafeAddress})`);\n }\n\n // Verify the signature\n const payload = HexToUint8Array(pendingTx.payload);\n const verified = await SignatureVerifier.verifyTransactionSignature({\n payload,\n targetAddress: input.userAddress,\n signature: input.signature,\n });\n if (!verified) {\n throw new Error('Invalid signature');\n }\n\n // If user has other vote on the reject transaction, Add the user vote.\n const rejectPendingTx = await this.model.pendingTransaction.findOneBy({\n msafeAddress: input.msafeAddress,\n sequenceNumber: pendingTx.sequenceNumber,\n isRejectTx: !pendingTx.isRejectTx,\n });\n if (rejectPendingTx !== null) {\n await this.model.userVote.update(\n {\n userAddress: input.userAddress,\n txDigest: rejectPendingTx.digest,\n isValid: true,\n },\n { isValid: false },\n );\n }\n const existVote = await this.model.userVote.exist({\n where: {\n txDigest: input.txDigest,\n userAddress: input.userAddress,\n },\n });\n if (!existVote) {\n const userVote: UserVote = {\n txDigest: input.txDigest,\n userAddress: input.userAddress,\n msafeAddress: input.msafeAddress,\n signature: input.signature,\n isValid: true,\n };\n await this.model.userVote.save(userVote);\n } else {\n await this.model.userVote.update(\n {\n txDigest: input.txDigest,\n userAddress: input.userAddress,\n },\n { isValid: true },\n );\n }\n }\n\n // Mock the process of an executed transaction\n // Here only the essential logic of transaction processing logic\n // is implemented. Need more transaction parsing from the fetcher\n // module.\n //\n // TODO: User queryRunner to make the transaction atomic.\n async processExecutedTransaction(digest: string) {\n // TODO: Process the transaction result from blockchain.\n const historyTx = await this.model.historyTransaction.findOneBy({ digest });\n if (historyTx) {\n // Already processed, directly return\n return;\n }\n const pendingTx = await this.model.pendingTransaction.findOneBy({ digest });\n if (!pendingTx) {\n throw new Error('Transaction digest not found');\n }\n // Mark the intention as processed.\n await this.model.transactionIntention.update(\n { msafeAddress: pendingTx.msafeAddress, sequenceNumber: pendingTx.sequenceNumber },\n { processed: true },\n );\n // Delete the current pending transaction.\n // There can be multiple transactions. mark one as executed, other as rejected\n const pendings = await this.model.pendingTransaction.findBy({\n msafeAddress: pendingTx.msafeAddress,\n sequenceNumber: pendingTx.sequenceNumber,\n });\n if (pendings.length === 0) {\n throw new Error('Pending transaction not found');\n }\n // Add to transaction history and delete the pending transaction.\n const executionResult: 'success' | 'failed' = 'success';\n for (let i = 0; i !== pendings.length; i++) {\n const pending = pendings[i];\n const history: HistoryTransaction = {\n digest: pending.digest,\n payload: pending.payload,\n msafeAddress: pending.msafeAddress,\n sequenceNumber: pending.sequenceNumber,\n isRejectTx: pending.isRejectTx,\n creator: pending.creator,\n createdAt: pending.createdAt as Date,\n // TODO: Fill in this field based on transaction processing result\n status: pending.digest === digest ? executionResult : 'rejected',\n };\n await this.model.historyTransaction.save(history);\n await this.model.pendingTransaction.delete({ digest: pending.digest });\n }\n }\n\n /**\n * Build the next transaction intention, and add the built transaction to pendings.\n * @param input\n */\n async buildNextIntentionAndAddToPending(input: { msafeAddress: string }) {\n const maxSNHistory = await this.model.historyTransaction.findOne({\n where: { msafeAddress: input.msafeAddress },\n order: { sequenceNumber: 'desc' },\n });\n const nextSequenceNumber = maxSNHistory ? maxSNHistory.sequenceNumber + 1 : 0;\n\n const currentPendings = await this.model.pendingTransaction.findBy({\n msafeAddress: input.msafeAddress,\n });\n if (currentPendings.length !== 0) {\n throw new Error('Still have pendings');\n }\n\n const nextTx = await this.model.transactionIntention.findOneBy({\n msafeAddress: input.msafeAddress,\n sequenceNumber: nextSequenceNumber,\n });\n if (nextTx === null) {\n throw new Error('No future intentions to build');\n }\n\n const nextIntention = IntentionHelper.de(nextTx.data);\n try {\n const newTxb = await IntentionHelper.buildTxb({\n suiClient: this._suiClient,\n sender: input.msafeAddress,\n intention: nextIntention,\n });\n const payload = await newTxb.build({ client: this._suiClient });\n const newDigest = await newTxb.getDigest({ client: this._suiClient });\n const newPending: PendingTransaction = {\n digest: newDigest,\n payload: Uint8ArrayToHex(payload),\n msafeAddress: input.msafeAddress,\n sequenceNumber: nextTx.sequenceNumber,\n isRejectTx: false,\n creator: nextTx.creator,\n };\n await this.model.pendingTransaction.save(newPending);\n await this.model.transactionIntention.update(\n {\n msafeAddress: input.msafeAddress,\n sequenceNumber: nextSequenceNumber,\n },\n {\n status: 'SUCCESS',\n },\n );\n } catch (e: unknown) {\n // Build failed. Mark the intention as failed.\n await this.model.transactionIntention.update(\n {\n msafeAddress: input.msafeAddress,\n sequenceNumber: nextSequenceNumber,\n },\n {\n status: 'FAILED',\n statusRemark: (e as any).toString(),\n },\n );\n throw new Error(`Intention build failed: {sequenceNumber: ${nextSequenceNumber}}`);\n }\n }\n\n /**\n * Skip next failed transaction if build of the intention has been failed before.\n */\n async skipNextFailedIntention(input: { msafeAddress: string; userAddress: string }) {\n const userMSafe = await this.model.userMSafe.findOneBy({\n msafeAddress: input.msafeAddress,\n userAddress: input.userAddress,\n });\n if (userMSafe === null) {\n throw new Error('user does not have permission to MSafe');\n }\n\n const curSequenceNumber = await this.model.historyTransaction.findOne({\n where: { msafeAddress: input.msafeAddress },\n order: { sequenceNumber: 'desc' },\n });\n const nextSequenceNumber = curSequenceNumber ? curSequenceNumber.sequenceNumber + 1 : 0;\n\n const failedIntention = await this.model.transactionIntention.findOneBy({\n msafeAddress: input.msafeAddress,\n sequenceNumber: nextSequenceNumber,\n });\n if (failedIntention === null) {\n throw new Error('Next intention not found');\n }\n if (failedIntention.status !== 'FAILED') {\n throw new Error('Next intention not failed');\n }\n\n const history: HistoryTransaction = {\n msafeAddress: input.msafeAddress,\n digest: '0x0', // Special case for build has been failed,\n payload: '',\n sequenceNumber: nextSequenceNumber,\n creator: failedIntention.creator,\n isRejectTx: false,\n status: 'build-failed',\n };\n await this.model.historyTransaction.save(history);\n\n await this.model.transactionIntention.update(\n { msafeAddress: input.msafeAddress, sequenceNumber: nextSequenceNumber },\n { processed: true },\n );\n }\n\n private async getUser(address: string): Promise<User | null> {\n return this.model.user.findOneBy({ address });\n }\n\n private get model() {\n return this.db.coreModel;\n }\n}\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport 'reflect-metadata';\n\nimport { CoreModel, User, UserSetting } from '@msafe/sui3-model/core';\nimport { PublicKey } from '@mysten/sui.js/cryptography';\n\nimport { DBConfig } from '@/globals/const';\nimport { PublicKeySerde } from '@/utils/crypto';\n\nexport const WALLET_TYPE_KEY = 'wallet_type';\n\nexport class CoreDB {\n private constructor(public readonly coreModel: CoreModel) {}\n\n static async New(dbConfig: DBConfig) {\n const core = await CoreModel.New(dbConfig);\n return new CoreDB(core);\n }\n\n async upsertUser(input: { address: string; publicKey: PublicKey; lastLogin: Date }) {\n const currentUser = await this.coreModel.user.findOneBy({\n address: input.address,\n });\n if (currentUser !== null) {\n currentUser.lastLogin = input.lastLogin;\n await this.coreModel.user.save(currentUser);\n } else {\n const serializedPublicKey = PublicKeySerde.ser(input.publicKey);\n const user: User = {\n address: input.address,\n publicKey: serializedPublicKey.publicKey,\n schema: serializedPublicKey.scheme,\n nonce: 0,\n lastLogin: new Date(),\n };\n await this.coreModel.user.save(user);\n }\n }\n\n async updateUserWalletType(input: { address: string; walletType: string }) {\n const exist = await this.coreModel.userSetting.findOneBy({\n userAddress: input.address,\n key: WALLET_TYPE_KEY,\n });\n const walletType = input.walletType.trim();\n if (exist === null || exist.value !== walletType) {\n const userSetting: UserSetting = {\n userAddress: input.address,\n key: WALLET_TYPE_KEY,\n value: walletType,\n };\n await this.coreModel.userSetting.save(userSetting);\n }\n }\n}\n","import { ModelConfig } from '@msafe/sui3-model/common';\n\nexport enum MSafeEnv {\n local = 'local',\n unit = 'unit',\n dev = 'dev',\n prev = 'prev',\n prod = 'prod',\n}\n\nexport interface MSafeConfig {\n suiClient: {\n url: string;\n };\n backend: DBConfig;\n}\n\nexport interface MSafeConfigOptions {\n suiClient?: {\n url?: string;\n };\n backend?: DBConfig;\n}\n\n// Use pseudo backend for now.\nexport type DBConfig = ModelConfig;\n\nexport const UNIT_DATABASE_CONFIG: DBConfig = {\n type: 'sqlite',\n database: ':memory:',\n logging: false,\n};\n\nexport const LOCAL_DATABASE_CONFIG: DBConfig = {\n type: 'mysql',\n host: '127.0.0.1',\n port: 3306,\n username: 'msafe',\n password: 'msafe',\n database: 'msafe_sui_local',\n logging: false,\n};\n\nexport const DEV_DATABASE_CONFIG: DBConfig = {\n type: 'mysql',\n host: 'msafe-dev-database.cluster-caos3ssocrx6.us-west-1.rds.amazonaws.com',\n port: 3306,\n username: 'msafe',\n password: 'Momentum.Safe2022',\n database: 'msafe_sui_dev',\n logging: false,\n};\n\nexport const TESTNET_RPC_URL = 'https://sui-testnet.blockvision.org/v1/2Sgk89ivT64MnKdcGzjmyjY2ndD';\nexport const MAINNET_RPC_URL = 'https://sui-mainnet.blockvision.org/v1/2Sgk7NPvqkd7mESYkxF01yX15l7';\n\nexport const ENV_CONFIGS = new Map<MSafeEnv, MSafeConfig>([\n [\n MSafeEnv.unit,\n {\n suiClient: {\n url: TESTNET_RPC_URL,\n },\n backend: UNIT_DATABASE_CONFIG,\n },\n ],\n [\n MSafeEnv.local,\n {\n suiClient: {\n url: TESTNET_RPC_URL,\n },\n backend: LOCAL_DATABASE_CONFIG,\n },\n ],\n [\n MSafeEnv.dev,\n {\n suiClient: {\n url: TESTNET_RPC_URL,\n },\n backend: DEV_DATABASE_CONFIG,\n },\n ],\n]);\n\nexport function getMSafeConfig(env: MSafeEnv, options?: MSafeConfigOptions) {\n const config = ENV_CONFIGS.get(env);\n if (!config) {\n throw new Error('Unknown environment');\n }\n if (options?.suiClient?.url) {\n config.suiClient.url = options.suiClient.url;\n }\n if (options?.backend) {\n config.backend = options.backend;\n }\n return config;\n}\n\nexport const AUTH_SIGN_MESSAGE = 'Welcome to MSafe';\n","import { JWTToken } from '@/backend/types';\nimport { CreateHelper } from '@/core/CreateHelper';\nimport { MessageHelper } from '@/core/MessageHelper';\nimport { MSafeAccount } from '@/core/MSafeAccount';\nimport { PublicKeyHelper } from '@/core/PublicKeyHelper';\nimport { MSafeConfigOptions, MSafeEnv } from '@/globals/const';\nimport { MSafeGlobals } from '@/globals/MSafeGlobals';\nimport { CreateMSafeAccountInfo } from '@/types/creation';\nimport { MSafeAccountInfo } from '@/types/msafe';\nimport { IWallet } from '@/types/wallet';\n\nexport class MSafeClient {\n private _creationHelper: CreateHelper | undefined;\n\n private _publicKeyHelper: PublicKeyHelper | undefined;\n\n constructor(public readonly globals: MSafeGlobals) {}\n\n static async New(env: MSafeEnv, options?: MSafeConfigOptions) {\n const globals = await MSafeGlobals.New(env, options);\n return new MSafeClient(globals);\n }\n\n async connectWallet(input: { wallet: IWallet; jwtToken?: JWTToken }): Promise<JWTToken> {\n this.globals.wallet = input.wallet;\n const isValidJWT = input.jwtToken && (await this.backend.isJWTTokenValid(input.jwtToken));\n if (isValidJWT) {\n this.backend.setJWTToken(input.jwtToken as JWTToken);\n return input.jwtToken as JWTToken;\n }\n const messageStr = MessageHelper.welcomeMessage(new Date().toUTCString());\n const sig = await input.wallet.signPersonalMessage({\n messageStr,\n });\n return this.backend.authSign({\n address: await input.wallet.address(),\n message: messageStr,\n signature: sig.signature,\n walletType: input.wallet.walletType,\n });\n }\n\n async userInfo() {\n return this.globals.backend.getUserInfo(await this.walletAddress());\n }\n\n async createAccount(info: CreateMSafeAccountInfo) {\n return this.creationHelper.submitMSafeCreation(info);\n }\n\n getMSafeAccount(info: MSafeAccountInfo) {\n return new MSafeAccount(this.globals, info);\n }\n\n async getMSafeAccountFromAddress(msafeAddress: string) {\n const info = await this.backend.getMSafeAccountInfo(msafeAddress);\n return new MSafeAccount(this.globals, info);\n }\n\n // Get the creation helper to calculate the msafe account address,\n // validation, and more.\n get creationHelper() {\n if (!this._creationHelper) {\n this._creationHelper = new CreateHelper(this.globals, this.publicKeyHelper);\n }\n return this._creationHelper;\n }\n\n get publicKeyHelper() {\n if (!this._publicKeyHelper) {\n this._publicKeyHelper = new PublicKeyHelper(this.globals);\n }\n return this._publicKeyHelper;\n }\n\n get config() {\n return this.globals.config;\n }\n\n get backend() {\n return this.globals.backend;\n }\n\n get wallet() {\n return this.globals.wallet;\n }\n\n private async walletAddress() {\n return this.wallet.address();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,0BAAiC;;;ACDjC,IAAAA,gBAAwD;;;ACCxD,mBAAmC;AAG5B,IAAM,aAAN,MAAiB;AAAA,EACd;AAAA,EAEA;AAAA,EAER,YAAY,QAAmB;AAC7B,SAAK,UAAU;AACf,SAAK,eAAe,oBAAI,IAAI;AAAA,EAC9B;AAAA,EAEA,MAAM,YAAY,UAAqD;AACrE,UAAM,iBAAa,iCAAmB,QAAQ;AAC9C,QAAI,KAAK,aAAa,IAAI,UAAU,GAAG;AACrC,aAAO,KAAK,aAAa,IAAI,UAAU;AAAA,IACzC;AACA,UAAM,OAAO,MAAM,KAAK,cAAc,UAAU;AAChD,QAAI,MAAM;AACR,WAAK,aAAa,IAAI,YAAY,IAAI;AAAA,IACxC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,cAAc,UAAqD;AAC/E,UAAM,MAAM,MAAM,KAAK,QAAQ,gBAAgB,EAAE,SAAS,CAAC;AAC3D,WAAO,OAAO;AAAA,EAChB;AACF;AAIO,IAAM,sBACX;AAEK,IAAM,OAAN,MAAM,MAAK;AAAA,EAChB,OAAO,OAAO,MAA0C;AACtD,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AACA,eAAO,iCAAmB,IAAI,EAAE,MAAM,mBAAmB,KAAK;AAAA,EAChE;AAAA,EAEA,OAAO,YAAY,MAAc;AAC/B,UAAM,CAAC,EAAE,GAAG,QAAI,iCAAmB,IAAI,EAAE,MAAM,mBAAmB,KAAK,CAAC;AACxE,WAAO,OAAO;AAAA,EAChB;AAAA,EAEA,OAAO,WAAW,MAAyC;AACzD,QAAI,CAAC,MAAK,OAAO,KAAK,IAAI,GAAG;AAC3B,aAAO;AAAA,IACT;AACA,QAAI,KAAK,SAAS,aAAa,cAAc;AAC3C,aAAO;AAAA,IACT;AACA,UAAM,EAAE,QAAQ,IAAI,KAAK,SAAS;AAClC,QAAI,YAAY,QAAW;AACzB,aAAO;AAAA,IACT;AACA,WAAO,OAAO,OAAO;AAAA,EACvB;AACF;;;AD3DO,IAAM,YAAN,MAAgB;AAAA,EACrB,OAAO,oBAAoB,MAAc;AACvC,eAAO,mCAAoB,IAAI;AAAA,EACjC;AAAA,EAEA,OAAO,mBAAmB,QAAgB;AACxC,eAAO,kCAAmB,MAAM;AAAA,EAClC;AAAA,EAEA,OAAO,kBAAkB,OAAe,OAAe;AACrD,eAAO,mCAAoB,KAAK,UAAM,mCAAoB,KAAK;AAAA,EACjE;AAAA,EAEA,OAAO,iBAAiB,SAAiB,SAAiB;AACxD,eAAO,kCAAmB,OAAO,UAAM,kCAAmB,OAAO;AAAA,EACnE;AAAA,EAEA,OAAO,iBAAiB,QAAgB;AACtC,WAAO,KAAK,OAAO,MAAM;AAAA,EAC3B;AACF;;;AEvBA,IAAAC,uBAAyE;AACzE,sBAAkC;;;ACFlC,0BAMO;AACP,qBAAiC;AACjC,uBAAmC;AACnC,uBAAmC;AACnC,oBAA8D;;;ACVvD,SAAS,eAAe,GAAW;AACxC,SAAO,OAAO,KAAK,GAAG,OAAO;AAC/B;AAEO,SAAS,gBAAgB,GAAuB;AACrD,SAAO,KAAK,MAAM,UAAU,IAAI,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AACzF;AAEO,SAAS,gBAAgB,KAAyB;AACvD,SAAO,WAAW,KAAK,OAAO,KAAK,IAAI,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC;AACtF;;;ADKO,IAAM,oBAAN,MAAM,mBAAkB;AAAA,EAC7B,aAAa,0BAA0B,OAIpC;AACD,QAAI,MAAM,gBAAgB,oBAAoB;AAC5C,iBAAO,sCAAuB,MAAM,SAAS,MAAM,SAAS;AAAA,IAC9D;AACA,eAAO,qCAAsB,MAAM,SAAS,MAAM,SAAS;AAAA,EAC7D;AAAA,EAEA,aAAa,kCAAkC,OAA+D;AAC5G,UAAM,UAAU,eAAe,MAAM,UAAU;AAC/C,WAAO,KAAK,0BAA0B;AAAA,MACpC;AAAA,MACA,aAAa;AAAA,MACb,WAAW,MAAM;AAAA,IACnB,CAAC;AAAA,EACH;AAAA,EAEA,aAAa,gBAAgB,OAK1B;AACD,UAAM,YAAY,MAAM,mBAAkB,0BAA0B,KAAK;AACzE,WAAO,UAAU,kBAAkB,UAAU,aAAa,GAAG,MAAM,aAAa;AAAA,EAClF;AAAA,EAEA,aAAa,wBAAwB,OAIlC;AACD,UAAM,UAAU,eAAe,MAAM,UAAU;AAC/C,WAAO,KAAK,gBAAgB;AAAA,MAC1B;AAAA,MACA,aAAa;AAAA,MACb,WAAW,MAAM;AAAA,MACjB,eAAe,MAAM;AAAA,IACvB,CAAC;AAAA,EACH;AAAA,EAEA,aAAa,2BAA2B,OAInB;AACnB,WAAO,KAAK,gBAAgB;AAAA,MAC1B,aAAa;AAAA,MACb,SAAS,MAAM;AAAA,MACf,WAAW,MAAM;AAAA,MACjB,eAAe,MAAM;AAAA,IACvB,CAAC;AAAA,EACH;AACF;AAEO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,OAAO,IAAI,WAAsB;AAC/B,WAAO;AAAA,MACL,WAAW,UAAU,SAAS;AAAA,MAC9B,QAAQ,6CAAyB,UAAU,KAAK,CAAkB;AAAA,IACpE;AAAA,EACF;AAAA,EAEA,OAAO,GAAG,OAA+E;AACvF,YAAQ,MAAM,QAAQ;AAAA,MACpB,KAAK;AACH,eAAO,IAAI,gCAAiB,MAAM,SAAS;AAAA,MAC7C,KAAK;AACH,eAAO,IAAI,oCAAmB,MAAM,SAAS;AAAA,MAC/C,KAAK;AACH,eAAO,IAAI,oCAAmB,MAAM,SAAS;AAAA,MAC/C;AACE,cAAM,IAAI,MAAM,6CAA6C;AAAA,IACjE;AAAA,EACF;AACF;;;ADvFO,IAAM,WAAW;AAExB,eAAsB,sBAAsB,WAAsB,SAAiD;AACjH,MAAI;AACJ,MAAI;AACF,UAAM,MAAM,UAAU,uBAAuB;AAAA;AAAA,MAE3C,QAAQ,EAAE,aAAa,QAAQ;AAAA,MAC/B,SAAS,EAAE,WAAW,KAAK;AAAA,MAC3B,OAAO;AAAA,IACT,CAAC;AAAA,EACH,SAAS,GAAG;AAIV,WAAO;AAAA,EACT;AAEA,MAAI,IAAI,KAAK,WAAW,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,aAAa,cAAc;AACnE,WAAO;AAAA,EACT;AACA,QAAM,KAAK,IAAI,KAAK,CAAC;AACrB,QAAM,aAAa,GAAG,aAAa;AAEnC,WAAS,IAAI,GAAG,MAAM,WAAW,QAAQ,KAAK;AAC5C,UAAM,gBAAgB,WAAW,CAAC;AAClC,UAAM,KAAK,yBAAyB,eAAe,OAAO;AAC1D,QAAI,CAAC,IAAI;AACP;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,SAAS,yBAAyB,eAAoC,eAAuB;AAC3F,QAAM,cAAU,+CAAyB,aAAa;AACtD,UAAQ,QAAQ,iBAAiB;AAAA,IAC/B,KAAK,YAAY;AACf,YAAM,kBAAkB,IAAI,kCAAkB,QAAQ,SAAS,WAAW,EAAE,aAAa;AACzF,UAAI,UAAU,kBAAkB,iBAAiB,aAAa,GAAG;AAC/D,cAAM,IAAI,MAAM,kCAAkC;AAAA,MACpD;AACA,aAAO;AAAA,IACT;AAAA,IACA,KAAK,WAAW;AACd,UAAI,UAAU,kBAAkB,QAAQ,QAAQ,SAAS,aAAa,GAAG;AACvE,cAAM,IAAI,MAAM,gCAAgC;AAAA,MAClD;AACA,aAAO;AAAA,IACT;AAAA,IAEA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,aAAa;AAChB,YAAM,KAAK,eAAe,GAAG,EAAE,WAAW,QAAQ,WAAW,QAAQ,QAAQ,gBAAgB,CAAC;AAC9F,UAAI,UAAU,kBAAkB,GAAG,aAAa,GAAG,aAAa,GAAG;AACjE,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,IAEA;AACE,YAAM,IAAI,MAAM,gBAAgB;AAAA,EACpC;AACF;AAEA,eAAsB,YAAY,OAA8E;AAC9G,MAAI,UAAU;AACd,MAAI;AACJ,QAAM,MAAoB,CAAC;AAC3B,SAAO,SAAS;AACd,UAAM,cAA8B,MAAM,MAAM,UAAU,SAAS;AAAA,MACjE,OAAO,MAAM;AAAA,MACb,UAAU,MAAM;AAAA,MAChB;AAAA,IACF,CAAC;AACD,QAAI,KAAK,GAAG,YAAY,IAAI;AAC5B,cAAU,YAAY;AACtB,aAAS,YAAY;AAAA,EACvB;AACA,SAAO;AACT;;;AH5EA,eAAsB,qBAAqB,OAIxC;AACD,MAAI,UAAU,iBAAiB,MAAM,UAAU,UAAU,QAAQ,GAAG;AAClE,WAAO,wBAAwB,KAAK;AAAA,EACtC;AACA,SAAO,0BAA0B,KAAK;AACxC;AAEA,SAAS,wBAAwB,OAA+E;AAC9G,QAAM,MAAM,IAAI,qCAAiB;AACjC,QAAM,CAAC,IAAI,IAAI,IAAI,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,UAAU,MAAM,CAAC,CAAC;AACzE,MAAI,gBAAgB,CAAC,IAAI,GAAG,IAAI,KAAK,MAAM,UAAU,SAAS,CAAC;AAC/D,MAAI,UAAU,MAAM,MAAM;AAC1B,SAAO;AACT;AAEA,eAAe,0BAA0B,OAItC;AACD,QAAM,EAAE,WAAW,QAAQ,UAAU,IAAI;AAEzC,QAAM,OAAO,MAAM,YAAY;AAAA,IAC7B;AAAA,IACA,OAAO;AAAA,IACP,UAAU,UAAU;AAAA,EACtB,CAAC;AACD,MAAI,KAAK,WAAW,GAAG;AACrB,UAAM,IAAI,MAAM,6BAA6B;AAAA,EAC/C;AACA,QAAM,WAAW,KAAK,OAAO,CAAC,KAAKC,UAAS,MAAM,OAAOA,MAAK,OAAO,GAAG,EAAE;AAC1E,MAAI,WAAW,OAAO,UAAU,MAAM,GAAG;AACvC,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACtC;AACA,QAAM,MAAM,IAAI,qCAAiB;AACjC,QAAM,UAAU,IAAI,OAAO,KAAK,CAAC,EAAE,YAAY;AAC/C,MAAI,KAAK,SAAS,GAAG;AACnB,QAAI;AAAA,MACF;AAAA,MACA,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,YAAY,CAAC;AAAA,IACzD;AAAA,EACF;AACA,QAAM,CAAC,IAAI,IAAI,IAAI,WAAW,SAAS,CAAC,IAAI,KAAK,UAAU,MAAM,CAAC,CAAC;AACnE,MAAI,gBAAgB,CAAC,IAAI,GAAG,IAAI,KAAK,UAAU,SAAS,CAAC;AACzD,MAAI,UAAU,MAAM,MAAM;AAC1B,SAAO;AACT;;;AM7DA,IAAAC,uBAAiC;AAWjC,eAAsB,uBAAuB,OAI1C;AACD,QAAM,uBAAuB,KAAK;AAElC,QAAM,MAAM,IAAI,sCAAiB;AACjC,MAAI,gBAAgB,CAAC,IAAI,OAAO,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAI,KAAK,MAAM,UAAU,QAAQ,CAAC;AAC9F,MAAI,UAAU,MAAM,MAAM;AAE1B,SAAO;AACT;AAEA,eAAe,uBAAuB,OAInC;AACD,QAAM,EAAE,WAAW,QAAQ,UAAU,IAAI;AACzC,QAAM,MAAM,MAAM,UAAU,UAAU;AAAA,IACpC,IAAI,UAAU;AAAA,EAChB,CAAC;AAED,MAAI,IAAI,SAAS,QAAW;AAC1B,UAAM,IAAI,MAAM,kBAAkB;AAAA,EACpC;AACA,MAAI,CAAC,IAAI,MAAM,MAAM;AACnB,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AACA,MAAI,CAAC,UAAU,iBAAiB,IAAI,KAAK,MAAM,UAAU,UAAU,GAAG;AACpE,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC5C;AACA,MAAI,UAAU,iBAAiB,IAAI,KAAK,IAAI,GAAG;AAC7C,UAAM,IAAI,MAAM,8DAA8D;AAAA,EAChF;AACA,QAAM,eAAe,gBAAgB,GAAG;AACxC,MAAI,CAAC,UAAU,kBAAkB,cAAc,MAAM,GAAG;AACtD,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AACF;AAEA,SAAS,gBAAgB,QAA2B;AAClD,QAAM,QAAQ,OAAO,MAAM;AAC3B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,MAAI,OAAO,UAAU,YAAY,EAAE,kBAAkB,QAAQ;AAC3D,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AACA,SAAO,MAAM;AACf;;;ACjEA,IAAAC,uBAAiC;AAIjC,eAAsB,eAAe,OAAoD;AACvF,QAAM,aAAa,sCAAiB,KAAK,gBAAgB,MAAM,eAAe,CAAe;AAC7F,QAAM,aAAa,WAAW,UAAU,UAAU;AAClD,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAGA,QAAM,MAAM,IAAI,sCAAiB;AACjC,MAAI,cAAc,UAAU;AAC5B,MAAI,UAAU,MAAM,MAAM;AAC1B,SAAO;AACT;;;ACPO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,OAAO,IAAI,WAAwB;AACjC,WAAO,KAAK,UAAU,SAAS;AAAA,EACjC;AAAA,EAEA,OAAO,GAAG,KAA0B;AAClC,UAAM,YAAY,KAAK,MAAM,GAAG;AAChC,QAAI,OAAO,cAAc,YAAY,EAAE,YAAY,YAAY;AAC7D,YAAM,IAAI,MAAM,oCAAoC,GAAG,EAAE;AAAA,IAC3D;AACA,WAAO,KAAK,MAAM,GAAG;AAAA,EACvB;AAAA;AAAA,EAGA,OAAO,SAAS,OAAyE;AACvF,YAAQ,MAAM,UAAU,QAAQ;AAAA,MAC9B,KAAK;AACH,eAAO,qBAAqB;AAAA,UAC1B,WAAW,MAAM;AAAA,UACjB,QAAQ,MAAM;AAAA,UACd,WAAW,MAAM;AAAA,QACnB,CAAC;AAAA,MACH,KAAK;AACH,eAAO,uBAAuB;AAAA,UAC5B,WAAW,MAAM;AAAA,UACjB,QAAQ,MAAM;AAAA,UACd,WAAW,MAAM;AAAA,QACnB,CAAC;AAAA,MACH;AACE,cAAM,IAAI,MAAM,oBAAoB,MAAM,SAAS,EAAE;AAAA,IACzD;AAAA,EACF;AAAA,EAEA,OAAO,UAAU,WAAwB;AACvC,YAAQ,UAAU,QAAQ;AAAA,MACxB,KAAK;AACH,eAAO;AAAA,UACL,QAAQ;AAAA,UACR,WAAW;AAAA,QACb;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,QAAQ;AAAA,UACR,WAAW;AAAA,QACb;AAAA,MACF;AACE,cAAM,IAAI,MAAM,wBAAwB;AAAA,IAC5C;AAAA,EACF;AAAA,EAEA,OAAO,uBAAuB,OAA0D;AACtF,WAAO,eAAe,EAAE,QAAQ,MAAM,cAAc,iBAAiB,MAAM,gBAAgB,CAAC;AAAA,EAC9F;AACF;;;AC5DO,IAAM,gBAAN,MAAoB;AAAA;AAAA,EAEzB,OAAO,mBAAmB,cAA8B;AACtD,WAAO,yBAAyB,YAAY;AAAA,EAC9C;AAAA,EAEA,OAAO,qBAAqB,KAAa;AACvC,UAAM,QAAQ;AACd,UAAM,UAAU,IAAI,MAAM,KAAK;AAC/B,WAAO,UAAU,QAAQ,CAAC,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA,EAIA,OAAO,eAAe,WAA2B;AAC/C,WAAO,qBAAqB,SAAS;AAAA,EACvC;AAAA,EAEA,OAAO,iBAAiB,KAAiC;AACvD,UAAM,QAAQ;AACd,UAAM,UAAU,IAAI,MAAM,KAAK;AAC/B,WAAO,UAAU,QAAQ,CAAC,IAAI;AAAA,EAChC;AAAA,EAEA,OAAO,wBAAwB,MAA4B;AACzD,UAAM,EAAE,WAAW,GAAG,IAAI;AAC1B,UAAM,gBAAgB,gBAAgB,IAAI,SAAS;AACnD,UAAM,MAA+B;AAAA,MACnC;AAAA,MACA,gBAAgB;AAAA,IAClB;AACA,WAAO,KAAK,UAAU,GAAG;AAAA,EAC3B;AAAA,EAEA,OAAO,0BAA0B,GAAiC;AAChE,UAAM,KAAK,KAAK,MAAM,CAAC;AACvB,QACE,EAAE,mBAAmB,OACrB,OAAO,GAAG,kBAAkB,YAC5B,EAAE,oBAAoB,OACtB,OAAO,GAAG,mBAAmB,UAC7B;AACA,YAAM,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AACA,UAAM,EAAE,gBAAgB,cAAc,IAAI;AAC1C,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,WAAW,gBAAgB,GAAG,aAAa;AAAA,IAC7C;AAAA,EACF;AACF;;;ACnDA,IAAAC,kBAAiC;AACjC,IAAAC,mBAAkC;AAgB3B,IAAM,kBAAkB;AACxB,IAAM,wBAAwB;AAC9B,IAAM,kBAAkB;AAExB,IAAM,aAAa;AACnB,IAAM,aAAa;AACnB,IAAM,uBAAuB;AAC7B,IAAM,0BAA0B;AAChC,IAAM,gBAAgB;AAEtB,IAAM,cAAN,MAAM,aAAY;AAAA,EAGvB,YAA4B,QAAwB;AAAxB;AAC1B,SAAK,UAAU,qBAAqB,MAAM;AAAA,EAC5C;AAAA,EAJA;AAAA,EAMA,OAAO,qBAAqB,MAAwB;AAClD,UAAM,SAAyB;AAAA,MAC7B,WAAW,KAAK;AAAA,MAChB,iBAAiB,KAAK;AAAA,MACtB,eAAe,KAAK;AAAA,IACtB;AACA,WAAO,IAAI,aAAY,MAAM;AAAA,EAC/B;AAAA,EAEA,IAAI,aAAqB;AACvB,WAAO,KAAK,QAAQ,aAAa;AAAA,EACnC;AAAA,EAEA,IAAI,aAAoC;AACtC,WAAO,KAAK,QAAQ,cAAc;AAAA,EACpC;AAAA,EAEA,IAAI,YAAoB;AACtB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,yBAAyB,YAAwD;AAC/E,WAAO,KAAK,QAAQ,yBAAyB,UAAU;AAAA,EACzD;AAAA,EAEA,MAAM,sBAAsB,YAAoB,mBAA0D;AACxG,UAAM,UAAU,eAAe,UAAU;AACzC,WAAO,KAAK,QAAQ,sBAAsB,SAAS,iBAAiB;AAAA,EACtE;AACF;AAEO,SAAS,qBAAqB,QAAwB;AAC3D,QAAM,EAAE,iBAAiB,WAAW,cAAc,IAAI;AACtD,QAAM,MAAM,gBAAgB,IAAI,CAAC,QAAQ;AAAA,IACvC,WAAW,GAAG;AAAA,IACd,QAAQ,GAAG;AAAA,EACb,EAAE;AACF,MAAI,kBAAkB,QAAW;AAC/B,QAAI,KAAK;AAAA,MACP,WAAW,mBAAmB,aAAa;AAAA,MAC3C,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACA,SAAO,mCAAkB,eAAe,EAAE,WAAW,YAAY,IAAI,CAAC;AACxE;AAEO,SAAS,mBAAmB,OAAe;AAChD,QAAM,SAAS,IAAI,YAAY,iCAAiB,IAAI;AACpD,QAAM,cAAc,IAAI,YAAY;AACpC,cAAY,WAAW,iBAAiB,IAAI,WAAW,QAAQ,GAAG,qBAAqB,CAAC;AACxF,QAAM,YAAY,IAAI,SAAS,QAAQ,uBAAuB,CAAC;AAC/D,YAAU,UAAU,GAAG,OAAO,IAAI;AAClC,SAAO,IAAI,iCAAiB,IAAI,WAAW,MAAM,CAAC;AACpD;AAEO,SAAS,uBAAuB,QAAwB;AAC7D,SAAO,gBAAgB,QAAQ,CAAC,OAAO;AACrC,UAAM,EAAE,OAAO,IAAI;AACnB,QAAI,SAAS,cAAc,SAAS,YAAY;AAC9C,YAAM,IAAI,MAAM,6BAA6B,MAAM,OAAO,UAAU,GAAG;AAAA,IACzE;AAAA,EACF,CAAC;AACD,QAAM,cAAc,OAAO,gBAAgB,OAAO,CAAC,GAAG,OAAO,IAAI,GAAG,QAAQ,CAAC;AAC7E,MAAI,OAAO,YAAY,aAAa;AAClC,UAAM,IAAI,MAAM,uCAAuC;AAAA,EACzD;AACA,MAAI,OAAO,YAAY,eAAe;AACpC,UAAM,IAAI,MAAM,6BAA6B;AAAA,EAC/C;AACA,QAAM,WAAW,OAAO,kBAAkB,SAAY,0BAA0B;AAChF,MAAI,OAAO,gBAAgB,SAAS,UAAU;AAC5C,UAAM,IAAI,MAAM,oCAAoC;AAAA,EACtD;AACA,QAAM,aAAa,IAAI,IAAI,OAAO,gBAAgB,IAAI,CAAC,OAAO,GAAG,UAAU,aAAa,CAAC,CAAC;AAC1F,MAAI,WAAW,SAAS,OAAO,gBAAgB,QAAQ;AACrD,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AACF;;;ACxGO,IAAM,eAAN,MAAmB;AAAA,EACxB,YACkB,SACA,UAChB;AAFgB;AACA;AAAA,EACf;AAAA,EAEH,MAAM,kBAAkB,WAAqB;AAC3C,WAAO,KAAK,SAAS,kBAAkB,SAAS;AAAA,EAClD;AAAA,EAEA,MAAM,sBAAsB,MAA4B;AACtD,UAAM,WAAW,MAAM,KAAK,8BAA8B,IAAI;AAC9D,UAAM,KAAK,IAAI,YAAY,QAAQ;AACnC,WAAO,GAAG;AAAA,EACZ;AAAA;AAAA,EAGA,MAAM,mBAAmB,YAAoC;AAC3D,UAAM,YAAY,MAAM,KAAK,8BAA8B,UAAU;AACrE,2BAAuB,SAAS;AAGhC,WAAO,KAAK,sBAAsB,UAAU;AAAA,EAC9C;AAAA,EAEA,MAAM,oBAAoB,cAAsC;AAC9D,UAAM,eAAe,MAAM,KAAK,mBAAmB,YAAY;AAE/D,UAAM,iBAAiB,cAAc,mBAAmB,YAAY;AACpE,UAAM,YAAY,MAAM,KAAK,QAAQ,OAAO,oBAAoB,EAAE,YAAY,eAAe,CAAC;AAE9F,UAAM,KAAK,gBAAgB,cAAc,UAAU,SAAS;AAC5D,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,8BAA8B,MAAqD;AAC/F,UAAM,aAAa,MAAM,KAAK,kBAAkB,KAAK,gBAAgB,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;AAC9F,eAAW,QAAQ,CAAC,IAAI,MAAM;AAC5B,UAAI,OAAO,QAAW;AACpB,cAAM,IAAI,MAAM,mCAAmC,KAAK,gBAAgB,CAAC,EAAE,OAAO,EAAE;AAAA,MACtF;AAAA,IACF,CAAC;AACD,WAAO;AAAA,MACL,WAAW,KAAK;AAAA,MAChB,iBAAiB,KAAK,gBAAgB,IAAI,CAAC,OAAO,OAAO;AAAA,QACvD,WAAW,WAAW,CAAC;AAAA,QACvB,QAAQ,MAAM;AAAA,MAChB,EAAE;AAAA,MACF,eAAe,KAAK;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAc,gBAAgB,YAAoC,WAAgC;AAChG,UAAM,MAAM,MAAM,KAAK,SAAS,kBAAkB,WAAW,gBAAgB,IAAI,CAAC,UAAU,MAAM,OAAO,CAAC;AAC1G,UAAM,KAAK,QAAQ,QAAQ,mBAAmB;AAAA,MAC5C,iBAAiB,WAAW,gBAAgB,IAAI,CAAC,OAAO,OAAO;AAAA,QAC7D,SAAS,MAAM;AAAA,QACf,QAAQ,MAAM;AAAA,QACd,WAAW,IAAI,CAAC;AAAA;AAAA,MAClB,EAAE;AAAA,MACF,WAAW,WAAW;AAAA,MACtB,MAAM,WAAW;AAAA;AAAA,MACjB,aAAa,WAAW;AAAA;AAAA,MACxB,eAAe,WAAW;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;AClEO,IAAM,eAAN,MAAM,cAAa;AAAA,EAGxB,YACkB,SACA,MAChB;AAFgB;AACA;AAEhB,SAAK,cAAc,YAAY,qBAAqB,IAAI;AAAA,EAC1D;AAAA,EAPO;AAAA,EASP,aAAa,IAAI,SAAuB,SAAiB;AACvD,UAAM,OAAO,MAAM,QAAQ,QAAQ,oBAAoB,OAAO;AAC9D,WAAO,IAAI,cAAa,SAAS,IAAI;AAAA,EACvC;AAAA,EAEA,MAAM,sBAAsB;AAC1B,WAAO,KAAK,QAAQ,uBAAuB,KAAK,OAAO;AAAA,EACzD;AAAA,EAEA,MAAM,qBAAqB;AACzB,WAAO,KAAK,QAAQ,uBAAuB,KAAK,OAAO;AAAA,EACzD;AAAA,EAEA,MAAM,mBAAmB;AACvB,WAAO,KAAK,QAAQ,oBAAoB,KAAK,OAAO;AAAA,EACtD;AAAA,EAEA,MAAM,wBAAwB;AAC5B,WAAO,KAAK,QAAQ,yBAAyB,KAAK,OAAO;AAAA,EAC3D;AAAA,EAEA,MAAM,qBAAqB;AACzB,WAAO,KAAK,QAAQ,sBAAsB,KAAK,OAAO;AAAA,EACxD;AAAA,EAEA,MAAM,iBAAiB,WAAwB,gBAAwB;AACrE,UAAM,UAAU,cAAc,wBAAwB,EAAE,WAAW,IAAI,eAAe,CAAC;AACvF,UAAM,YAAY,MAAM,KAAK,OAAO,oBAAoB;AAAA,MACtD,YAAY;AAAA,IACd,CAAC;AACD,UAAM,KAAK,QAAQ,iBAAiB;AAAA,MAClC;AAAA,MACA;AAAA,MACA,cAAc,KAAK;AAAA,MACnB,aAAa,MAAM,KAAK,YAAY;AAAA,MACpC,WAAW,UAAU;AAAA,IACvB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,mBAAmB,QAAgB,SAAiB;AACxD,UAAM,eAAe,gBAAgB,OAAO;AAC5C,UAAM,YAAY,MAAM,KAAK,OAAO,qBAAqB,EAAE,kBAAkB,aAAa,CAAC;AAC3F,WAAO,KAAK,QAAQ,mBAAmB;AAAA,MACrC,cAAc,KAAK;AAAA,MACnB,aAAa,MAAM,KAAK,YAAY;AAAA,MACpC,UAAU;AAAA,MACV,WAAW,UAAU;AAAA,IACvB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA,EAIA,MAAM,0BAA0B,WAAwB;AACtD,UAAM,MAAM,MAAM,gBAAgB,SAAS;AAAA,MACzC,WAAW,KAAK;AAAA,MAChB;AAAA,MACA,QAAQ,KAAK;AAAA,IACf,CAAC;AACD,UAAM,UAAU,MAAM,IAAI,MAAM,EAAE,QAAQ,KAAK,UAAU,CAAC;AAC1D,UAAM,SAAS,MAAM,IAAI,UAAU,EAAE,QAAQ,KAAK,UAAU,CAAC;AAC7D,UAAM,YAAY,MAAM,KAAK,OAAO,qBAAqB,EAAE,kBAAkB,QAAQ,CAAC;AACtF,WAAO,KAAK,QAAQ,0BAA0B;AAAA,MAC5C,cAAc,KAAK;AAAA,MACnB,aAAa,MAAM,KAAK,YAAY;AAAA,MACpC;AAAA,MACA;AAAA,MACA,WAAW,UAAU;AAAA,IACvB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,gBAAgB,SAAqB;AACzC,QAAI;AACJ,QAAI,SAAS;AACX,UAAI,QAAQ,YAAY;AACtB,cAAM,IAAI,MAAM,gCAAgC;AAAA,MAClD;AACA,wBAAkB,QAAQ;AAAA,IAC5B,OAAO;AACL,YAAM,WAAW,MAAM,KAAK,oBAAoB;AAChD,UAAI,SAAS,WAAW,KAAK,SAAS,CAAC,EAAE,YAAY;AACnD,cAAM,IAAI,MAAM,kBAAkB;AAAA,MACpC;AACA,wBAAkB,SAAS,CAAC,EAAE;AAAA,IAChC;AACA,UAAM,YAAY,MAAM,gBAAgB,uBAAuB;AAAA,MAC7D,cAAc,KAAK;AAAA,MACnB;AAAA,IACF,CAAC;AACD,UAAM,SAAS,MAAM,UAAU,UAAU,EAAE,QAAQ,KAAK,UAAU,CAAC;AACnE,UAAM,UAAU,MAAM,UAAU,MAAM,EAAE,QAAQ,KAAK,UAAU,CAAC;AAChE,UAAM,YAAY,MAAM,KAAK,OAAO,qBAAqB,EAAE,kBAAkB,QAAQ,CAAC;AACtF,WAAO,KAAK,QAAQ,gBAAgB;AAAA,MAClC,cAAc,KAAK;AAAA,MACnB,aAAa,MAAM,KAAK,YAAY;AAAA,MACpC;AAAA,MACA,WAAW,UAAU;AAAA,IACvB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,oCAAoC;AACxC,WAAO,KAAK,QAAQ,kCAAkC,EAAE,cAAc,KAAK,QAAQ,CAAC;AAAA,EACtF;AAAA,EAEA,MAAM,0BAA0B;AAC9B,WAAO,KAAK,QAAQ,wBAAwB,EAAE,cAAc,KAAK,SAAS,aAAa,MAAM,KAAK,YAAY,EAAE,CAAC;AAAA,EACnH;AAAA,EAEA,MAAM,iBAAiB,SAAoB;AACzC,QAAI,QAAQ,MAAM,SAAS,KAAK,KAAK,WAAW;AAC9C,YAAM,IAAI,MAAM,uBAAuB;AAAA,IACzC;AACA,UAAM,OAA8B,CAAC;AACrC,UAAM,UAAU,IAAI,IAAI,QAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,aAAa,KAAK,SAAS,CAAC,CAAC;AACvF,aAAS,IAAI,GAAG,IAAI,KAAK,KAAK,mBAAmB,QAAQ,KAAK;AAC5D,YAAM,QAAQ,KAAK,KAAK,mBAAmB,CAAC;AAC5C,YAAM,YAAY,QAAQ,IAAI,MAAM,UAAU,aAAa,CAAC;AAC5D,UAAI,WAAW;AACb,aAAK,KAAK,SAAS;AAAA,MACrB;AAAA,IACF;AACA,UAAM,iBAAiB,KAAK,YAAY,yBAAyB,IAAI;AACrE,WAAO,KAAK,UAAU,wBAAwB;AAAA,MAC5C,kBAAkB,gBAAgB,QAAQ,OAAO;AAAA,MACjD,WAAW;AAAA,MACX,SAAS,EAAE,aAAa,KAAK;AAAA,IAC/B,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAY,UAAU;AACpB,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAY,SAAS;AACnB,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,MAAc,cAAc;AAC1B,WAAO,KAAK,QAAQ,OAAO,QAAQ;AAAA,EACrC;AAAA,EAEA,IAAY,YAAY;AACtB,WAAO,KAAK,QAAQ;AAAA,EACtB;AACF;;;AC7JO,IAAM,kBAAN,MAAsB;AAAA,EAG3B,YAA4B,SAAuB;AAAvB;AAC1B,SAAK,kBAAkB,oBAAI,IAAuB;AAAA,EACpD;AAAA,EAJQ;AAAA,EAMR,MAAM,aAAa,SAAiB;AAClC,UAAM,SAAS,KAAK,gBAAgB,IAAI,OAAO;AAC/C,QAAI,QAAQ;AACV,aAAO;AAAA,IACT;AACA,UAAM,KAAK,MAAM,KAAK,cAAc,OAAO;AAC3C,QAAI,IAAI;AACN,WAAK,gBAAgB,IAAI,SAAS,EAAE;AAAA,IACtC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,kBAAkB,WAAyD;AAC/E,UAAM,UAAqC,IAAI,MAAM,UAAU,MAAM,EAAE,KAAK,MAAS;AAGrF,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,YAAM,UAAU,UAAU,CAAC;AAC3B,cAAQ,CAAC,IAAI,KAAK,gBAAgB,IAAI,OAAO;AAAA,IAC/C;AAGA,UAAM,eAAe,QAClB,IAAI,CAAC,MAAM,UAAW,SAAS,SAAY,QAAQ,EAAG,EACtD,OAAO,CAAC,UAAU,UAAU,EAAE;AACjC,UAAM,gBAAgB,MAAM,KAAK,QAAQ,QAAQ,kBAAkB,aAAa,IAAI,CAAC,UAAU,UAAU,KAAK,CAAC,CAAC;AAChH,aAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,YAAM,QAAQ,aAAa,CAAC;AAC5B,cAAQ,KAAK,IAAI,cAAc,CAAC;AAAA,IAClC;AAGA,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,UAAI,QAAQ,CAAC,MAAM,QAAW;AAC5B,gBAAQ,CAAC,IAAI,MAAM,KAAK,sBAAsB,UAAU,CAAC,CAAC;AAAA,MAC5D;AAAA,IACF;AAGA,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,UAAI,QAAQ,CAAC,GAAG;AACd,aAAK,gBAAgB,IAAI,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAc;AAAA,MAChE;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,cAAc,SAAiB;AAC3C,UAAM,YAAY,MAAM,KAAK,wBAAwB,OAAO;AAC5D,QAAI,WAAW;AACb,aAAO;AAAA,IACT;AACA,UAAM,UAAU,MAAM,KAAK,sBAAsB,OAAO;AACxD,QAAI,SAAS;AACX,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,wBAAwB,SAAiD;AACrF,QAAI;AACF,YAAM,KAAK,MAAM,KAAK,QAAQ,QAAQ,aAAa,OAAO;AAC1D,aAAO;AAAA,IACT,SAAS,GAAG;AACV,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAc,sBAAsB,SAAiD;AACnF,WAAO,sBAAsB,KAAK,QAAQ,WAAW,OAAO;AAAA,EAC9D;AACF;;;ACvFA,oBAA0B;;;ACA1B,IAAAC,2BAAO;AAaP,qBAAgC;;;ACZhC,8BAAO;AAEP,kBAA6C;AAMtC,IAAM,kBAAkB;AAExB,IAAM,SAAN,MAAM,QAAO;AAAA,EACV,YAA4B,WAAsB;AAAtB;AAAA,EAAuB;AAAA,EAE3D,aAAa,IAAI,UAAoB;AACnC,UAAM,OAAO,MAAM,sBAAU,IAAI,QAAQ;AACzC,WAAO,IAAI,QAAO,IAAI;AAAA,EACxB;AAAA,EAEA,MAAM,WAAW,OAAmE;AAClF,UAAM,cAAc,MAAM,KAAK,UAAU,KAAK,UAAU;AAAA,MACtD,SAAS,MAAM;AAAA,IACjB,CAAC;AACD,QAAI,gBAAgB,MAAM;AACxB,kBAAY,YAAY,MAAM;AAC9B,YAAM,KAAK,UAAU,KAAK,KAAK,WAAW;AAAA,IAC5C,OAAO;AACL,YAAM,sBAAsB,eAAe,IAAI,MAAM,SAAS;AAC9D,YAAM,OAAa;AAAA,QACjB,SAAS,MAAM;AAAA,QACf,WAAW,oBAAoB;AAAA,QAC/B,QAAQ,oBAAoB;AAAA,QAC5B,OAAO;AAAA,QACP,WAAW,oBAAI,KAAK;AAAA,MACtB;AACA,YAAM,KAAK,UAAU,KAAK,KAAK,IAAI;AAAA,IACrC;AAAA,EACF;AAAA,EAEA,MAAM,qBAAqB,OAAgD;AACzE,UAAM,QAAQ,MAAM,KAAK,UAAU,YAAY,UAAU;AAAA,MACvD,aAAa,MAAM;AAAA,MACnB,KAAK;AAAA,IACP,CAAC;AACD,UAAM,aAAa,MAAM,WAAW,KAAK;AACzC,QAAI,UAAU,QAAQ,MAAM,UAAU,YAAY;AAChD,YAAM,cAA2B;AAAA,QAC/B,aAAa,MAAM;AAAA,QACnB,KAAK;AAAA,QACL,OAAO;AAAA,MACT;AACA,YAAM,KAAK,UAAU,YAAY,KAAK,WAAW;AAAA,IACnD;AAAA,EACF;AACF;;;ADnBO,IAAM,gBAAN,MAAM,eAAkC;AAAA,EAGrC,YACU,IACC,YACjB;AAFgB;AACC;AAAA,EAChB;AAAA,EALK;AAAA,EAOR,aAAa,IAAI,UAAoB,WAAsB;AACzD,UAAM,KAAK,MAAM,OAAO,IAAI,QAAQ;AACpC,WAAO,IAAI,eAAc,IAAI,SAAS;AAAA,EACxC;AAAA;AAAA,EAGA,MAAM,gBAAgB,MAAkC;AACtD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,SAAS,OAKO;AACpB,UAAM,YAAY,cAAc,iBAAiB,MAAM,OAAO;AAC9D,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC3C;AAEA,UAAM,OAAO,KAAK,MAAM,SAAS;AACjC,SAAI,oBAAI,KAAK,GAAE,QAAQ,IAAI,OAAO,GAAG;AACnC,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AACA,SAAI,oBAAI,KAAK,GAAE,QAAQ,IAAI,OAAO,KAAK,KAAM;AAC3C,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC3C;AAEA,UAAM,YAAY,MAAM,kBAAkB,kCAAkC;AAAA,MAC1E,YAAY,MAAM;AAAA,MAClB,WAAW,MAAM;AAAA,IACnB,CAAC;AACD,QAAI,CAAC,UAAU,kBAAkB,MAAM,SAAS,UAAU,aAAa,CAAC,GAAG;AACzE,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AAEA,UAAM,KAAK,GAAG,WAAW;AAAA,MACvB,SAAS,MAAM;AAAA,MACf;AAAA,MACA,WAAW,oBAAI,KAAK;AAAA,IACtB,CAAC;AAGD,UAAM,KAAK,GAAG,qBAAqB;AAAA,MACjC,SAAS,MAAM;AAAA,MACf,YAAY,MAAM;AAAA,IACpB,CAAC;AAED,SAAK,SAAS;AACd,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YAAY,OAAiB;AAC3B,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,MAAM,aAAa,SAAiB;AAClC,UAAM,OAAO,MAAM,KAAK,MAAM,KAAK,UAAU;AAAA,MAC3C;AAAA,IACF,CAAC;AACD,QAAI,SAAS,MAAM;AACjB,aAAO;AAAA,IACT;AACA,WAAO,eAAe,GAAG;AAAA,MACvB,WAAW,KAAK;AAAA,MAChB,QAAQ,KAAK;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,kBAAkB,WAAyD;AAC/E,UAAM,MAAiC,CAAC;AACxC,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,YAAM,UAAU,UAAU,CAAC;AAC3B,YAAM,OAAO,MAAM,KAAK,QAAQ,OAAO;AACvC,UAAI;AAAA,QACF,OACI,eAAe,GAAG;AAAA,UAChB,WAAW,KAAK;AAAA,UAChB,QAAQ,KAAK;AAAA,QACf,CAAC,IACD;AAAA,MACN;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,mBAAmB,OAA0B;AACjD,UAAM,KAAK,IAAI,YAAY,KAAK;AAChC,UAAM,YAAY,GAAG;AAErB,UAAM,aAAa,cAAc,mBAAmB,SAAS;AAC7D,UAAM,aAAa,MAAM,gBAAgB,CAAC,EAAE;AAC5C,UAAM,eAAe,MAAM,kBAAkB,wBAAwB;AAAA,MACnE,YAAY;AAAA,MACZ,WAAW,MAAM;AAAA,MACjB,eAAe;AAAA,IACjB,CAAC;AACD,QAAI,CAAC,cAAc;AACjB,YAAM,IAAI,MAAM,+BAA+B;AAAA,IACjD;AAIA,QAAI,MAAM,KAAK,SAAS,KAAK;AAC3B,YAAM,IAAI,MAAM,eAAe;AAAA,IACjC;AACA,QAAI,MAAM,eAAe,MAAM,YAAY,SAAS,KAAK;AACvD,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,UAAM,iBAAiB,MAAM,gBAAgB,CAAC,EAAE;AAChD,UAAM,UAAU,MAAM,KAAK,QAAQ,cAAc;AACjD,QAAI,YAAY,MAAM;AACpB,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AACA,QAAI,QAAQ,UAAU,MAAM,eAAe;AACzC,YAAM,IAAI,MAAM,iBAAiB;AAAA,IACnC;AACA,UAAM,kBAAkB,MAAM,KAAK,MAAM,MAAM,UAAU;AAAA,MACvD,SAAS;AAAA,IACX,CAAC;AACD,QAAI,oBAAoB,MAAM;AAC5B,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACnD;AACA,UAAM,gBAAgB,QAAQ,CAAC,cAAc;AAC3C,UAAI,CAAC,UAAU,kBAAkB,UAAU,SAAS,UAAU,UAAU,aAAa,CAAC,GAAG;AACvF,cAAM,IAAI,MAAM,kCAAkC;AAAA,MACpD;AAAA,IACF,CAAC;AAGD,aAAS,IAAI,GAAG,MAAM,MAAM,gBAAgB,QAAQ,KAAK;AACvD,YAAM,YAAY,MAAM,gBAAgB,CAAC;AAEzC,UAAI,MAAM,GAAG;AACX,cAAM,YAAY,MAAM,KAAK,QAAQ,UAAU,OAAO;AACtD,cAAM,QAAQ,eAAe,IAAI,UAAU,SAAS;AAEpD,YAAI,cAAc,MAAM;AACtB,gBAAM,OAAa;AAAA,YACjB,SAAS,UAAU;AAAA,YACnB,WAAW,MAAM;AAAA,YACjB,QAAQ,MAAM;AAAA,YACd,OAAO;AAAA,YACP,WAAW,oBAAI,KAAK;AAAA,UACtB;AACA,gBAAM,KAAK,MAAM,KAAK,KAAK,IAAI;AAAA,QACjC;AAAA,MACF;AAGA,YAAM,YAAuB;AAAA,QAC3B,aAAa,UAAU;AAAA,QACvB,cAAc;AAAA,QACd,OAAO;AAAA,QACP,QAAQ,UAAU;AAAA,QAClB,QAAQ,MAAM,IAAI,WAAW;AAAA,MAC/B;AACA,YAAM,KAAK,MAAM,UAAU,KAAK,SAAS;AAAA,IAC3C;AAGA,UAAM,gBAAgB,QAAQ;AAC9B,YAAQ;AACR,UAAM,KAAK,MAAM,KAAK,KAAK,OAAO;AAGlC,UAAM,QAAe;AAAA,MACnB,SAAS;AAAA,MACT;AAAA,MACA,SAAS;AAAA,MACT,MAAM,MAAM;AAAA,MACZ,aAAa,MAAM;AAAA,MACnB,WAAW,MAAM;AAAA,IACnB;AACA,UAAM,KAAK,MAAM,MAAM,KAAK,KAAK;AAAA,EACnC;AAAA,EAEA,MAAM,oBAAoB,cAAiD;AAIzE,UAAM,QAAQ,MAAM,KAAK,MAAM,MAAM,UAAU,EAAE,SAAS,aAAa,CAAC;AACxE,QAAI,UAAU,MAAM;AAClB,YAAM,IAAI,MAAM,iBAAiB;AAAA,IACnC;AACA,UAAM,aAAa,MAAM,KAAK,MAAM,UAAU,KAAK;AAAA,MACjD,OAAO;AAAA,QACL;AAAA,MACF;AAAA,MACA,OAAO;AAAA,QACL,OAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,QAAI,WAAW,WAAW,GAAG;AAC3B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AACA,UAAM,QAAQ,MAAM,QAAQ,IAAI,WAAW,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,WAAW,CAAC,CAAC;AACpF,UAAM,QAAQ,CAAC,SAAS;AACtB,UAAI,SAAS,MAAM;AACjB,cAAM,IAAI,MAAM,gBAAgB;AAAA,MAClC;AAAA,IACF,CAAC;AACD,UAAM,qBAAqB,WAAW,IAAI,CAAC,WAAW,OAAO;AAAA,MAC3D,SAAS,UAAU;AAAA,MACnB,QAAQ,UAAU;AAAA,MAClB,WAAW,eAAe,GAAG,EAAE,WAAW,MAAM,CAAC,EAAG,WAAW,QAAQ,MAAM,CAAC,EAAG,OAA0B,CAAC;AAAA,IAC9G,EAAE;AACF,WAAO;AAAA,MACL,SAAS;AAAA,MACT;AAAA,MACA,WAAW,MAAM;AAAA,MACjB,MAAM,MAAM;AAAA,MACZ,aAAa,MAAM;AAAA,MACnB,eAAe,MAAM;AAAA,IACvB;AAAA,EACF;AAAA,EAEA,MAAM,YAAY,aAAkD;AAElE,UAAM,OAAO,MAAM,KAAK,QAAQ,WAAW;AAC3C,QAAI,SAAS,MAAM;AACjB,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AAEA,UAAM,gBAAgB,MAAM,KAAK,MAAM,UAAU,OAAO,EAAE,YAAY,CAAC;AACvE,UAAM,aAAa,MAAM,QAAQ;AAAA,MAC/B,cAAc,IAAI,OAAO,iBAAiB,KAAK,oBAAoB,aAAa,YAAY,CAAC;AAAA,IAC/F;AACA,WAAO;AAAA,MACL,SAAS;AAAA,MACT,WAAW,KAAK;AAAA,MAChB,QAAQ,KAAK;AAAA,MACb,eAAe,KAAK;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,uBAAuB,cAA4C;AACvE,UAAM,WAAW,MAAM,KAAK,GAAG,UAAU,mBAAmB,OAAO;AAAA,MACjE;AAAA,IACF,CAAC;AACD,QAAI,SAAS,WAAW,GAAG;AACzB,aAAO,CAAC;AAAA,IACV;AACA,UAAM,QAAQ,MAAM,QAAQ;AAAA,MAC1B,SAAS,IAAI,CAAC,YAAY,KAAK,GAAG,UAAU,SAAS,OAAO,EAAE,UAAU,QAAQ,QAAQ,SAAS,KAAK,CAAC,CAAC;AAAA,IAC1G;AACA,UAAM,YAAY,MAAM,KAAK,MAAM,qBAAqB,UAAU;AAAA,MAChE;AAAA,MACA,gBAAgB,SAAS,CAAC,EAAE;AAAA,IAC9B,CAAC;AACD,QAAI,cAAc,MAAM;AACtB,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AACA,UAAM,SAAS,gBAAgB,GAAG,UAAU,IAAI;AAChD,WAAO,SAAS,IAAI,CAAC,SAAS,OAAO;AAAA,MACnC,QAAQ,QAAQ;AAAA,MAChB,SAAS,QAAQ;AAAA,MACjB,cAAc,QAAQ;AAAA,MACtB,YAAY,QAAQ;AAAA,MACpB,SAAS,QAAQ;AAAA,MACjB,WAAW,QAAQ;AAAA,MACnB,OAAO,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU;AAAA,QAC7B,aAAa,KAAK;AAAA,QAClB,WAAW,KAAK;AAAA,QAChB,WAAW,KAAK;AAAA,MAClB,EAAE;AAAA,MACF,gBAAgB,QAAQ;AAAA,MACxB,WAAW,QAAQ,aAAa,SAAY;AAAA,IAC9C,EAAE;AAAA,EACJ;AAAA,EAEA,MAAM,yBAAyB,cAAuC;AAEpE,UAAM,eAAe,MAAM,KAAK,MAAM,mBAAmB,QAAQ;AAAA,MAC/D,OAAO,EAAE,aAAa;AAAA,MACtB,OAAO,EAAE,gBAAgB,OAAO;AAAA,IAClC,CAAC;AACD,WAAO,iBAAiB,OAAO,IAAI,aAAa,iBAAiB;AAAA,EACnE;AAAA,EAEA,MAAM,sBAAsB,cAAuC;AAEjE,UAAM,iBAAiB,MAAM,KAAK,MAAM,qBAAqB,QAAQ;AAAA,MACnE,OAAO,EAAE,aAAa;AAAA,MACtB,OAAO,EAAE,gBAAgB,OAAO;AAAA,IAClC,CAAC;AACD,WAAO,mBAAmB,OAAO,IAAI,eAAe,iBAAiB;AAAA,EACvE;AAAA,EAEA,MAAM,uBAAuB,cAAgD;AAM3E,UAAM,eAAe,MAAM,KAAK,GAAG,UAAU,mBAAmB,KAAK;AAAA,MACnE,OAAO;AAAA,QACL;AAAA,MACF;AAAA,MACA,OAAO,EAAE,gBAAgB,OAAO;AAAA,IAClC,CAAC;AACD,UAAM,QAAQ,MAAM,QAAQ;AAAA,MAC1B,aAAa;AAAA,QAAI,CAAC,OAChB,KAAK,GAAG,UAAU,SAAS,OAAO;AAAA,UAChC,UAAU,GAAG;AAAA,UACb,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AAAA,IACF;AACA,WAAO,aAAa,IAAI,CAAC,IAAI,OAAO;AAAA,MAClC,QAAQ,GAAG;AAAA,MACX,SAAS,GAAG;AAAA,MACZ,cAAc,GAAG;AAAA,MACjB,YAAY,GAAG;AAAA,MACf,QAAQ,GAAG;AAAA,MACX,SAAS,GAAG;AAAA,MACZ,WAAW,GAAG;AAAA,MACd,gBAAgB,GAAG;AAAA,MACnB,OAAO,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU;AAAA,QAC7B,aAAa,KAAK;AAAA,QAClB,WAAW,KAAK;AAAA,MAClB,EAAE;AAAA,IACJ,EAAE;AAAA,EACJ;AAAA,EAEA,MAAM,oBAAoB,cAAkD;AAE1E,UAAM,wBAAwB,MAAM,KAAK,yBAAyB,YAAY;AAC9E,UAAM,aAAc,MAAM,KAAK,MAAM,mBAAmB,UAAU,EAAE,aAAa,CAAC,MAAO;AACzF,UAAM,gBAAgB,aAAa,wBAAwB,IAAI;AAE/D,UAAM,YAAY,MAAM,KAAK,MAAM,qBAAqB,KAAK;AAAA,MAC3D,OAAO,EAAE,cAAc,oBAAgB,gCAAgB,aAAa,EAAE;AAAA,MACtE,OAAO,EAAE,gBAAgB,MAAM;AAAA,IACjC,CAAC;AACD,WAAO,UAAU,IAAI,CAAC,QAAQ;AAAA,MAC5B,WAAW,gBAAgB,GAAG,GAAG,IAAI;AAAA,MACrC,cAAc,GAAG;AAAA,MACjB,gBAAgB,GAAG;AAAA,MACnB,SAAS,GAAG;AAAA,MACZ,QAAQ,GAAG;AAAA,MACX,WAAW,GAAG;AAAA,MACd,WAAW,GAAG;AAAA,MACd,QAAQ,GAAG;AAAA,MACX,cAAc,GAAG;AAAA,MACjB,SAAS,GAAG;AAAA,MACZ,WAAW,GAAG;AAAA,IAChB,EAAE;AAAA,EACJ;AAAA,EAEA,MAAM,iBAAiB,OAMpB;AAID,UAAM,YAAY,MAAM,KAAK,MAAM,UAAU,UAAU;AAAA,MACrD,cAAc,MAAM;AAAA,MACpB,aAAa,MAAM;AAAA,IACrB,CAAC;AACD,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,oDAAoD;AAAA,IACtE;AACA,UAAM,WAAW,MAAM,kBAAkB,wBAAwB;AAAA,MAC/D,YAAY,cAAc,wBAAwB,EAAE,WAAW,MAAM,WAAW,IAAI,MAAM,eAAe,CAAC;AAAA,MAC1G,WAAW,MAAM;AAAA,MACjB,eAAe,MAAM;AAAA,IACvB,CAAC;AACD,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AAEA,UAAM,iBAAiB,MAAM,KAAK,MAAM,qBAAqB,MAAM;AAAA,MACjE,OAAO;AAAA,QACL,cAAc,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AACD,QAAI,mBAAmB,MAAM,gBAAgB;AAC3C,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AACA,UAAM,YAAkC;AAAA,MACtC,cAAc,MAAM;AAAA,MACpB;AAAA,MACA,WAAW;AAAA,MACX,GAAG,gBAAgB,UAAU,MAAM,SAAS;AAAA,MAC5C,MAAM,gBAAgB,IAAI,MAAM,SAAS;AAAA,MACzC,QAAQ;AAAA,MACR,SAAS,MAAM;AAAA,IACjB;AACA,UAAM,KAAK,MAAM,qBAAqB,KAAK,SAAS;AAAA,EACtD;AAAA;AAAA;AAAA,EAIA,MAAM,0BAA0B,OAM7B;AACD,UAAM,YAAY,MAAM,KAAK,MAAM,UAAU,UAAU;AAAA,MACrD,cAAc,MAAM;AAAA,MACpB,aAAa,MAAM;AAAA,IACrB,CAAC;AACD,QAAI,cAAc,MAAM;AACtB,YAAM,IAAI,MAAM,cAAc;AAAA,IAChC;AAEA,UAAM,gBAAgB,MAAM,KAAK,MAAM,mBAAmB,OAAO;AAAA,MAC/D,cAAc,MAAM;AAAA,IACtB,CAAC;AACD,QAAI,cAAc,WAAW,GAAG;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAEA,UAAM,MAAM,MAAM,gBAAgB,SAAS;AAAA,MACzC,WAAW,KAAK;AAAA,MAChB,WAAW,MAAM;AAAA,MACjB,QAAQ,MAAM;AAAA,IAChB,CAAC;AACD,UAAM,UAAU,MAAM,IAAI,MAAM,EAAE,QAAQ,KAAK,WAAW,CAAC;AAC3D,UAAM,WAAW,MAAM,IAAI,UAAU,EAAE,QAAQ,KAAK,WAAW,CAAC;AAChE,QAAI,aAAa,MAAM,QAAQ;AAC7B,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AAEA,UAAM,WAAW,MAAM,kBAAkB,2BAA2B;AAAA,MAClE;AAAA,MACA,eAAe,MAAM;AAAA,MACrB,WAAW,MAAM;AAAA,IACnB,CAAC;AACD,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAC9C;AAGA,UAAM,eAAe,MAAM,KAAK,MAAM,mBAAmB,QAAQ;AAAA,MAC/D,OAAO,EAAE,cAAc,MAAM,aAAa;AAAA,MAC1C,OAAO,EAAE,gBAAgB,OAAO;AAAA,IAClC,CAAC;AACD,UAAM,iBAAiB,iBAAiB,OAAO,IAAI,aAAa,iBAAiB;AACjF,UAAM,YAAkC;AAAA,MACtC,cAAc,MAAM;AAAA,MACpB;AAAA,MACA,WAAW;AAAA,MACX,GAAG,gBAAgB,UAAU,MAAM,SAAS;AAAA,MAC5C,MAAM,gBAAgB,IAAI,MAAM,SAAS;AAAA,MACzC,QAAQ;AAAA,MACR,SAAS,MAAM;AAAA,IACjB;AACA,UAAM,KAAK,MAAM,qBAAqB,KAAK,SAAS;AAGpD,UAAM,YAAgC;AAAA,MACpC,QAAQ;AAAA,MACR,cAAc,MAAM;AAAA,MACpB,SAAS,gBAAgB,OAAO;AAAA,MAChC;AAAA,MACA,YAAY;AAAA,MACZ,SAAS,MAAM;AAAA,IACjB;AACA,UAAM,KAAK,MAAM,mBAAmB,KAAK,SAAS;AAGlD,UAAM,WAAqB;AAAA,MACzB,aAAa,MAAM;AAAA,MACnB;AAAA,MACA,cAAc,MAAM;AAAA,MACpB,WAAW,MAAM;AAAA,MACjB,SAAS;AAAA,IACX;AACA,UAAM,KAAK,MAAM,SAAS,KAAK,QAAQ;AAAA,EACzC;AAAA;AAAA,EAGA,MAAM,gBAAgB,OAKnB;AACD,UAAM,YAAY,MAAM,KAAK,MAAM,UAAU,UAAU;AAAA,MACrD,aAAa,MAAM;AAAA,MACnB,cAAc,MAAM;AAAA,IACtB,CAAC;AACD,QAAI,cAAc,MAAM;AACtB,YAAM,IAAI,MAAM,wCAAwC;AAAA,IAC1D;AAEA,UAAM,iBAAiB,MAAM,KAAK,MAAM,mBAAmB,UAAU;AAAA,MACnE,cAAc,MAAM;AAAA,MACpB,YAAY;AAAA,IACd,CAAC;AACD,QAAI,mBAAmB,MAAM;AAC3B,YAAM,IAAI,MAAM,+BAA+B;AAAA,IACjD;AAEA,UAAM,MAAM,MAAM,gBAAgB,uBAAuB;AAAA,MACvD,cAAc,MAAM;AAAA,MACpB,iBAAiB,eAAe;AAAA,IAClC,CAAC;AACD,UAAM,UAAU,MAAM,IAAI,MAAM,EAAE,QAAQ,KAAK,WAAW,CAAC;AAC3D,UAAM,SAAS,MAAM,IAAI,UAAU,EAAE,QAAQ,KAAK,WAAW,CAAC;AAC9D,QAAI,MAAM,WAAW,QAAQ;AAC3B,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACpC;AACA,UAAM,WAAW,MAAM,kBAAkB,2BAA2B;AAAA,MAClE;AAAA,MACA,eAAe,MAAM;AAAA,MACrB,WAAW,MAAM;AAAA,IACnB,CAAC;AACD,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AAEA,UAAM,qBAAqB,MAAM,KAAK,MAAM,mBAAmB,UAAU;AAAA,MACvE,cAAc,MAAM;AAAA,MACpB,YAAY;AAAA,IACd,CAAC;AACD,QAAI,uBAAuB,MAAM;AAC/B,YAAM,KAAK,mBAAmB;AAAA,QAC5B,UAAU,mBAAmB;AAAA,QAC7B,cAAc,MAAM;AAAA,QACpB,aAAa,MAAM;AAAA,QACnB,WAAW,MAAM;AAAA,MACnB,CAAC;AACD;AAAA,IACF;AAEA,UAAM,mBAAmB,gBAAgB,OAAO;AAChD,UAAM,eAAe,MAAM,IAAI,UAAU,EAAE,QAAQ,KAAK,WAAW,CAAC;AACpE,UAAM,gBAAoC;AAAA,MACxC,cAAc,MAAM;AAAA,MACpB,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,gBAAgB,eAAe;AAAA,MAC/B,YAAY;AAAA,MACZ,SAAS,MAAM;AAAA,IACjB;AACA,UAAM,KAAK,MAAM,mBAAmB,KAAK,aAAa;AAGtD,UAAM,aAAuB;AAAA,MAC3B,aAAa,MAAM;AAAA,MACnB,cAAc,MAAM;AAAA,MACpB,UAAU;AAAA,MACV,WAAW,MAAM;AAAA,MACjB,SAAS;AAAA,IACX;AACA,UAAM,KAAK,MAAM,SAAS,KAAK,UAAU;AAGzC,UAAM,YAAY,MAAM,KAAK,MAAM,SAAS,UAAU;AAAA,MACpD,UAAU,eAAe;AAAA,MACzB,aAAa,MAAM;AAAA,IACrB,CAAC;AACD,QAAI,cAAc,MAAM;AACtB,YAAM,KAAK,MAAM,SAAS;AAAA,QACxB,EAAE,aAAa,MAAM,aAAa,UAAU,eAAe,OAAO;AAAA,QAClE,EAAE,SAAS,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,mBAAmB,OAKtB;AACD,UAAM,YAAY,MAAM,KAAK,MAAM,mBAAmB,UAAU,EAAE,QAAQ,MAAM,SAAS,CAAC;AAC1F,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,kCAAkC,MAAM,QAAQ,EAAE;AAAA,IACpE;AACA,QAAI,UAAU,iBAAiB,MAAM,cAAc;AACjD,YAAM,IAAI,MAAM,yBAAyB;AAAA,IAC3C;AAGA,UAAM,YAAY,MAAM,KAAK,MAAM,UAAU,UAAU;AAAA,MACrD,aAAa,MAAM;AAAA,MACnB,cAAc,MAAM;AAAA,IACtB,CAAC;AACD,QAAI,cAAc,MAAM;AACtB,YAAM,IAAI,MAAM,SAAS,MAAM,WAAW,gDAAgD,MAAM,YAAY,GAAG;AAAA,IACjH;AAGA,UAAM,UAAU,gBAAgB,UAAU,OAAO;AACjD,UAAM,WAAW,MAAM,kBAAkB,2BAA2B;AAAA,MAClE;AAAA,MACA,eAAe,MAAM;AAAA,MACrB,WAAW,MAAM;AAAA,IACnB,CAAC;AACD,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,MAAM,mBAAmB;AAAA,IACrC;AAGA,UAAM,kBAAkB,MAAM,KAAK,MAAM,mBAAmB,UAAU;AAAA,MACpE,cAAc,MAAM;AAAA,MACpB,gBAAgB,UAAU;AAAA,MAC1B,YAAY,CAAC,UAAU;AAAA,IACzB,CAAC;AACD,QAAI,oBAAoB,MAAM;AAC5B,YAAM,KAAK,MAAM,SAAS;AAAA,QACxB;AAAA,UACE,aAAa,MAAM;AAAA,UACnB,UAAU,gBAAgB;AAAA,UAC1B,SAAS;AAAA,QACX;AAAA,QACA,EAAE,SAAS,MAAM;AAAA,MACnB;AAAA,IACF;AACA,UAAM,YAAY,MAAM,KAAK,MAAM,SAAS,MAAM;AAAA,MAChD,OAAO;AAAA,QACL,UAAU,MAAM;AAAA,QAChB,aAAa,MAAM;AAAA,MACrB;AAAA,IACF,CAAC;AACD,QAAI,CAAC,WAAW;AACd,YAAM,WAAqB;AAAA,QACzB,UAAU,MAAM;AAAA,QAChB,aAAa,MAAM;AAAA,QACnB,cAAc,MAAM;AAAA,QACpB,WAAW,MAAM;AAAA,QACjB,SAAS;AAAA,MACX;AACA,YAAM,KAAK,MAAM,SAAS,KAAK,QAAQ;AAAA,IACzC,OAAO;AACL,YAAM,KAAK,MAAM,SAAS;AAAA,QACxB;AAAA,UACE,UAAU,MAAM;AAAA,UAChB,aAAa,MAAM;AAAA,QACrB;AAAA,QACA,EAAE,SAAS,KAAK;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,2BAA2B,QAAgB;AAE/C,UAAM,YAAY,MAAM,KAAK,MAAM,mBAAmB,UAAU,EAAE,OAAO,CAAC;AAC1E,QAAI,WAAW;AAEb;AAAA,IACF;AACA,UAAM,YAAY,MAAM,KAAK,MAAM,mBAAmB,UAAU,EAAE,OAAO,CAAC;AAC1E,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,UAAM,KAAK,MAAM,qBAAqB;AAAA,MACpC,EAAE,cAAc,UAAU,cAAc,gBAAgB,UAAU,eAAe;AAAA,MACjF,EAAE,WAAW,KAAK;AAAA,IACpB;AAGA,UAAM,WAAW,MAAM,KAAK,MAAM,mBAAmB,OAAO;AAAA,MAC1D,cAAc,UAAU;AAAA,MACxB,gBAAgB,UAAU;AAAA,IAC5B,CAAC;AACD,QAAI,SAAS,WAAW,GAAG;AACzB,YAAM,IAAI,MAAM,+BAA+B;AAAA,IACjD;AAEA,UAAM,kBAAwC;AAC9C,aAAS,IAAI,GAAG,MAAM,SAAS,QAAQ,KAAK;AAC1C,YAAM,UAAU,SAAS,CAAC;AAC1B,YAAM,UAA8B;AAAA,QAClC,QAAQ,QAAQ;AAAA,QAChB,SAAS,QAAQ;AAAA,QACjB,cAAc,QAAQ;AAAA,QACtB,gBAAgB,QAAQ;AAAA,QACxB,YAAY,QAAQ;AAAA,QACpB,SAAS,QAAQ;AAAA,QACjB,WAAW,QAAQ;AAAA;AAAA,QAEnB,QAAQ,QAAQ,WAAW,SAAS,kBAAkB;AAAA,MACxD;AACA,YAAM,KAAK,MAAM,mBAAmB,KAAK,OAAO;AAChD,YAAM,KAAK,MAAM,mBAAmB,OAAO,EAAE,QAAQ,QAAQ,OAAO,CAAC;AAAA,IACvE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,kCAAkC,OAAiC;AACvE,UAAM,eAAe,MAAM,KAAK,MAAM,mBAAmB,QAAQ;AAAA,MAC/D,OAAO,EAAE,cAAc,MAAM,aAAa;AAAA,MAC1C,OAAO,EAAE,gBAAgB,OAAO;AAAA,IAClC,CAAC;AACD,UAAM,qBAAqB,eAAe,aAAa,iBAAiB,IAAI;AAE5E,UAAM,kBAAkB,MAAM,KAAK,MAAM,mBAAmB,OAAO;AAAA,MACjE,cAAc,MAAM;AAAA,IACtB,CAAC;AACD,QAAI,gBAAgB,WAAW,GAAG;AAChC,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AAEA,UAAM,SAAS,MAAM,KAAK,MAAM,qBAAqB,UAAU;AAAA,MAC7D,cAAc,MAAM;AAAA,MACpB,gBAAgB;AAAA,IAClB,CAAC;AACD,QAAI,WAAW,MAAM;AACnB,YAAM,IAAI,MAAM,+BAA+B;AAAA,IACjD;AAEA,UAAM,gBAAgB,gBAAgB,GAAG,OAAO,IAAI;AACpD,QAAI;AACF,YAAM,SAAS,MAAM,gBAAgB,SAAS;AAAA,QAC5C,WAAW,KAAK;AAAA,QAChB,QAAQ,MAAM;AAAA,QACd,WAAW;AAAA,MACb,CAAC;AACD,YAAM,UAAU,MAAM,OAAO,MAAM,EAAE,QAAQ,KAAK,WAAW,CAAC;AAC9D,YAAM,YAAY,MAAM,OAAO,UAAU,EAAE,QAAQ,KAAK,WAAW,CAAC;AACpE,YAAM,aAAiC;AAAA,QACrC,QAAQ;AAAA,QACR,SAAS,gBAAgB,OAAO;AAAA,QAChC,cAAc,MAAM;AAAA,QACpB,gBAAgB,OAAO;AAAA,QACvB,YAAY;AAAA,QACZ,SAAS,OAAO;AAAA,MAClB;AACA,YAAM,KAAK,MAAM,mBAAmB,KAAK,UAAU;AACnD,YAAM,KAAK,MAAM,qBAAqB;AAAA,QACpC;AAAA,UACE,cAAc,MAAM;AAAA,UACpB,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,UACE,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF,SAAS,GAAY;AAEnB,YAAM,KAAK,MAAM,qBAAqB;AAAA,QACpC;AAAA,UACE,cAAc,MAAM;AAAA,UACpB,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,UACE,QAAQ;AAAA,UACR,cAAe,EAAU,SAAS;AAAA,QACpC;AAAA,MACF;AACA,YAAM,IAAI,MAAM,4CAA4C,kBAAkB,GAAG;AAAA,IACnF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,wBAAwB,OAAsD;AAClF,UAAM,YAAY,MAAM,KAAK,MAAM,UAAU,UAAU;AAAA,MACrD,cAAc,MAAM;AAAA,MACpB,aAAa,MAAM;AAAA,IACrB,CAAC;AACD,QAAI,cAAc,MAAM;AACtB,YAAM,IAAI,MAAM,wCAAwC;AAAA,IAC1D;AAEA,UAAM,oBAAoB,MAAM,KAAK,MAAM,mBAAmB,QAAQ;AAAA,MACpE,OAAO,EAAE,cAAc,MAAM,aAAa;AAAA,MAC1C,OAAO,EAAE,gBAAgB,OAAO;AAAA,IAClC,CAAC;AACD,UAAM,qBAAqB,oBAAoB,kBAAkB,iBAAiB,IAAI;AAEtF,UAAM,kBAAkB,MAAM,KAAK,MAAM,qBAAqB,UAAU;AAAA,MACtE,cAAc,MAAM;AAAA,MACpB,gBAAgB;AAAA,IAClB,CAAC;AACD,QAAI,oBAAoB,MAAM;AAC5B,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC5C;AACA,QAAI,gBAAgB,WAAW,UAAU;AACvC,YAAM,IAAI,MAAM,2BAA2B;AAAA,IAC7C;AAEA,UAAM,UAA8B;AAAA,MAClC,cAAc,MAAM;AAAA,MACpB,QAAQ;AAAA;AAAA,MACR,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,SAAS,gBAAgB;AAAA,MACzB,YAAY;AAAA,MACZ,QAAQ;AAAA,IACV;AACA,UAAM,KAAK,MAAM,mBAAmB,KAAK,OAAO;AAEhD,UAAM,KAAK,MAAM,qBAAqB;AAAA,MACpC,EAAE,cAAc,MAAM,cAAc,gBAAgB,mBAAmB;AAAA,MACvE,EAAE,WAAW,KAAK;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,MAAc,QAAQ,SAAuC;AAC3D,WAAO,KAAK,MAAM,KAAK,UAAU,EAAE,QAAQ,CAAC;AAAA,EAC9C;AAAA,EAEA,IAAY,QAAQ;AAClB,WAAO,KAAK,GAAG;AAAA,EACjB;AACF;;;AE71BO,IAAK,WAAL,kBAAKC,cAAL;AACL,EAAAA,UAAA,WAAQ;AACR,EAAAA,UAAA,UAAO;AACP,EAAAA,UAAA,SAAM;AACN,EAAAA,UAAA,UAAO;AACP,EAAAA,UAAA,UAAO;AALG,SAAAA;AAAA,GAAA;AAyBL,IAAM,uBAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AACX;AAEO,IAAM,wBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,SAAS;AACX;AAEO,IAAM,sBAAgC;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,SAAS;AACX;AAEO,IAAM,kBAAkB;AACxB,IAAM,kBAAkB;AAExB,IAAM,cAAc,oBAAI,IAA2B;AAAA,EACxD;AAAA,IACE;AAAA,IACA;AAAA,MACE,WAAW;AAAA,QACT,KAAK;AAAA,MACP;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,MACE,WAAW;AAAA,QACT,KAAK;AAAA,MACP;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,MACE,WAAW;AAAA,QACT,KAAK;AAAA,MACP;AAAA,MACA,SAAS;AAAA,IACX;AAAA,EACF;AACF,CAAC;AAEM,SAAS,eAAe,KAAe,SAA8B;AAC1E,QAAM,SAAS,YAAY,IAAI,GAAG;AAClC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AACA,MAAI,SAAS,WAAW,KAAK;AAC3B,WAAO,UAAU,MAAM,QAAQ,UAAU;AAAA,EAC3C;AACA,MAAI,SAAS,SAAS;AACpB,WAAO,UAAU,QAAQ;AAAA,EAC3B;AACA,SAAO;AACT;AAEO,IAAM,oBAAoB;;;AH7F1B,IAAM,eAAN,MAAM,cAAa;AAAA,EACR;AAAA,EAEA;AAAA,EAEA;AAAA,EAEhB;AAAA,EAEA,YAAY,OAAyE;AACnF,SAAK,UAAU,MAAM;AACrB,SAAK,YAAY,MAAM;AACvB,SAAK,SAAS,MAAM;AAAA,EACtB;AAAA,EAEA,aAAa,IAAI,KAAe,SAA8B;AAC5D,UAAM,SAAS,eAAe,KAAK,OAAO;AAC1C,UAAM,YAAY,IAAI,wBAAU,OAAO,SAAS;AAChD,UAAM,UAAU,MAAM,cAAc,IAAI,OAAO,SAAS,SAAS;AACjE,WAAO,IAAI,cAAa;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,cAAc,QAAiB;AAC7B,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,IAAI,SAAS;AACX,QAAI,CAAC,KAAK,SAAS;AACjB,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,OAAO,KAAc;AACvB,SAAK,UAAU;AAAA,EACjB;AACF;;;AIpCO,IAAM,cAAN,MAAM,aAAY;AAAA,EAKvB,YAA4B,SAAuB;AAAvB;AAAA,EAAwB;AAAA,EAJ5C;AAAA,EAEA;AAAA,EAIR,aAAa,IAAI,KAAe,SAA8B;AAC5D,UAAM,UAAU,MAAM,aAAa,IAAI,KAAK,OAAO;AACnD,WAAO,IAAI,aAAY,OAAO;AAAA,EAChC;AAAA,EAEA,MAAM,cAAc,OAAoE;AACtF,SAAK,QAAQ,SAAS,MAAM;AAC5B,UAAM,aAAa,MAAM,YAAa,MAAM,KAAK,QAAQ,gBAAgB,MAAM,QAAQ;AACvF,QAAI,YAAY;AACd,WAAK,QAAQ,YAAY,MAAM,QAAoB;AACnD,aAAO,MAAM;AAAA,IACf;AACA,UAAM,aAAa,cAAc,gBAAe,oBAAI,KAAK,GAAE,YAAY,CAAC;AACxE,UAAM,MAAM,MAAM,MAAM,OAAO,oBAAoB;AAAA,MACjD;AAAA,IACF,CAAC;AACD,WAAO,KAAK,QAAQ,SAAS;AAAA,MAC3B,SAAS,MAAM,MAAM,OAAO,QAAQ;AAAA,MACpC,SAAS;AAAA,MACT,WAAW,IAAI;AAAA,MACf,YAAY,MAAM,OAAO;AAAA,IAC3B,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,WAAW;AACf,WAAO,KAAK,QAAQ,QAAQ,YAAY,MAAM,KAAK,cAAc,CAAC;AAAA,EACpE;AAAA,EAEA,MAAM,cAAc,MAA8B;AAChD,WAAO,KAAK,eAAe,oBAAoB,IAAI;AAAA,EACrD;AAAA,EAEA,gBAAgB,MAAwB;AACtC,WAAO,IAAI,aAAa,KAAK,SAAS,IAAI;AAAA,EAC5C;AAAA,EAEA,MAAM,2BAA2B,cAAsB;AACrD,UAAM,OAAO,MAAM,KAAK,QAAQ,oBAAoB,YAAY;AAChE,WAAO,IAAI,aAAa,KAAK,SAAS,IAAI;AAAA,EAC5C;AAAA;AAAA;AAAA,EAIA,IAAI,iBAAiB;AACnB,QAAI,CAAC,KAAK,iBAAiB;AACzB,WAAK,kBAAkB,IAAI,aAAa,KAAK,SAAS,KAAK,eAAe;AAAA,IAC5E;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,kBAAkB;AACpB,QAAI,CAAC,KAAK,kBAAkB;AAC1B,WAAK,mBAAmB,IAAI,gBAAgB,KAAK,OAAO;AAAA,IAC1D;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,MAAc,gBAAgB;AAC5B,WAAO,KAAK,OAAO,QAAQ;AAAA,EAC7B;AACF;","names":["import_utils","import_cryptography","coin","import_transactions","import_transactions","import_ed25519","import_multisig","import_reflect_metadata","MSafeEnv"]}
|
|
1
|
+
{"version":3,"sources":["../node_modules/delayed-stream/lib/delayed_stream.js","../node_modules/combined-stream/lib/combined_stream.js","../node_modules/mime-db/db.json","../node_modules/mime-db/index.js","../node_modules/mime-types/index.js","../node_modules/asynckit/lib/defer.js","../node_modules/asynckit/lib/async.js","../node_modules/asynckit/lib/abort.js","../node_modules/asynckit/lib/iterate.js","../node_modules/asynckit/lib/state.js","../node_modules/asynckit/lib/terminator.js","../node_modules/asynckit/parallel.js","../node_modules/asynckit/serialOrdered.js","../node_modules/asynckit/serial.js","../node_modules/asynckit/index.js","../node_modules/form-data/lib/populate.js","../node_modules/form-data/lib/form_data.js","../node_modules/proxy-from-env/index.js","../node_modules/debug/node_modules/ms/index.js","../node_modules/debug/src/common.js","../node_modules/debug/src/browser.js","../node_modules/has-flag/index.js","../node_modules/supports-color/index.js","../node_modules/debug/src/node.js","../node_modules/debug/src/index.js","../node_modules/follow-redirects/debug.js","../node_modules/follow-redirects/index.js","../src/index.ts","../node_modules/@msafe/sui3-utils/src/constants.ts","../node_modules/@msafe/sui3-utils/src/account.ts","../node_modules/@msafe/sui3-utils/src/utils.ts","../node_modules/@msafe/sui3-utils/src/crypto.ts","../node_modules/@msafe/sui3-utils/src/signature.ts","../node_modules/@msafe/sui3-utils/src/transaction.ts","../node_modules/@msafe/sui3-utils/src/types.ts","../src/utils/crypto.ts","../src/utils/buffer.ts","../src/utils/format.ts","../src/utils/coin.ts","../src/core/CreateHelper.ts","../src/transactions/coin-transfer.ts","../src/utils/sui.ts","../src/transactions/object-transfer.ts","../src/transactions/reject.ts","../src/transactions/intention.ts","../src/core/MessageHelper.ts","../src/core/MSafeAccount.ts","../src/core/PublicKeyHelper.ts","../src/globals/MSafeGlobals.ts","../src/globals/const.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/platform/node/classes/FormData.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/node/classes/URLSearchParams.js","../node_modules/axios/lib/platform/node/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/adapters/http.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/fromDataURI.js","../node_modules/axios/lib/helpers/AxiosTransformStream.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/formDataToStream.js","../node_modules/axios/lib/helpers/readBlob.js","../node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js","../node_modules/axios/lib/helpers/callbackify.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../src/backend/BackendImpl.ts","../src/core/MSafeClient.ts"],"sourcesContent":["var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","{\n \"application/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"application/3gpdash-qoe-report+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/3gpp-ims+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphalforms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/a2l\": {\n \"source\": \"iana\"\n },\n \"application/ace+cbor\": {\n \"source\": \"iana\"\n },\n \"application/activemessage\": {\n \"source\": \"iana\"\n },\n \"application/activity+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-directory+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcost+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcostparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointprop+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointpropparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-error+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamcontrol+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/aml\": {\n \"source\": \"iana\"\n },\n \"application/andrew-inset\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez\"]\n },\n \"application/applefile\": {\n \"source\": \"iana\"\n },\n \"application/applixware\": {\n \"source\": \"apache\",\n \"extensions\": [\"aw\"]\n },\n \"application/at+jwt\": {\n \"source\": \"iana\"\n },\n \"application/atf\": {\n \"source\": \"iana\"\n },\n \"application/atfx\": {\n \"source\": \"iana\"\n },\n \"application/atom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atom\"]\n },\n \"application/atomcat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomcat\"]\n },\n \"application/atomdeleted+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomdeleted\"]\n },\n \"application/atomicmail\": {\n \"source\": \"iana\"\n },\n \"application/atomsvc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomsvc\"]\n },\n \"application/atsc-dwd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dwd\"]\n },\n \"application/atsc-dynamic-event-message\": {\n \"source\": \"iana\"\n },\n \"application/atsc-held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"held\"]\n },\n \"application/atsc-rdt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/atsc-rsat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsat\"]\n },\n \"application/atxml\": {\n \"source\": \"iana\"\n },\n \"application/auth-policy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/bacnet-xdd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/batch-smtp\": {\n \"source\": \"iana\"\n },\n \"application/bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/beep+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/calendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/calendar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xcs\"]\n },\n \"application/call-completion\": {\n \"source\": \"iana\"\n },\n \"application/cals-1840\": {\n \"source\": \"iana\"\n },\n \"application/captive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cbor\": {\n \"source\": \"iana\"\n },\n \"application/cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/cccex\": {\n \"source\": \"iana\"\n },\n \"application/ccmp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ccxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ccxml\"]\n },\n \"application/cdfx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdfx\"]\n },\n \"application/cdmi-capability\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmia\"]\n },\n \"application/cdmi-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmic\"]\n },\n \"application/cdmi-domain\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmid\"]\n },\n \"application/cdmi-object\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmio\"]\n },\n \"application/cdmi-queue\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmiq\"]\n },\n \"application/cdni\": {\n \"source\": \"iana\"\n },\n \"application/cea\": {\n \"source\": \"iana\"\n },\n \"application/cea-2018+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cellml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cfw\": {\n \"source\": \"iana\"\n },\n \"application/city+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clr\": {\n \"source\": \"iana\"\n },\n \"application/clue+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clue_info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cms\": {\n \"source\": \"iana\"\n },\n \"application/cnrp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-group+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-payload\": {\n \"source\": \"iana\"\n },\n \"application/commonground\": {\n \"source\": \"iana\"\n },\n \"application/conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cose\": {\n \"source\": \"iana\"\n },\n \"application/cose-key\": {\n \"source\": \"iana\"\n },\n \"application/cose-key-set\": {\n \"source\": \"iana\"\n },\n \"application/cpl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cpl\"]\n },\n \"application/csrattrs\": {\n \"source\": \"iana\"\n },\n \"application/csta+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cstadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/csvm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cu-seeme\": {\n \"source\": \"apache\",\n \"extensions\": [\"cu\"]\n },\n \"application/cwt\": {\n \"source\": \"iana\"\n },\n \"application/cybercash\": {\n \"source\": \"iana\"\n },\n \"application/dart\": {\n \"compressible\": true\n },\n \"application/dash+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpd\"]\n },\n \"application/dash-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpp\"]\n },\n \"application/dashdelta\": {\n \"source\": \"iana\"\n },\n \"application/davmount+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"davmount\"]\n },\n \"application/dca-rft\": {\n \"source\": \"iana\"\n },\n \"application/dcd\": {\n \"source\": \"iana\"\n },\n \"application/dec-dx\": {\n \"source\": \"iana\"\n },\n \"application/dialog-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom\": {\n \"source\": \"iana\"\n },\n \"application/dicom+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dii\": {\n \"source\": \"iana\"\n },\n \"application/dit\": {\n \"source\": \"iana\"\n },\n \"application/dns\": {\n \"source\": \"iana\"\n },\n \"application/dns+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dns-message\": {\n \"source\": \"iana\"\n },\n \"application/docbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dbk\"]\n },\n \"application/dots+cbor\": {\n \"source\": \"iana\"\n },\n \"application/dskpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dssc+der\": {\n \"source\": \"iana\",\n \"extensions\": [\"dssc\"]\n },\n \"application/dssc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdssc\"]\n },\n \"application/dvcs\": {\n \"source\": \"iana\"\n },\n \"application/ecmascript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es\",\"ecma\"]\n },\n \"application/edi-consent\": {\n \"source\": \"iana\"\n },\n \"application/edi-x12\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/edifact\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/efi\": {\n \"source\": \"iana\"\n },\n \"application/elm+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/elm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.cap+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/emergencycalldata.comment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.deviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.ecall.msd\": {\n \"source\": \"iana\"\n },\n \"application/emergencycalldata.providerinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.serviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.subscriberinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.veds+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emma+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emma\"]\n },\n \"application/emotionml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emotionml\"]\n },\n \"application/encaprtp\": {\n \"source\": \"iana\"\n },\n \"application/epp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/epub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"epub\"]\n },\n \"application/eshop\": {\n \"source\": \"iana\"\n },\n \"application/exi\": {\n \"source\": \"iana\",\n \"extensions\": [\"exi\"]\n },\n \"application/expect-ct-report+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/express\": {\n \"source\": \"iana\",\n \"extensions\": [\"exp\"]\n },\n \"application/fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/fastsoap\": {\n \"source\": \"iana\"\n },\n \"application/fdt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fdt\"]\n },\n \"application/fhir+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fhir+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fido.trusted-apps+json\": {\n \"compressible\": true\n },\n \"application/fits\": {\n \"source\": \"iana\"\n },\n \"application/flexfec\": {\n \"source\": \"iana\"\n },\n \"application/font-sfnt\": {\n \"source\": \"iana\"\n },\n \"application/font-tdpfr\": {\n \"source\": \"iana\",\n \"extensions\": [\"pfr\"]\n },\n \"application/font-woff\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/framework-attributes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"geojson\"]\n },\n \"application/geo+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/geopackage+sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/geoxacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/gltf-buffer\": {\n \"source\": \"iana\"\n },\n \"application/gml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gml\"]\n },\n \"application/gpx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"gpx\"]\n },\n \"application/gxf\": {\n \"source\": \"apache\",\n \"extensions\": [\"gxf\"]\n },\n \"application/gzip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gz\"]\n },\n \"application/h224\": {\n \"source\": \"iana\"\n },\n \"application/held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/hjson\": {\n \"extensions\": [\"hjson\"]\n },\n \"application/http\": {\n \"source\": \"iana\"\n },\n \"application/hyperstudio\": {\n \"source\": \"iana\",\n \"extensions\": [\"stk\"]\n },\n \"application/ibe-key-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pkg-reply+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pp-data\": {\n \"source\": \"iana\"\n },\n \"application/iges\": {\n \"source\": \"iana\"\n },\n \"application/im-iscomposing+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/index\": {\n \"source\": \"iana\"\n },\n \"application/index.cmd\": {\n \"source\": \"iana\"\n },\n \"application/index.obj\": {\n \"source\": \"iana\"\n },\n \"application/index.response\": {\n \"source\": \"iana\"\n },\n \"application/index.vnd\": {\n \"source\": \"iana\"\n },\n \"application/inkml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ink\",\"inkml\"]\n },\n \"application/iotp\": {\n \"source\": \"iana\"\n },\n \"application/ipfix\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipfix\"]\n },\n \"application/ipp\": {\n \"source\": \"iana\"\n },\n \"application/isup\": {\n \"source\": \"iana\"\n },\n \"application/its+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"its\"]\n },\n \"application/java-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jar\",\"war\",\"ear\"]\n },\n \"application/java-serialized-object\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"ser\"]\n },\n \"application/java-vm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"class\"]\n },\n \"application/javascript\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"js\",\"mjs\"]\n },\n \"application/jf2feed+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jose\": {\n \"source\": \"iana\"\n },\n \"application/jose+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jrd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jscalendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"json\",\"map\"]\n },\n \"application/json-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json-seq\": {\n \"source\": \"iana\"\n },\n \"application/json5\": {\n \"extensions\": [\"json5\"]\n },\n \"application/jsonml+json\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"jsonml\"]\n },\n \"application/jwk+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwk-set+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwt\": {\n \"source\": \"iana\"\n },\n \"application/kpml-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/kpml-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ld+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"jsonld\"]\n },\n \"application/lgr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lgr\"]\n },\n \"application/link-format\": {\n \"source\": \"iana\"\n },\n \"application/load-control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lost+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lostxml\"]\n },\n \"application/lostsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lpf+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/lxf\": {\n \"source\": \"iana\"\n },\n \"application/mac-binhex40\": {\n \"source\": \"iana\",\n \"extensions\": [\"hqx\"]\n },\n \"application/mac-compactpro\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpt\"]\n },\n \"application/macwriteii\": {\n \"source\": \"iana\"\n },\n \"application/mads+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mads\"]\n },\n \"application/manifest+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"webmanifest\"]\n },\n \"application/marc\": {\n \"source\": \"iana\",\n \"extensions\": [\"mrc\"]\n },\n \"application/marcxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mrcx\"]\n },\n \"application/mathematica\": {\n \"source\": \"iana\",\n \"extensions\": [\"ma\",\"nb\",\"mb\"]\n },\n \"application/mathml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mathml\"]\n },\n \"application/mathml-content+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mathml-presentation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-associated-procedure-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-deregister+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-envelope+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-protection-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-reception-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-schedule+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-user-service-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbox\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbox\"]\n },\n \"application/media-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpf\"]\n },\n \"application/media_control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mediaservercontrol+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mscml\"]\n },\n \"application/merge-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/metalink+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"metalink\"]\n },\n \"application/metalink4+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"meta4\"]\n },\n \"application/mets+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mets\"]\n },\n \"application/mf4\": {\n \"source\": \"iana\"\n },\n \"application/mikey\": {\n \"source\": \"iana\"\n },\n \"application/mipc\": {\n \"source\": \"iana\"\n },\n \"application/missing-blocks+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/mmt-aei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"maei\"]\n },\n \"application/mmt-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musd\"]\n },\n \"application/mods+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mods\"]\n },\n \"application/moss-keys\": {\n \"source\": \"iana\"\n },\n \"application/moss-signature\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-data\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-request\": {\n \"source\": \"iana\"\n },\n \"application/mp21\": {\n \"source\": \"iana\",\n \"extensions\": [\"m21\",\"mp21\"]\n },\n \"application/mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"mp4s\",\"m4p\"]\n },\n \"application/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod-xmt\": {\n \"source\": \"iana\"\n },\n \"application/mrb-consumer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mrb-publish+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/msc-ivr+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msc-mixer+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msword\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"doc\",\"dot\"]\n },\n \"application/mud+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/multipart-core\": {\n \"source\": \"iana\"\n },\n \"application/mxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxf\"]\n },\n \"application/n-quads\": {\n \"source\": \"iana\",\n \"extensions\": [\"nq\"]\n },\n \"application/n-triples\": {\n \"source\": \"iana\",\n \"extensions\": [\"nt\"]\n },\n \"application/nasdata\": {\n \"source\": \"iana\"\n },\n \"application/news-checkgroups\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-groupinfo\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-transmission\": {\n \"source\": \"iana\"\n },\n \"application/nlsml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/node\": {\n \"source\": \"iana\",\n \"extensions\": [\"cjs\"]\n },\n \"application/nss\": {\n \"source\": \"iana\"\n },\n \"application/oauth-authz-req+jwt\": {\n \"source\": \"iana\"\n },\n \"application/oblivious-dns-message\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-request\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-response\": {\n \"source\": \"iana\"\n },\n \"application/octet-stream\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n },\n \"application/oda\": {\n \"source\": \"iana\",\n \"extensions\": [\"oda\"]\n },\n \"application/odm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/odx\": {\n \"source\": \"iana\"\n },\n \"application/oebps-package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"opf\"]\n },\n \"application/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogx\"]\n },\n \"application/omdoc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"omdoc\"]\n },\n \"application/onenote\": {\n \"source\": \"apache\",\n \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]\n },\n \"application/opc-nodeset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/oscore\": {\n \"source\": \"iana\"\n },\n \"application/oxps\": {\n \"source\": \"iana\",\n \"extensions\": [\"oxps\"]\n },\n \"application/p21\": {\n \"source\": \"iana\"\n },\n \"application/p21+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/p2p-overlay+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"relo\"]\n },\n \"application/parityfec\": {\n \"source\": \"iana\"\n },\n \"application/passport\": {\n \"source\": \"iana\"\n },\n \"application/patch-ops-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xer\"]\n },\n \"application/pdf\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pdf\"]\n },\n \"application/pdx\": {\n \"source\": \"iana\"\n },\n \"application/pem-certificate-chain\": {\n \"source\": \"iana\"\n },\n \"application/pgp-encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pgp\"]\n },\n \"application/pgp-keys\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\"]\n },\n \"application/pgp-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\",\"sig\"]\n },\n \"application/pics-rules\": {\n \"source\": \"apache\",\n \"extensions\": [\"prf\"]\n },\n \"application/pidf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pidf-diff+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pkcs10\": {\n \"source\": \"iana\",\n \"extensions\": [\"p10\"]\n },\n \"application/pkcs12\": {\n \"source\": \"iana\"\n },\n \"application/pkcs7-mime\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7m\",\"p7c\"]\n },\n \"application/pkcs7-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7s\"]\n },\n \"application/pkcs8\": {\n \"source\": \"iana\",\n \"extensions\": [\"p8\"]\n },\n \"application/pkcs8-encrypted\": {\n \"source\": \"iana\"\n },\n \"application/pkix-attr-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"ac\"]\n },\n \"application/pkix-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"cer\"]\n },\n \"application/pkix-crl\": {\n \"source\": \"iana\",\n \"extensions\": [\"crl\"]\n },\n \"application/pkix-pkipath\": {\n \"source\": \"iana\",\n \"extensions\": [\"pkipath\"]\n },\n \"application/pkixcmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"pki\"]\n },\n \"application/pls+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pls\"]\n },\n \"application/poc-settings+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/postscript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ai\",\"eps\",\"ps\"]\n },\n \"application/ppsp-tracker+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/provenance+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"provx\"]\n },\n \"application/prs.alvestrand.titrax-sheet\": {\n \"source\": \"iana\"\n },\n \"application/prs.cww\": {\n \"source\": \"iana\",\n \"extensions\": [\"cww\"]\n },\n \"application/prs.cyn\": {\n \"source\": \"iana\",\n \"charset\": \"7-BIT\"\n },\n \"application/prs.hpub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/prs.nprend\": {\n \"source\": \"iana\"\n },\n \"application/prs.plucker\": {\n \"source\": \"iana\"\n },\n \"application/prs.rdf-xml-crypt\": {\n \"source\": \"iana\"\n },\n \"application/prs.xsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/pskc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pskcxml\"]\n },\n \"application/pvd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/qsig\": {\n \"source\": \"iana\"\n },\n \"application/raml+yaml\": {\n \"compressible\": true,\n \"extensions\": [\"raml\"]\n },\n \"application/raptorfec\": {\n \"source\": \"iana\"\n },\n \"application/rdap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rdf\",\"owl\"]\n },\n \"application/reginfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rif\"]\n },\n \"application/relax-ng-compact-syntax\": {\n \"source\": \"iana\",\n \"extensions\": [\"rnc\"]\n },\n \"application/remote-printing\": {\n \"source\": \"iana\"\n },\n \"application/reputon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/resource-lists+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rl\"]\n },\n \"application/resource-lists-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rld\"]\n },\n \"application/rfc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/riscos\": {\n \"source\": \"iana\"\n },\n \"application/rlmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rls-services+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rs\"]\n },\n \"application/route-apd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rapd\"]\n },\n \"application/route-s-tsid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sls\"]\n },\n \"application/route-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rusd\"]\n },\n \"application/rpki-ghostbusters\": {\n \"source\": \"iana\",\n \"extensions\": [\"gbr\"]\n },\n \"application/rpki-manifest\": {\n \"source\": \"iana\",\n \"extensions\": [\"mft\"]\n },\n \"application/rpki-publication\": {\n \"source\": \"iana\"\n },\n \"application/rpki-roa\": {\n \"source\": \"iana\",\n \"extensions\": [\"roa\"]\n },\n \"application/rpki-updown\": {\n \"source\": \"iana\"\n },\n \"application/rsd+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rsd\"]\n },\n \"application/rss+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rss\"]\n },\n \"application/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"application/rtploopback\": {\n \"source\": \"iana\"\n },\n \"application/rtx\": {\n \"source\": \"iana\"\n },\n \"application/samlassertion+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/samlmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif-external-properties+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sbe\": {\n \"source\": \"iana\"\n },\n \"application/sbml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sbml\"]\n },\n \"application/scaip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scim+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scvp-cv-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"scq\"]\n },\n \"application/scvp-cv-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"scs\"]\n },\n \"application/scvp-vp-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"spq\"]\n },\n \"application/scvp-vp-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"spp\"]\n },\n \"application/sdp\": {\n \"source\": \"iana\",\n \"extensions\": [\"sdp\"]\n },\n \"application/secevent+jwt\": {\n \"source\": \"iana\"\n },\n \"application/senml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"senmlx\"]\n },\n \"application/senml-etch+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml-etch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sensml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/sensml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sensml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sensmlx\"]\n },\n \"application/sensml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sep+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sep-exi\": {\n \"source\": \"iana\"\n },\n \"application/session-info\": {\n \"source\": \"iana\"\n },\n \"application/set-payment\": {\n \"source\": \"iana\"\n },\n \"application/set-payment-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setpay\"]\n },\n \"application/set-registration\": {\n \"source\": \"iana\"\n },\n \"application/set-registration-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setreg\"]\n },\n \"application/sgml\": {\n \"source\": \"iana\"\n },\n \"application/sgml-open-catalog\": {\n \"source\": \"iana\"\n },\n \"application/shf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"shf\"]\n },\n \"application/sieve\": {\n \"source\": \"iana\",\n \"extensions\": [\"siv\",\"sieve\"]\n },\n \"application/simple-filter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/simple-message-summary\": {\n \"source\": \"iana\"\n },\n \"application/simplesymbolcontainer\": {\n \"source\": \"iana\"\n },\n \"application/sipc\": {\n \"source\": \"iana\"\n },\n \"application/slate\": {\n \"source\": \"iana\"\n },\n \"application/smil\": {\n \"source\": \"iana\"\n },\n \"application/smil+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"smi\",\"smil\"]\n },\n \"application/smpte336m\": {\n \"source\": \"iana\"\n },\n \"application/soap+fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/soap+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sparql-query\": {\n \"source\": \"iana\",\n \"extensions\": [\"rq\"]\n },\n \"application/sparql-results+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"srx\"]\n },\n \"application/spdx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/spirits-event+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sql\": {\n \"source\": \"iana\"\n },\n \"application/srgs\": {\n \"source\": \"iana\",\n \"extensions\": [\"gram\"]\n },\n \"application/srgs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"grxml\"]\n },\n \"application/sru+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sru\"]\n },\n \"application/ssdl+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ssdl\"]\n },\n \"application/ssml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ssml\"]\n },\n \"application/stix+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/swid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"swidtag\"]\n },\n \"application/tamp-apex-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-apex-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-error\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-query\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-response\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tar\": {\n \"compressible\": true\n },\n \"application/taxii+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/td+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tei\",\"teicorpus\"]\n },\n \"application/tetra_isi\": {\n \"source\": \"iana\"\n },\n \"application/thraud+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tfi\"]\n },\n \"application/timestamp-query\": {\n \"source\": \"iana\"\n },\n \"application/timestamp-reply\": {\n \"source\": \"iana\"\n },\n \"application/timestamped-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"tsd\"]\n },\n \"application/tlsrpt+gzip\": {\n \"source\": \"iana\"\n },\n \"application/tlsrpt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tnauthlist\": {\n \"source\": \"iana\"\n },\n \"application/token-introspection+jwt\": {\n \"source\": \"iana\"\n },\n \"application/toml\": {\n \"compressible\": true,\n \"extensions\": [\"toml\"]\n },\n \"application/trickle-ice-sdpfrag\": {\n \"source\": \"iana\"\n },\n \"application/trig\": {\n \"source\": \"iana\",\n \"extensions\": [\"trig\"]\n },\n \"application/ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttml\"]\n },\n \"application/tve-trigger\": {\n \"source\": \"iana\"\n },\n \"application/tzif\": {\n \"source\": \"iana\"\n },\n \"application/tzif-leap\": {\n \"source\": \"iana\"\n },\n \"application/ubjson\": {\n \"compressible\": false,\n \"extensions\": [\"ubj\"]\n },\n \"application/ulpfec\": {\n \"source\": \"iana\"\n },\n \"application/urc-grpsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/urc-ressheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsheet\"]\n },\n \"application/urc-targetdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"td\"]\n },\n \"application/urc-uisocketdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vemmi\": {\n \"source\": \"iana\"\n },\n \"application/vividence.scriptfile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.1000minds.decision-model+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"1km\"]\n },\n \"application/vnd.3gpp-prose+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3ch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-v2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gnas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.access-transfer-events+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.bsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gmop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gtpc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.interworking-data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.lpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mc-signalling-ear\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-payload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-signalling\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-signed+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mid-call+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ngap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pfcp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pic-bw-large\": {\n \"source\": \"iana\",\n \"extensions\": [\"plb\"]\n },\n \"application/vnd.3gpp.pic-bw-small\": {\n \"source\": \"iana\",\n \"extensions\": [\"psb\"]\n },\n \"application/vnd.3gpp.pic-bw-var\": {\n \"source\": \"iana\",\n \"extensions\": [\"pvb\"]\n },\n \"application/vnd.3gpp.s1ap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-ext+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.state-and-event-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ussd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp2.tcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tcap\"]\n },\n \"application/vnd.3lightssoftware.imagescal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3m.post-it-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"pwn\"]\n },\n \"application/vnd.accpac.simply.aso\": {\n \"source\": \"iana\",\n \"extensions\": [\"aso\"]\n },\n \"application/vnd.accpac.simply.imp\": {\n \"source\": \"iana\",\n \"extensions\": [\"imp\"]\n },\n \"application/vnd.acucobol\": {\n \"source\": \"iana\",\n \"extensions\": [\"acu\"]\n },\n \"application/vnd.acucorp\": {\n \"source\": \"iana\",\n \"extensions\": [\"atc\",\"acutc\"]\n },\n \"application/vnd.adobe.air-application-installer-package+zip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"air\"]\n },\n \"application/vnd.adobe.flash.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.formscentral.fcdt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcdt\"]\n },\n \"application/vnd.adobe.fxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fxp\",\"fxpl\"]\n },\n \"application/vnd.adobe.partial-upload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.xdp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdp\"]\n },\n \"application/vnd.adobe.xfdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdf\"]\n },\n \"application/vnd.aether.imp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata-pagedef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.cmoca-cmresource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-charset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codedfont\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codepage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-cmtable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-formdef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-mediummap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-objectcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-overlay\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-pagesegment\": {\n \"source\": \"iana\"\n },\n \"application/vnd.age\": {\n \"source\": \"iana\",\n \"extensions\": [\"age\"]\n },\n \"application/vnd.ah-barcode\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ahead.space\": {\n \"source\": \"iana\",\n \"extensions\": [\"ahead\"]\n },\n \"application/vnd.airzip.filesecure.azf\": {\n \"source\": \"iana\",\n \"extensions\": [\"azf\"]\n },\n \"application/vnd.airzip.filesecure.azs\": {\n \"source\": \"iana\",\n \"extensions\": [\"azs\"]\n },\n \"application/vnd.amadeus+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.amazon.ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"azw\"]\n },\n \"application/vnd.amazon.mobi8-ebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.americandynamics.acc\": {\n \"source\": \"iana\",\n \"extensions\": [\"acc\"]\n },\n \"application/vnd.amiga.ami\": {\n \"source\": \"iana\",\n \"extensions\": [\"ami\"]\n },\n \"application/vnd.amundsen.maze+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.android.ota\": {\n \"source\": \"iana\"\n },\n \"application/vnd.android.package-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"apk\"]\n },\n \"application/vnd.anki\": {\n \"source\": \"iana\"\n },\n \"application/vnd.anser-web-certificate-issue-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"cii\"]\n },\n \"application/vnd.anser-web-funds-transfer-initiation\": {\n \"source\": \"apache\",\n \"extensions\": [\"fti\"]\n },\n \"application/vnd.antix.game-component\": {\n \"source\": \"iana\",\n \"extensions\": [\"atx\"]\n },\n \"application/vnd.apache.arrow.file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.arrow.stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.compact\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.json\": {\n \"source\": \"iana\"\n },\n \"application/vnd.api+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.aplextor.warrp+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apothekende.reservation+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apple.installer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpkg\"]\n },\n \"application/vnd.apple.keynote\": {\n \"source\": \"iana\",\n \"extensions\": [\"key\"]\n },\n \"application/vnd.apple.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"m3u8\"]\n },\n \"application/vnd.apple.numbers\": {\n \"source\": \"iana\",\n \"extensions\": [\"numbers\"]\n },\n \"application/vnd.apple.pages\": {\n \"source\": \"iana\",\n \"extensions\": [\"pages\"]\n },\n \"application/vnd.apple.pkpass\": {\n \"compressible\": false,\n \"extensions\": [\"pkpass\"]\n },\n \"application/vnd.arastra.swi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.aristanetworks.swi\": {\n \"source\": \"iana\",\n \"extensions\": [\"swi\"]\n },\n \"application/vnd.artisan+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.artsquare\": {\n \"source\": \"iana\"\n },\n \"application/vnd.astraea-software.iota\": {\n \"source\": \"iana\",\n \"extensions\": [\"iota\"]\n },\n \"application/vnd.audiograph\": {\n \"source\": \"iana\",\n \"extensions\": [\"aep\"]\n },\n \"application/vnd.autopackage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.avalon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.avistar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.balsamiq.bmml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmml\"]\n },\n \"application/vnd.balsamiq.bmpr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.banana-accounting\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.error\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bekitzur-stech+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bint.med-content\": {\n \"source\": \"iana\"\n },\n \"application/vnd.biopax.rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.blink-idb-value-wrapper\": {\n \"source\": \"iana\"\n },\n \"application/vnd.blueice.multipass\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpm\"]\n },\n \"application/vnd.bluetooth.ep.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bluetooth.le.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bmi\": {\n \"source\": \"iana\",\n \"extensions\": [\"bmi\"]\n },\n \"application/vnd.bpf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bpf3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.businessobjects\": {\n \"source\": \"iana\",\n \"extensions\": [\"rep\"]\n },\n \"application/vnd.byu.uapi+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cab-jscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-cpdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-lips\": {\n \"source\": \"iana\"\n },\n \"application/vnd.capasystems-pg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cendio.thinlinc.clientconf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.century-systems.tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chemdraw+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdxml\"]\n },\n \"application/vnd.chess-pgn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chipnuts.karaoke-mmd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmd\"]\n },\n \"application/vnd.ciedi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cinderella\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdy\"]\n },\n \"application/vnd.cirpack.isdn-ext\": {\n \"source\": \"iana\"\n },\n \"application/vnd.citationstyles.style+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csl\"]\n },\n \"application/vnd.claymore\": {\n \"source\": \"iana\",\n \"extensions\": [\"cla\"]\n },\n \"application/vnd.cloanto.rp9\": {\n \"source\": \"iana\",\n \"extensions\": [\"rp9\"]\n },\n \"application/vnd.clonk.c4group\": {\n \"source\": \"iana\",\n \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n },\n \"application/vnd.cluetrust.cartomobile-config\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amc\"]\n },\n \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amz\"]\n },\n \"application/vnd.coffeescript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collection+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.doc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.next+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.comicbook+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.comicbook-rar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commerce-battelle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commonspace\": {\n \"source\": \"iana\",\n \"extensions\": [\"csp\"]\n },\n \"application/vnd.contact.cmsg\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdbcmsg\"]\n },\n \"application/vnd.coreos.ignition+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cosmocaller\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmc\"]\n },\n \"application/vnd.crick.clicker\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkx\"]\n },\n \"application/vnd.crick.clicker.keyboard\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkk\"]\n },\n \"application/vnd.crick.clicker.palette\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkp\"]\n },\n \"application/vnd.crick.clicker.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkt\"]\n },\n \"application/vnd.crick.clicker.wordbank\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkw\"]\n },\n \"application/vnd.criticaltools.wbs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wbs\"]\n },\n \"application/vnd.cryptii.pipe+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.crypto-shade-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.vault\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ctc-posml\": {\n \"source\": \"iana\",\n \"extensions\": [\"pml\"]\n },\n \"application/vnd.ctct.ws+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cups-pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-postscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-ppd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppd\"]\n },\n \"application/vnd.cups-raster\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-raw\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl.car\": {\n \"source\": \"apache\",\n \"extensions\": [\"car\"]\n },\n \"application/vnd.curl.pcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcurl\"]\n },\n \"application/vnd.cyan.dean.root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cybank\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cyclonedx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cyclonedx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.d2l.coursepackage1p0+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.d3m-dataset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.d3m-problem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dart\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dart\"]\n },\n \"application/vnd.data-vision.rdz\": {\n \"source\": \"iana\",\n \"extensions\": [\"rdz\"]\n },\n \"application/vnd.datapackage+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dataresource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dbf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dbf\"]\n },\n \"application/vnd.debian.binary-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dece.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n },\n \"application/vnd.dece.ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uvt\",\"uvvt\"]\n },\n \"application/vnd.dece.unspecified\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvx\",\"uvvx\"]\n },\n \"application/vnd.dece.zip\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvz\",\"uvvz\"]\n },\n \"application/vnd.denovo.fcselayout-link\": {\n \"source\": \"iana\",\n \"extensions\": [\"fe_launch\"]\n },\n \"application/vnd.desmume.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dm.delegation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dna\": {\n \"source\": \"iana\",\n \"extensions\": [\"dna\"]\n },\n \"application/vnd.document+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dolby.mlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"mlp\"]\n },\n \"application/vnd.dolby.mobile.1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dolby.mobile.2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.doremir.scorecloud-binary-document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dpgraph\": {\n \"source\": \"iana\",\n \"extensions\": [\"dpg\"]\n },\n \"application/vnd.dreamfactory\": {\n \"source\": \"iana\",\n \"extensions\": [\"dfac\"]\n },\n \"application/vnd.drive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ds-keypoint\": {\n \"source\": \"apache\",\n \"extensions\": [\"kpxx\"]\n },\n \"application/vnd.dtg.local\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.flash\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ait\": {\n \"source\": \"iana\",\n \"extensions\": [\"ait\"]\n },\n \"application/vnd.dvb.dvbisl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.dvbj\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.esgcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcdftnotifaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgpdd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcroaming\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-base\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-enhancement\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.notif-aggregate-root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-container+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-generic+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-msglist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-init+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.pfr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.service\": {\n \"source\": \"iana\",\n \"extensions\": [\"svc\"]\n },\n \"application/vnd.dxr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dynageo\": {\n \"source\": \"iana\",\n \"extensions\": [\"geo\"]\n },\n \"application/vnd.dzr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.easykaraoke.cdgdownload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecdis-update\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecip.rlp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eclipse.ditto+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ecowin.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"mag\"]\n },\n \"application/vnd.ecowin.filerequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.fileupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.series\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesrequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.img\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.iso\": {\n \"source\": \"iana\"\n },\n \"application/vnd.emclient.accessrequest+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.enliven\": {\n \"source\": \"iana\",\n \"extensions\": [\"nml\"]\n },\n \"application/vnd.enphase.envoy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eprints.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.epson.esf\": {\n \"source\": \"iana\",\n \"extensions\": [\"esf\"]\n },\n \"application/vnd.epson.msf\": {\n \"source\": \"iana\",\n \"extensions\": [\"msf\"]\n },\n \"application/vnd.epson.quickanime\": {\n \"source\": \"iana\",\n \"extensions\": [\"qam\"]\n },\n \"application/vnd.epson.salt\": {\n \"source\": \"iana\",\n \"extensions\": [\"slt\"]\n },\n \"application/vnd.epson.ssf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ssf\"]\n },\n \"application/vnd.ericsson.quickcall\": {\n \"source\": \"iana\"\n },\n \"application/vnd.espass-espass+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.eszigno3+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es3\",\"et3\"]\n },\n \"application/vnd.etsi.aoc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.asic-e+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.asic-s+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.cug+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvcommand+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-bc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-cod+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-npvr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvservice+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mcid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mheg5\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.pstn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.sci+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.simservs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.timestamp-token\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.tsl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.tsl.der\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eu.kasparian.car+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.eudora.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.profile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.settings\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.theme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.exstream-empower+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.exstream-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ezpix-album\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez2\"]\n },\n \"application/vnd.ezpix-package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez3\"]\n },\n \"application/vnd.f-secure.mobile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.familysearch.gedcom+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.fastcopy-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"fdf\"]\n },\n \"application/vnd.fdsn.mseed\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseed\"]\n },\n \"application/vnd.fdsn.seed\": {\n \"source\": \"iana\",\n \"extensions\": [\"seed\",\"dataless\"]\n },\n \"application/vnd.ffsns\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ficlab.flb+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.filmit.zfc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fints\": {\n \"source\": \"iana\"\n },\n \"application/vnd.firemonkeys.cloudcell\": {\n \"source\": \"iana\"\n },\n \"application/vnd.flographit\": {\n \"source\": \"iana\",\n \"extensions\": [\"gph\"]\n },\n \"application/vnd.fluxtime.clip\": {\n \"source\": \"iana\",\n \"extensions\": [\"ftc\"]\n },\n \"application/vnd.font-fontforge-sfd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.framemaker\": {\n \"source\": \"iana\",\n \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n },\n \"application/vnd.frogans.fnc\": {\n \"source\": \"iana\",\n \"extensions\": [\"fnc\"]\n },\n \"application/vnd.frogans.ltf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ltf\"]\n },\n \"application/vnd.fsc.weblaunch\": {\n \"source\": \"iana\",\n \"extensions\": [\"fsc\"]\n },\n \"application/vnd.fujifilm.fb.docuworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.binder\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.jfi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fujitsu.oasys\": {\n \"source\": \"iana\",\n \"extensions\": [\"oas\"]\n },\n \"application/vnd.fujitsu.oasys2\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa2\"]\n },\n \"application/vnd.fujitsu.oasys3\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa3\"]\n },\n \"application/vnd.fujitsu.oasysgp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fg5\"]\n },\n \"application/vnd.fujitsu.oasysprs\": {\n \"source\": \"iana\",\n \"extensions\": [\"bh2\"]\n },\n \"application/vnd.fujixerox.art-ex\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.art4\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.ddd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ddd\"]\n },\n \"application/vnd.fujixerox.docuworks\": {\n \"source\": \"iana\",\n \"extensions\": [\"xdw\"]\n },\n \"application/vnd.fujixerox.docuworks.binder\": {\n \"source\": \"iana\",\n \"extensions\": [\"xbd\"]\n },\n \"application/vnd.fujixerox.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.hbpl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fut-misnet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fuzzysheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fzs\"]\n },\n \"application/vnd.genomatix.tuxedo\": {\n \"source\": \"iana\",\n \"extensions\": [\"txd\"]\n },\n \"application/vnd.gentics.grd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geocube+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geogebra.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggb\"]\n },\n \"application/vnd.geogebra.slides\": {\n \"source\": \"iana\"\n },\n \"application/vnd.geogebra.tool\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggt\"]\n },\n \"application/vnd.geometry-explorer\": {\n \"source\": \"iana\",\n \"extensions\": [\"gex\",\"gre\"]\n },\n \"application/vnd.geonext\": {\n \"source\": \"iana\",\n \"extensions\": [\"gxt\"]\n },\n \"application/vnd.geoplan\": {\n \"source\": \"iana\",\n \"extensions\": [\"g2w\"]\n },\n \"application/vnd.geospace\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3w\"]\n },\n \"application/vnd.gerber\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gmx\": {\n \"source\": \"iana\",\n \"extensions\": [\"gmx\"]\n },\n \"application/vnd.google-apps.document\": {\n \"compressible\": false,\n \"extensions\": [\"gdoc\"]\n },\n \"application/vnd.google-apps.presentation\": {\n \"compressible\": false,\n \"extensions\": [\"gslides\"]\n },\n \"application/vnd.google-apps.spreadsheet\": {\n \"compressible\": false,\n \"extensions\": [\"gsheet\"]\n },\n \"application/vnd.google-earth.kml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"kml\"]\n },\n \"application/vnd.google-earth.kmz\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"kmz\"]\n },\n \"application/vnd.gov.sk.e-form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gov.sk.e-form+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.grafeq\": {\n \"source\": \"iana\",\n \"extensions\": [\"gqf\",\"gqs\"]\n },\n \"application/vnd.gridmp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.groove-account\": {\n \"source\": \"iana\",\n \"extensions\": [\"gac\"]\n },\n \"application/vnd.groove-help\": {\n \"source\": \"iana\",\n \"extensions\": [\"ghf\"]\n },\n \"application/vnd.groove-identity-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gim\"]\n },\n \"application/vnd.groove-injector\": {\n \"source\": \"iana\",\n \"extensions\": [\"grv\"]\n },\n \"application/vnd.groove-tool-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtm\"]\n },\n \"application/vnd.groove-tool-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpl\"]\n },\n \"application/vnd.groove-vcard\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcg\"]\n },\n \"application/vnd.hal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"hal\"]\n },\n \"application/vnd.handheld-entertainment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zmm\"]\n },\n \"application/vnd.hbci\": {\n \"source\": \"iana\",\n \"extensions\": [\"hbci\"]\n },\n \"application/vnd.hc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hcl-bireports\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hdt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.heroku+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hhe.lesson-player\": {\n \"source\": \"iana\",\n \"extensions\": [\"les\"]\n },\n \"application/vnd.hl7cda+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hl7v2+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hp-hpgl\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpgl\"]\n },\n \"application/vnd.hp-hpid\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpid\"]\n },\n \"application/vnd.hp-hps\": {\n \"source\": \"iana\",\n \"extensions\": [\"hps\"]\n },\n \"application/vnd.hp-jlyt\": {\n \"source\": \"iana\",\n \"extensions\": [\"jlt\"]\n },\n \"application/vnd.hp-pcl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcl\"]\n },\n \"application/vnd.hp-pclxl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pclxl\"]\n },\n \"application/vnd.httphone\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hydrostatix.sof-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfd-hdstx\"]\n },\n \"application/vnd.hyper+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyper-item+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyperdrive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hzn-3d-crossword\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.electronic-media\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.minipay\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpy\"]\n },\n \"application/vnd.ibm.modcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n },\n \"application/vnd.ibm.rights-management\": {\n \"source\": \"iana\",\n \"extensions\": [\"irm\"]\n },\n \"application/vnd.ibm.secure-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"sc\"]\n },\n \"application/vnd.iccprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"icc\",\"icm\"]\n },\n \"application/vnd.ieee.1905\": {\n \"source\": \"iana\"\n },\n \"application/vnd.igloader\": {\n \"source\": \"iana\",\n \"extensions\": [\"igl\"]\n },\n \"application/vnd.imagemeter.folder+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.imagemeter.image+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.immervision-ivp\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivp\"]\n },\n \"application/vnd.immervision-ivu\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivu\"]\n },\n \"application/vnd.ims.imsccv1p1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.lis.v2.result+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informedcontrol.rms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informix-visionary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.innopath.wamp.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.insors.igm\": {\n \"source\": \"iana\",\n \"extensions\": [\"igm\"]\n },\n \"application/vnd.intercon.formnet\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpw\",\"xpx\"]\n },\n \"application/vnd.intergeo\": {\n \"source\": \"iana\",\n \"extensions\": [\"i2g\"]\n },\n \"application/vnd.intertrust.digibox\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intertrust.nncp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intu.qbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"qbo\"]\n },\n \"application/vnd.intu.qfx\": {\n \"source\": \"iana\",\n \"extensions\": [\"qfx\"]\n },\n \"application/vnd.iptc.g2.catalogitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.conceptitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.packageitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.planningitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ipunplugged.rcprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"rcprofile\"]\n },\n \"application/vnd.irepository.package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"irp\"]\n },\n \"application/vnd.is-xpr\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpr\"]\n },\n \"application/vnd.isac.fcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcs\"]\n },\n \"application/vnd.iso11783-10+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.jam\": {\n \"source\": \"iana\",\n \"extensions\": [\"jam\"]\n },\n \"application/vnd.japannet-directory-service\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-jpnstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-payment-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-setstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.jcp.javame.midlet-rms\": {\n \"source\": \"iana\",\n \"extensions\": [\"rms\"]\n },\n \"application/vnd.jisp\": {\n \"source\": \"iana\",\n \"extensions\": [\"jisp\"]\n },\n \"application/vnd.joost.joda-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"joda\"]\n },\n \"application/vnd.jsk.isdn-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kahootz\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktz\",\"ktr\"]\n },\n \"application/vnd.kde.karbon\": {\n \"source\": \"iana\",\n \"extensions\": [\"karbon\"]\n },\n \"application/vnd.kde.kchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"chrt\"]\n },\n \"application/vnd.kde.kformula\": {\n \"source\": \"iana\",\n \"extensions\": [\"kfo\"]\n },\n \"application/vnd.kde.kivio\": {\n \"source\": \"iana\",\n \"extensions\": [\"flw\"]\n },\n \"application/vnd.kde.kontour\": {\n \"source\": \"iana\",\n \"extensions\": [\"kon\"]\n },\n \"application/vnd.kde.kpresenter\": {\n \"source\": \"iana\",\n \"extensions\": [\"kpr\",\"kpt\"]\n },\n \"application/vnd.kde.kspread\": {\n \"source\": \"iana\",\n \"extensions\": [\"ksp\"]\n },\n \"application/vnd.kde.kword\": {\n \"source\": \"iana\",\n \"extensions\": [\"kwd\",\"kwt\"]\n },\n \"application/vnd.kenameaapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"htke\"]\n },\n \"application/vnd.kidspiration\": {\n \"source\": \"iana\",\n \"extensions\": [\"kia\"]\n },\n \"application/vnd.kinar\": {\n \"source\": \"iana\",\n \"extensions\": [\"kne\",\"knp\"]\n },\n \"application/vnd.koan\": {\n \"source\": \"iana\",\n \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n },\n \"application/vnd.kodak-descriptor\": {\n \"source\": \"iana\",\n \"extensions\": [\"sse\"]\n },\n \"application/vnd.las\": {\n \"source\": \"iana\"\n },\n \"application/vnd.las.las+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.las.las+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lasxml\"]\n },\n \"application/vnd.laszip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.leap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.liberty-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.llamagraphics.life-balance.desktop\": {\n \"source\": \"iana\",\n \"extensions\": [\"lbd\"]\n },\n \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lbe\"]\n },\n \"application/vnd.logipipe.circuit+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.loom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.lotus-1-2-3\": {\n \"source\": \"iana\",\n \"extensions\": [\"123\"]\n },\n \"application/vnd.lotus-approach\": {\n \"source\": \"iana\",\n \"extensions\": [\"apr\"]\n },\n \"application/vnd.lotus-freelance\": {\n \"source\": \"iana\",\n \"extensions\": [\"pre\"]\n },\n \"application/vnd.lotus-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"nsf\"]\n },\n \"application/vnd.lotus-organizer\": {\n \"source\": \"iana\",\n \"extensions\": [\"org\"]\n },\n \"application/vnd.lotus-screencam\": {\n \"source\": \"iana\",\n \"extensions\": [\"scm\"]\n },\n \"application/vnd.lotus-wordpro\": {\n \"source\": \"iana\",\n \"extensions\": [\"lwp\"]\n },\n \"application/vnd.macports.portpkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"portpkg\"]\n },\n \"application/vnd.mapbox-vector-tile\": {\n \"source\": \"iana\",\n \"extensions\": [\"mvt\"]\n },\n \"application/vnd.marlin.drm.actiontoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.conftoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.license+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.mdcf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mason+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.maxar.archive.3tz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.maxmind.maxmind-db\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mcd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mcd\"]\n },\n \"application/vnd.medcalcdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"mc1\"]\n },\n \"application/vnd.mediastation.cdkey\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdkey\"]\n },\n \"application/vnd.meridian-slingshot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mfer\": {\n \"source\": \"iana\",\n \"extensions\": [\"mwf\"]\n },\n \"application/vnd.mfmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"mfm\"]\n },\n \"application/vnd.micro+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.micrografx.flo\": {\n \"source\": \"iana\",\n \"extensions\": [\"flo\"]\n },\n \"application/vnd.micrografx.igx\": {\n \"source\": \"iana\",\n \"extensions\": [\"igx\"]\n },\n \"application/vnd.microsoft.portable-executable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.microsoft.windows.thumbnail-cache\": {\n \"source\": \"iana\"\n },\n \"application/vnd.miele+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.mif\": {\n \"source\": \"iana\",\n \"extensions\": [\"mif\"]\n },\n \"application/vnd.minisoft-hp3000-save\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mobius.daf\": {\n \"source\": \"iana\",\n \"extensions\": [\"daf\"]\n },\n \"application/vnd.mobius.dis\": {\n \"source\": \"iana\",\n \"extensions\": [\"dis\"]\n },\n \"application/vnd.mobius.mbk\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbk\"]\n },\n \"application/vnd.mobius.mqy\": {\n \"source\": \"iana\",\n \"extensions\": [\"mqy\"]\n },\n \"application/vnd.mobius.msl\": {\n \"source\": \"iana\",\n \"extensions\": [\"msl\"]\n },\n \"application/vnd.mobius.plc\": {\n \"source\": \"iana\",\n \"extensions\": [\"plc\"]\n },\n \"application/vnd.mobius.txf\": {\n \"source\": \"iana\",\n \"extensions\": [\"txf\"]\n },\n \"application/vnd.mophun.application\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpn\"]\n },\n \"application/vnd.mophun.certificate\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpc\"]\n },\n \"application/vnd.motorola.flexsuite\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.adsi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.fis\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.gotap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.kmr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.ttc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.wem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.iprm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mozilla.xul+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xul\"]\n },\n \"application/vnd.ms-3mfdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-artgalry\": {\n \"source\": \"iana\",\n \"extensions\": [\"cil\"]\n },\n \"application/vnd.ms-asf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-cab-compressed\": {\n \"source\": \"iana\",\n \"extensions\": [\"cab\"]\n },\n \"application/vnd.ms-color.iccprofile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-excel\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n },\n \"application/vnd.ms-excel.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlam\"]\n },\n \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsb\"]\n },\n \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsm\"]\n },\n \"application/vnd.ms-excel.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltm\"]\n },\n \"application/vnd.ms-fontobject\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eot\"]\n },\n \"application/vnd.ms-htmlhelp\": {\n \"source\": \"iana\",\n \"extensions\": [\"chm\"]\n },\n \"application/vnd.ms-ims\": {\n \"source\": \"iana\",\n \"extensions\": [\"ims\"]\n },\n \"application/vnd.ms-lrm\": {\n \"source\": \"iana\",\n \"extensions\": [\"lrm\"]\n },\n \"application/vnd.ms-office.activex+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-officetheme\": {\n \"source\": \"iana\",\n \"extensions\": [\"thmx\"]\n },\n \"application/vnd.ms-opentype\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-outlook\": {\n \"compressible\": false,\n \"extensions\": [\"msg\"]\n },\n \"application/vnd.ms-package.obfuscated-opentype\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-pki.seccat\": {\n \"source\": \"apache\",\n \"extensions\": [\"cat\"]\n },\n \"application/vnd.ms-pki.stl\": {\n \"source\": \"apache\",\n \"extensions\": [\"stl\"]\n },\n \"application/vnd.ms-playready.initiator+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-powerpoint\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n },\n \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppam\"]\n },\n \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"pptm\"]\n },\n \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldm\"]\n },\n \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsm\"]\n },\n \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"potm\"]\n },\n \"application/vnd.ms-printdevicecapabilities+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-printing.printticket+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-printschematicket+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-project\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpp\",\"mpt\"]\n },\n \"application/vnd.ms-tnef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.nwprinting.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.printerpairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.wsd.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-word.document.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"docm\"]\n },\n \"application/vnd.ms-word.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotm\"]\n },\n \"application/vnd.ms-works\": {\n \"source\": \"iana\",\n \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n },\n \"application/vnd.ms-wpl\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpl\"]\n },\n \"application/vnd.ms-xpsdocument\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xps\"]\n },\n \"application/vnd.msa-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mseq\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseq\"]\n },\n \"application/vnd.msign\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator.cif\": {\n \"source\": \"iana\"\n },\n \"application/vnd.music-niff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.musician\": {\n \"source\": \"iana\",\n \"extensions\": [\"mus\"]\n },\n \"application/vnd.muvee.style\": {\n \"source\": \"iana\",\n \"extensions\": [\"msty\"]\n },\n \"application/vnd.mynfc\": {\n \"source\": \"iana\",\n \"extensions\": [\"taglet\"]\n },\n \"application/vnd.nacamar.ybrid+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ncd.control\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ncd.reference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nearst.inv+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nebumind.line\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nervana\": {\n \"source\": \"iana\"\n },\n \"application/vnd.netfpx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.neurolanguage.nlu\": {\n \"source\": \"iana\",\n \"extensions\": [\"nlu\"]\n },\n \"application/vnd.nimn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.nitro.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.snes.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nitf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ntf\",\"nitf\"]\n },\n \"application/vnd.noblenet-directory\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnd\"]\n },\n \"application/vnd.noblenet-sealer\": {\n \"source\": \"iana\",\n \"extensions\": [\"nns\"]\n },\n \"application/vnd.noblenet-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnw\"]\n },\n \"application/vnd.nokia.catalogs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.iptv.config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.isds-radio-presets\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.landmarkcollection+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.n-gage.ac+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ac\"]\n },\n \"application/vnd.nokia.n-gage.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"ngdat\"]\n },\n \"application/vnd.nokia.n-gage.symbian.install\": {\n \"source\": \"iana\",\n \"extensions\": [\"n-gage\"]\n },\n \"application/vnd.nokia.ncd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.radio-preset\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpst\"]\n },\n \"application/vnd.nokia.radio-presets\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpss\"]\n },\n \"application/vnd.novadigm.edm\": {\n \"source\": \"iana\",\n \"extensions\": [\"edm\"]\n },\n \"application/vnd.novadigm.edx\": {\n \"source\": \"iana\",\n \"extensions\": [\"edx\"]\n },\n \"application/vnd.novadigm.ext\": {\n \"source\": \"iana\",\n \"extensions\": [\"ext\"]\n },\n \"application/vnd.ntt-local.content-share\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.file-transfer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.ogw_remote-access\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_remote\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"odc\"]\n },\n \"application/vnd.oasis.opendocument.chart-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otc\"]\n },\n \"application/vnd.oasis.opendocument.database\": {\n \"source\": \"iana\",\n \"extensions\": [\"odb\"]\n },\n \"application/vnd.oasis.opendocument.formula\": {\n \"source\": \"iana\",\n \"extensions\": [\"odf\"]\n },\n \"application/vnd.oasis.opendocument.formula-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"odft\"]\n },\n \"application/vnd.oasis.opendocument.graphics\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odg\"]\n },\n \"application/vnd.oasis.opendocument.graphics-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otg\"]\n },\n \"application/vnd.oasis.opendocument.image\": {\n \"source\": \"iana\",\n \"extensions\": [\"odi\"]\n },\n \"application/vnd.oasis.opendocument.image-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"oti\"]\n },\n \"application/vnd.oasis.opendocument.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odp\"]\n },\n \"application/vnd.oasis.opendocument.presentation-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otp\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ods\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ots\"]\n },\n \"application/vnd.oasis.opendocument.text\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odt\"]\n },\n \"application/vnd.oasis.opendocument.text-master\": {\n \"source\": \"iana\",\n \"extensions\": [\"odm\"]\n },\n \"application/vnd.oasis.opendocument.text-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ott\"]\n },\n \"application/vnd.oasis.opendocument.text-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"oth\"]\n },\n \"application/vnd.obn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ocf+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oci.image.manifest.v1+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oftn.l10n+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessdownload+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessstreaming+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.cspg-hexbinary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.dae.svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.dae.xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.pae.gem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.spdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.spdlist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.ueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.userprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.olpc-sugar\": {\n \"source\": \"iana\",\n \"extensions\": [\"xo\"]\n },\n \"application/vnd.oma-scws-config\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-request\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.drm-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.imd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.ltkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.notification+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.provisioningtrigger\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgboot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgdd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sgdu\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.simple-symbol-container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sprov+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.stkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.cab-address-book+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-feature-handler+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-pcc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-subs-invite+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-user-prefs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.dcd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dcdc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dd2+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dd2\"]\n },\n \"application/vnd.oma.drm.risd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.group-usage-list+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.lwm2m+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+tlv\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.pal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.final-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.groups+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.push\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.scidm.messages+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.xcap-directory+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.omads-email+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-file+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-folder+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omaloc-supl-init\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepager\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertat\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openblox.game+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"obgx\"]\n },\n \"application/vnd.openblox.game-binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openeye.oeb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openofficeorg.extension\": {\n \"source\": \"apache\",\n \"extensions\": [\"oxt\"]\n },\n \"application/vnd.openstreetmap.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osm\"]\n },\n \"application/vnd.opentimestamps.ots\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pptx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"potx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xlsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"docx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.core-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.relationships+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oracle.resource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.orange.indata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osa.netdeploy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgeo.mapguide.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgp\"]\n },\n \"application/vnd.osgi.bundle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgi.dp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dp\"]\n },\n \"application/vnd.osgi.subsystem\": {\n \"source\": \"iana\",\n \"extensions\": [\"esa\"]\n },\n \"application/vnd.otps.ct-kip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oxli.countgraph\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pagerduty+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.palm\": {\n \"source\": \"iana\",\n \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n },\n \"application/vnd.panoply\": {\n \"source\": \"iana\"\n },\n \"application/vnd.paos.xml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patentdive\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patientecommsdoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pawaafile\": {\n \"source\": \"iana\",\n \"extensions\": [\"paw\"]\n },\n \"application/vnd.pcos\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pg.format\": {\n \"source\": \"iana\",\n \"extensions\": [\"str\"]\n },\n \"application/vnd.pg.osasli\": {\n \"source\": \"iana\",\n \"extensions\": [\"ei6\"]\n },\n \"application/vnd.piaccess.application-licence\": {\n \"source\": \"iana\"\n },\n \"application/vnd.picsel\": {\n \"source\": \"iana\",\n \"extensions\": [\"efif\"]\n },\n \"application/vnd.pmi.widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wg\"]\n },\n \"application/vnd.poc.group-advertisement+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.pocketlearn\": {\n \"source\": \"iana\",\n \"extensions\": [\"plf\"]\n },\n \"application/vnd.powerbuilder6\": {\n \"source\": \"iana\",\n \"extensions\": [\"pbd\"]\n },\n \"application/vnd.powerbuilder6-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.preminet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.previewsystems.box\": {\n \"source\": \"iana\",\n \"extensions\": [\"box\"]\n },\n \"application/vnd.proteus.magazine\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgz\"]\n },\n \"application/vnd.psfs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.publishare-delta-tree\": {\n \"source\": \"iana\",\n \"extensions\": [\"qps\"]\n },\n \"application/vnd.pvi.ptid1\": {\n \"source\": \"iana\",\n \"extensions\": [\"ptid\"]\n },\n \"application/vnd.pwg-multiplexed\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pwg-xhtml-print+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.qualcomm.brew-app-res\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quarantainenet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quark.quarkxpress\": {\n \"source\": \"iana\",\n \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n },\n \"application/vnd.quobject-quoxdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.radisys.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-stream+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-base+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-group+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-speech+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-transform+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rainstor.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rapid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rar\": {\n \"source\": \"iana\",\n \"extensions\": [\"rar\"]\n },\n \"application/vnd.realvnc.bed\": {\n \"source\": \"iana\",\n \"extensions\": [\"bed\"]\n },\n \"application/vnd.recordare.musicxml\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxl\"]\n },\n \"application/vnd.recordare.musicxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musicxml\"]\n },\n \"application/vnd.renlearn.rlprint\": {\n \"source\": \"iana\"\n },\n \"application/vnd.resilient.logic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.restful+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rig.cryptonote\": {\n \"source\": \"iana\",\n \"extensions\": [\"cryptonote\"]\n },\n \"application/vnd.rim.cod\": {\n \"source\": \"apache\",\n \"extensions\": [\"cod\"]\n },\n \"application/vnd.rn-realmedia\": {\n \"source\": \"apache\",\n \"extensions\": [\"rm\"]\n },\n \"application/vnd.rn-realmedia-vbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmvb\"]\n },\n \"application/vnd.route66.link66+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"link66\"]\n },\n \"application/vnd.rs-274x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ruckus.download\": {\n \"source\": \"iana\"\n },\n \"application/vnd.s3sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sailingtracker.track\": {\n \"source\": \"iana\",\n \"extensions\": [\"st\"]\n },\n \"application/vnd.sar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.cid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.mid2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.scribus\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.3df\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.csf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.doc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.eml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.mht\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.net\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.ppt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.tiff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.xls\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.seemail\": {\n \"source\": \"iana\",\n \"extensions\": [\"see\"]\n },\n \"application/vnd.seis+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.sema\": {\n \"source\": \"iana\",\n \"extensions\": [\"sema\"]\n },\n \"application/vnd.semd\": {\n \"source\": \"iana\",\n \"extensions\": [\"semd\"]\n },\n \"application/vnd.semf\": {\n \"source\": \"iana\",\n \"extensions\": [\"semf\"]\n },\n \"application/vnd.shade-save-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shana.informed.formdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"ifm\"]\n },\n \"application/vnd.shana.informed.formtemplate\": {\n \"source\": \"iana\",\n \"extensions\": [\"itp\"]\n },\n \"application/vnd.shana.informed.interchange\": {\n \"source\": \"iana\",\n \"extensions\": [\"iif\"]\n },\n \"application/vnd.shana.informed.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipk\"]\n },\n \"application/vnd.shootproof+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shopkick+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sigrok.session\": {\n \"source\": \"iana\"\n },\n \"application/vnd.simtech-mindmapper\": {\n \"source\": \"iana\",\n \"extensions\": [\"twd\",\"twds\"]\n },\n \"application/vnd.siren+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.smaf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmf\"]\n },\n \"application/vnd.smart.notebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.smart.teacher\": {\n \"source\": \"iana\",\n \"extensions\": [\"teacher\"]\n },\n \"application/vnd.snesdev-page-table\": {\n \"source\": \"iana\"\n },\n \"application/vnd.software602.filler.form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fo\"]\n },\n \"application/vnd.software602.filler.form-xml-zip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.solent.sdkm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sdkm\",\"sdkd\"]\n },\n \"application/vnd.spotfire.dxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxp\"]\n },\n \"application/vnd.spotfire.sfs\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfs\"]\n },\n \"application/vnd.sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-cod\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-dtf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-ntf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.stardivision.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdc\"]\n },\n \"application/vnd.stardivision.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sda\"]\n },\n \"application/vnd.stardivision.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdd\"]\n },\n \"application/vnd.stardivision.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"smf\"]\n },\n \"application/vnd.stardivision.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdw\",\"vor\"]\n },\n \"application/vnd.stardivision.writer-global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgl\"]\n },\n \"application/vnd.stepmania.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"smzip\"]\n },\n \"application/vnd.stepmania.stepchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"sm\"]\n },\n \"application/vnd.street-stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sun.wadl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wadl\"]\n },\n \"application/vnd.sun.xml.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxc\"]\n },\n \"application/vnd.sun.xml.calc.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stc\"]\n },\n \"application/vnd.sun.xml.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxd\"]\n },\n \"application/vnd.sun.xml.draw.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"std\"]\n },\n \"application/vnd.sun.xml.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxi\"]\n },\n \"application/vnd.sun.xml.impress.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"sti\"]\n },\n \"application/vnd.sun.xml.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxm\"]\n },\n \"application/vnd.sun.xml.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxw\"]\n },\n \"application/vnd.sun.xml.writer.global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxg\"]\n },\n \"application/vnd.sun.xml.writer.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stw\"]\n },\n \"application/vnd.sus-calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"sus\",\"susp\"]\n },\n \"application/vnd.svd\": {\n \"source\": \"iana\",\n \"extensions\": [\"svd\"]\n },\n \"application/vnd.swiftview-ics\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sycle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.syft+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.symbian.install\": {\n \"source\": \"apache\",\n \"extensions\": [\"sis\",\"sisx\"]\n },\n \"application/vnd.syncml+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xsm\"]\n },\n \"application/vnd.syncml.dm+wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"bdm\"]\n },\n \"application/vnd.syncml.dm+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xdm\"]\n },\n \"application/vnd.syncml.dm.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"ddf\"]\n },\n \"application/vnd.syncml.dmtnds+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmtnds+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.syncml.ds.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tableschema+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tao.intent-module-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"tao\"]\n },\n \"application/vnd.tcpdump.pcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n },\n \"application/vnd.think-cell.ppttc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tmd.mediaflex.api+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tmobile-livetv\": {\n \"source\": \"iana\",\n \"extensions\": [\"tmo\"]\n },\n \"application/vnd.tri.onesource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.trid.tpt\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpt\"]\n },\n \"application/vnd.triscape.mxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxs\"]\n },\n \"application/vnd.trueapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"tra\"]\n },\n \"application/vnd.truedoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ubisoft.webplayer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ufdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"ufd\",\"ufdl\"]\n },\n \"application/vnd.uiq.theme\": {\n \"source\": \"iana\",\n \"extensions\": [\"utz\"]\n },\n \"application/vnd.umajin\": {\n \"source\": \"iana\",\n \"extensions\": [\"umj\"]\n },\n \"application/vnd.unity\": {\n \"source\": \"iana\",\n \"extensions\": [\"unityweb\"]\n },\n \"application/vnd.uoml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uoml\"]\n },\n \"application/vnd.uplanet.alert\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.alert-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.signal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uri-map\": {\n \"source\": \"iana\"\n },\n \"application/vnd.valve.source.material\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcx\"]\n },\n \"application/vnd.vd-study\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vectorworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vel+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.verimatrix.vcas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.veritone.aion+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.veryant.thin\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ves.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vidsoft.vidconference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.visio\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\"]\n },\n \"application/vnd.visionary\": {\n \"source\": \"iana\",\n \"extensions\": [\"vis\"]\n },\n \"application/vnd.vividence.scriptfile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vsf\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsf\"]\n },\n \"application/vnd.wap.sic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.slc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"wbxml\"]\n },\n \"application/vnd.wap.wmlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlc\"]\n },\n \"application/vnd.wap.wmlscriptc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlsc\"]\n },\n \"application/vnd.webturbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"wtb\"]\n },\n \"application/vnd.wfa.dpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.p2p\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.wsc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmf.bootstrap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica.package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.player\": {\n \"source\": \"iana\",\n \"extensions\": [\"nbp\"]\n },\n \"application/vnd.wordperfect\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpd\"]\n },\n \"application/vnd.wqd\": {\n \"source\": \"iana\",\n \"extensions\": [\"wqd\"]\n },\n \"application/vnd.wrq-hp3000-labelled\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wt.stf\": {\n \"source\": \"iana\",\n \"extensions\": [\"stf\"]\n },\n \"application/vnd.wv.csp+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wv.csp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.wv.ssp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xacml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xara\": {\n \"source\": \"iana\",\n \"extensions\": [\"xar\"]\n },\n \"application/vnd.xfdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdl\"]\n },\n \"application/vnd.xfdl.webform\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xmpie.cpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.dpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.plan\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.ppkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.xlim\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.hv-dic\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvd\"]\n },\n \"application/vnd.yamaha.hv-script\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvs\"]\n },\n \"application/vnd.yamaha.hv-voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvp\"]\n },\n \"application/vnd.yamaha.openscoreformat\": {\n \"source\": \"iana\",\n \"extensions\": [\"osf\"]\n },\n \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osfpvg\"]\n },\n \"application/vnd.yamaha.remote-setup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.smaf-audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"saf\"]\n },\n \"application/vnd.yamaha.smaf-phrase\": {\n \"source\": \"iana\",\n \"extensions\": [\"spf\"]\n },\n \"application/vnd.yamaha.through-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.tunnel-udpencap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yaoweme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yellowriver-custom-menu\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmp\"]\n },\n \"application/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.zul\": {\n \"source\": \"iana\",\n \"extensions\": [\"zir\",\"zirz\"]\n },\n \"application/vnd.zzazz.deck+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zaz\"]\n },\n \"application/voicexml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vxml\"]\n },\n \"application/voucher-cms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vq-rtcpxr\": {\n \"source\": \"iana\"\n },\n \"application/wasm\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wasm\"]\n },\n \"application/watcherinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wif\"]\n },\n \"application/webpush-options+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/whoispp-query\": {\n \"source\": \"iana\"\n },\n \"application/whoispp-response\": {\n \"source\": \"iana\"\n },\n \"application/widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wgt\"]\n },\n \"application/winhlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"hlp\"]\n },\n \"application/wita\": {\n \"source\": \"iana\"\n },\n \"application/wordperfect5.1\": {\n \"source\": \"iana\"\n },\n \"application/wsdl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wsdl\"]\n },\n \"application/wspolicy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wspolicy\"]\n },\n \"application/x-7z-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"7z\"]\n },\n \"application/x-abiword\": {\n \"source\": \"apache\",\n \"extensions\": [\"abw\"]\n },\n \"application/x-ace-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"ace\"]\n },\n \"application/x-amf\": {\n \"source\": \"apache\"\n },\n \"application/x-apple-diskimage\": {\n \"source\": \"apache\",\n \"extensions\": [\"dmg\"]\n },\n \"application/x-arj\": {\n \"compressible\": false,\n \"extensions\": [\"arj\"]\n },\n \"application/x-authorware-bin\": {\n \"source\": \"apache\",\n \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n },\n \"application/x-authorware-map\": {\n \"source\": \"apache\",\n \"extensions\": [\"aam\"]\n },\n \"application/x-authorware-seg\": {\n \"source\": \"apache\",\n \"extensions\": [\"aas\"]\n },\n \"application/x-bcpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"bcpio\"]\n },\n \"application/x-bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/x-bittorrent\": {\n \"source\": \"apache\",\n \"extensions\": [\"torrent\"]\n },\n \"application/x-blorb\": {\n \"source\": \"apache\",\n \"extensions\": [\"blb\",\"blorb\"]\n },\n \"application/x-bzip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz\"]\n },\n \"application/x-bzip2\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz2\",\"boz\"]\n },\n \"application/x-cbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n },\n \"application/x-cdlink\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcd\"]\n },\n \"application/x-cfs-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"cfs\"]\n },\n \"application/x-chat\": {\n \"source\": \"apache\",\n \"extensions\": [\"chat\"]\n },\n \"application/x-chess-pgn\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgn\"]\n },\n \"application/x-chrome-extension\": {\n \"extensions\": [\"crx\"]\n },\n \"application/x-cocoa\": {\n \"source\": \"nginx\",\n \"extensions\": [\"cco\"]\n },\n \"application/x-compress\": {\n \"source\": \"apache\"\n },\n \"application/x-conference\": {\n \"source\": \"apache\",\n \"extensions\": [\"nsc\"]\n },\n \"application/x-cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpio\"]\n },\n \"application/x-csh\": {\n \"source\": \"apache\",\n \"extensions\": [\"csh\"]\n },\n \"application/x-deb\": {\n \"compressible\": false\n },\n \"application/x-debian-package\": {\n \"source\": \"apache\",\n \"extensions\": [\"deb\",\"udeb\"]\n },\n \"application/x-dgc-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"dgc\"]\n },\n \"application/x-director\": {\n \"source\": \"apache\",\n \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n },\n \"application/x-doom\": {\n \"source\": \"apache\",\n \"extensions\": [\"wad\"]\n },\n \"application/x-dtbncx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ncx\"]\n },\n \"application/x-dtbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dtb\"]\n },\n \"application/x-dtbresource+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"res\"]\n },\n \"application/x-dvi\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"dvi\"]\n },\n \"application/x-envoy\": {\n \"source\": \"apache\",\n \"extensions\": [\"evy\"]\n },\n \"application/x-eva\": {\n \"source\": \"apache\",\n \"extensions\": [\"eva\"]\n },\n \"application/x-font-bdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"bdf\"]\n },\n \"application/x-font-dos\": {\n \"source\": \"apache\"\n },\n \"application/x-font-framemaker\": {\n \"source\": \"apache\"\n },\n \"application/x-font-ghostscript\": {\n \"source\": \"apache\",\n \"extensions\": [\"gsf\"]\n },\n \"application/x-font-libgrx\": {\n \"source\": \"apache\"\n },\n \"application/x-font-linux-psf\": {\n \"source\": \"apache\",\n \"extensions\": [\"psf\"]\n },\n \"application/x-font-pcf\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcf\"]\n },\n \"application/x-font-snf\": {\n \"source\": \"apache\",\n \"extensions\": [\"snf\"]\n },\n \"application/x-font-speedo\": {\n \"source\": \"apache\"\n },\n \"application/x-font-sunos-news\": {\n \"source\": \"apache\"\n },\n \"application/x-font-type1\": {\n \"source\": \"apache\",\n \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n },\n \"application/x-font-vfont\": {\n \"source\": \"apache\"\n },\n \"application/x-freearc\": {\n \"source\": \"apache\",\n \"extensions\": [\"arc\"]\n },\n \"application/x-futuresplash\": {\n \"source\": \"apache\",\n \"extensions\": [\"spl\"]\n },\n \"application/x-gca-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"gca\"]\n },\n \"application/x-glulx\": {\n \"source\": \"apache\",\n \"extensions\": [\"ulx\"]\n },\n \"application/x-gnumeric\": {\n \"source\": \"apache\",\n \"extensions\": [\"gnumeric\"]\n },\n \"application/x-gramps-xml\": {\n \"source\": \"apache\",\n \"extensions\": [\"gramps\"]\n },\n \"application/x-gtar\": {\n \"source\": \"apache\",\n \"extensions\": [\"gtar\"]\n },\n \"application/x-gzip\": {\n \"source\": \"apache\"\n },\n \"application/x-hdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"hdf\"]\n },\n \"application/x-httpd-php\": {\n \"compressible\": true,\n \"extensions\": [\"php\"]\n },\n \"application/x-install-instructions\": {\n \"source\": \"apache\",\n \"extensions\": [\"install\"]\n },\n \"application/x-iso9660-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"iso\"]\n },\n \"application/x-iwork-keynote-sffkey\": {\n \"extensions\": [\"key\"]\n },\n \"application/x-iwork-numbers-sffnumbers\": {\n \"extensions\": [\"numbers\"]\n },\n \"application/x-iwork-pages-sffpages\": {\n \"extensions\": [\"pages\"]\n },\n \"application/x-java-archive-diff\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jardiff\"]\n },\n \"application/x-java-jnlp-file\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jnlp\"]\n },\n \"application/x-javascript\": {\n \"compressible\": true\n },\n \"application/x-keepass2\": {\n \"extensions\": [\"kdbx\"]\n },\n \"application/x-latex\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"latex\"]\n },\n \"application/x-lua-bytecode\": {\n \"extensions\": [\"luac\"]\n },\n \"application/x-lzh-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"lzh\",\"lha\"]\n },\n \"application/x-makeself\": {\n \"source\": \"nginx\",\n \"extensions\": [\"run\"]\n },\n \"application/x-mie\": {\n \"source\": \"apache\",\n \"extensions\": [\"mie\"]\n },\n \"application/x-mobipocket-ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"prc\",\"mobi\"]\n },\n \"application/x-mpegurl\": {\n \"compressible\": false\n },\n \"application/x-ms-application\": {\n \"source\": \"apache\",\n \"extensions\": [\"application\"]\n },\n \"application/x-ms-shortcut\": {\n \"source\": \"apache\",\n \"extensions\": [\"lnk\"]\n },\n \"application/x-ms-wmd\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmd\"]\n },\n \"application/x-ms-wmz\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmz\"]\n },\n \"application/x-ms-xbap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbap\"]\n },\n \"application/x-msaccess\": {\n \"source\": \"apache\",\n \"extensions\": [\"mdb\"]\n },\n \"application/x-msbinder\": {\n \"source\": \"apache\",\n \"extensions\": [\"obd\"]\n },\n \"application/x-mscardfile\": {\n \"source\": \"apache\",\n \"extensions\": [\"crd\"]\n },\n \"application/x-msclip\": {\n \"source\": \"apache\",\n \"extensions\": [\"clp\"]\n },\n \"application/x-msdos-program\": {\n \"extensions\": [\"exe\"]\n },\n \"application/x-msdownload\": {\n \"source\": \"apache\",\n \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n },\n \"application/x-msmediaview\": {\n \"source\": \"apache\",\n \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n },\n \"application/x-msmetafile\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n },\n \"application/x-msmoney\": {\n \"source\": \"apache\",\n \"extensions\": [\"mny\"]\n },\n \"application/x-mspublisher\": {\n \"source\": \"apache\",\n \"extensions\": [\"pub\"]\n },\n \"application/x-msschedule\": {\n \"source\": \"apache\",\n \"extensions\": [\"scd\"]\n },\n \"application/x-msterminal\": {\n \"source\": \"apache\",\n \"extensions\": [\"trm\"]\n },\n \"application/x-mswrite\": {\n \"source\": \"apache\",\n \"extensions\": [\"wri\"]\n },\n \"application/x-netcdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"nc\",\"cdf\"]\n },\n \"application/x-ns-proxy-autoconfig\": {\n \"compressible\": true,\n \"extensions\": [\"pac\"]\n },\n \"application/x-nzb\": {\n \"source\": \"apache\",\n \"extensions\": [\"nzb\"]\n },\n \"application/x-perl\": {\n \"source\": \"nginx\",\n \"extensions\": [\"pl\",\"pm\"]\n },\n \"application/x-pilot\": {\n \"source\": \"nginx\",\n \"extensions\": [\"prc\",\"pdb\"]\n },\n \"application/x-pkcs12\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"p12\",\"pfx\"]\n },\n \"application/x-pkcs7-certificates\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7b\",\"spc\"]\n },\n \"application/x-pkcs7-certreqresp\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7r\"]\n },\n \"application/x-pki-message\": {\n \"source\": \"iana\"\n },\n \"application/x-rar-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"rar\"]\n },\n \"application/x-redhat-package-manager\": {\n \"source\": \"nginx\",\n \"extensions\": [\"rpm\"]\n },\n \"application/x-research-info-systems\": {\n \"source\": \"apache\",\n \"extensions\": [\"ris\"]\n },\n \"application/x-sea\": {\n \"source\": \"nginx\",\n \"extensions\": [\"sea\"]\n },\n \"application/x-sh\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"sh\"]\n },\n \"application/x-shar\": {\n \"source\": \"apache\",\n \"extensions\": [\"shar\"]\n },\n \"application/x-shockwave-flash\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"swf\"]\n },\n \"application/x-silverlight-app\": {\n \"source\": \"apache\",\n \"extensions\": [\"xap\"]\n },\n \"application/x-sql\": {\n \"source\": \"apache\",\n \"extensions\": [\"sql\"]\n },\n \"application/x-stuffit\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"sit\"]\n },\n \"application/x-stuffitx\": {\n \"source\": \"apache\",\n \"extensions\": [\"sitx\"]\n },\n \"application/x-subrip\": {\n \"source\": \"apache\",\n \"extensions\": [\"srt\"]\n },\n \"application/x-sv4cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4cpio\"]\n },\n \"application/x-sv4crc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4crc\"]\n },\n \"application/x-t3vm-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"t3\"]\n },\n \"application/x-tads\": {\n \"source\": \"apache\",\n \"extensions\": [\"gam\"]\n },\n \"application/x-tar\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"tar\"]\n },\n \"application/x-tcl\": {\n \"source\": \"apache\",\n \"extensions\": [\"tcl\",\"tk\"]\n },\n \"application/x-tex\": {\n \"source\": \"apache\",\n \"extensions\": [\"tex\"]\n },\n \"application/x-tex-tfm\": {\n \"source\": \"apache\",\n \"extensions\": [\"tfm\"]\n },\n \"application/x-texinfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"texinfo\",\"texi\"]\n },\n \"application/x-tgif\": {\n \"source\": \"apache\",\n \"extensions\": [\"obj\"]\n },\n \"application/x-ustar\": {\n \"source\": \"apache\",\n \"extensions\": [\"ustar\"]\n },\n \"application/x-virtualbox-hdd\": {\n \"compressible\": true,\n \"extensions\": [\"hdd\"]\n },\n \"application/x-virtualbox-ova\": {\n \"compressible\": true,\n \"extensions\": [\"ova\"]\n },\n \"application/x-virtualbox-ovf\": {\n \"compressible\": true,\n \"extensions\": [\"ovf\"]\n },\n \"application/x-virtualbox-vbox\": {\n \"compressible\": true,\n \"extensions\": [\"vbox\"]\n },\n \"application/x-virtualbox-vbox-extpack\": {\n \"compressible\": false,\n \"extensions\": [\"vbox-extpack\"]\n },\n \"application/x-virtualbox-vdi\": {\n \"compressible\": true,\n \"extensions\": [\"vdi\"]\n },\n \"application/x-virtualbox-vhd\": {\n \"compressible\": true,\n \"extensions\": [\"vhd\"]\n },\n \"application/x-virtualbox-vmdk\": {\n \"compressible\": true,\n \"extensions\": [\"vmdk\"]\n },\n \"application/x-wais-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"src\"]\n },\n \"application/x-web-app-manifest+json\": {\n \"compressible\": true,\n \"extensions\": [\"webapp\"]\n },\n \"application/x-www-form-urlencoded\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/x-x509-ca-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"der\",\"crt\",\"pem\"]\n },\n \"application/x-x509-ca-ra-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-x509-next-ca-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-xfig\": {\n \"source\": \"apache\",\n \"extensions\": [\"fig\"]\n },\n \"application/x-xliff+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/x-xpinstall\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"xpi\"]\n },\n \"application/x-xz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xz\"]\n },\n \"application/x-zmachine\": {\n \"source\": \"apache\",\n \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n },\n \"application/x400-bp\": {\n \"source\": \"iana\"\n },\n \"application/xacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xaml+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xaml\"]\n },\n \"application/xcap-att+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xav\"]\n },\n \"application/xcap-caps+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xca\"]\n },\n \"application/xcap-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdf\"]\n },\n \"application/xcap-el+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xel\"]\n },\n \"application/xcap-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcap-ns+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xns\"]\n },\n \"application/xcon-conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcon-conference-info-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xenc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xenc\"]\n },\n \"application/xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xhtml\",\"xht\"]\n },\n \"application/xhtml-voice+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/xliff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n },\n \"application/xml-dtd\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dtd\"]\n },\n \"application/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"application/xml-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xmpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xop\"]\n },\n \"application/xproc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xpl\"]\n },\n \"application/xslt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xsl\",\"xslt\"]\n },\n \"application/xspf+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xspf\"]\n },\n \"application/xv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n },\n \"application/yang\": {\n \"source\": \"iana\",\n \"extensions\": [\"yang\"]\n },\n \"application/yang-data+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yin+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"yin\"]\n },\n \"application/zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"zip\"]\n },\n \"application/zlib\": {\n \"source\": \"iana\"\n },\n \"application/zstd\": {\n \"source\": \"iana\"\n },\n \"audio/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/3gpp\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"3gpp\"]\n },\n \"audio/3gpp2\": {\n \"source\": \"iana\"\n },\n \"audio/aac\": {\n \"source\": \"iana\"\n },\n \"audio/ac3\": {\n \"source\": \"iana\"\n },\n \"audio/adpcm\": {\n \"source\": \"apache\",\n \"extensions\": [\"adp\"]\n },\n \"audio/amr\": {\n \"source\": \"iana\",\n \"extensions\": [\"amr\"]\n },\n \"audio/amr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/amr-wb+\": {\n \"source\": \"iana\"\n },\n \"audio/aptx\": {\n \"source\": \"iana\"\n },\n \"audio/asc\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-advanced-lossless\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-x\": {\n \"source\": \"iana\"\n },\n \"audio/atrac3\": {\n \"source\": \"iana\"\n },\n \"audio/basic\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"au\",\"snd\"]\n },\n \"audio/bv16\": {\n \"source\": \"iana\"\n },\n \"audio/bv32\": {\n \"source\": \"iana\"\n },\n \"audio/clearmode\": {\n \"source\": \"iana\"\n },\n \"audio/cn\": {\n \"source\": \"iana\"\n },\n \"audio/dat12\": {\n \"source\": \"iana\"\n },\n \"audio/dls\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es201108\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202050\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202211\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202212\": {\n \"source\": \"iana\"\n },\n \"audio/dv\": {\n \"source\": \"iana\"\n },\n \"audio/dvi4\": {\n \"source\": \"iana\"\n },\n \"audio/eac3\": {\n \"source\": \"iana\"\n },\n \"audio/encaprtp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc\": {\n \"source\": \"iana\"\n },\n \"audio/evrc-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc0\": {\n \"source\": \"iana\"\n },\n \"audio/evrc1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb1\": {\n \"source\": \"iana\"\n },\n \"audio/evs\": {\n \"source\": \"iana\"\n },\n \"audio/flexfec\": {\n \"source\": \"iana\"\n },\n \"audio/fwdred\": {\n \"source\": \"iana\"\n },\n \"audio/g711-0\": {\n \"source\": \"iana\"\n },\n \"audio/g719\": {\n \"source\": \"iana\"\n },\n \"audio/g722\": {\n \"source\": \"iana\"\n },\n \"audio/g7221\": {\n \"source\": \"iana\"\n },\n \"audio/g723\": {\n \"source\": \"iana\"\n },\n \"audio/g726-16\": {\n \"source\": \"iana\"\n },\n \"audio/g726-24\": {\n \"source\": \"iana\"\n },\n \"audio/g726-32\": {\n \"source\": \"iana\"\n },\n \"audio/g726-40\": {\n \"source\": \"iana\"\n },\n \"audio/g728\": {\n \"source\": \"iana\"\n },\n \"audio/g729\": {\n \"source\": \"iana\"\n },\n \"audio/g7291\": {\n \"source\": \"iana\"\n },\n \"audio/g729d\": {\n \"source\": \"iana\"\n },\n \"audio/g729e\": {\n \"source\": \"iana\"\n },\n \"audio/gsm\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-efr\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-hr-08\": {\n \"source\": \"iana\"\n },\n \"audio/ilbc\": {\n \"source\": \"iana\"\n },\n \"audio/ip-mr_v2.5\": {\n \"source\": \"iana\"\n },\n \"audio/isac\": {\n \"source\": \"apache\"\n },\n \"audio/l16\": {\n \"source\": \"iana\"\n },\n \"audio/l20\": {\n \"source\": \"iana\"\n },\n \"audio/l24\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/l8\": {\n \"source\": \"iana\"\n },\n \"audio/lpc\": {\n \"source\": \"iana\"\n },\n \"audio/melp\": {\n \"source\": \"iana\"\n },\n \"audio/melp1200\": {\n \"source\": \"iana\"\n },\n \"audio/melp2400\": {\n \"source\": \"iana\"\n },\n \"audio/melp600\": {\n \"source\": \"iana\"\n },\n \"audio/mhas\": {\n \"source\": \"iana\"\n },\n \"audio/midi\": {\n \"source\": \"apache\",\n \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n },\n \"audio/mobile-xmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxmf\"]\n },\n \"audio/mp3\": {\n \"compressible\": false,\n \"extensions\": [\"mp3\"]\n },\n \"audio/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"m4a\",\"mp4a\"]\n },\n \"audio/mp4a-latm\": {\n \"source\": \"iana\"\n },\n \"audio/mpa\": {\n \"source\": \"iana\"\n },\n \"audio/mpa-robust\": {\n \"source\": \"iana\"\n },\n \"audio/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n },\n \"audio/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"audio/musepack\": {\n \"source\": \"apache\"\n },\n \"audio/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n },\n \"audio/opus\": {\n \"source\": \"iana\"\n },\n \"audio/parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/pcma\": {\n \"source\": \"iana\"\n },\n \"audio/pcma-wb\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu-wb\": {\n \"source\": \"iana\"\n },\n \"audio/prs.sid\": {\n \"source\": \"iana\"\n },\n \"audio/qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/raptorfec\": {\n \"source\": \"iana\"\n },\n \"audio/red\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/rtploopback\": {\n \"source\": \"iana\"\n },\n \"audio/rtx\": {\n \"source\": \"iana\"\n },\n \"audio/s3m\": {\n \"source\": \"apache\",\n \"extensions\": [\"s3m\"]\n },\n \"audio/scip\": {\n \"source\": \"iana\"\n },\n \"audio/silk\": {\n \"source\": \"apache\",\n \"extensions\": [\"sil\"]\n },\n \"audio/smv\": {\n \"source\": \"iana\"\n },\n \"audio/smv-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/smv0\": {\n \"source\": \"iana\"\n },\n \"audio/sofa\": {\n \"source\": \"iana\"\n },\n \"audio/sp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/speex\": {\n \"source\": \"iana\"\n },\n \"audio/t140c\": {\n \"source\": \"iana\"\n },\n \"audio/t38\": {\n \"source\": \"iana\"\n },\n \"audio/telephone-event\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp_bb\": {\n \"source\": \"iana\"\n },\n \"audio/tone\": {\n \"source\": \"iana\"\n },\n \"audio/tsvcis\": {\n \"source\": \"iana\"\n },\n \"audio/uemclip\": {\n \"source\": \"iana\"\n },\n \"audio/ulpfec\": {\n \"source\": \"iana\"\n },\n \"audio/usac\": {\n \"source\": \"iana\"\n },\n \"audio/vdvi\": {\n \"source\": \"iana\"\n },\n \"audio/vmr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.3gpp.iufp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.4sb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.audiokoz\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.celp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cisco.nse\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cmles.radio-events\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.anp1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.inf1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dece.audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"uva\",\"uvva\"]\n },\n \"audio/vnd.digital-winds\": {\n \"source\": \"iana\",\n \"extensions\": [\"eol\"]\n },\n \"audio/vnd.dlna.adts\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mlp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mps\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2x\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2z\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pulse.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dra\": {\n \"source\": \"iana\",\n \"extensions\": [\"dra\"]\n },\n \"audio/vnd.dts\": {\n \"source\": \"iana\",\n \"extensions\": [\"dts\"]\n },\n \"audio/vnd.dts.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"dtshd\"]\n },\n \"audio/vnd.dts.uhd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dvb.file\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.everad.plj\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.hns.audio\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.lucent.voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"lvp\"]\n },\n \"audio/vnd.ms-playready.media.pya\": {\n \"source\": \"iana\",\n \"extensions\": [\"pya\"]\n },\n \"audio/vnd.nokia.mobile-xmf\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nortel.vbk\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nuera.ecelp4800\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp4800\"]\n },\n \"audio/vnd.nuera.ecelp7470\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp7470\"]\n },\n \"audio/vnd.nuera.ecelp9600\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp9600\"]\n },\n \"audio/vnd.octel.sbc\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.presonus.multitrack\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rhetorex.32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rip\": {\n \"source\": \"iana\",\n \"extensions\": [\"rip\"]\n },\n \"audio/vnd.rn-realaudio\": {\n \"compressible\": false\n },\n \"audio/vnd.sealedmedia.softseal.mpeg\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.vmx.cvsd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.wave\": {\n \"compressible\": false\n },\n \"audio/vorbis\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/vorbis-config\": {\n \"source\": \"iana\"\n },\n \"audio/wav\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/wave\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"weba\"]\n },\n \"audio/x-aac\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"aac\"]\n },\n \"audio/x-aiff\": {\n \"source\": \"apache\",\n \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n },\n \"audio/x-caf\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"caf\"]\n },\n \"audio/x-flac\": {\n \"source\": \"apache\",\n \"extensions\": [\"flac\"]\n },\n \"audio/x-m4a\": {\n \"source\": \"nginx\",\n \"extensions\": [\"m4a\"]\n },\n \"audio/x-matroska\": {\n \"source\": \"apache\",\n \"extensions\": [\"mka\"]\n },\n \"audio/x-mpegurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"m3u\"]\n },\n \"audio/x-ms-wax\": {\n \"source\": \"apache\",\n \"extensions\": [\"wax\"]\n },\n \"audio/x-ms-wma\": {\n \"source\": \"apache\",\n \"extensions\": [\"wma\"]\n },\n \"audio/x-pn-realaudio\": {\n \"source\": \"apache\",\n \"extensions\": [\"ram\",\"ra\"]\n },\n \"audio/x-pn-realaudio-plugin\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmp\"]\n },\n \"audio/x-realaudio\": {\n \"source\": \"nginx\",\n \"extensions\": [\"ra\"]\n },\n \"audio/x-tta\": {\n \"source\": \"apache\"\n },\n \"audio/x-wav\": {\n \"source\": \"apache\",\n \"extensions\": [\"wav\"]\n },\n \"audio/xm\": {\n \"source\": \"apache\",\n \"extensions\": [\"xm\"]\n },\n \"chemical/x-cdx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cdx\"]\n },\n \"chemical/x-cif\": {\n \"source\": \"apache\",\n \"extensions\": [\"cif\"]\n },\n \"chemical/x-cmdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmdf\"]\n },\n \"chemical/x-cml\": {\n \"source\": \"apache\",\n \"extensions\": [\"cml\"]\n },\n \"chemical/x-csml\": {\n \"source\": \"apache\",\n \"extensions\": [\"csml\"]\n },\n \"chemical/x-pdb\": {\n \"source\": \"apache\"\n },\n \"chemical/x-xyz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xyz\"]\n },\n \"font/collection\": {\n \"source\": \"iana\",\n \"extensions\": [\"ttc\"]\n },\n \"font/otf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"otf\"]\n },\n \"font/sfnt\": {\n \"source\": \"iana\"\n },\n \"font/ttf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttf\"]\n },\n \"font/woff\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff\"]\n },\n \"font/woff2\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff2\"]\n },\n \"image/aces\": {\n \"source\": \"iana\",\n \"extensions\": [\"exr\"]\n },\n \"image/apng\": {\n \"compressible\": false,\n \"extensions\": [\"apng\"]\n },\n \"image/avci\": {\n \"source\": \"iana\",\n \"extensions\": [\"avci\"]\n },\n \"image/avcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"avcs\"]\n },\n \"image/avif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"avif\"]\n },\n \"image/bmp\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/cgm\": {\n \"source\": \"iana\",\n \"extensions\": [\"cgm\"]\n },\n \"image/dicom-rle\": {\n \"source\": \"iana\",\n \"extensions\": [\"drle\"]\n },\n \"image/emf\": {\n \"source\": \"iana\",\n \"extensions\": [\"emf\"]\n },\n \"image/fits\": {\n \"source\": \"iana\",\n \"extensions\": [\"fits\"]\n },\n \"image/g3fax\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3\"]\n },\n \"image/gif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gif\"]\n },\n \"image/heic\": {\n \"source\": \"iana\",\n \"extensions\": [\"heic\"]\n },\n \"image/heic-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heics\"]\n },\n \"image/heif\": {\n \"source\": \"iana\",\n \"extensions\": [\"heif\"]\n },\n \"image/heif-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heifs\"]\n },\n \"image/hej2k\": {\n \"source\": \"iana\",\n \"extensions\": [\"hej2\"]\n },\n \"image/hsj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"hsj2\"]\n },\n \"image/ief\": {\n \"source\": \"iana\",\n \"extensions\": [\"ief\"]\n },\n \"image/jls\": {\n \"source\": \"iana\",\n \"extensions\": [\"jls\"]\n },\n \"image/jp2\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jp2\",\"jpg2\"]\n },\n \"image/jpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpeg\",\"jpg\",\"jpe\"]\n },\n \"image/jph\": {\n \"source\": \"iana\",\n \"extensions\": [\"jph\"]\n },\n \"image/jphc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jhc\"]\n },\n \"image/jpm\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpm\"]\n },\n \"image/jpx\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpx\",\"jpf\"]\n },\n \"image/jxr\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxr\"]\n },\n \"image/jxra\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxra\"]\n },\n \"image/jxrs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxrs\"]\n },\n \"image/jxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxs\"]\n },\n \"image/jxsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsc\"]\n },\n \"image/jxsi\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsi\"]\n },\n \"image/jxss\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxss\"]\n },\n \"image/ktx\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx\"]\n },\n \"image/ktx2\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx2\"]\n },\n \"image/naplps\": {\n \"source\": \"iana\"\n },\n \"image/pjpeg\": {\n \"compressible\": false\n },\n \"image/png\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"png\"]\n },\n \"image/prs.btif\": {\n \"source\": \"iana\",\n \"extensions\": [\"btif\"]\n },\n \"image/prs.pti\": {\n \"source\": \"iana\",\n \"extensions\": [\"pti\"]\n },\n \"image/pwg-raster\": {\n \"source\": \"iana\"\n },\n \"image/sgi\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgi\"]\n },\n \"image/svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"svg\",\"svgz\"]\n },\n \"image/t38\": {\n \"source\": \"iana\",\n \"extensions\": [\"t38\"]\n },\n \"image/tiff\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"tif\",\"tiff\"]\n },\n \"image/tiff-fx\": {\n \"source\": \"iana\",\n \"extensions\": [\"tfx\"]\n },\n \"image/vnd.adobe.photoshop\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"psd\"]\n },\n \"image/vnd.airzip.accelerator.azv\": {\n \"source\": \"iana\",\n \"extensions\": [\"azv\"]\n },\n \"image/vnd.cns.inf2\": {\n \"source\": \"iana\"\n },\n \"image/vnd.dece.graphic\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n },\n \"image/vnd.djvu\": {\n \"source\": \"iana\",\n \"extensions\": [\"djvu\",\"djv\"]\n },\n \"image/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"image/vnd.dwg\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwg\"]\n },\n \"image/vnd.dxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxf\"]\n },\n \"image/vnd.fastbidsheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fbs\"]\n },\n \"image/vnd.fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"fpx\"]\n },\n \"image/vnd.fst\": {\n \"source\": \"iana\",\n \"extensions\": [\"fst\"]\n },\n \"image/vnd.fujixerox.edmics-mmr\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmr\"]\n },\n \"image/vnd.fujixerox.edmics-rlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"rlc\"]\n },\n \"image/vnd.globalgraphics.pgb\": {\n \"source\": \"iana\"\n },\n \"image/vnd.microsoft.icon\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/vnd.mix\": {\n \"source\": \"iana\"\n },\n \"image/vnd.mozilla.apng\": {\n \"source\": \"iana\"\n },\n \"image/vnd.ms-dds\": {\n \"compressible\": true,\n \"extensions\": [\"dds\"]\n },\n \"image/vnd.ms-modi\": {\n \"source\": \"iana\",\n \"extensions\": [\"mdi\"]\n },\n \"image/vnd.ms-photo\": {\n \"source\": \"apache\",\n \"extensions\": [\"wdp\"]\n },\n \"image/vnd.net-fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"npx\"]\n },\n \"image/vnd.pco.b16\": {\n \"source\": \"iana\",\n \"extensions\": [\"b16\"]\n },\n \"image/vnd.radiance\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealed.png\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.gif\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.jpg\": {\n \"source\": \"iana\"\n },\n \"image/vnd.svf\": {\n \"source\": \"iana\"\n },\n \"image/vnd.tencent.tap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tap\"]\n },\n \"image/vnd.valve.source.texture\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtf\"]\n },\n \"image/vnd.wap.wbmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"wbmp\"]\n },\n \"image/vnd.xiff\": {\n \"source\": \"iana\",\n \"extensions\": [\"xif\"]\n },\n \"image/vnd.zbrush.pcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcx\"]\n },\n \"image/webp\": {\n \"source\": \"apache\",\n \"extensions\": [\"webp\"]\n },\n \"image/wmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmf\"]\n },\n \"image/x-3ds\": {\n \"source\": \"apache\",\n \"extensions\": [\"3ds\"]\n },\n \"image/x-cmu-raster\": {\n \"source\": \"apache\",\n \"extensions\": [\"ras\"]\n },\n \"image/x-cmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmx\"]\n },\n \"image/x-freehand\": {\n \"source\": \"apache\",\n \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n },\n \"image/x-icon\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/x-jng\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jng\"]\n },\n \"image/x-mrsid-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"sid\"]\n },\n \"image/x-ms-bmp\": {\n \"source\": \"nginx\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/x-pcx\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcx\"]\n },\n \"image/x-pict\": {\n \"source\": \"apache\",\n \"extensions\": [\"pic\",\"pct\"]\n },\n \"image/x-portable-anymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pnm\"]\n },\n \"image/x-portable-bitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pbm\"]\n },\n \"image/x-portable-graymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgm\"]\n },\n \"image/x-portable-pixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"ppm\"]\n },\n \"image/x-rgb\": {\n \"source\": \"apache\",\n \"extensions\": [\"rgb\"]\n },\n \"image/x-tga\": {\n \"source\": \"apache\",\n \"extensions\": [\"tga\"]\n },\n \"image/x-xbitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbm\"]\n },\n \"image/x-xcf\": {\n \"compressible\": false\n },\n \"image/x-xpixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xpm\"]\n },\n \"image/x-xwindowdump\": {\n \"source\": \"apache\",\n \"extensions\": [\"xwd\"]\n },\n \"message/cpim\": {\n \"source\": \"iana\"\n },\n \"message/delivery-status\": {\n \"source\": \"iana\"\n },\n \"message/disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\n \"disposition-notification\"\n ]\n },\n \"message/external-body\": {\n \"source\": \"iana\"\n },\n \"message/feedback-report\": {\n \"source\": \"iana\"\n },\n \"message/global\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8msg\"]\n },\n \"message/global-delivery-status\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8dsn\"]\n },\n \"message/global-disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8mdn\"]\n },\n \"message/global-headers\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8hdr\"]\n },\n \"message/http\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/imdn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"message/news\": {\n \"source\": \"iana\"\n },\n \"message/partial\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/rfc822\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eml\",\"mime\"]\n },\n \"message/s-http\": {\n \"source\": \"iana\"\n },\n \"message/sip\": {\n \"source\": \"iana\"\n },\n \"message/sipfrag\": {\n \"source\": \"iana\"\n },\n \"message/tracking-status\": {\n \"source\": \"iana\"\n },\n \"message/vnd.si.simp\": {\n \"source\": \"iana\"\n },\n \"message/vnd.wfa.wsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wsc\"]\n },\n \"model/3mf\": {\n \"source\": \"iana\",\n \"extensions\": [\"3mf\"]\n },\n \"model/e57\": {\n \"source\": \"iana\"\n },\n \"model/gltf+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gltf\"]\n },\n \"model/gltf-binary\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"glb\"]\n },\n \"model/iges\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"igs\",\"iges\"]\n },\n \"model/mesh\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n },\n \"model/mtl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mtl\"]\n },\n \"model/obj\": {\n \"source\": \"iana\",\n \"extensions\": [\"obj\"]\n },\n \"model/step\": {\n \"source\": \"iana\"\n },\n \"model/step+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"stpx\"]\n },\n \"model/step+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpz\"]\n },\n \"model/step-xml+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpxz\"]\n },\n \"model/stl\": {\n \"source\": \"iana\",\n \"extensions\": [\"stl\"]\n },\n \"model/vnd.collada+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dae\"]\n },\n \"model/vnd.dwf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwf\"]\n },\n \"model/vnd.flatland.3dml\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"gdl\"]\n },\n \"model/vnd.gs-gdl\": {\n \"source\": \"apache\"\n },\n \"model/vnd.gs.gdl\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gtw\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtw\"]\n },\n \"model/vnd.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"model/vnd.mts\": {\n \"source\": \"iana\",\n \"extensions\": [\"mts\"]\n },\n \"model/vnd.opengex\": {\n \"source\": \"iana\",\n \"extensions\": [\"ogex\"]\n },\n \"model/vnd.parasolid.transmit.binary\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_b\"]\n },\n \"model/vnd.parasolid.transmit.text\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_t\"]\n },\n \"model/vnd.pytha.pyox\": {\n \"source\": \"iana\"\n },\n \"model/vnd.rosette.annotated-data-model\": {\n \"source\": \"iana\"\n },\n \"model/vnd.sap.vds\": {\n \"source\": \"iana\",\n \"extensions\": [\"vds\"]\n },\n \"model/vnd.usdz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"usdz\"]\n },\n \"model/vnd.valve.source.compiled-map\": {\n \"source\": \"iana\",\n \"extensions\": [\"bsp\"]\n },\n \"model/vnd.vtu\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtu\"]\n },\n \"model/vrml\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"wrl\",\"vrml\"]\n },\n \"model/x3d+binary\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3db\",\"x3dbz\"]\n },\n \"model/x3d+fastinfoset\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3db\"]\n },\n \"model/x3d+vrml\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3dv\",\"x3dvz\"]\n },\n \"model/x3d+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"x3d\",\"x3dz\"]\n },\n \"model/x3d-vrml\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3dv\"]\n },\n \"multipart/alternative\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/appledouble\": {\n \"source\": \"iana\"\n },\n \"multipart/byteranges\": {\n \"source\": \"iana\"\n },\n \"multipart/digest\": {\n \"source\": \"iana\"\n },\n \"multipart/encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/form-data\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/header-set\": {\n \"source\": \"iana\"\n },\n \"multipart/mixed\": {\n \"source\": \"iana\"\n },\n \"multipart/multilingual\": {\n \"source\": \"iana\"\n },\n \"multipart/parallel\": {\n \"source\": \"iana\"\n },\n \"multipart/related\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/report\": {\n \"source\": \"iana\"\n },\n \"multipart/signed\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/vnd.bint.med-plus\": {\n \"source\": \"iana\"\n },\n \"multipart/voice-message\": {\n \"source\": \"iana\"\n },\n \"multipart/x-mixed-replace\": {\n \"source\": \"iana\"\n },\n \"text/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"text/cache-manifest\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"appcache\",\"manifest\"]\n },\n \"text/calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"ics\",\"ifb\"]\n },\n \"text/calender\": {\n \"compressible\": true\n },\n \"text/cmd\": {\n \"compressible\": true\n },\n \"text/coffeescript\": {\n \"extensions\": [\"coffee\",\"litcoffee\"]\n },\n \"text/cql\": {\n \"source\": \"iana\"\n },\n \"text/cql-expression\": {\n \"source\": \"iana\"\n },\n \"text/cql-identifier\": {\n \"source\": \"iana\"\n },\n \"text/css\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"css\"]\n },\n \"text/csv\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csv\"]\n },\n \"text/csv-schema\": {\n \"source\": \"iana\"\n },\n \"text/directory\": {\n \"source\": \"iana\"\n },\n \"text/dns\": {\n \"source\": \"iana\"\n },\n \"text/ecmascript\": {\n \"source\": \"iana\"\n },\n \"text/encaprtp\": {\n \"source\": \"iana\"\n },\n \"text/enriched\": {\n \"source\": \"iana\"\n },\n \"text/fhirpath\": {\n \"source\": \"iana\"\n },\n \"text/flexfec\": {\n \"source\": \"iana\"\n },\n \"text/fwdred\": {\n \"source\": \"iana\"\n },\n \"text/gff3\": {\n \"source\": \"iana\"\n },\n \"text/grammar-ref-list\": {\n \"source\": \"iana\"\n },\n \"text/html\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"html\",\"htm\",\"shtml\"]\n },\n \"text/jade\": {\n \"extensions\": [\"jade\"]\n },\n \"text/javascript\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"text/jcr-cnd\": {\n \"source\": \"iana\"\n },\n \"text/jsx\": {\n \"compressible\": true,\n \"extensions\": [\"jsx\"]\n },\n \"text/less\": {\n \"compressible\": true,\n \"extensions\": [\"less\"]\n },\n \"text/markdown\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"markdown\",\"md\"]\n },\n \"text/mathml\": {\n \"source\": \"nginx\",\n \"extensions\": [\"mml\"]\n },\n \"text/mdx\": {\n \"compressible\": true,\n \"extensions\": [\"mdx\"]\n },\n \"text/mizar\": {\n \"source\": \"iana\"\n },\n \"text/n3\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"n3\"]\n },\n \"text/parameters\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/parityfec\": {\n \"source\": \"iana\"\n },\n \"text/plain\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n },\n \"text/provenance-notation\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/prs.fallenstein.rst\": {\n \"source\": \"iana\"\n },\n \"text/prs.lines.tag\": {\n \"source\": \"iana\",\n \"extensions\": [\"dsc\"]\n },\n \"text/prs.prop.logic\": {\n \"source\": \"iana\"\n },\n \"text/raptorfec\": {\n \"source\": \"iana\"\n },\n \"text/red\": {\n \"source\": \"iana\"\n },\n \"text/rfc822-headers\": {\n \"source\": \"iana\"\n },\n \"text/richtext\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtx\"]\n },\n \"text/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"text/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"text/rtploopback\": {\n \"source\": \"iana\"\n },\n \"text/rtx\": {\n \"source\": \"iana\"\n },\n \"text/sgml\": {\n \"source\": \"iana\",\n \"extensions\": [\"sgml\",\"sgm\"]\n },\n \"text/shaclc\": {\n \"source\": \"iana\"\n },\n \"text/shex\": {\n \"source\": \"iana\",\n \"extensions\": [\"shex\"]\n },\n \"text/slim\": {\n \"extensions\": [\"slim\",\"slm\"]\n },\n \"text/spdx\": {\n \"source\": \"iana\",\n \"extensions\": [\"spdx\"]\n },\n \"text/strings\": {\n \"source\": \"iana\"\n },\n \"text/stylus\": {\n \"extensions\": [\"stylus\",\"styl\"]\n },\n \"text/t140\": {\n \"source\": \"iana\"\n },\n \"text/tab-separated-values\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tsv\"]\n },\n \"text/troff\": {\n \"source\": \"iana\",\n \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n },\n \"text/turtle\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"ttl\"]\n },\n \"text/ulpfec\": {\n \"source\": \"iana\"\n },\n \"text/uri-list\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uri\",\"uris\",\"urls\"]\n },\n \"text/vcard\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vcard\"]\n },\n \"text/vnd.a\": {\n \"source\": \"iana\"\n },\n \"text/vnd.abc\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ascii-art\": {\n \"source\": \"iana\"\n },\n \"text/vnd.curl\": {\n \"source\": \"iana\",\n \"extensions\": [\"curl\"]\n },\n \"text/vnd.curl.dcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"dcurl\"]\n },\n \"text/vnd.curl.mcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"mcurl\"]\n },\n \"text/vnd.curl.scurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"scurl\"]\n },\n \"text/vnd.debian.copyright\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.dmclientscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"text/vnd.esmertec.theme-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.familysearch.gedcom\": {\n \"source\": \"iana\",\n \"extensions\": [\"ged\"]\n },\n \"text/vnd.ficlab.flt\": {\n \"source\": \"iana\"\n },\n \"text/vnd.fly\": {\n \"source\": \"iana\",\n \"extensions\": [\"fly\"]\n },\n \"text/vnd.fmi.flexstor\": {\n \"source\": \"iana\",\n \"extensions\": [\"flx\"]\n },\n \"text/vnd.gml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.graphviz\": {\n \"source\": \"iana\",\n \"extensions\": [\"gv\"]\n },\n \"text/vnd.hans\": {\n \"source\": \"iana\"\n },\n \"text/vnd.hgl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.in3d.3dml\": {\n \"source\": \"iana\",\n \"extensions\": [\"3dml\"]\n },\n \"text/vnd.in3d.spot\": {\n \"source\": \"iana\",\n \"extensions\": [\"spot\"]\n },\n \"text/vnd.iptc.newsml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.iptc.nitf\": {\n \"source\": \"iana\"\n },\n \"text/vnd.latex-z\": {\n \"source\": \"iana\"\n },\n \"text/vnd.motorola.reflex\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ms-mediapackage\": {\n \"source\": \"iana\"\n },\n \"text/vnd.net2phone.commcenter.command\": {\n \"source\": \"iana\"\n },\n \"text/vnd.radisys.msml-basic-layout\": {\n \"source\": \"iana\"\n },\n \"text/vnd.senx.warpscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.si.uricatalogue\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sosi\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sun.j2me.app-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"jad\"]\n },\n \"text/vnd.trolltech.linguist\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.wap.si\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.sl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.wml\": {\n \"source\": \"iana\",\n \"extensions\": [\"wml\"]\n },\n \"text/vnd.wap.wmlscript\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmls\"]\n },\n \"text/vtt\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"vtt\"]\n },\n \"text/x-asm\": {\n \"source\": \"apache\",\n \"extensions\": [\"s\",\"asm\"]\n },\n \"text/x-c\": {\n \"source\": \"apache\",\n \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n },\n \"text/x-component\": {\n \"source\": \"nginx\",\n \"extensions\": [\"htc\"]\n },\n \"text/x-fortran\": {\n \"source\": \"apache\",\n \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n },\n \"text/x-gwt-rpc\": {\n \"compressible\": true\n },\n \"text/x-handlebars-template\": {\n \"extensions\": [\"hbs\"]\n },\n \"text/x-java-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"java\"]\n },\n \"text/x-jquery-tmpl\": {\n \"compressible\": true\n },\n \"text/x-lua\": {\n \"extensions\": [\"lua\"]\n },\n \"text/x-markdown\": {\n \"compressible\": true,\n \"extensions\": [\"mkd\"]\n },\n \"text/x-nfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"nfo\"]\n },\n \"text/x-opml\": {\n \"source\": \"apache\",\n \"extensions\": [\"opml\"]\n },\n \"text/x-org\": {\n \"compressible\": true,\n \"extensions\": [\"org\"]\n },\n \"text/x-pascal\": {\n \"source\": \"apache\",\n \"extensions\": [\"p\",\"pas\"]\n },\n \"text/x-processing\": {\n \"compressible\": true,\n \"extensions\": [\"pde\"]\n },\n \"text/x-sass\": {\n \"extensions\": [\"sass\"]\n },\n \"text/x-scss\": {\n \"extensions\": [\"scss\"]\n },\n \"text/x-setext\": {\n \"source\": \"apache\",\n \"extensions\": [\"etx\"]\n },\n \"text/x-sfv\": {\n \"source\": \"apache\",\n \"extensions\": [\"sfv\"]\n },\n \"text/x-suse-ymp\": {\n \"compressible\": true,\n \"extensions\": [\"ymp\"]\n },\n \"text/x-uuencode\": {\n \"source\": \"apache\",\n \"extensions\": [\"uu\"]\n },\n \"text/x-vcalendar\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcs\"]\n },\n \"text/x-vcard\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcf\"]\n },\n \"text/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\"]\n },\n \"text/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"text/yaml\": {\n \"compressible\": true,\n \"extensions\": [\"yaml\",\"yml\"]\n },\n \"video/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"video/3gpp\": {\n \"source\": \"iana\",\n \"extensions\": [\"3gp\",\"3gpp\"]\n },\n \"video/3gpp-tt\": {\n \"source\": \"iana\"\n },\n \"video/3gpp2\": {\n \"source\": \"iana\",\n \"extensions\": [\"3g2\"]\n },\n \"video/av1\": {\n \"source\": \"iana\"\n },\n \"video/bmpeg\": {\n \"source\": \"iana\"\n },\n \"video/bt656\": {\n \"source\": \"iana\"\n },\n \"video/celb\": {\n \"source\": \"iana\"\n },\n \"video/dv\": {\n \"source\": \"iana\"\n },\n \"video/encaprtp\": {\n \"source\": \"iana\"\n },\n \"video/ffv1\": {\n \"source\": \"iana\"\n },\n \"video/flexfec\": {\n \"source\": \"iana\"\n },\n \"video/h261\": {\n \"source\": \"iana\",\n \"extensions\": [\"h261\"]\n },\n \"video/h263\": {\n \"source\": \"iana\",\n \"extensions\": [\"h263\"]\n },\n \"video/h263-1998\": {\n \"source\": \"iana\"\n },\n \"video/h263-2000\": {\n \"source\": \"iana\"\n },\n \"video/h264\": {\n \"source\": \"iana\",\n \"extensions\": [\"h264\"]\n },\n \"video/h264-rcdo\": {\n \"source\": \"iana\"\n },\n \"video/h264-svc\": {\n \"source\": \"iana\"\n },\n \"video/h265\": {\n \"source\": \"iana\"\n },\n \"video/iso.segment\": {\n \"source\": \"iana\",\n \"extensions\": [\"m4s\"]\n },\n \"video/jpeg\": {\n \"source\": \"iana\",\n \"extensions\": [\"jpgv\"]\n },\n \"video/jpeg2000\": {\n \"source\": \"iana\"\n },\n \"video/jpm\": {\n \"source\": \"apache\",\n \"extensions\": [\"jpm\",\"jpgm\"]\n },\n \"video/jxsv\": {\n \"source\": \"iana\"\n },\n \"video/mj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"mj2\",\"mjp2\"]\n },\n \"video/mp1s\": {\n \"source\": \"iana\"\n },\n \"video/mp2p\": {\n \"source\": \"iana\"\n },\n \"video/mp2t\": {\n \"source\": \"iana\",\n \"extensions\": [\"ts\"]\n },\n \"video/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n },\n \"video/mp4v-es\": {\n \"source\": \"iana\"\n },\n \"video/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n },\n \"video/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"video/mpv\": {\n \"source\": \"iana\"\n },\n \"video/nv\": {\n \"source\": \"iana\"\n },\n \"video/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogv\"]\n },\n \"video/parityfec\": {\n \"source\": \"iana\"\n },\n \"video/pointer\": {\n \"source\": \"iana\"\n },\n \"video/quicktime\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"qt\",\"mov\"]\n },\n \"video/raptorfec\": {\n \"source\": \"iana\"\n },\n \"video/raw\": {\n \"source\": \"iana\"\n },\n \"video/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"video/rtploopback\": {\n \"source\": \"iana\"\n },\n \"video/rtx\": {\n \"source\": \"iana\"\n },\n \"video/scip\": {\n \"source\": \"iana\"\n },\n \"video/smpte291\": {\n \"source\": \"iana\"\n },\n \"video/smpte292m\": {\n \"source\": \"iana\"\n },\n \"video/ulpfec\": {\n \"source\": \"iana\"\n },\n \"video/vc1\": {\n \"source\": \"iana\"\n },\n \"video/vc2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.cctv\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvh\",\"uvvh\"]\n },\n \"video/vnd.dece.mobile\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvm\",\"uvvm\"]\n },\n \"video/vnd.dece.mp4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.pd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvp\",\"uvvp\"]\n },\n \"video/vnd.dece.sd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvs\",\"uvvs\"]\n },\n \"video/vnd.dece.video\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvv\",\"uvvv\"]\n },\n \"video/vnd.directv.mpeg\": {\n \"source\": \"iana\"\n },\n \"video/vnd.directv.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dlna.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dvb.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"dvb\"]\n },\n \"video/vnd.fvt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fvt\"]\n },\n \"video/vnd.hns.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsavc\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsmpeg2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.videop\": {\n \"source\": \"iana\"\n },\n \"video/vnd.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxu\",\"m4u\"]\n },\n \"video/vnd.ms-playready.media.pyv\": {\n \"source\": \"iana\",\n \"extensions\": [\"pyv\"]\n },\n \"video/vnd.nokia.interleaved-multimedia\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.mp4vr\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.videovoip\": {\n \"source\": \"iana\"\n },\n \"video/vnd.objectvideo\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.bink\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.smacker\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg1\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.swf\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealedmedia.softseal.mov\": {\n \"source\": \"iana\"\n },\n \"video/vnd.uvvu.mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvu\",\"uvvu\"]\n },\n \"video/vnd.vivo\": {\n \"source\": \"iana\",\n \"extensions\": [\"viv\"]\n },\n \"video/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"video/vp8\": {\n \"source\": \"iana\"\n },\n \"video/vp9\": {\n \"source\": \"iana\"\n },\n \"video/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"webm\"]\n },\n \"video/x-f4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"f4v\"]\n },\n \"video/x-fli\": {\n \"source\": \"apache\",\n \"extensions\": [\"fli\"]\n },\n \"video/x-flv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"flv\"]\n },\n \"video/x-m4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"m4v\"]\n },\n \"video/x-matroska\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n },\n \"video/x-mng\": {\n \"source\": \"apache\",\n \"extensions\": [\"mng\"]\n },\n \"video/x-ms-asf\": {\n \"source\": \"apache\",\n \"extensions\": [\"asf\",\"asx\"]\n },\n \"video/x-ms-vob\": {\n \"source\": \"apache\",\n \"extensions\": [\"vob\"]\n },\n \"video/x-ms-wm\": {\n \"source\": \"apache\",\n \"extensions\": [\"wm\"]\n },\n \"video/x-ms-wmv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"wmv\"]\n },\n \"video/x-ms-wmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmx\"]\n },\n \"video/x-ms-wvx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wvx\"]\n },\n \"video/x-msvideo\": {\n \"source\": \"apache\",\n \"extensions\": [\"avi\"]\n },\n \"video/x-sgi-movie\": {\n \"source\": \"apache\",\n \"extensions\": [\"movie\"]\n },\n \"video/x-smv\": {\n \"source\": \"apache\",\n \"extensions\": [\"smv\"]\n },\n \"x-conference/x-cooltalk\": {\n \"source\": \"apache\",\n \"extensions\": [\"ice\"]\n },\n \"x-shader/x-fragment\": {\n \"compressible\": true\n },\n \"x-shader/x-vertex\": {\n \"compressible\": true\n }\n}\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","// populates missing values\nmodule.exports = function(dst, src) {\n\n Object.keys(src).forEach(function(prop)\n {\n dst[prop] = dst[prop] || src[prop];\n });\n\n return dst;\n};\n","var CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar populate = require('./populate.js');\n\n// Public API\nmodule.exports = FormData;\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {};\n for (var option in options) {\n this[option] = options[option];\n }\n}\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function(field, value, options) {\n\n options = options || {};\n\n // allow filename as single option\n if (typeof options == 'string') {\n options = {filename: options};\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value == 'number') {\n value = '' + value;\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (util.isArray(value)) {\n // Please convert your array into string\n // the way web server expects it\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function(header, value, options) {\n var valueLength = 0;\n\n // used w/ getLengthSync(), when length is known.\n // e.g. for streaming directly from a remote server,\n // w/ a known file a size, and not wanting to wait for\n // incoming file to finish to get its size.\n if (options.knownLength != null) {\n valueLength += +options.knownLength;\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength +=\n Buffer.byteLength(header) +\n FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function(value, callback) {\n\n if (value.hasOwnProperty('fd')) {\n\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0));\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function(err, stat) {\n\n var fileSize;\n\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (value.hasOwnProperty('httpVersion')) {\n callback(null, +value.headers['content-length']);\n\n // or request stream http://github.com/mikeal/request\n } else if (value.hasOwnProperty('httpModule')) {\n // wait till response come back\n value.on('response', function(response) {\n value.pause();\n callback(null, +response.headers['content-length']);\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream');\n }\n};\n\nFormData.prototype._multiPartHeader = function(field, value, options) {\n // custom header specified (as string)?\n // it becomes responsible for boundary\n // (e.g. to handle extra CRLFs on .NET servers)\n if (typeof options.header == 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header == 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) {\n if (!headers.hasOwnProperty(prop)) continue;\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue;\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function(value, options) {\n\n var filename\n , contentDisposition\n ;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || value.name || value.path) {\n // custom filename take precedence\n // formidable and the browser add a name property\n // fs- and request- streams have path property\n filename = path.basename(options.filename || value.name || value.path);\n } else if (value.readable && value.hasOwnProperty('httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n contentDisposition = 'filename=\"' + filename + '\"';\n }\n\n return contentDisposition;\n};\n\nFormData.prototype._getContentType = function(value, options) {\n\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && typeof value == 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function() {\n return function(next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = (this._streams.length === 0);\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function() {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function(userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) {\n if (userHeaders.hasOwnProperty(header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function(boundary) {\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function() {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function() {\n var dataBuffer = new Buffer.alloc( 0 );\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n\n // Add content to the buffer.\n if(Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]);\n }else {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] );\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] );\n};\n\nFormData.prototype._generateBoundary = function() {\n // This generates a 50 character boundary similar to those used by Firefox.\n // They are optimized for boyer-moore parsing.\n var boundary = '--------------------------';\n for (var i = 0; i < 24; i++) {\n boundary += Math.floor(Math.random() * 10).toString(16);\n }\n\n this._boundary = boundary;\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually\n// and add it as knownLength option\nFormData.prototype.getLengthSync = function() {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair\n // so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n // Some async length retrievers are present\n // therefore synchronous length calculation is false.\n // Please use getLength(callback) to get proper length\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function() {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function(cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function(length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function(params, cb) {\n var request\n , options\n , defaults = {method: 'post'}\n ;\n\n // parse provided url if it's string\n // or treat it as options object\n if (typeof params == 'string') {\n\n params = parseUrl(params);\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n\n // use custom params\n } else {\n\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol == 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol == 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function(err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function(err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\n","'use strict';\n\nvar parseUrl = require('url').parse;\n\nvar DEFAULT_PORTS = {\n ftp: 21,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n};\n\nvar stringEndsWith = String.prototype.endsWith || function(s) {\n return s.length <= this.length &&\n this.indexOf(s, this.length - s.length) !== -1;\n};\n\n/**\n * @param {string|object} url - The URL, or the result from url.parse.\n * @return {string} The URL of the proxy that should handle the request to the\n * given URL. If no proxy is set, this will be an empty string.\n */\nfunction getProxyForUrl(url) {\n var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {};\n var proto = parsedUrl.protocol;\n var hostname = parsedUrl.host;\n var port = parsedUrl.port;\n if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n return ''; // Don't proxy URLs without a valid scheme or host.\n }\n\n proto = proto.split(':', 1)[0];\n // Stripping ports in this way instead of using parsedUrl.hostname to make\n // sure that the brackets around IPv6 addresses are kept.\n hostname = hostname.replace(/:\\d*$/, '');\n port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n if (!shouldProxy(hostname, port)) {\n return ''; // Don't proxy URLs that match NO_PROXY.\n }\n\n var proxy =\n getEnv('npm_config_' + proto + '_proxy') ||\n getEnv(proto + '_proxy') ||\n getEnv('npm_config_proxy') ||\n getEnv('all_proxy');\n if (proxy && proxy.indexOf('://') === -1) {\n // Missing scheme in proxy, default to the requested URL's scheme.\n proxy = proto + '://' + proxy;\n }\n return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n var NO_PROXY =\n (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase();\n if (!NO_PROXY) {\n return true; // Always proxy if NO_PROXY is not set.\n }\n if (NO_PROXY === '*') {\n return false; // Never proxy if wildcard is set.\n }\n\n return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n if (!proxy) {\n return true; // Skip zero-length hosts.\n }\n var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n if (parsedProxyPort && parsedProxyPort !== port) {\n return true; // Skip if ports don't match.\n }\n\n if (!/^[.*]/.test(parsedProxyHostname)) {\n // No wildcards, so stop proxying if there is an exact match.\n return hostname !== parsedProxyHostname;\n }\n\n if (parsedProxyHostname.charAt(0) === '*') {\n // Remove leading wildcard.\n parsedProxyHostname = parsedProxyHostname.slice(1);\n }\n // Stop proxying if the hostname ends with the no_proxy host.\n return !stringEndsWith.call(hostname, parsedProxyHostname);\n });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n\nexports.getProxyForUrl = getProxyForUrl;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL());\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n /* istanbul ignore else */\n if (request === self._currentRequest) {\n // Report any write errors\n /* istanbul ignore if */\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n /* istanbul ignore else */\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n /* istanbul ignore else */\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n /* istanbul ignore next */\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n Error.captureStackTrace(this, this.constructor);\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","export * from './core';\nexport * from './globals';\nexport * from './transactions';\nexport * from './types';\nexport * from './utils';\n","export const AccountConfig = {\n minWeight: 0,\n maxWeight: 255,\n maxOwnerWithNonce: 9,\n maxOwnerWithoutNonce: 10,\n nonce: {\n prefix: 'maven',\n weight: 1,\n maxSize: 16,\n },\n};\n\nexport const SUI_COIN = '0x2::sui::SUI';\n","import { AccountConfig } from '@/constants';\nimport { MultiSigConfig } from '@/types';\nimport { SerializedSignature } from '@mysten/sui.js/cryptography';\nimport { Ed25519PublicKey } from '@mysten/sui.js/keypairs/ed25519';\nimport { MultiSigPublicKey } from '@mysten/sui.js/multisig';\n\nexport function validateCreateAccountRequest(request: MultiSigConfig) {\n request.ownersWithWeight.forEach((it) => {\n const { weight } = it;\n if (weight < AccountConfig.minWeight || weight > AccountConfig.maxWeight) {\n throw new Error(`Invalid weight: ${weight} (1-${AccountConfig.maxWeight})`);\n }\n });\n\n const totalWeight = request.ownersWithWeight.reduce((s, it) => s + it.weight, 0);\n if (request.threshold < 1 || request.threshold > totalWeight) {\n throw new Error(`Invalid threshold: ${request.threshold} (1-${totalWeight})`);\n }\n\n const maxOwner = request.creationNonce === undefined ? AccountConfig.maxOwnerWithoutNonce : AccountConfig.maxOwnerWithNonce;\n if (request.ownersWithWeight.length > maxOwner) {\n throw new Error('Owner number bigger than upper capacity');\n }\n\n const addressSet = new Set(request.ownersWithWeight.map((it) => it.publicKey.toSuiAddress()));\n if (addressSet.size !== request.ownersWithWeight.length) {\n throw new Error('Duplicate address detected');\n }\n}\n\nexport class MultisigAccountManager {\n private publicKey: MultiSigPublicKey;\n\n constructor(private readonly account: MultiSigConfig) {\n this.publicKey = this.toMultisigPublicKey(account);\n }\n\n get address() {\n return this.publicKey.toSuiAddress();\n }\n\n get publicKeys() {\n return this.publicKey.getPublicKeys();\n }\n\n combinePartialSignatures(signatures: SerializedSignature[]): SerializedSignature {\n return this.publicKey.combinePartialSignatures(signatures);\n }\n\n private toMultisigPublicKey(account: MultiSigConfig) {\n const { ownersWithWeight, threshold, creationNonce } = account;\n\n const publicKeys = ownersWithWeight.map((it) => {\n return { ...it };\n });\n\n if (creationNonce !== undefined) {\n publicKeys.push({\n publicKey: this.makeNoncePublicKey(creationNonce),\n weight: AccountConfig.nonce.weight,\n });\n }\n\n return MultiSigPublicKey.fromPublicKeys({ threshold, publicKeys });\n }\n\n private makeNoncePublicKey(nonce: number) {\n const buffer = new ArrayBuffer(Ed25519PublicKey.SIZE);\n new TextEncoder().encodeInto(AccountConfig.nonce.prefix, new Uint8Array(buffer, 0, AccountConfig.nonce.maxSize));\n const nonceView = new DataView(buffer, AccountConfig.nonce.maxSize, 4);\n nonceView.setUint32(0, nonce, true);\n return new Ed25519PublicKey(new Uint8Array(buffer));\n }\n}\n","import { normalizeStructTag, normalizeSuiAddress } from '@mysten/sui.js/utils';\nimport { Buffer } from 'buffer';\n\n/**\n * Check if the given addresses are same address\n * @param address1 address 1\n * @param address2 address 2\n * @returns if two addresses are equal\n */\nexport function isSameAddress(address1: string, address2: string) {\n return normalizeSuiAddress(address1) === normalizeSuiAddress(address2);\n}\n\n/**\n * Check if the given structs are same\n * @param struct1 struct 1\n * @param struct2 struct 2\n * @returns if two struct are equal\n */\nexport function isSuiStructEqual(struct1: string, struct2: string) {\n return normalizeStructTag(struct1) === normalizeStructTag(struct2);\n}\n\n/**\n * Check if is coin object type\n * @param struct struct\n * @returns if is coin object type\n */\nexport function isCoinObjectType(struct: string) {\n const normalized = normalizeStructTag(struct);\n return normalized.startsWith('0x2::coin::Coin');\n}\n\n/**\n * Convert a string to Buffer object\n * @param s string\n * @returns\n */\nexport function stringToBuffer(s: string): Buffer {\n return Buffer.from(s, 'utf-8');\n}\n\n/**\n * Convert buffer to hex string\n * @param buffer buffer\n * @returns hex string\n */\nexport function Uint8ArrayToHex(buffer: Uint8Array): string {\n return `0x${Array.prototype.map.call(buffer, (x) => `0${x.toString(16)}`.slice(-2)).join('')}`;\n}\n\n/**\n * Convert hex string to buffer\n * @param hex hex string\n * @returns buffer\n */\nexport function HexToUint8Array(hex: string): Uint8Array {\n return Uint8Array.from(Buffer.from(hex.startsWith('0x') ? hex.slice(2) : hex, 'hex'));\n}\n","import { MessageType, PublicKeyWithScheme, SuiAddress } from '@/types';\nimport { isSameAddress, stringToBuffer } from '@/utils';\nimport { PaginatedTransactionResponse, SuiClient } from '@mysten/sui.js/client';\nimport {\n PublicKey,\n SIGNATURE_FLAG_TO_SCHEME,\n SerializedSignature,\n SignatureFlag,\n SignatureScheme,\n parseSerializedSignature,\n} from '@mysten/sui.js/cryptography';\nimport { Ed25519PublicKey } from '@mysten/sui.js/keypairs/ed25519';\nimport { Secp256k1PublicKey } from '@mysten/sui.js/keypairs/secp256k1';\nimport { Secp256r1PublicKey } from '@mysten/sui.js/keypairs/secp256r1';\nimport { MultiSigPublicKey } from '@mysten/sui.js/multisig';\nimport { verifyPersonalMessage, verifyTransactionBlock } from '@mysten/sui.js/verify';\n\n/**\n * Get public key from signature\n * @param message message\n * @param type message type\n * @param signature signature\n * @returns public key\n */\nexport async function getPublicKeyFromSignature(message: Uint8Array, type: MessageType, signature: SerializedSignature): Promise<PublicKey> {\n switch (type) {\n case 'TransactionBlock':\n return verifyTransactionBlock(message, signature);\n case 'Personal':\n return verifyPersonalMessage(message, signature);\n default:\n throw new Error('Invalid message type');\n }\n}\n\n/**\n * Get public key from personal signature\n * @param message message\n * @param signature signature\n * @returns public key\n */\nexport async function getPublicKeyFromPersonalSignature(message: string, signature: SerializedSignature): Promise<PublicKey> {\n return getPublicKeyFromSignature(stringToBuffer(message), 'Personal', signature);\n}\n\n/**\n * Verify signature\n * @param message message\n * @param type message type\n * @param signature signature\n * @param address target address\n */\nexport async function verifySignature(message: Uint8Array, type: MessageType, signature: SerializedSignature, address: SuiAddress): Promise<boolean> {\n try {\n const publicKey = await getPublicKeyFromSignature(message, type, signature);\n return isSameAddress(publicKey.toSuiAddress(), address);\n } catch {\n return false;\n }\n}\n\n/**\n * Verify personal signature\n * @param message message\n * @param signature signatured\n * @param address target address\n * @returns\n */\nexport async function verifyPersonalSignature(message: string, signature: SerializedSignature, address: SuiAddress): Promise<boolean> {\n return verifySignature(stringToBuffer(message), 'Personal', signature, address);\n}\n\n/**\n * Verify transaction signature\n * @param payload transaction payload\n * @param signature signature\n * @param address target address\n */\nexport async function verifyTransactionSignature(payload: Uint8Array, signature: SerializedSignature, address: SuiAddress): Promise<boolean> {\n return verifySignature(payload, 'TransactionBlock', signature, address);\n}\n\n/**\n * Serialize public key\n * @param publicKey public key object\n * @returns public key with scheme\n */\nexport function serializePublicKey(publicKey: PublicKey): PublicKeyWithScheme {\n return {\n publicKey: publicKey.toBase64(),\n scheme: SIGNATURE_FLAG_TO_SCHEME[publicKey.flag() as SignatureFlag],\n };\n}\n\n/**\n * Deserialize public key\n * @param publicKey public key string\n * @param scheme public key scheme\n * @returns public key object\n */\nexport function deserializePublicKey(publicKey: string | Uint8Array, scheme: SignatureScheme): PublicKey {\n switch (scheme) {\n case 'ED25519':\n return new Ed25519PublicKey(publicKey);\n case 'Secp256k1':\n return new Secp256k1PublicKey(publicKey);\n case 'Secp256r1':\n return new Secp256r1PublicKey(publicKey);\n default:\n throw new Error('Unsupported signature scheme');\n }\n}\n\nexport class PublicKeyManager {\n private cachedKeys: Map<SuiAddress, PublicKey>;\n\n constructor(private readonly client: SuiClient) {\n this.cachedKeys = new Map<SuiAddress, PublicKey>();\n }\n\n /**\n * Get address public key from cache or from chain\n * @param address target address\n */\n async getPublicKey(address: SuiAddress) {\n const cachedKey = this.cachedKeys.get(address);\n\n if (cachedKey) {\n return cachedKey;\n }\n\n const publicKey = await this.fetchPublicKey(address);\n if (publicKey) {\n this.cachedKeys.set(address, publicKey);\n }\n return publicKey;\n }\n\n /**\n * Batch get public keys from addresses\n * @param addresses addresses\n */\n async getPublicKeys(addresses: SuiAddress[]) {\n const results: (PublicKey | undefined)[] = new Array(addresses.length).fill(undefined);\n\n for (let index = 0; index < addresses.length; index++) {\n const address = addresses[index];\n results[index] = this.cachedKeys.get(address);\n }\n\n for (let index = 0; index < results.length; index++) {\n const result = results[index];\n if (result === undefined) {\n results[index] = await this.fetchPublicKey(addresses[index]);\n }\n }\n\n for (let index = 0; index < addresses.length; index++) {\n const address = addresses[index];\n if (results[index]) {\n this.cachedKeys.set(address, results[index] as PublicKey);\n }\n }\n\n return results;\n }\n\n private async fetchPublicKey(address: SuiAddress) {\n const publicKeyFromChain = await this.fetchPublicKeyFromChain(address);\n if (publicKeyFromChain) {\n return publicKeyFromChain;\n }\n return undefined;\n }\n\n private async fetchPublicKeyFromChain(address: SerializedSignature) {\n let txs: PaginatedTransactionResponse;\n try {\n txs = await this.client.queryTransactionBlocks({ filter: { FromAddress: address }, options: { showInput: true }, limit: 2 });\n } catch {\n return undefined;\n }\n\n if (txs.data.length === 0 || !txs.data[0].transaction?.txSignatures) {\n return undefined;\n }\n\n const tx = txs.data[0];\n\n if (!tx.transaction) {\n return undefined;\n }\n\n const signatures = tx.transaction.txSignatures as string[];\n\n for (let index = 0; index < signatures.length; index++) {\n const signature = signatures[index];\n const publicKey = this.getAddressFromSignature(signature, address);\n if (!publicKey) {\n continue;\n }\n return publicKey;\n }\n return undefined;\n }\n\n private getAddressFromSignature(signature: SerializedSignature, address: SuiAddress) {\n const parsedSignature = parseSerializedSignature(signature);\n\n switch (parsedSignature.signatureScheme) {\n case 'MultiSig':\n const multisigAddress = new MultiSigPublicKey(parsedSignature.multisig.multisig_pk).toSuiAddress();\n if (isSameAddress(multisigAddress, address)) {\n throw new Error('multisig wallet cannot be owner');\n }\n return undefined;\n case 'ZkLogin':\n if (isSameAddress(parsedSignature.zkLogin.address, address)) {\n throw new Error('ZkLogin wallet cannot be owner');\n }\n return undefined;\n case 'ED25519':\n case 'Secp256k1':\n case 'Secp256r1':\n const publicKey = deserializePublicKey(parsedSignature.publicKey, parsedSignature.signatureScheme);\n if (isSameAddress(publicKey.toSuiAddress(), address)) {\n return publicKey;\n }\n return undefined;\n default:\n throw new Error('Invalid signature scheme');\n }\n }\n}\n","import { TxIntention } from './types';\n\n/**\n * Create a msafe login message to sign\n * @returns login message\n */\nexport function createLoginMessage() {\n return createLoginMessageWithTimestamp(new Date().toUTCString());\n}\n\nexport function createLoginMessageWithTimestamp(timestamp: string) {\n return `Welcome to MSafe. ${timestamp}`;\n}\n\n/**\n * decode login message timestamp\n * @param message login message\n * @returns match timestamp\n */\nexport function decodeLoginMessageTimestamp(message: string) {\n const regex = /Welcome to MSafe. (.+)/;\n const matches = message.match(regex);\n return matches ? matches[1] : undefined;\n}\n\n/**\n * Create a msafe creation message to sign\n * @param address msafe address\n * @returns msafe account create message\n */\nexport function createAccountCreationMessage(address: string) {\n return `Create MSafe Account: ${address}`;\n}\n\n/**\n * Create propose intention sign message\n * @param intention intention\n * @param sn sequence number\n * @returns intention sign message\n */\nexport function createProposeIntentionMessage(intention: TxIntention, sn: number) {\n return JSON.stringify({\n intention,\n sn,\n });\n}\n","import { CoinStruct, PaginatedCoins, SuiClient, SuiObjectResponse } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\nimport { SUI_COIN } from './constants';\nimport { CoinTransferIntention, ObjectTransferIntention, SuiAddress, TxIntention } from './types';\nimport { HexToUint8Array, isCoinObjectType, isSameAddress, isSuiStructEqual } from './utils';\n\nexport function serializeIntention(intention: TxIntention) {\n return JSON.stringify(intention);\n}\n\nexport function deserializeIntention(value: string): TxIntention {\n const intention = JSON.parse(value);\n if (typeof intention !== 'object' || !('type' in intention)) {\n throw new Error('Invalid intention');\n }\n return intention;\n}\n\nexport async function buildIntentionTransaction(client: SuiClient, intention: TxIntention, sender: SuiAddress) {\n switch (intention.type) {\n case 'CoinTransfer':\n return buildCoinTransferTxb(client, intention as CoinTransferIntention, sender);\n case 'ObjectTransfer':\n return buildObjectTransferTxb(client, intention as ObjectTransferIntention, sender);\n default:\n throw new Error('Invalid intention type');\n }\n}\n\n/**\n * Get all owner coins\n * @param client sui client\n * @param owner owner address\n * @param coinType coin type\n * @returns coins\n */\nexport async function getAllCoins(client: SuiClient, owner: SuiAddress, coinType: string | undefined) {\n let hasNext = true;\n let cursor: string | undefined | null;\n const res: CoinStruct[] = [];\n while (hasNext) {\n const currentPage: PaginatedCoins = await client.getCoins({\n owner: owner,\n coinType: coinType,\n cursor,\n });\n res.push(...currentPage.data);\n hasNext = currentPage.hasNextPage;\n cursor = currentPage.nextCursor;\n }\n return res;\n}\n\n/**\n * Get transaction intention type\n * @param intention transaction intention\n * @returns intention type\n */\nexport function getIntentionType(intention: TxIntention) {\n switch (intention.type) {\n case 'CoinTransfer':\n return {\n txType: 'CoinTransfer',\n txSubType: 'CoinTransfer',\n };\n case 'ObjectTransfer':\n return {\n txType: 'ObjectTransfer',\n txSubType: 'ObjectTransfer',\n };\n case 'Reject':\n return {\n txType: 'Reject',\n txSubType: 'Reject',\n };\n default:\n throw new Error('Unknown intention type');\n }\n}\n\nexport function buildRejectTxb(sender: SuiAddress, payload: string) {\n const approveTxb = TransactionBlock.from(HexToUint8Array(payload));\n const gasPayment = approveTxb.blockData.gasConfig.payment;\n\n if (!gasPayment) {\n throw new Error('No gas payment found for approve payload');\n }\n\n const block = new TransactionBlock();\n block.setSender(sender);\n block.setGasPayment(gasPayment);\n return block;\n}\n\nexport async function buildCoinTransferTxb(client: SuiClient, intention: CoinTransferIntention, sender: SuiAddress) {\n if (isSuiStructEqual(intention.coinType, SUI_COIN)) {\n return buildSuiCoinTransferTxb(intention, sender);\n } else {\n return buildOtherCoinTransferTxb(client, intention, sender);\n }\n}\n\nexport function buildSuiCoinTransferTxb(intention: CoinTransferIntention, sender: SuiAddress) {\n const block = new TransactionBlock();\n const [coin] = block.splitCoins(block.gas, [block.pure(intention.amount)]);\n block.transferObjects([coin], block.pure(intention.recipient));\n block.setSender(sender);\n return block;\n}\n\nexport async function buildOtherCoinTransferTxb(client: SuiClient, intention: CoinTransferIntention, sender: SuiAddress) {\n const objs = await getAllCoins(client, sender, intention.coinType);\n if (objs.length === 0) {\n throw new Error('No valid coin found to send');\n }\n const totalBal = objs.reduce((sum, coin) => sum + BigInt(coin.balance), 0n);\n if (totalBal < BigInt(intention.amount)) {\n throw new Error('Not enough balance');\n }\n const txb = new TransactionBlock();\n const primary = txb.object(objs[0].coinObjectId);\n if (objs.length > 1) {\n txb.mergeCoins(\n primary,\n objs.slice(1).map((obj) => txb.object(obj.coinObjectId)),\n );\n }\n const [coin] = txb.splitCoins(primary, [txb.pure(intention.amount)]);\n txb.transferObjects([coin], txb.pure(intention.recipient));\n txb.setSender(sender);\n return txb;\n}\n\nexport async function buildObjectTransferTxb(client: SuiClient, intention: ObjectTransferIntention, sender: SuiAddress) {\n await validateObjectTransfer(client, intention, sender);\n\n const txb = new TransactionBlock();\n txb.transferObjects([txb.object(intention.objectId)], txb.pure(intention.receiver));\n txb.setSender(sender);\n\n return txb;\n}\n\nasync function validateObjectTransfer(client: SuiClient, intention: ObjectTransferIntention, sender: SuiAddress) {\n const obj = await client.getObject({\n id: intention.objectId,\n });\n\n if (obj.data === undefined) {\n throw new Error('Object not found');\n }\n if (!obj.data?.type) {\n throw new Error('Object type is null');\n }\n if (isSuiStructEqual(obj.data.type, intention.objectType)) {\n throw new Error('Object type not expected');\n }\n if (isCoinObjectType(obj.data.type)) {\n throw new Error('Can not transfer coin object in Object Transfer transactions');\n }\n const addressOwner = getAddressOwner(obj);\n if (!isSameAddress(addressOwner, sender)) {\n throw new Error('Object owner not match');\n }\n}\n\nfunction getAddressOwner(object: SuiObjectResponse) {\n const owner = object.data?.owner;\n if (!owner) {\n throw new Error('Object Owner not found');\n }\n\n if (typeof owner !== 'object' || !('AddressOwner' in owner)) {\n throw new Error('Invalid object owner');\n }\n return owner.AddressOwner;\n}\n","import { HistoryTransaction as HistoryTx, PendingTransaction as PendingTx, TransactionIntention } from '@msafe/sui3-model/core';\nimport { PublicKey, SignatureScheme, SerializedSignature } from '@mysten/sui.js/cryptography';\n\nexport type SuiAddress = string;\nexport type MessageType = 'TransactionBlock' | 'Personal';\nexport type UserMSafeStatus = 'active' | 'pending' | 'ignored';\nexport type TxIntention = CoinTransferIntention | ObjectTransferIntention | RejectIntention;\nexport type PendingTransaction = Exclude<PendingTx, 'id' | 'updateAt'> & { intention?: TxIntention; votes: PendingVote[] };\nexport type HistoryTransaction = Exclude<HistoryTx, 'id' | 'updateAt'> & { votes: HistoryVote[] };\nexport type FutureIntention = Exclude<TransactionIntention, 'id' | 'updateAt'> & { intention: TxIntention };\n\nexport class CreateMSafeAccountInfoRequest {\n name: string;\n description?: string;\n threshold: number;\n creationNonce: number;\n ownersWithWeightPKEncoded: OwnerWithWeightPKEncoded[];\n signature: SerializedSignature;\n}\n\nexport class UpdateMSafeAccountStatusRequest {\n address: string;\n status: UserMSafeStatus;\n}\n\nexport interface UserWithOwnedMSafeResponse {\n address: string;\n publicKey: string;\n schema: string;\n creationNonce: number;\n ownedMSafe: GetMSafeAccountInfoResponse[];\n}\n\nexport interface GetMSafeAccountInfoResponse {\n address: string;\n ownersWithWeightPKEncoded: OwnerWithWeightPKEncoded[];\n threshold: number;\n name: string;\n description?: string;\n creationNonce: number;\n}\n\nexport type OwnerWithWeightPKEncoded = OwnerWithWeight & {\n publicKeyEncoded: string;\n schema: SignatureScheme;\n};\n\nexport type OwnerWithWeightPK = OwnerWithWeight & {\n publicKey: PublicKey;\n};\n\nexport class OwnerWithWeight {\n address: string;\n weight: number;\n}\n\nexport interface UserWithOwnedMSafe {\n address: string;\n publicKey: string;\n schema: string;\n creationNonce: number;\n ownedMSafe: MSafeAccountInfo[];\n}\n\nexport interface MSafeAccountInfo {\n address: string;\n ownersWithWeightPK: OwnerWithWeightPK[];\n threshold: number;\n name: string;\n description?: string;\n creationNonce: number;\n}\n\nexport interface MultiSigConfig {\n threshold: number;\n ownersWithWeight: PublicKeyWithWeight[];\n creationNonce: number | undefined;\n}\n\nexport interface PublicKeyWithWeight {\n publicKey: PublicKey;\n weight: number;\n}\n\nexport class AuthLoginRequest {\n readonly message: string;\n readonly signature: SerializedSignature;\n readonly address: string;\n readonly walletType: string;\n}\n\nexport class AuthLoginResponse {\n accessToken: string;\n refreshToken: string;\n}\n\nexport interface PendingVote extends HistoryVote {\n signature: string;\n}\n\nexport interface HistoryVote {\n userAddress: SuiAddress;\n timestamp: Date;\n}\n\nexport interface PublicKeyWithScheme {\n publicKey: string;\n scheme: SignatureScheme;\n}\n\nexport interface MultisigAccount {\n threshold: number;\n creationNonce?: number;\n owners: MultisigOwner[];\n}\n\nexport interface MultisigOwner {\n publicKey: PublicKey;\n weight: number;\n}\n\nexport interface AccountCreateRequest {\n name: string;\n description?: string;\n creationNonce: number;\n threshold: number;\n owners: AccountOwner[];\n}\n\nexport interface AccountOwner {\n address: string;\n weight: number;\n}\n\nexport interface CoinTransferIntention {\n type: 'CoinTransfer';\n recipient: SuiAddress;\n coinType: string;\n amount: string;\n}\n\nexport interface ObjectTransferIntention {\n type: 'ObjectTransfer';\n receiver: SuiAddress;\n objectType: string;\n objectId: string;\n}\n\nexport interface RejectIntention {\n type: 'Reject';\n}\n\nexport interface PaginationOptions {\n skip?: number;\n limit?: number;\n sort?: { field: string; by: 'ASC' | 'DESC' | 'asc' | 'desc' }[];\n search?: { field: string; value: string }[];\n}\n","import {\n PublicKey,\n SerializedSignature,\n SIGNATURE_FLAG_TO_SCHEME,\n SignatureFlag,\n SignatureScheme,\n} from '@mysten/sui.js/cryptography';\nimport { Ed25519PublicKey } from '@mysten/sui.js/keypairs/ed25519';\nimport { Secp256k1PublicKey } from '@mysten/sui.js/keypairs/secp256k1';\nimport { Secp256r1PublicKey } from '@mysten/sui.js/keypairs/secp256r1';\nimport { verifyPersonalMessage, verifyTransactionBlock } from '@mysten/sui.js/verify';\n\nimport { stringToBuffer } from '@/utils/buffer';\nimport { Formatter } from '@/utils/format';\n\nexport class SignatureVerifier {\n static async getPublicKeyFromSignature(input: {\n message: Uint8Array;\n messageType: 'TransactionBlock' | 'Personal';\n signature: SerializedSignature;\n }) {\n if (input.messageType === 'TransactionBlock') {\n return verifyTransactionBlock(input.message, input.signature);\n }\n return verifyPersonalMessage(input.message, input.signature);\n }\n\n static async getPublicKeyFromPersonalSignature(input: { messageStr: string; signature: SerializedSignature }) {\n const message = stringToBuffer(input.messageStr);\n return this.getPublicKeyFromSignature({\n message,\n messageType: 'Personal',\n signature: input.signature,\n });\n }\n\n static async verifySignature(input: {\n message: Uint8Array;\n messageType: 'TransactionBlock' | 'Personal';\n signature: SerializedSignature;\n targetAddress: string;\n }) {\n const publicKey = await SignatureVerifier.getPublicKeyFromSignature(input);\n return Formatter.isSuiAddressEqual(publicKey.toSuiAddress(), input.targetAddress);\n }\n\n static async verifyPersonalSignature(input: {\n messageStr: string;\n signature: SerializedSignature;\n targetAddress: string;\n }) {\n const message = stringToBuffer(input.messageStr);\n return this.verifySignature({\n message,\n messageType: 'Personal',\n signature: input.signature,\n targetAddress: input.targetAddress,\n });\n }\n\n static async verifyTransactionSignature(input: {\n payload: Uint8Array;\n signature: SerializedSignature;\n targetAddress: string;\n }): Promise<boolean> {\n return this.verifySignature({\n messageType: 'TransactionBlock',\n message: input.payload,\n signature: input.signature,\n targetAddress: input.targetAddress,\n });\n }\n}\n\nexport class PublicKeySerde {\n static ser(publicKey: PublicKey) {\n return {\n publicKey: publicKey.toBase64(),\n scheme: SIGNATURE_FLAG_TO_SCHEME[publicKey.flag() as SignatureFlag],\n };\n }\n\n static de(input: { publicKey: string | Uint8Array; scheme: SignatureScheme }): PublicKey {\n switch (input.scheme) {\n case 'ED25519':\n return new Ed25519PublicKey(input.publicKey);\n case 'Secp256k1':\n return new Secp256k1PublicKey(input.publicKey);\n case 'Secp256r1':\n return new Secp256r1PublicKey(input.publicKey);\n default:\n throw new Error('Unsupported signature scheme: $input.scheme');\n }\n }\n}\n","export function stringToBuffer(s: string) {\n return Buffer.from(s, 'utf-8');\n}\n\nexport function Uint8ArrayToHex(b: Uint8Array): string {\n return `0x${Array.prototype.map.call(b, (x) => `0${x.toString(16)}`.slice(-2)).join('')}`;\n}\n\nexport function HexToUint8Array(hex: string): Uint8Array {\n return Uint8Array.from(Buffer.from(hex.startsWith('0x') ? hex.slice(2) : hex, 'hex'));\n}\n","import { normalizeSuiAddress, normalizeStructTag } from '@mysten/sui.js/utils';\n\nimport { Coin } from '@/utils/coin';\n\nexport class Formatter {\n static normalizeSuiAddress(addr: string) {\n return normalizeSuiAddress(addr);\n }\n\n static normalizeStructTag(struct: string) {\n return normalizeStructTag(struct);\n }\n\n static isSuiAddressEqual(addr1: string, addr2: string) {\n return normalizeSuiAddress(addr1) === normalizeSuiAddress(addr2);\n }\n\n static isSuiStructEqual(struct1: string, struct2: string) {\n return normalizeStructTag(struct1) === normalizeStructTag(struct2);\n }\n\n static isCoinObjectType(struct: string) {\n return Coin.isCoin(struct);\n }\n}\n","import { CoinMetadata, SuiClient, SuiObjectData } from '@mysten/sui.js/client';\nimport { normalizeStructTag } from '@mysten/sui.js/utils';\n\n// CoinHelper is the coin helper to query for coin metadata.\nexport class CoinHelper {\n private _client: SuiClient;\n\n private _coinMetaReg: Map<string, CoinMetadata>;\n\n constructor(client: SuiClient) {\n this._client = client;\n this._coinMetaReg = new Map();\n }\n\n async getCoinMeta(coinType: string): Promise<CoinMetadata | undefined> {\n const normalized = normalizeStructTag(coinType);\n if (this._coinMetaReg.has(normalized)) {\n return this._coinMetaReg.get(normalized);\n }\n const meta = await this.queryCoinMeta(normalized);\n if (meta) {\n this._coinMetaReg.set(normalized, meta);\n }\n return meta;\n }\n\n private async queryCoinMeta(coinType: string): Promise<CoinMetadata | undefined> {\n const res = await this._client.getCoinMetadata({ coinType });\n return res || undefined;\n }\n}\n\n// Copied from sui/sdk/typescript/src/framework/framework.ts\n\nexport const COIN_TYPE_ARG_REGEX =\n /^0x0000000000000000000000000000000000000000000000000000000000000002::coin::Coin<(.+)>$/;\n\nexport class Coin {\n static isCoin(type: string | undefined | null): boolean {\n if (!type) {\n return false;\n }\n return normalizeStructTag(type).match(COIN_TYPE_ARG_REGEX) != null;\n }\n\n static getCoinType(type: string) {\n const [, res] = normalizeStructTag(type).match(COIN_TYPE_ARG_REGEX) ?? [];\n return res || null;\n }\n\n static getBalance(data: SuiObjectData): bigint | undefined {\n if (!Coin.isCoin(data.type)) {\n return undefined;\n }\n if (data.content?.dataType !== 'moveObject') {\n return undefined;\n }\n const { balance } = data.content?.fields as any;\n if (balance === undefined) {\n return undefined;\n }\n return BigInt(balance);\n }\n}\n","import {\n createAccountCreationMessage,\n MultisigAccountManager,\n MultiSigConfig,\n OwnerWithWeightPKEncoded,\n validateCreateAccountRequest,\n} from '@msafe/sui3-utils';\nimport { PublicKey, SerializedSignature } from '@mysten/sui.js/cryptography';\n\nimport { PublicKeyHelper } from '@/core/PublicKeyHelper';\nimport { MSafeGlobals } from '@/globals/MSafeGlobals';\nimport { CreateMSafeAccountInfo, CreatePermissionInfo } from '@/types/creation';\nimport { PublicKeySerde } from '@/utils/crypto';\n\nexport class CreateHelper {\n constructor(\n public readonly globals: MSafeGlobals,\n public readonly pkHelper: PublicKeyHelper,\n ) {}\n\n async getPublicKeyBatch(addresses: string[]) {\n return this.pkHelper.getPublicKeyBatch(addresses);\n }\n\n async calculateMSafeAddress(info: CreatePermissionInfo) {\n const msConfig = await this.reduceCreationInfoToRawConfig(info);\n const ms = new MultisigAccountManager(msConfig);\n return ms.address;\n }\n\n // Validate the create info and return the msafe address.\n async validateCreateInfo(createInfo: CreateMSafeAccountInfo) {\n const rawConfig = await this.reduceCreationInfoToRawConfig(createInfo);\n validateCreateAccountRequest(rawConfig);\n\n // Calculate the sui address will check the multi-sig\n return this.calculateMSafeAddress(createInfo);\n }\n\n async submitMSafeCreation(creationInfo: CreateMSafeAccountInfo) {\n const msafeAddress = await this.validateCreateInfo(creationInfo);\n\n const signingMessage = createAccountCreationMessage(msafeAddress);\n const signature = await this.globals.wallet.signPersonalMessage({ messageStr: signingMessage });\n\n await this.submitToBackend(creationInfo, signature.signature);\n return msafeAddress;\n }\n\n private async reduceCreationInfoToRawConfig(info: CreatePermissionInfo): Promise<MultiSigConfig> {\n const publicKeys = await this.getPublicKeyBatch(info.ownerWithWeight.map((oww) => oww.address));\n publicKeys.forEach((pk, i) => {\n if (pk === undefined) {\n throw new Error(`Unknown public key for address: ${info.ownerWithWeight[i].address}`);\n }\n });\n return {\n threshold: info.threshold,\n ownersWithWeight: info.ownerWithWeight.map((owner, i) => ({\n publicKey: publicKeys[i] as PublicKey,\n weight: owner.weight,\n })),\n creationNonce: info.creationNonce,\n };\n }\n\n private async submitToBackend(createInfo: CreateMSafeAccountInfo, signature: SerializedSignature) {\n const pks = await this.pkHelper.getPublicKeyBatch(createInfo.ownerWithWeight.map((owner) => owner.address));\n await this.globals.backend.createMSafeAccount({\n ownersWithWeightPKEncoded: createInfo.ownerWithWeight.map((owner, i): OwnerWithWeightPKEncoded => {\n const publicKeySer = PublicKeySerde.ser(pks[i] as PublicKey);\n return {\n address: owner.address,\n weight: owner.weight,\n publicKeyEncoded: publicKeySer.publicKey,\n schema: publicKeySer.scheme,\n };\n }),\n threshold: createInfo.threshold,\n name: createInfo.name, // name validation is deferred to backend\n description: createInfo.description, // description validation is deferred to backend\n creationNonce: createInfo.creationNonce,\n signature,\n });\n }\n}\n","import { SuiClient } from '@mysten/sui.js/client';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\n\nimport { Formatter } from '@/utils/format';\nimport { getAllCoins, SUI_COIN } from '@/utils/sui';\n\nexport interface IntentionCoinTransfer {\n txType: 'CoinTransfer';\n recipient: string;\n coinType: string;\n amount: string;\n}\n\nexport async function buildCoinTransferTxb(input: {\n suiClient: SuiClient;\n sender: string;\n intention: IntentionCoinTransfer;\n}) {\n if (Formatter.isSuiStructEqual(input.intention.coinType, SUI_COIN)) {\n return buildSuiCoinTransferTxb(input);\n }\n return buildOtherCoinTransferTxb(input);\n}\n\nfunction buildSuiCoinTransferTxb(input: { sender: string; intention: IntentionCoinTransfer }): TransactionBlock {\n const txb = new TransactionBlock();\n const [coin] = txb.splitCoins(txb.gas, [txb.pure(input.intention.amount)]);\n txb.transferObjects([coin], txb.pure(input.intention.recipient));\n txb.setSender(input.sender);\n return txb;\n}\n\nasync function buildOtherCoinTransferTxb(input: {\n suiClient: SuiClient;\n sender: string;\n intention: IntentionCoinTransfer;\n}) {\n const { suiClient, sender, intention } = input;\n\n const objs = await getAllCoins({\n suiClient,\n owner: sender,\n coinType: intention.coinType,\n });\n if (objs.length === 0) {\n throw new Error('No valid coin found to send');\n }\n const totalBal = objs.reduce((sum, coin) => sum + BigInt(coin.balance), 0n);\n if (totalBal < BigInt(intention.amount)) {\n throw new Error('Not enough balance');\n }\n const txb = new TransactionBlock();\n const primary = txb.object(objs[0].coinObjectId);\n if (objs.length > 1) {\n txb.mergeCoins(\n primary,\n objs.slice(1).map((obj) => txb.object(obj.coinObjectId)),\n );\n }\n const [coin] = txb.splitCoins(primary, [txb.pure(intention.amount)]);\n txb.transferObjects([coin], txb.pure(intention.recipient));\n txb.setSender(input.sender);\n return txb;\n}\n","import { SuiClient, PaginatedTransactionResponse, PaginatedCoins, CoinStruct } from '@mysten/sui.js/client';\nimport { parseSerializedSignature, PublicKey, SerializedSignature } from '@mysten/sui.js/cryptography';\nimport { MultiSigPublicKey } from '@mysten/sui.js/multisig';\n\nimport { PublicKeySerde } from '@/utils/crypto';\nimport { Formatter } from '@/utils/format';\n\nexport const SUI_COIN = '0x2::sui::SUI';\n\nexport async function getPublicKeyFromChain(suiClient: SuiClient, address: string): Promise<PublicKey | undefined> {\n let txs: PaginatedTransactionResponse;\n try {\n txs = await suiClient.queryTransactionBlocks({\n // Disable naming rule since the variable is defined by Mysten\n filter: { FromAddress: address },\n options: { showInput: true },\n limit: 2,\n });\n } catch (e) {\n // Currently when there is no history transaction, will report an error:\n // Error: byte deserialization failed, cause by: Odd number of digits\n // TODO: remove the catch logic when sui part is fixed;\n return undefined;\n }\n\n if (txs.data.length === 0 || !txs.data[0].transaction?.txSignatures) {\n return undefined;\n }\n const tx = txs.data[0];\n const signatures = tx.transaction?.txSignatures as string[];\n\n for (let i = 0; i !== signatures.length; i++) {\n const serializedSig = signatures[i];\n const pk = getAddressFromSignatures(serializedSig, address);\n if (!pk) {\n continue;\n }\n return pk;\n }\n return undefined;\n}\n\nfunction getAddressFromSignatures(serializedSig: SerializedSignature, targetAddress: string) {\n const decoded = parseSerializedSignature(serializedSig);\n switch (decoded.signatureScheme) {\n case 'MultiSig': {\n const multiSigAddress = new MultiSigPublicKey(decoded.multisig.multisig_pk).toSuiAddress();\n if (Formatter.isSuiAddressEqual(multiSigAddress, targetAddress)) {\n throw new Error('multi-sig wallet cannot be owner');\n }\n return undefined;\n }\n case 'ZkLogin': {\n if (Formatter.isSuiAddressEqual(decoded.zkLogin.address, targetAddress)) {\n throw new Error('ZkLogin wallet cannot be owner');\n }\n return undefined;\n }\n\n case 'ED25519':\n case 'Secp256k1':\n case 'Secp256r1': {\n const pk = PublicKeySerde.de({ publicKey: decoded.publicKey, scheme: decoded.signatureScheme });\n if (Formatter.isSuiAddressEqual(pk.toSuiAddress(), targetAddress)) {\n return pk;\n }\n return undefined;\n }\n\n default:\n throw new Error('Unknown schema');\n }\n}\n\nexport async function getAllCoins(input: { suiClient: SuiClient; owner: string; coinType: string | undefined }) {\n let hasNext = true;\n let cursor: string | undefined | null;\n const res: CoinStruct[] = [];\n while (hasNext) {\n const currentPage: PaginatedCoins = await input.suiClient.getCoins({\n owner: input.owner,\n coinType: input.coinType,\n cursor,\n });\n res.push(...currentPage.data);\n hasNext = currentPage.hasNextPage;\n cursor = currentPage.nextCursor;\n }\n return res;\n}\n","import { SuiClient } from '@mysten/sui.js/client';\nimport type { SuiObjectResponse } from '@mysten/sui.js/src/client/types';\nimport { TransactionBlock } from '@mysten/sui.js/transactions';\n\nimport { Formatter } from '@/utils/format';\n\nexport interface IntentionObjectTransfer {\n txType: 'ObjectTransfer';\n receiver: string;\n objectId: string;\n objectType: string;\n}\n\nexport async function buildObjectTransferTxb(input: {\n suiClient: SuiClient;\n sender: string;\n intention: IntentionObjectTransfer;\n}) {\n await validateObjectTransfer(input);\n\n const txb = new TransactionBlock();\n txb.transferObjects([txb.object(input.intention.objectId)], txb.pure(input.intention.receiver));\n txb.setSender(input.sender);\n\n return txb;\n}\n\nasync function validateObjectTransfer(input: {\n suiClient: SuiClient;\n sender: string;\n intention: IntentionObjectTransfer;\n}) {\n const { suiClient, sender, intention } = input;\n const obj = await suiClient.getObject({\n id: intention.objectId,\n });\n\n if (obj.data === undefined) {\n throw new Error('Object not found');\n }\n if (!obj.data?.type) {\n throw new Error('Object type is null');\n }\n if (!Formatter.isSuiStructEqual(obj.data.type, intention.objectType)) {\n throw new Error('Object type not expected');\n }\n if (Formatter.isCoinObjectType(obj.data.type)) {\n throw new Error('Can not transfer coin object in Object Transfer transactions');\n }\n const addressOwner = getAddressOwner(obj);\n if (!Formatter.isSuiAddressEqual(addressOwner, sender)) {\n throw new Error('Object owner not match');\n }\n}\n\nfunction getAddressOwner(object: SuiObjectResponse) {\n const owner = object.data?.owner;\n if (!owner) {\n throw new Error('Object Owner not found');\n }\n\n if (typeof owner !== 'object' || !('AddressOwner' in owner)) {\n throw new Error('Invalid object owner');\n }\n return owner.AddressOwner;\n}\n","import { TransactionBlock } from '@mysten/sui.js/transactions';\n\nimport { HexToUint8Array } from '@/utils/buffer';\n\nexport async function buildRejectTxb(input: { sender: string; payloadToReject: string }) {\n const approveTxb = TransactionBlock.from(HexToUint8Array(input.payloadToReject) as Uint8Array);\n const gasPayment = approveTxb.blockData.gasConfig.payment;\n if (!gasPayment) {\n throw new Error('No gas payment found for approve payload');\n }\n // Reject transaction is an empty transaction block with the same gas payment as the\n // transaction to be rejected.\n const txb = new TransactionBlock();\n txb.setGasPayment(gasPayment);\n txb.setSender(input.sender);\n return txb;\n}\n","import { SuiClient } from '@mysten/sui.js/client';\n\nimport { buildCoinTransferTxb, IntentionCoinTransfer } from '@/transactions/coin-transfer';\nimport { buildObjectTransferTxb, IntentionObjectTransfer } from '@/transactions/object-transfer';\nimport { buildRejectTxb } from '@/transactions/reject';\n\nexport type TxIntention = IntentionObjectTransfer | IntentionCoinTransfer;\n\n// TODO: Refactor later\nexport class IntentionHelper {\n static ser(intention: TxIntention) {\n return JSON.stringify(intention);\n }\n\n static de(val: string): TxIntention {\n const intention = JSON.parse(val);\n if (typeof intention !== 'object' || !('txType' in intention)) {\n throw new Error(`Failed to deserialize intention: ${val}`);\n }\n return JSON.parse(val);\n }\n\n // TODO: Add gas option here.\n static buildTxb(input: { suiClient: SuiClient; intention: TxIntention; sender: string }) {\n switch (input.intention.txType) {\n case 'CoinTransfer':\n return buildCoinTransferTxb({\n suiClient: input.suiClient,\n sender: input.sender,\n intention: input.intention as IntentionCoinTransfer,\n });\n case 'ObjectTransfer':\n return buildObjectTransferTxb({\n suiClient: input.suiClient,\n sender: input.sender,\n intention: input.intention as IntentionObjectTransfer,\n });\n default:\n throw new Error(`Unknown tx type: ${input.intention}`);\n }\n }\n\n static getTxType(intention: TxIntention) {\n switch (intention.txType) {\n case 'CoinTransfer':\n return {\n txType: 'CoinTransfer',\n txSubType: 'CoinTransfer',\n };\n case 'ObjectTransfer':\n return {\n txType: 'ObjectTransfer',\n txSubType: 'ObjectTransfer',\n };\n default:\n throw new Error('Unknown intention type');\n }\n }\n\n static buildRejectTransaction(input: { msafeAddress: string; payloadToReject: string }) {\n return buildRejectTxb({ sender: input.msafeAddress, payloadToReject: input.payloadToReject });\n }\n}\n","import { IntentionHelper, TxIntention } from '@/transactions/intention';\n\nexport class MessageHelper {\n // Message used for MSafe creation\n static createMSafeMessage(msafeAddress: string): string {\n return `Create MSafe Account: ${msafeAddress}`;\n }\n\n static deCreateMSafeMessage(msg: string) {\n const regex = /Create MSafe Account: (.+)/;\n const matches = msg.match(regex);\n return matches ? matches[1] : undefined;\n }\n\n // Message to be used when user login. The timestamp string\n // is used to for extra validation.\n static welcomeMessage(timestamp: string): string {\n return `Welcome to MSafe. ${timestamp}`;\n }\n\n static deWelcomeMessage(msg: string): string | undefined {\n const regex = /Welcome to MSafe. (.+)/;\n const matches = msg.match(regex);\n return matches ? matches[1] : undefined;\n }\n\n static proposeIntentionMessage(data: ProposeIntentionData) {\n const { intention, sn } = data;\n const intentionData = IntentionHelper.ser(intention);\n const msg: ProposeIntentionMessage = {\n intentionData,\n sequenceNumber: sn,\n };\n return JSON.stringify(msg);\n }\n\n static deProposeIntentionMessage(s: string): ProposeIntentionData {\n const de = JSON.parse(s);\n if (\n !('intentionData' in de) ||\n typeof de.intentionData !== 'string' ||\n !('sequenceNumber' in de) ||\n typeof de.sequenceNumber !== 'number'\n ) {\n throw new Error('Invalid intention data');\n }\n const { sequenceNumber, intentionData } = de;\n return {\n sn: sequenceNumber,\n intention: IntentionHelper.de(intentionData),\n };\n }\n}\n\nexport interface ProposeIntentionData {\n intention: TxIntention;\n sn: number;\n}\n\nexport interface ProposeIntentionMessage {\n intentionData: string;\n sequenceNumber: number;\n}\n","import { MSafeAccountInfo, MultisigAccountManager } from \"@msafe/sui3-utils\";\nimport { SerializedSignature } from '@mysten/sui.js/cryptography';\n\nimport { MessageHelper } from '@/core/MessageHelper';\nimport { MSafeGlobals } from '@/globals/MSafeGlobals';\nimport { IntentionHelper, TxIntention } from '@/transactions/intention';\nimport { PendingTx } from '@/types/msafe';\nimport { HexToUint8Array } from '@/utils/buffer';\n\nexport class MSafeAccount {\n public multisigManager: MultisigAccountManager;\n\n constructor(\n public readonly globals: MSafeGlobals,\n public readonly info: MSafeAccountInfo,\n ) {\n this.multisigManager = new MultisigAccountManager({\n threshold: info.threshold,\n ownersWithWeight: info.ownersWithWeightPK,\n creationNonce: info.creationNonce,\n });\n }\n\n static async new(globals: MSafeGlobals, address: string) {\n const info = await globals.backend.getMSafeAccountInfo(address);\n return new MSafeAccount(globals, info);\n }\n\n async pendingTransactions() {\n return this.backend.getPendingTransactions(this.address);\n }\n\n async historyTransaction() {\n return this.backend.getHistoryTransactions(this.address);\n }\n\n async futureIntentions() {\n return this.backend.getFutureIntentions(this.address);\n }\n\n async currentSequenceNumber() {\n return this.backend.getCurrentSequenceNumber(this.address);\n }\n\n async nextSequenceNumber() {\n return this.backend.getNextSequenceNumber(this.address);\n }\n\n async proposeIntention(intention: TxIntention, sequenceNumber: number) {\n const message = MessageHelper.proposeIntentionMessage({ intention, sn: sequenceNumber });\n const signature = await this.wallet.signPersonalMessage({\n messageStr: message,\n });\n await this.backend.proposeIntention({\n intention,\n sequenceNumber,\n msafeAddress: this.address,\n userAddress: await this.userAddress(),\n signature: signature.signature,\n });\n }\n\n async voteForTransaction(digest: string, payload: string) {\n const payloadBytes = HexToUint8Array(payload);\n const signature = await this.wallet.signTransactionBlock({ transactionBlock: payloadBytes });\n return this.backend.voteForTransaction({\n msafeAddress: this.address,\n userAddress: await this.userAddress(),\n txDigest: digest,\n signature: signature.signature,\n });\n }\n\n // Shortcut for proposing a transaction to be a pending transaction, and add user vote to it.\n // Requires the multi-sig to be empty in pending transaction.\n async proposePendingTransaction(intention: TxIntention) {\n const txb = await IntentionHelper.buildTxb({\n suiClient: this.suiClient,\n intention,\n sender: this.address,\n });\n const payload = await txb.build({ client: this.suiClient });\n const digest = await txb.getDigest({ client: this.suiClient });\n const signature = await this.wallet.signTransactionBlock({ transactionBlock: payload });\n return this.backend.proposePendingTransaction({\n msafeAddress: this.address,\n userAddress: await this.userAddress(),\n intention,\n digest,\n signature: signature.signature,\n });\n }\n\n async rejectCurrentTx(pending?: PendingTx) {\n let payloadToReject: string;\n if (pending) {\n if (pending.isRejectTx) {\n throw new Error('Pending not reject transaction');\n }\n payloadToReject = pending.payload;\n } else {\n const pendings = await this.pendingTransactions();\n if (pendings.length !== 1 || pendings[0].isRejectTx) {\n throw new Error('Already rejected');\n }\n payloadToReject = pendings[0].payload;\n }\n const rejectTxb = await IntentionHelper.buildRejectTransaction({\n msafeAddress: this.address,\n payloadToReject,\n });\n const digest = await rejectTxb.getDigest({ client: this.suiClient });\n const payload = await rejectTxb.build({ client: this.suiClient });\n const signature = await this.wallet.signTransactionBlock({ transactionBlock: payload });\n return this.backend.rejectCurrentTx({\n msafeAddress: this.address,\n userAddress: await this.userAddress(),\n digest,\n signature: signature.signature,\n });\n }\n\n async buildNextIntentionAndAddToPending() {\n return this.backend.buildNextIntentionAndAddToPending({ msafeAddress: this.address });\n }\n\n async skipNextFailedIntention() {\n return this.backend.skipNextFailedIntention({ msafeAddress: this.address, userAddress: await this.userAddress() });\n }\n\n async executePendingTx(pending: PendingTx) {\n if (pending.votes.length < this.info.threshold) {\n throw new Error('Not enough signatures');\n }\n const sigs: SerializedSignature[] = [];\n const gotSigs = new Map(pending.votes.map((vote) => [vote.userAddress, vote.signature]));\n for (let i = 0; i < this.info.ownersWithWeightPK.length; i++) {\n const owner = this.info.ownersWithWeightPK[i];\n const signature = gotSigs.get(owner.publicKey.toSuiAddress());\n if (signature) {\n sigs.push(signature);\n }\n }\n const multiSignature = this.multisigManager.combinePartialSignatures(sigs);\n return this.suiClient.executeTransactionBlock({\n transactionBlock: HexToUint8Array(pending.payload),\n signature: multiSignature,\n options: { showEffects: true },\n });\n }\n\n get address() {\n return this.info.address;\n }\n\n private get backend() {\n return this.globals.backend;\n }\n\n private get wallet() {\n return this.globals.wallet;\n }\n\n private async userAddress() {\n return this.globals.wallet.address();\n }\n\n private get suiClient() {\n return this.globals.suiClient;\n }\n}\n","import { PublicKey } from '@mysten/sui.js/src/cryptography';\n\nimport { MSafeGlobals } from '@/globals/MSafeGlobals';\nimport { getPublicKeyFromChain } from '@/utils/sui';\n\n/**\n * PublicKeyHelper is the helper to query for public keys from\n * backend and blockchain.\n */\nexport class PublicKeyHelper {\n private knownPublicKeys: Map<string, PublicKey>;\n\n constructor(public readonly globals: MSafeGlobals) {\n this.knownPublicKeys = new Map<string, PublicKey>();\n }\n\n async getPublicKey(address: string) {\n const cached = this.knownPublicKeys.get(address);\n if (cached) {\n return cached;\n }\n const pk = await this._getPublicKey(address);\n if (pk) {\n this.knownPublicKeys.set(address, pk);\n }\n return pk;\n }\n\n async getPublicKeyBatch(addresses: string[]): Promise<(PublicKey | undefined)[]> {\n const results: (PublicKey | undefined)[] = new Array(addresses.length).fill(undefined);\n\n // Query local cache first\n for (let i = 0; i < addresses.length; i++) {\n const address = addresses[i];\n results[i] = this.knownPublicKeys.get(address);\n }\n\n // Query backend in batch\n const emptyIndexes = results\n .map((elem, index) => (elem === undefined ? index : -1))\n .filter((index) => index !== -1);\n const backendResult = await this.globals.backend.getPublicKeyBatch(emptyIndexes.map((index) => addresses[index]));\n for (let i = 0; i < emptyIndexes.length; i++) {\n const index = emptyIndexes[i];\n results[index] = backendResult[i];\n }\n\n // Query the public key from blockchain\n for (let i = 0; i < results.length; i++) {\n if (results[i] === undefined) {\n results[i] = await this.getPublicKeyFromChain(addresses[i]);\n }\n }\n\n // Finally, write the public keys to the local cache\n for (let i = 0; i < addresses.length; i++) {\n if (results[i]) {\n this.knownPublicKeys.set(addresses[i], results[i] as PublicKey);\n }\n }\n return results;\n }\n\n private async _getPublicKey(address: string) {\n const pkBackend = await this.getPublicKeyFromBackend(address);\n if (pkBackend) {\n return pkBackend;\n }\n const pkChain = await this.getPublicKeyFromChain(address);\n if (pkChain) {\n return pkChain;\n }\n return undefined;\n }\n\n private async getPublicKeyFromBackend(address: string): Promise<PublicKey | undefined> {\n try {\n const pk = await this.globals.backend.getPublicKey(address);\n return pk;\n } catch (_) {\n return undefined;\n }\n }\n\n private async getPublicKeyFromChain(address: string): Promise<PublicKey | undefined> {\n return getPublicKeyFromChain(this.globals.suiClient, address);\n }\n}\n","import { SuiClient } from '@mysten/sui.js/client';\n\nimport { IBackend } from '@/backend/interface';\nimport { PseudoBackend } from '@/backend/PseudoBackend';\nimport { getMSafeConfig, MSafeConfig, MSafeConfigOptions, MSafeEnv } from '@/globals/const';\nimport { IWallet } from '@/types/wallet';\nimport { BackendImpl } from \"@/backend/BackendImpl\";\n\nexport class MSafeGlobals {\n public readonly backend: IBackend;\n\n public readonly suiClient: SuiClient;\n\n public readonly config: MSafeConfig;\n\n _wallet: IWallet | undefined;\n\n constructor(input: { backend: IBackend; suiClient: SuiClient; config: MSafeConfig }) {\n this.backend = input.backend;\n this.suiClient = input.suiClient;\n this.config = input.config;\n }\n\n static async New(env: MSafeEnv, options?: MSafeConfigOptions) {\n const config = getMSafeConfig(env, options);\n const suiClient = new SuiClient(config.suiClient);\n const backend = new BackendImpl(config.apiURL);\n return new MSafeGlobals({\n backend,\n suiClient,\n config,\n });\n }\n\n connectWallet(wallet: IWallet) {\n this._wallet = wallet;\n }\n\n get wallet() {\n if (!this._wallet) {\n throw new Error('wallet not connected');\n }\n return this._wallet;\n }\n\n set wallet(val: IWallet) {\n this._wallet = val;\n }\n}\n","import { ModelConfig } from '@msafe/sui3-model/common';\n\nexport enum MSafeEnv {\n local = 'local',\n unit = 'unit',\n dev = 'dev',\n prev = 'prev',\n prod = 'prod',\n}\n\nexport interface MSafeConfig {\n suiClient: {\n url: string;\n };\n backend: DBConfig;\n apiURL: string;\n}\n\nexport interface MSafeConfigOptions {\n suiClient?: {\n url?: string;\n };\n backend?: DBConfig;\n}\n\n// Use pseudo backend for now.\nexport type DBConfig = ModelConfig;\n\nexport const UNIT_DATABASE_CONFIG: DBConfig = {\n type: 'sqlite',\n database: ':memory:',\n logging: false,\n};\n\nexport const LOCAL_DATABASE_CONFIG: DBConfig = {\n type: 'mysql',\n host: '127.0.0.1',\n port: 3306,\n username: 'msafe',\n password: 'msafe',\n database: 'msafe_sui_local',\n logging: false,\n};\n\nexport const DEV_DATABASE_CONFIG: DBConfig = {\n type: 'mysql',\n host: 'msafe-dev-database.cluster-caos3ssocrx6.us-west-1.rds.amazonaws.com',\n port: 3306,\n username: 'msafe',\n password: 'Momentum.Safe2022',\n database: 'msafe_sui_dev',\n logging: false,\n};\n\nexport const TESTNET_RPC_URL = 'https://sui-testnet.blockvision.org/v1/2Sgk89ivT64MnKdcGzjmyjY2ndD';\nexport const MAINNET_RPC_URL = 'https://sui-mainnet.blockvision.org/v1/2Sgk7NPvqkd7mESYkxF01yX15l7';\n\nexport const LOCAL_API_URL = 'http://127.0.0.1:3000';\nexport const DEV_API_URL = 'http://13.56.226.148';\n\nexport const ENV_CONFIGS = new Map<MSafeEnv, MSafeConfig>([\n [\n MSafeEnv.unit,\n {\n suiClient: {\n url: TESTNET_RPC_URL,\n },\n backend: LOCAL_DATABASE_CONFIG,\n apiURL: LOCAL_API_URL,\n },\n ],\n [\n MSafeEnv.local,\n {\n suiClient: {\n url: TESTNET_RPC_URL,\n },\n backend: LOCAL_DATABASE_CONFIG,\n apiURL: LOCAL_API_URL,\n },\n ],\n [\n MSafeEnv.dev,\n {\n suiClient: {\n url: TESTNET_RPC_URL,\n },\n backend: DEV_DATABASE_CONFIG,\n apiURL: DEV_API_URL,\n },\n ],\n]);\n\nexport function getMSafeConfig(env: MSafeEnv, options?: MSafeConfigOptions) {\n const config = ENV_CONFIGS.get(env);\n if (!config) {\n throw new Error('Unknown environment');\n }\n if (options?.suiClient?.url) {\n config.suiClient.url = options.suiClient.url;\n }\n if (options?.backend) {\n config.backend = options.backend;\n }\n return config;\n}\n\nexport const AUTH_SIGN_MESSAGE = 'Welcome to MSafe';\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","import FormData from 'form-data';\n\nexport default FormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: typeof Blob !== 'undefined' && Blob || null\n },\n protocols: [ 'http', 'https', 'file', 'data' ]\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from './../helpers/buildURL.js';\nimport {getProxyForUrl} from 'proxy-from-env';\nimport http from 'http';\nimport https from 'https';\nimport util from 'util';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport {VERSION} from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport EventEmitter from 'events';\nimport formDataToStream from \"../helpers/formDataToStream.js\";\nimport readBlob from \"../helpers/readBlob.js\";\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from \"../helpers/callbackify.js\";\n\nconst zlibOptions = {\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n};\n\nconst brotliOptions = {\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH\n}\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n return protocol + ':';\n});\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object<string, any>} options - The options object that was passed to the request.\n *\n * @returns {Object<string, any>}\n */\nfunction dispatchBeforeRedirect(options, responseDetails) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options, responseDetails);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = getProxyForUrl(location);\n if (proxyUrl) {\n proxy = new URL(proxyUrl);\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n if (proxy.auth.username || proxy.auth.password) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n }\n const base64 = Buffer\n .from(proxy.auth, 'utf8')\n .toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href);\n };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n }\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n }\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n })\n};\n\nconst resolveFamily = ({address, family}) => {\n if (!utils.isString(address)) {\n throw TypeError('address must be a string');\n }\n return ({\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4)\n });\n}\n\nconst buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n let {data, lookup, family} = config;\n const {responseType, responseEncoding} = config;\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n\n if (lookup) {\n const _lookup = callbackify(lookup, (value) => utils.isArray(value) ? value : [value]);\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n if (err) {\n return cb(err);\n }\n\n const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n }\n }\n\n // temporary internal emitter until the AxiosRequest class will be implemented\n const emitter = new EventEmitter();\n\n const onFinished = () => {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n emitter.removeAllListeners();\n }\n\n onDone((value, isRejected) => {\n isDone = true;\n if (isRejected) {\n rejected = true;\n onFinished();\n }\n });\n\n function abort(reason) {\n emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n }\n\n emitter.once('abort', reject);\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url);\n const parsed = new URL(fullPath, 'http://localhost');\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream.Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders(),\n config\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n const headers = AxiosHeaders.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const onDownloadProgress = config.onDownloadProgress;\n const onUploadProgress = config.onUploadProgress;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream(data, (formHeaders) => {\n headers.set(formHeaders);\n }, {\n tag: `axios-${VERSION}-boundary`,\n boundary: userBoundary && userBoundary[1] || undefined\n });\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {\n }\n }\n } else if (utils.isBlob(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream.Readable.from(readBlob(data));\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n }\n\n const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n if (utils.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils.isStream(data)) {\n data = stream.Readable.from(data, {objectMode: false});\n }\n\n data = stream.pipeline([data, new AxiosTransformStream({\n length: contentLength,\n maxRate: utils.toFiniteNumber(maxUploadRate)\n })], utils.noop);\n\n onUploadProgress && data.on('progress', progress => {\n onUploadProgress(Object.assign(progress, {\n upload: true\n }));\n });\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = parsed.password;\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {}\n };\n\n // cacheable-lookup integration hotfix\n !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = +res.headers['content-length'];\n\n if (onDownloadProgress) {\n const transformStream = new AxiosTransformStream({\n length: utils.toFiniteNumber(responseLength),\n maxRate: utils.toFiniteNumber(maxDownloadRate)\n });\n\n onDownloadProgress && transformStream.on('progress', progress => {\n onDownloadProgress(Object.assign(progress, {\n download: true\n }));\n });\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib.createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n const offListeners = stream.finished(responseStream, () => {\n offListeners();\n onFinished();\n });\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders(res.headers),\n config,\n request: lastRequest\n };\n\n if (responseType === 'stream') {\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n emitter.once('abort', err => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n emitter.once('abort', err => {\n reject(err);\n req.destroy(err);\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n // @todo remove\n // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n reject(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n if (isDone) return;\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n abort();\n });\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', err => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n data.pipe(req);\n } else {\n req.end(data);\n }\n });\n}\n\nexport const __setProxy = setProxy;\n","export const VERSION = \"1.6.6\";","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n const _Blob = options && options.Blob || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], {type: mime});\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\nimport throttle from './throttle.js';\nimport speedometer from './speedometer.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n constructor(options) {\n options = utils.toFlatObject(options, {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15\n }, null, (prop, source) => {\n return !utils.isUndefined(source[prop]);\n });\n\n super({\n readableHighWaterMark: options.chunkSize\n });\n\n const self = this;\n\n const internals = this[kInternals] = {\n length: options.length,\n timeWindow: options.timeWindow,\n ticksRate: options.ticksRate,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null\n };\n\n const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow);\n\n this.on('newListener', event => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n\n let bytesNotified = 0;\n\n internals.updateProgress = throttle(function throttledHandler() {\n const totalBytes = internals.length;\n const bytesTransferred = internals.bytesSeen;\n const progressBytes = bytesTransferred - bytesNotified;\n if (!progressBytes || self.destroyed) return;\n\n const rate = _speedometer(progressBytes);\n\n bytesNotified = bytesTransferred;\n\n process.nextTick(() => {\n self.emit('progress', {\n 'loaded': bytesTransferred,\n 'total': totalBytes,\n 'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined,\n 'bytes': progressBytes,\n 'rate': rate ? rate : undefined,\n 'estimated': rate && totalBytes && bytesTransferred <= totalBytes ?\n (totalBytes - bytesTransferred) / rate : undefined\n });\n });\n }, internals.ticksRate);\n\n const onFinish = () => {\n internals.updateProgress(true);\n };\n\n this.once('end', onFinish);\n this.once('error', onFinish);\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const self = this;\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = (maxRate / divider);\n const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n function pushChunk(_chunk, _callback) {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n if (internals.isCaptured) {\n internals.updateProgress();\n }\n\n if (self.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n }\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(_chunk, chunkRemainder ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n } : _callback);\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n\n setLength(length) {\n this[kInternals].length = +length;\n return this;\n }\n}\n\nexport default AxiosTransformStream;\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n const threshold = 1000 / freq;\n let timer = null;\n return function throttled(force, args) {\n const now = Date.now();\n if (force || now - timestamp > threshold) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n timestamp = now;\n return fn.apply(null, args);\n }\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n timestamp = Date.now();\n return fn.apply(null, args);\n }, threshold - (now - timestamp));\n }\n };\n}\n\nexport default throttle;\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","import {TextEncoder} from 'util';\nimport {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\n\nconst BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = new TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const {escapeName} = this.constructor;\n const isStringValue = utils.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n headers += `Content-Type: ${value.type || \"application/octet-stream\"}${CRLF}`\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode(){\n yield this.headers;\n\n const {value} = this;\n\n if(utils.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(/[\\r\\n\"]/g, (match) => ({\n '\\r' : '%0D',\n '\\n' : '%0A',\n '\"' : '%22',\n }[match]));\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET)\n } = options || {};\n\n if(!utils.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 10-70 characters long')\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`\n }\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return Readable.from((async function *() {\n for(const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })());\n};\n\nexport default formDataToStream;\n","const {asyncIterator} = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream()\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer()\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n}\n\nexport default readBlob;\n","\"use strict\";\n\nimport stream from \"stream\";\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) { // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C \n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nexport default ZlibHeaderTransformStream;\n","import utils from \"../utils.js\";\n\nconst callbackify = (fn, reducer) => {\n return utils.isAsyncFn(fn) ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n } : fn;\n}\n\nexport default callbackify;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n const dummy = {}\n if (Error.captureStackTrace) {\n Error.captureStackTrace(dummy)\n } else {\n dummy.stack = new Error().stack;\n }\n // slice off the Error: ... line\n dummy.stack = dummy.stack.replace(/^.+\\n/, '');\n // match without the 2 top stack lines\n if (!err.stack.endsWith(dummy.stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + dummy.stack\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","import {\n AuthLoginRequest,\n AuthLoginResponse,\n CreateMSafeAccountInfoRequest,\n GetMSafeAccountInfoResponse,\n MSafeAccountInfo,\n OwnerWithWeightPK,\n PublicKeyWithScheme,\n UserWithOwnedMSafe,\n UserWithOwnedMSafeResponse,\n} from '@msafe/sui3-utils';\nimport { SerializedSignature } from '@mysten/sui.js/cryptography';\nimport { PublicKey } from '@mysten/sui.js/src/cryptography';\nimport axios from 'axios';\n\nimport { IBackend } from '@/backend/interface';\nimport { JWTToken } from '@/backend/types';\nimport { TxIntention } from '@/transactions/intention';\nimport { FutureIntention, HistorySendTx, PendingTx } from '@/types/msafe';\nimport { PublicKeySerde } from '@/utils/crypto';\n\nexport class BackendImpl implements IBackend {\n private _token: JWTToken;\n\n constructor(private readonly apiURL: string) {}\n\n async authSign(input: AuthLoginRequest): Promise<JWTToken> {\n const res = await axios.post<AuthLoginResponse>(`${this.apiURL}/auth/login`, input);\n // TODO unify response struct\n if (res.status !== 200 && res.status !== 201) {\n throw new Error(`invalid authSign return: ${res}`);\n }\n this._token = res.data.accessToken;\n return this._token;\n }\n\n setJWTToken(token: JWTToken) {\n this._token = token;\n }\n\n async getPublicKey(address: string): Promise<PublicKey | undefined> {\n return (await this.getPublicKeyBatch([address]))[0];\n }\n\n async getPublicKeyBatch(addresses: string[]): Promise<(PublicKey | undefined)[]> {\n const res = await axios.post<(PublicKeyWithScheme | undefined)[]>(\n `${this.apiURL}/account/getPublicKeyBatch`,\n addresses,\n {\n headers: this.headers(),\n },\n );\n // TODO unify response struct\n if (res.status !== 200 && res.status !== 201) {\n throw new Error(`invalid getPublicKeyBatch return: ${res}`);\n }\n\n return res.data?.map((publicKeyWithSchema) =>\n publicKeyWithSchema ? PublicKeySerde.de({ ...publicKeyWithSchema }) : undefined,\n );\n }\n\n async getMSafeAccountInfo(msafeAddress: string): Promise<MSafeAccountInfo> {\n const res = await axios.get<GetMSafeAccountInfoResponse>(\n `${this.apiURL}/account/getMSafeAccountInfo/${msafeAddress}`,\n {\n headers: this.headers(),\n },\n );\n\n // TODO unify response struct\n if (res.status !== 200 && res.status !== 201) {\n throw new Error(`invalid getPublicKeyBatch return: ${res}`);\n }\n\n const msafeResp = res.data;\n return {\n address: msafeResp.address,\n ownersWithWeightPK: msafeResp.ownersWithWeightPKEncoded.map(\n (owner): OwnerWithWeightPK => ({\n publicKey: PublicKeySerde.de({ publicKey: owner.publicKeyEncoded, scheme: owner.schema }),\n address: owner.address,\n weight: owner.weight,\n }),\n ),\n threshold: msafeResp.threshold,\n name: msafeResp.name,\n description: msafeResp.description,\n creationNonce: msafeResp.creationNonce,\n };\n }\n\n async getUserInfo(userAddress: string): Promise<UserWithOwnedMSafe> {\n const res = await axios.get<UserWithOwnedMSafeResponse>(`${this.apiURL}/account/user/${userAddress}`, {\n headers: this.headers(),\n });\n\n // TODO unify response struct\n if (res.status !== 200 && res.status !== 201) {\n throw new Error(`invalid getPublicKeyBatch return: ${res}`);\n }\n\n return {\n address: res.data.address,\n publicKey: res.data.publicKey,\n schema: res.data.schema,\n creationNonce: res.data.creationNonce,\n ownedMSafe: res.data.ownedMSafe.map(\n (msafe): MSafeAccountInfo => ({\n address: msafe.address,\n ownersWithWeightPK: msafe.ownersWithWeightPKEncoded.map(\n (owner): OwnerWithWeightPK => ({\n publicKey: PublicKeySerde.de({ publicKey: owner.publicKeyEncoded, scheme: owner.schema }),\n address: owner.address,\n weight: owner.weight,\n }),\n ),\n threshold: msafe.threshold,\n name: msafe.name,\n description: msafe.description,\n creationNonce: msafe.creationNonce,\n }),\n ),\n };\n }\n\n async getPendingTransactions(msafeAddress: string): Promise<PendingTx[]> {\n return [];\n }\n\n async getHistoryTransactions(msafeAddress: string): Promise<HistorySendTx[]> {\n return [];\n }\n\n async getFutureIntentions(msafeAddress: string): Promise<FutureIntention[]> {\n return [];\n }\n\n async getCurrentSequenceNumber(msafeAddress: string): Promise<number> {\n return 0;\n }\n\n async getNextSequenceNumber(msafeAddress: string): Promise<number> {\n return 0;\n }\n\n async createMSafeAccount(input: CreateMSafeAccountInfoRequest): Promise<void> {\n const res = await axios.post(`${this.apiURL}/account`, input, {\n headers: this.headers(),\n });\n if (res.status !== 200 && res.status !== 201) {\n throw new Error(`invalid createMSafeAccount return: ${res}`);\n }\n }\n\n async proposeIntention(input: {\n intention: TxIntention;\n sequenceNumber: number;\n userAddress: string;\n msafeAddress: string;\n signature: SerializedSignature;\n }): Promise<void> {\n }\n\n async proposePendingTransaction(input: {\n intention: TxIntention;\n userAddress: string;\n msafeAddress: string;\n digest: string;\n signature: SerializedSignature;\n }): Promise<void> {}\n\n async rejectCurrentTx(input: {\n userAddress: string;\n msafeAddress: string;\n digest: string;\n signature: SerializedSignature;\n }) {}\n\n async voteForTransaction(input: {\n txDigest: string;\n msafeAddress: string;\n userAddress: string;\n signature: SerializedSignature;\n }) {}\n\n async buildNextIntentionAndAddToPending(input: { msafeAddress: string }) {}\n\n async skipNextFailedIntention(input: { msafeAddress: string; userAddress: string }) {}\n\n async processExecutedTransaction(digest: string) {}\n\n private headers() {\n return { Authorization: `Bearer ${this._token}` };\n }\n}\n","import { MSafeAccountInfo } from '@msafe/sui3-utils';\n\nimport { JWTToken } from '@/backend/types';\nimport { CreateHelper } from '@/core/CreateHelper';\nimport { MessageHelper } from '@/core/MessageHelper';\nimport { MSafeAccount } from '@/core/MSafeAccount';\nimport { PublicKeyHelper } from '@/core/PublicKeyHelper';\nimport { MSafeConfigOptions, MSafeEnv } from '@/globals/const';\nimport { MSafeGlobals } from '@/globals/MSafeGlobals';\nimport { CreateMSafeAccountInfo } from '@/types/creation';\nimport { IWallet } from '@/types/wallet';\n\nexport class MSafeClient {\n private _creationHelper: CreateHelper | undefined;\n\n private _publicKeyHelper: PublicKeyHelper | undefined;\n\n constructor(public readonly globals: MSafeGlobals) {}\n\n static async New(env: MSafeEnv, options?: MSafeConfigOptions) {\n const globals = await MSafeGlobals.New(env, options);\n return new MSafeClient(globals);\n }\n\n async connectWallet(input: { wallet: IWallet; jwtToken?: JWTToken }): Promise<JWTToken> {\n this.globals.wallet = input.wallet;\n const messageStr = MessageHelper.welcomeMessage(new Date().toUTCString());\n const sig = await input.wallet.signPersonalMessage({\n messageStr,\n });\n return this.backend.authSign({\n address: await input.wallet.address(),\n message: messageStr,\n signature: sig.signature,\n walletType: input.wallet.walletType,\n });\n }\n\n async userInfo() {\n return this.globals.backend.getUserInfo(await this.walletAddress());\n }\n\n async createAccount(info: CreateMSafeAccountInfo) {\n return this.creationHelper.submitMSafeCreation(info);\n }\n\n getMSafeAccount(info: MSafeAccountInfo) {\n return new MSafeAccount(this.globals, info);\n }\n\n async getMSafeAccountFromAddress(msafeAddress: string) {\n const info = await this.backend.getMSafeAccountInfo(msafeAddress);\n return new MSafeAccount(this.globals, info);\n }\n\n // Get the creation helper to calculate the msafe account address,\n // validation, and more.\n get creationHelper() {\n if (!this._creationHelper) {\n this._creationHelper = new CreateHelper(this.globals, this.publicKeyHelper);\n }\n return this._creationHelper;\n }\n\n get publicKeyHelper() {\n if (!this._publicKeyHelper) {\n this._publicKeyHelper = new PublicKeyHelper(this.globals);\n }\n return this._publicKeyHelper;\n }\n\n get config() {\n return this.globals.config;\n }\n\n get backend() {\n return this.globals.backend;\n }\n\n get wallet() {\n return this.globals.wallet;\n }\n\n private async walletAddress() {\n return this.wallet.address();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,sDAAAA,UAAAC,SAAA;AAAA;AAAA,QAAI,SAAS,QAAQ,QAAQ,EAAE;AAC/B,QAAIC,QAAO,QAAQ,MAAM;AAEzB,IAAAD,QAAO,UAAU;AACjB,aAAS,gBAAgB;AACvB,WAAK,SAAS;AACd,WAAK,WAAW;AAChB,WAAK,cAAc,OAAO;AAC1B,WAAK,cAAc;AAEnB,WAAK,uBAAuB;AAC5B,WAAK,YAAY;AACjB,WAAK,kBAAkB,CAAC;AAAA,IAC1B;AACA,IAAAC,MAAK,SAAS,eAAe,MAAM;AAEnC,kBAAc,SAAS,SAAS,QAAQ,SAAS;AAC/C,UAAI,gBAAgB,IAAI,KAAK;AAE7B,gBAAU,WAAW,CAAC;AACtB,eAAS,UAAU,SAAS;AAC1B,sBAAc,MAAM,IAAI,QAAQ,MAAM;AAAA,MACxC;AAEA,oBAAc,SAAS;AAEvB,UAAI,WAAW,OAAO;AACtB,aAAO,OAAO,WAAW;AACvB,sBAAc,YAAY,SAAS;AACnC,eAAO,SAAS,MAAM,QAAQ,SAAS;AAAA,MACzC;AAEA,aAAO,GAAG,SAAS,WAAW;AAAA,MAAC,CAAC;AAChC,UAAI,cAAc,aAAa;AAC7B,eAAO,MAAM;AAAA,MACf;AAEA,aAAO;AAAA,IACT;AAEA,WAAO,eAAe,cAAc,WAAW,YAAY;AAAA,MACzD,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,KAAK,WAAW;AACd,eAAO,KAAK,OAAO;AAAA,MACrB;AAAA,IACF,CAAC;AAED,kBAAc,UAAU,cAAc,WAAW;AAC/C,aAAO,KAAK,OAAO,YAAY,MAAM,KAAK,QAAQ,SAAS;AAAA,IAC7D;AAEA,kBAAc,UAAU,SAAS,WAAW;AAC1C,UAAI,CAAC,KAAK,WAAW;AACnB,aAAK,QAAQ;AAAA,MACf;AAEA,WAAK,OAAO,OAAO;AAAA,IACrB;AAEA,kBAAc,UAAU,QAAQ,WAAW;AACzC,WAAK,OAAO,MAAM;AAAA,IACpB;AAEA,kBAAc,UAAU,UAAU,WAAW;AAC3C,WAAK,YAAY;AAEjB,WAAK,gBAAgB,QAAQ,SAAS,MAAM;AAC1C,aAAK,KAAK,MAAM,MAAM,IAAI;AAAA,MAC5B,EAAE,KAAK,IAAI,CAAC;AACZ,WAAK,kBAAkB,CAAC;AAAA,IAC1B;AAEA,kBAAc,UAAU,OAAO,WAAW;AACxC,UAAI,IAAI,OAAO,UAAU,KAAK,MAAM,MAAM,SAAS;AACnD,WAAK,OAAO;AACZ,aAAO;AAAA,IACT;AAEA,kBAAc,UAAU,cAAc,SAAS,MAAM;AACnD,UAAI,KAAK,WAAW;AAClB,aAAK,KAAK,MAAM,MAAM,IAAI;AAC1B;AAAA,MACF;AAEA,UAAI,KAAK,CAAC,MAAM,QAAQ;AACtB,aAAK,YAAY,KAAK,CAAC,EAAE;AACzB,aAAK,4BAA4B;AAAA,MACnC;AAEA,WAAK,gBAAgB,KAAK,IAAI;AAAA,IAChC;AAEA,kBAAc,UAAU,8BAA8B,WAAW;AAC/D,UAAI,KAAK,sBAAsB;AAC7B;AAAA,MACF;AAEA,UAAI,KAAK,YAAY,KAAK,aAAa;AACrC;AAAA,MACF;AAEA,WAAK,uBAAuB;AAC5B,UAAI,UACF,kCAAkC,KAAK,cAAc;AACvD,WAAK,KAAK,SAAS,IAAI,MAAM,OAAO,CAAC;AAAA,IACvC;AAAA;AAAA;;;AC1GA;AAAA,wDAAAC,UAAAC,SAAA;AAAA;AAAA,QAAIC,QAAO,QAAQ,MAAM;AACzB,QAAI,SAAS,QAAQ,QAAQ,EAAE;AAC/B,QAAI,gBAAgB;AAEpB,IAAAD,QAAO,UAAU;AACjB,aAAS,iBAAiB;AACxB,WAAK,WAAW;AAChB,WAAK,WAAW;AAChB,WAAK,WAAW;AAChB,WAAK,cAAc,IAAI,OAAO;AAC9B,WAAK,eAAe;AAEpB,WAAK,YAAY;AACjB,WAAK,WAAW,CAAC;AACjB,WAAK,iBAAiB;AACtB,WAAK,cAAc;AACnB,WAAK,eAAe;AAAA,IACtB;AACA,IAAAC,MAAK,SAAS,gBAAgB,MAAM;AAEpC,mBAAe,SAAS,SAAS,SAAS;AACxC,UAAI,iBAAiB,IAAI,KAAK;AAE9B,gBAAU,WAAW,CAAC;AACtB,eAAS,UAAU,SAAS;AAC1B,uBAAe,MAAM,IAAI,QAAQ,MAAM;AAAA,MACzC;AAEA,aAAO;AAAA,IACT;AAEA,mBAAe,eAAe,SAASC,SAAQ;AAC7C,aAAQ,OAAOA,YAAW,cACpB,OAAOA,YAAW,YAClB,OAAOA,YAAW,aAClB,OAAOA,YAAW,YAClB,CAAC,OAAO,SAASA,OAAM;AAAA,IAC/B;AAEA,mBAAe,UAAU,SAAS,SAASA,SAAQ;AACjD,UAAI,eAAe,eAAe,aAAaA,OAAM;AAErD,UAAI,cAAc;AAChB,YAAI,EAAEA,mBAAkB,gBAAgB;AACtC,cAAI,YAAY,cAAc,OAAOA,SAAQ;AAAA,YAC3C,aAAa;AAAA,YACb,aAAa,KAAK;AAAA,UACpB,CAAC;AACD,UAAAA,QAAO,GAAG,QAAQ,KAAK,eAAe,KAAK,IAAI,CAAC;AAChD,UAAAA,UAAS;AAAA,QACX;AAEA,aAAK,cAAcA,OAAM;AAEzB,YAAI,KAAK,cAAc;AACrB,UAAAA,QAAO,MAAM;AAAA,QACf;AAAA,MACF;AAEA,WAAK,SAAS,KAAKA,OAAM;AACzB,aAAO;AAAA,IACT;AAEA,mBAAe,UAAU,OAAO,SAAS,MAAM,SAAS;AACtD,aAAO,UAAU,KAAK,KAAK,MAAM,MAAM,OAAO;AAC9C,WAAK,OAAO;AACZ,aAAO;AAAA,IACT;AAEA,mBAAe,UAAU,WAAW,WAAW;AAC7C,WAAK,iBAAiB;AAEtB,UAAI,KAAK,aAAa;AACpB,aAAK,eAAe;AACpB;AAAA,MACF;AAEA,WAAK,cAAc;AACnB,UAAI;AACF,WAAG;AACD,eAAK,eAAe;AACpB,eAAK,aAAa;AAAA,QACpB,SAAS,KAAK;AAAA,MAChB,UAAE;AACA,aAAK,cAAc;AAAA,MACrB;AAAA,IACF;AAEA,mBAAe,UAAU,eAAe,WAAW;AACjD,UAAIA,UAAS,KAAK,SAAS,MAAM;AAGjC,UAAI,OAAOA,WAAU,aAAa;AAChC,aAAK,IAAI;AACT;AAAA,MACF;AAEA,UAAI,OAAOA,YAAW,YAAY;AAChC,aAAK,UAAUA,OAAM;AACrB;AAAA,MACF;AAEA,UAAI,YAAYA;AAChB,gBAAU,SAASA,SAAQ;AACzB,YAAI,eAAe,eAAe,aAAaA,OAAM;AACrD,YAAI,cAAc;AAChB,UAAAA,QAAO,GAAG,QAAQ,KAAK,eAAe,KAAK,IAAI,CAAC;AAChD,eAAK,cAAcA,OAAM;AAAA,QAC3B;AAEA,aAAK,UAAUA,OAAM;AAAA,MACvB,EAAE,KAAK,IAAI,CAAC;AAAA,IACd;AAEA,mBAAe,UAAU,YAAY,SAASA,SAAQ;AACpD,WAAK,iBAAiBA;AAEtB,UAAI,eAAe,eAAe,aAAaA,OAAM;AACrD,UAAI,cAAc;AAChB,QAAAA,QAAO,GAAG,OAAO,KAAK,SAAS,KAAK,IAAI,CAAC;AACzC,QAAAA,QAAO,KAAK,MAAM,EAAC,KAAK,MAAK,CAAC;AAC9B;AAAA,MACF;AAEA,UAAI,QAAQA;AACZ,WAAK,MAAM,KAAK;AAChB,WAAK,SAAS;AAAA,IAChB;AAEA,mBAAe,UAAU,gBAAgB,SAASA,SAAQ;AACxD,UAAIC,QAAO;AACX,MAAAD,QAAO,GAAG,SAAS,SAAS,KAAK;AAC/B,QAAAC,MAAK,WAAW,GAAG;AAAA,MACrB,CAAC;AAAA,IACH;AAEA,mBAAe,UAAU,QAAQ,SAAS,MAAM;AAC9C,WAAK,KAAK,QAAQ,IAAI;AAAA,IACxB;AAEA,mBAAe,UAAU,QAAQ,WAAW;AAC1C,UAAI,CAAC,KAAK,cAAc;AACtB;AAAA,MACF;AAEA,UAAG,KAAK,gBAAgB,KAAK,kBAAkB,OAAO,KAAK,eAAe,SAAU;AAAY,aAAK,eAAe,MAAM;AAC1H,WAAK,KAAK,OAAO;AAAA,IACnB;AAEA,mBAAe,UAAU,SAAS,WAAW;AAC3C,UAAI,CAAC,KAAK,WAAW;AACnB,aAAK,YAAY;AACjB,aAAK,WAAW;AAChB,aAAK,SAAS;AAAA,MAChB;AAEA,UAAG,KAAK,gBAAgB,KAAK,kBAAkB,OAAO,KAAK,eAAe,UAAW;AAAY,aAAK,eAAe,OAAO;AAC5H,WAAK,KAAK,QAAQ;AAAA,IACpB;AAEA,mBAAe,UAAU,MAAM,WAAW;AACxC,WAAK,OAAO;AACZ,WAAK,KAAK,KAAK;AAAA,IACjB;AAEA,mBAAe,UAAU,UAAU,WAAW;AAC5C,WAAK,OAAO;AACZ,WAAK,KAAK,OAAO;AAAA,IACnB;AAEA,mBAAe,UAAU,SAAS,WAAW;AAC3C,WAAK,WAAW;AAChB,WAAK,WAAW,CAAC;AACjB,WAAK,iBAAiB;AAAA,IACxB;AAEA,mBAAe,UAAU,iBAAiB,WAAW;AACnD,WAAK,gBAAgB;AACrB,UAAI,KAAK,YAAY,KAAK,aAAa;AACrC;AAAA,MACF;AAEA,UAAI,UACF,kCAAkC,KAAK,cAAc;AACvD,WAAK,WAAW,IAAI,MAAM,OAAO,CAAC;AAAA,IACpC;AAEA,mBAAe,UAAU,kBAAkB,WAAW;AACpD,WAAK,WAAW;AAEhB,UAAIA,QAAO;AACX,WAAK,SAAS,QAAQ,SAASD,SAAQ;AACrC,YAAI,CAACA,QAAO,UAAU;AACpB;AAAA,QACF;AAEA,QAAAC,MAAK,YAAYD,QAAO;AAAA,MAC1B,CAAC;AAED,UAAI,KAAK,kBAAkB,KAAK,eAAe,UAAU;AACvD,aAAK,YAAY,KAAK,eAAe;AAAA,MACvC;AAAA,IACF;AAEA,mBAAe,UAAU,aAAa,SAAS,KAAK;AAClD,WAAK,OAAO;AACZ,WAAK,KAAK,SAAS,GAAG;AAAA,IACxB;AAAA;AAAA;;;AC/MA;AAAA,iCAAAE,UAAAC,SAAA;AAAA,IAAAA,QAAA;AAAA,MACE,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,aAAa;AAAA,MAC9B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAK,MAAM;AAAA,MAC5B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAO;AAAA,MAC9B;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,KAAK;AAAA,MAClC;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAK,KAAK;AAAA,MAC3B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,aAAa;AAAA,MAC9B;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,MAAK,IAAI;AAAA,MAC/B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yDAAyD;AAAA,QACvD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,MAAK,QAAO,SAAQ,OAAM,OAAM,QAAO,OAAM,UAAS,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,QAAQ;AAAA,MAC7J;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,UAAS,WAAU,UAAS,QAAQ;AAAA,MACrD;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAK,OAAM,IAAI;AAAA,MAChC;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAO;AAAA,MAC9B;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,WAAW;AAAA,MAClC;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sDAAsD;AAAA,QACpD,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sDAAsD;AAAA,QACpD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wDAAwD;AAAA,QACtD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yDAAyD;AAAA,QACvD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAO;AAAA,MAC9B;AAAA,MACA,+DAA+D;AAAA,QAC7D,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,0DAA0D;AAAA,QACxD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MAC9C;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,MACZ;AAAA,MACA,0DAA0D;AAAA,QACxD,QAAU;AAAA,MACZ;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,MACZ;AAAA,MACA,8DAA8D;AAAA,QAC5D,QAAU;AAAA,MACZ;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,MACZ;AAAA,MACA,6DAA6D;AAAA,QAC3D,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,QAAO,OAAM,MAAM;AAAA,MAC1C;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,sDAAsD;AAAA,QACpD,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yDAAyD;AAAA,QACvD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0DAA0D;AAAA,QACxD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,4DAA4D;AAAA,QAC1D,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,QAAO,UAAU;AAAA,MAClC;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,SAAQ,SAAQ,MAAM;AAAA,MAC5C;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,MACZ;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,MACZ;AAAA,MACA,4DAA4D;AAAA,QAC1D,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4CAA4C;AAAA,QAC1C,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,2CAA2C;AAAA,QACzC,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,WAAU,UAAU;AAAA,MAC3C;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sDAAsD;AAAA,QACpD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2DAA2D;AAAA,QACzD,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,MACZ;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MACpD;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yDAAyD;AAAA,QACvD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,KAAK;AAAA,MAClC;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8DAA8D;AAAA,QAC5D,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2DAA2D;AAAA,QACzD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0DAA0D;AAAA,QACxD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,MACZ;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,MACZ;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uDAAuD;AAAA,QACrD,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wDAAwD;AAAA,QACtD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4DAA4D;AAAA,QAC1D,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2DAA2D;AAAA,QACzD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oDAAoD;AAAA,QAClD,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,gEAAgE;AAAA,QAC9D,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,MACZ;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wDAAwD;AAAA,QACtD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yDAAyD;AAAA,QACvD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,uEAAuE;AAAA,QACrE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yEAAyE;AAAA,QACvE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6DAA6D;AAAA,QAC3D,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qEAAqE;AAAA,QACnE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2EAA2E;AAAA,QACzE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2EAA2E;AAAA,QACzE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4EAA4E;AAAA,QAC1E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yEAAyE;AAAA,QACvE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mFAAmF;AAAA,QACjF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kFAAkF;AAAA,QAChF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sFAAsF;AAAA,QACpF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sEAAsE;AAAA,QACpE,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0EAA0E;AAAA,QACxE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0EAA0E;AAAA,QACxE,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mFAAmF;AAAA,QACjF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oFAAoF;AAAA,QAClF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yEAAyE;AAAA,QACvE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yEAAyE;AAAA,QACvE,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kFAAkF;AAAA,QAChF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4EAA4E;AAAA,QAC1E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wFAAwF;AAAA,QACtF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qFAAqF;AAAA,QACnF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mFAAmF;AAAA,QACjF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iFAAiF;AAAA,QAC/E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qEAAqE;AAAA,QACnE,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8EAA8E;AAAA,QAC5E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iFAAiF;AAAA,QAC/E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0EAA0E;AAAA,QACxE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yEAAyE;AAAA,QACvE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oFAAoF;AAAA,QAClF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wEAAwE;AAAA,QACtE,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iFAAiF;AAAA,QAC/E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wFAAwF;AAAA,QACtF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2DAA2D;AAAA,QACzD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mEAAmE;AAAA,QACjE,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4DAA4D;AAAA,QAC1D,QAAU;AAAA,MACZ;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2EAA2E;AAAA,QACzE,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wFAAwF;AAAA,QACtF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oFAAoF;AAAA,QAClF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gFAAgF;AAAA,QAC9E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+EAA+E;AAAA,QAC7E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2EAA2E;AAAA,QACzE,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,oFAAoF;AAAA,QAClF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kFAAkF;AAAA,QAChF,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8DAA8D;AAAA,QAC5D,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6EAA6E;AAAA,QAC3E,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,4DAA4D;AAAA,QAC1D,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,MAAM;AAAA,MACnC;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MACpD;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gDAAgD;AAAA,QAC9C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,sDAAsD;AAAA,QACpD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wDAAwD;AAAA,QACtD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iDAAiD;AAAA,QAC/C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kDAAkD;AAAA,QAChD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,YAAY;AAAA,MAC7B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,MACZ;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,mDAAmD;AAAA,QACjD,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,MAAM;AAAA,MAC9B;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,8CAA8C;AAAA,QAC5C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4CAA4C;AAAA,QAC1C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,MAClB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,QAAO,OAAM,KAAK;AAAA,MACnC;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,QACX,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,+CAA+C;AAAA,QAC7C,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qDAAqD;AAAA,QACnD,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,sBAAsB;AAAA,QACpB,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAO;AAAA,MAC9B;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MAC9C;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MACtE;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,UAAU;AAAA,MAC3B;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,sCAAsC;AAAA,QACpC,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4BAA4B;AAAA,QAC1B,cAAgB;AAAA,MAClB;AAAA,MACA,0BAA0B;AAAA,QACxB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,8BAA8B;AAAA,QAC5B,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,yBAAyB;AAAA,QACvB,cAAgB;AAAA,MAClB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,aAAa;AAAA,MAC9B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,OAAM,KAAK;AAAA,MAC9C;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,KAAK;AAAA,MAClC;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,KAAK;AAAA,MAC3B;AAAA,MACA,qCAAqC;AAAA,QACnC,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,IAAI;AAAA,MAC1B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,SAAS;AAAA,MAC1B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,IAAI;AAAA,MAC3B;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,WAAU,MAAM;AAAA,MACjC;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yCAAyC;AAAA,QACvC,cAAgB;AAAA,QAChB,YAAc,CAAC,cAAc;AAAA,MAC/B;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iCAAiC;AAAA,QAC/B,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uCAAuC;AAAA,QACrC,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAQ;AAAA,MACzB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,OAAM,KAAK;AAAA,MAClC;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,MAAK,IAAI;AAAA,MACxD;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6CAA6C;AAAA,QAC3C,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,SAAQ,KAAK;AAAA,MAC9B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,OAAM,KAAK;AAAA,MACxC;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,SAAQ,QAAO,KAAK;AAAA,MAC5C;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAK,KAAK;AAAA,MAC3B;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,QAAO,OAAM,KAAK;AAAA,MACzC;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAM,QAAO,OAAM,OAAM,KAAK;AAAA,MACtD;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,OAAM,OAAM,MAAM;AAAA,MACzC;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,YAAc,CAAC,WAAW;AAAA,MAC5B;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,cAAgB;AAAA,MAClB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,cAAgB;AAAA,MAClB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,QAAO,MAAM;AAAA,MACpC;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,IAAI;AAAA,MAC3B;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAM,KAAK;AAAA,MACnC;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,cAAgB;AAAA,MAClB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,QAAO,OAAM,MAAM;AAAA,MAC1C;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,MAAK,OAAM,OAAM,OAAM,KAAK;AAAA,MAC7C;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,cAAgB;AAAA,MAClB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc;AAAA,UACZ;AAAA,QACF;AAAA,MACF;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,2CAA2C;AAAA,QACzC,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,QAAO,MAAM;AAAA,MACpC;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qCAAqC;AAAA,QACnC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uCAAuC;AAAA,QACrC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAO;AAAA,MAC/B;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAO;AAAA,MAC/B;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,iCAAiC;AAAA,QAC/B,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,YAAW,UAAU;AAAA,MACtC;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,iBAAiB;AAAA,QACf,cAAgB;AAAA,MAClB;AAAA,MACA,YAAY;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,YAAc,CAAC,UAAS,WAAW;AAAA,MACrC;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAM,OAAO;AAAA,MACrC;AAAA,MACA,aAAa;AAAA,QACX,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,MAClB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,YAAW,IAAI;AAAA,MAChC;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,WAAW;AAAA,QACT,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,QAAO,QAAO,OAAM,QAAO,OAAM,MAAK,KAAK;AAAA,MAClE;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,aAAa;AAAA,QACX,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,YAAc,CAAC,UAAS,MAAM;AAAA,MAChC;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAI,MAAK,QAAO,OAAM,MAAK,IAAI;AAAA,MAChD;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,SAAW;AAAA,QACX,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,QAAO,MAAM;AAAA,MACpC;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,yCAAyC;AAAA,QACvC,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,SAAW;AAAA,QACX,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,+BAA+B;AAAA,QAC7B,QAAU;AAAA,QACV,SAAW;AAAA,MACb;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,SAAW;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAI,KAAK;AAAA,MAC1B;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,YAAc,CAAC,KAAI,MAAK,OAAM,OAAM,KAAI,MAAK,KAAK;AAAA,MACpD;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAI,OAAM,OAAM,KAAK;AAAA,MACtC;AAAA,MACA,kBAAkB;AAAA,QAChB,cAAgB;AAAA,MAClB;AAAA,MACA,8BAA8B;AAAA,QAC5B,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,sBAAsB;AAAA,QACpB,cAAgB;AAAA,MAClB;AAAA,MACA,cAAc;AAAA,QACZ,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAI,KAAK;AAAA,MAC1B;AAAA,MACA,qBAAqB;AAAA,QACnB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,KAAK;AAAA,MAC7B;AAAA,MACA,kCAAkC;AAAA,QAChC,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,QAAO,MAAM;AAAA,MACpC;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,QAAO,OAAM,OAAM,OAAM,KAAK;AAAA,MAC/C;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAK,KAAK;AAAA,MAC3B;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,QACd,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,wCAAwC;AAAA,QACtC,QAAU;AAAA,MACZ;AAAA,MACA,8BAA8B;AAAA,QAC5B,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,4BAA4B;AAAA,QAC1B,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,oCAAoC;AAAA,QAClC,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,0CAA0C;AAAA,QACxC,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,6BAA6B;AAAA,QAC3B,QAAU;AAAA,MACZ;AAAA,MACA,yBAAyB;AAAA,QACvB,QAAU;AAAA,MACZ;AAAA,MACA,gCAAgC;AAAA,QAC9B,QAAU;AAAA,MACZ;AAAA,MACA,mCAAmC;AAAA,QACjC,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,0BAA0B;AAAA,QACxB,QAAU;AAAA,MACZ;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,sCAAsC;AAAA,QACpC,QAAU;AAAA,MACZ;AAAA,MACA,sBAAsB;AAAA,QACpB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,MAAM;AAAA,MAC7B;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,wBAAwB;AAAA,QACtB,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,aAAa;AAAA,QACX,QAAU;AAAA,MACZ;AAAA,MACA,cAAc;AAAA,QACZ,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,MAAM;AAAA,MACvB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,oBAAoB;AAAA,QAClB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,OAAM,QAAO,KAAK;AAAA,MACnC;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,OAAM,KAAK;AAAA,MAC5B;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,iBAAiB;AAAA,QACf,QAAU;AAAA,QACV,YAAc,CAAC,IAAI;AAAA,MACrB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,cAAgB;AAAA,QAChB,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,QAChB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,mBAAmB;AAAA,QACjB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,qBAAqB;AAAA,QACnB,QAAU;AAAA,QACV,YAAc,CAAC,OAAO;AAAA,MACxB;AAAA,MACA,eAAe;AAAA,QACb,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,2BAA2B;AAAA,QACzB,QAAU;AAAA,QACV,YAAc,CAAC,KAAK;AAAA,MACtB;AAAA,MACA,uBAAuB;AAAA,QACrB,cAAgB;AAAA,MAClB;AAAA,MACA,qBAAqB;AAAA,QACnB,cAAgB;AAAA,MAClB;AAAA,IACF;AAAA;AAAA;;;ACt0QA;AAAA,kCAAAC,UAAAC,SAAA;AAAA;AAWA,IAAAA,QAAO,UAAU;AAAA;AAAA;;;ACXjB;AAAA,qCAAAC,UAAA;AAAA;AAcA,QAAI,KAAK;AACT,QAAI,UAAU,QAAQ,MAAM,EAAE;AAO9B,QAAI,sBAAsB;AAC1B,QAAI,mBAAmB;AAOvB,IAAAA,SAAQ,UAAU;AAClB,IAAAA,SAAQ,WAAW,EAAE,QAAQ,QAAQ;AACrC,IAAAA,SAAQ,cAAc;AACtB,IAAAA,SAAQ,YAAY;AACpB,IAAAA,SAAQ,aAAa,uBAAO,OAAO,IAAI;AACvC,IAAAA,SAAQ,SAAS;AACjB,IAAAA,SAAQ,QAAQ,uBAAO,OAAO,IAAI;AAGlC,iBAAaA,SAAQ,YAAYA,SAAQ,KAAK;AAS9C,aAAS,QAAS,MAAM;AACtB,UAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,eAAO;AAAA,MACT;AAGA,UAAI,QAAQ,oBAAoB,KAAK,IAAI;AACzC,UAAI,OAAO,SAAS,GAAG,MAAM,CAAC,EAAE,YAAY,CAAC;AAE7C,UAAI,QAAQ,KAAK,SAAS;AACxB,eAAO,KAAK;AAAA,MACd;AAGA,UAAI,SAAS,iBAAiB,KAAK,MAAM,CAAC,CAAC,GAAG;AAC5C,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AASA,aAAS,YAAa,KAAK;AAEzB,UAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,IAAI,QAAQ,GAAG,MAAM,KAC5BA,SAAQ,OAAO,GAAG,IAClB;AAEJ,UAAI,CAAC,MAAM;AACT,eAAO;AAAA,MACT;AAGA,UAAI,KAAK,QAAQ,SAAS,MAAM,IAAI;AAClC,YAAIC,WAAUD,SAAQ,QAAQ,IAAI;AAClC,YAAIC;AAAS,kBAAQ,eAAeA,SAAQ,YAAY;AAAA,MAC1D;AAEA,aAAO;AAAA,IACT;AASA,aAAS,UAAW,MAAM;AACxB,UAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,eAAO;AAAA,MACT;AAGA,UAAI,QAAQ,oBAAoB,KAAK,IAAI;AAGzC,UAAI,OAAO,SAASD,SAAQ,WAAW,MAAM,CAAC,EAAE,YAAY,CAAC;AAE7D,UAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ;AACzB,eAAO;AAAA,MACT;AAEA,aAAO,KAAK,CAAC;AAAA,IACf;AASA,aAAS,OAAQ,MAAM;AACrB,UAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,eAAO;AAAA,MACT;AAGA,UAAIE,aAAY,QAAQ,OAAO,IAAI,EAChC,YAAY,EACZ,OAAO,CAAC;AAEX,UAAI,CAACA,YAAW;AACd,eAAO;AAAA,MACT;AAEA,aAAOF,SAAQ,MAAME,UAAS,KAAK;AAAA,IACrC;AAOA,aAAS,aAAc,YAAY,OAAO;AAExC,UAAI,aAAa,CAAC,SAAS,UAAU,QAAW,MAAM;AAEtD,aAAO,KAAK,EAAE,EAAE,QAAQ,SAAS,gBAAiB,MAAM;AACtD,YAAI,OAAO,GAAG,IAAI;AAClB,YAAI,OAAO,KAAK;AAEhB,YAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ;AACzB;AAAA,QACF;AAGA,mBAAW,IAAI,IAAI;AAGnB,iBAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,cAAIA,aAAY,KAAK,CAAC;AAEtB,cAAI,MAAMA,UAAS,GAAG;AACpB,gBAAI,OAAO,WAAW,QAAQ,GAAG,MAAMA,UAAS,CAAC,EAAE,MAAM;AACzD,gBAAI,KAAK,WAAW,QAAQ,KAAK,MAAM;AAEvC,gBAAI,MAAMA,UAAS,MAAM,+BACtB,OAAO,MAAO,SAAS,MAAM,MAAMA,UAAS,EAAE,OAAO,GAAG,EAAE,MAAM,iBAAkB;AAEnF;AAAA,YACF;AAAA,UACF;AAGA,gBAAMA,UAAS,IAAI;AAAA,QACrB;AAAA,MACF,CAAC;AAAA,IACH;AAAA;AAAA;;;AC3LA;AAAA,uCAAAC,UAAAC,SAAA;AAAA;AAAA,IAAAA,QAAO,UAAU;AAOjB,aAAS,MAAM,IACf;AACE,UAAI,WAAW,OAAO,gBAAgB,aAClC,eAEA,OAAO,WAAW,YAAY,OAAO,QAAQ,YAAY,aACvD,QAAQ,WACR;AAGN,UAAI,UACJ;AACE,iBAAS,EAAE;AAAA,MACb,OAEA;AACE,mBAAW,IAAI,CAAC;AAAA,MAClB;AAAA,IACF;AAAA;AAAA;;;ACzBA;AAAA,uCAAAC,UAAAC,SAAA;AAAA;AAAA,QAAI,QAAQ;AAGZ,IAAAA,QAAO,UAAU;AASjB,aAAS,MAAM,UACf;AACE,UAAI,UAAU;AAGd,YAAM,WAAW;AAAE,kBAAU;AAAA,MAAM,CAAC;AAEpC,aAAO,SAAS,eAAe,KAAK,QACpC;AACE,YAAI,SACJ;AACE,mBAAS,KAAK,MAAM;AAAA,QACtB,OAEA;AACE,gBAAM,SAAS,oBACf;AACE,qBAAS,KAAK,MAAM;AAAA,UACtB,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;ACjCA;AAAA,uCAAAC,UAAAC,SAAA;AAAA;AACA,IAAAA,QAAO,UAAU;AAOjB,aAAS,MAAM,OACf;AACE,aAAO,KAAK,MAAM,IAAI,EAAE,QAAQ,MAAM,KAAK,KAAK,CAAC;AAGjD,YAAM,OAAO,CAAC;AAAA,IAChB;AAQA,aAAS,MAAM,KACf;AACE,UAAI,OAAO,KAAK,KAAK,GAAG,KAAK,YAC7B;AACE,aAAK,KAAK,GAAG,EAAE;AAAA,MACjB;AAAA,IACF;AAAA;AAAA;;;AC5BA;AAAA,yCAAAC,UAAAC,SAAA;AAAA;AAAA,QAAI,QAAQ;AAAZ,QACI,QAAQ;AAIZ,IAAAA,QAAO,UAAU;AAUjB,aAAS,QAAQ,MAAM,UAAU,OAAO,UACxC;AAEE,UAAI,MAAM,MAAM,WAAW,IAAI,MAAM,WAAW,EAAE,MAAM,KAAK,IAAI,MAAM;AAEvE,YAAM,KAAK,GAAG,IAAI,OAAO,UAAU,KAAK,KAAK,GAAG,GAAG,SAAS,OAAO,QACnE;AAGE,YAAI,EAAE,OAAO,MAAM,OACnB;AACE;AAAA,QACF;AAGA,eAAO,MAAM,KAAK,GAAG;AAErB,YAAI,OACJ;AAIE,gBAAM,KAAK;AAAA,QACb,OAEA;AACE,gBAAM,QAAQ,GAAG,IAAI;AAAA,QACvB;AAGA,iBAAS,OAAO,MAAM,OAAO;AAAA,MAC/B,CAAC;AAAA,IACH;AAWA,aAAS,OAAO,UAAU,KAAK,MAAM,UACrC;AACE,UAAI;AAGJ,UAAI,SAAS,UAAU,GACvB;AACE,kBAAU,SAAS,MAAM,MAAM,SAAS;AAAA,MAC1C,OAGA;AACE,kBAAU,SAAS,MAAM,KAAK,MAAM,SAAS;AAAA,MAC/C;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;;;AC1EA;AAAA,uCAAAC,UAAAC,SAAA;AAAA;AACA,IAAAA,QAAO,UAAU;AAWjB,aAAS,MAAM,MAAM,YACrB;AACE,UAAI,cAAc,CAAC,MAAM,QAAQ,IAAI,GACjC,YACF;AAAA,QACE,OAAW;AAAA,QACX,WAAW,eAAe,aAAa,OAAO,KAAK,IAAI,IAAI;AAAA,QAC3D,MAAW,CAAC;AAAA,QACZ,SAAW,cAAc,CAAC,IAAI,CAAC;AAAA,QAC/B,MAAW,cAAc,OAAO,KAAK,IAAI,EAAE,SAAS,KAAK;AAAA,MAC3D;AAGF,UAAI,YACJ;AAGE,kBAAU,UAAU,KAAK,cAAc,aAAa,SAAS,GAAG,GAChE;AACE,iBAAO,WAAW,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,QACpC,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,IACT;AAAA;AAAA;;;ACpCA;AAAA,4CAAAC,UAAAC,SAAA;AAAA;AAAA,QAAI,QAAQ;AAAZ,QACI,QAAQ;AAIZ,IAAAA,QAAO,UAAU;AAQjB,aAAS,WAAW,UACpB;AACE,UAAI,CAAC,OAAO,KAAK,KAAK,IAAI,EAAE,QAC5B;AACE;AAAA,MACF;AAGA,WAAK,QAAQ,KAAK;AAGlB,YAAM,IAAI;AAGV,YAAM,UAAU,MAAM,KAAK,OAAO;AAAA,IACpC;AAAA;AAAA;;;AC5BA;AAAA,sCAAAC,UAAAC,SAAA;AAAA;AAAA,QAAI,UAAa;AAAjB,QACI,YAAa;AADjB,QAEI,aAAa;AAIjB,IAAAA,QAAO,UAAU;AAUjB,aAAS,SAAS,MAAM,UAAU,UAClC;AACE,UAAI,QAAQ,UAAU,IAAI;AAE1B,aAAO,MAAM,SAAS,MAAM,WAAW,KAAK,MAAM,QAClD;AACE,gBAAQ,MAAM,UAAU,OAAO,SAAS,OAAO,QAC/C;AACE,cAAI,OACJ;AACE,qBAAS,OAAO,MAAM;AACtB;AAAA,UACF;AAGA,cAAI,OAAO,KAAK,MAAM,IAAI,EAAE,WAAW,GACvC;AACE,qBAAS,MAAM,MAAM,OAAO;AAC5B;AAAA,UACF;AAAA,QACF,CAAC;AAED,cAAM;AAAA,MACR;AAEA,aAAO,WAAW,KAAK,OAAO,QAAQ;AAAA,IACxC;AAAA;AAAA;;;AC1CA;AAAA,2CAAAC,UAAAC,SAAA;AAAA;AAAA,QAAI,UAAa;AAAjB,QACI,YAAa;AADjB,QAEI,aAAa;AAIjB,IAAAA,QAAO,UAAU;AAEjB,IAAAA,QAAO,QAAQ,YAAa;AAC5B,IAAAA,QAAO,QAAQ,aAAa;AAW5B,aAAS,cAAc,MAAM,UAAU,YAAY,UACnD;AACE,UAAI,QAAQ,UAAU,MAAM,UAAU;AAEtC,cAAQ,MAAM,UAAU,OAAO,SAAS,gBAAgB,OAAO,QAC/D;AACE,YAAI,OACJ;AACE,mBAAS,OAAO,MAAM;AACtB;AAAA,QACF;AAEA,cAAM;AAGN,YAAI,MAAM,SAAS,MAAM,WAAW,KAAK,MAAM,QAC/C;AACE,kBAAQ,MAAM,UAAU,OAAO,eAAe;AAC9C;AAAA,QACF;AAGA,iBAAS,MAAM,MAAM,OAAO;AAAA,MAC9B,CAAC;AAED,aAAO,WAAW,KAAK,OAAO,QAAQ;AAAA,IACxC;AAaA,aAAS,UAAU,GAAG,GACtB;AACE,aAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI;AAAA,IAClC;AASA,aAAS,WAAW,GAAG,GACvB;AACE,aAAO,KAAK,UAAU,GAAG,CAAC;AAAA,IAC5B;AAAA;AAAA;;;AC1EA;AAAA,oCAAAC,UAAAC,SAAA;AAAA;AAAA,QAAI,gBAAgB;AAGpB,IAAAA,QAAO,UAAU;AAUjB,aAAS,OAAO,MAAM,UAAU,UAChC;AACE,aAAO,cAAc,MAAM,UAAU,MAAM,QAAQ;AAAA,IACrD;AAAA;AAAA;;;AChBA;AAAA,mCAAAC,UAAAC,SAAA;AAAA;AAAA,IAAAA,QAAO,UACP;AAAA,MACE,UAAgB;AAAA,MAChB,QAAgB;AAAA,MAChB,eAAgB;AAAA,IAClB;AAAA;AAAA;;;ACLA;AAAA,2CAAAC,UAAAC,SAAA;AAAA;AACA,IAAAA,QAAO,UAAU,SAAS,KAAK,KAAK;AAElC,aAAO,KAAK,GAAG,EAAE,QAAQ,SAAS,MAClC;AACE,YAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;AAAA,MACnC,CAAC;AAED,aAAO;AAAA,IACT;AAAA;AAAA;;;ACTA;AAAA,4CAAAC,UAAAC,SAAA;AAAA;AAAA,QAAI,iBAAiB;AACrB,QAAIC,QAAO,QAAQ,MAAM;AACzB,QAAI,OAAO,QAAQ,MAAM;AACzB,QAAIC,QAAO,QAAQ,MAAM;AACzB,QAAIC,SAAQ,QAAQ,OAAO;AAC3B,QAAI,WAAW,QAAQ,KAAK,EAAE;AAC9B,QAAI,KAAK,QAAQ,IAAI;AACrB,QAAI,SAAS,QAAQ,QAAQ,EAAE;AAC/B,QAAI,OAAO;AACX,QAAI,WAAW;AACf,QAAI,WAAW;AAGf,IAAAH,QAAO,UAAUI;AAGjB,IAAAH,MAAK,SAASG,WAAU,cAAc;AAUtC,aAASA,UAAS,SAAS;AACzB,UAAI,EAAE,gBAAgBA,YAAW;AAC/B,eAAO,IAAIA,UAAS,OAAO;AAAA,MAC7B;AAEA,WAAK,kBAAkB;AACvB,WAAK,eAAe;AACpB,WAAK,mBAAmB,CAAC;AAEzB,qBAAe,KAAK,IAAI;AAExB,gBAAU,WAAW,CAAC;AACtB,eAAS,UAAU,SAAS;AAC1B,aAAK,MAAM,IAAI,QAAQ,MAAM;AAAA,MAC/B;AAAA,IACF;AAEA,IAAAA,UAAS,aAAa;AACtB,IAAAA,UAAS,uBAAuB;AAEhC,IAAAA,UAAS,UAAU,SAAS,SAAS,OAAO,OAAO,SAAS;AAE1D,gBAAU,WAAW,CAAC;AAGtB,UAAI,OAAO,WAAW,UAAU;AAC9B,kBAAU,EAAC,UAAU,QAAO;AAAA,MAC9B;AAEA,UAAIC,UAAS,eAAe,UAAU,OAAO,KAAK,IAAI;AAGtD,UAAI,OAAO,SAAS,UAAU;AAC5B,gBAAQ,KAAK;AAAA,MACf;AAGA,UAAIJ,MAAK,QAAQ,KAAK,GAAG;AAGvB,aAAK,OAAO,IAAI,MAAM,2BAA2B,CAAC;AAClD;AAAA,MACF;AAEA,UAAI,SAAS,KAAK,iBAAiB,OAAO,OAAO,OAAO;AACxD,UAAI,SAAS,KAAK,iBAAiB;AAEnC,MAAAI,QAAO,MAAM;AACb,MAAAA,QAAO,KAAK;AACZ,MAAAA,QAAO,MAAM;AAGb,WAAK,aAAa,QAAQ,OAAO,OAAO;AAAA,IAC1C;AAEA,IAAAD,UAAS,UAAU,eAAe,SAAS,QAAQ,OAAO,SAAS;AACjE,UAAI,cAAc;AAMlB,UAAI,QAAQ,eAAe,MAAM;AAC/B,uBAAe,CAAC,QAAQ;AAAA,MAC1B,WAAW,OAAO,SAAS,KAAK,GAAG;AACjC,sBAAc,MAAM;AAAA,MACtB,WAAW,OAAO,UAAU,UAAU;AACpC,sBAAc,OAAO,WAAW,KAAK;AAAA,MACvC;AAEA,WAAK,gBAAgB;AAGrB,WAAK,mBACH,OAAO,WAAW,MAAM,IACxBA,UAAS,WAAW;AAGtB,UAAI,CAAC,SAAW,CAAC,MAAM,QAAQ,EAAE,MAAM,YAAY,MAAM,eAAe,aAAa,MAAM,EAAE,iBAAiB,SAAU;AACtH;AAAA,MACF;AAGA,UAAI,CAAC,QAAQ,aAAa;AACxB,aAAK,iBAAiB,KAAK,KAAK;AAAA,MAClC;AAAA,IACF;AAEA,IAAAA,UAAS,UAAU,mBAAmB,SAAS,OAAO,UAAU;AAE9D,UAAI,MAAM,eAAe,IAAI,GAAG;AAS9B,YAAI,MAAM,OAAO,UAAa,MAAM,OAAO,YAAY,MAAM,SAAS,QAAW;AAK/E,mBAAS,MAAM,MAAM,MAAM,KAAK,MAAM,QAAQ,MAAM,QAAQ,EAAE;AAAA,QAGhE,OAAO;AAEL,aAAG,KAAK,MAAM,MAAM,SAAS,KAAK,MAAM;AAEtC,gBAAI;AAEJ,gBAAI,KAAK;AACP,uBAAS,GAAG;AACZ;AAAA,YACF;AAGA,uBAAW,KAAK,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AACpD,qBAAS,MAAM,QAAQ;AAAA,UACzB,CAAC;AAAA,QACH;AAAA,MAGF,WAAW,MAAM,eAAe,aAAa,GAAG;AAC9C,iBAAS,MAAM,CAAC,MAAM,QAAQ,gBAAgB,CAAC;AAAA,MAGjD,WAAW,MAAM,eAAe,YAAY,GAAG;AAE7C,cAAM,GAAG,YAAY,SAAS,UAAU;AACtC,gBAAM,MAAM;AACZ,mBAAS,MAAM,CAAC,SAAS,QAAQ,gBAAgB,CAAC;AAAA,QACpD,CAAC;AACD,cAAM,OAAO;AAAA,MAGf,OAAO;AACL,iBAAS,gBAAgB;AAAA,MAC3B;AAAA,IACF;AAEA,IAAAA,UAAS,UAAU,mBAAmB,SAAS,OAAO,OAAO,SAAS;AAIpE,UAAI,OAAO,QAAQ,UAAU,UAAU;AACrC,eAAO,QAAQ;AAAA,MACjB;AAEA,UAAI,qBAAqB,KAAK,uBAAuB,OAAO,OAAO;AACnE,UAAI,cAAc,KAAK,gBAAgB,OAAO,OAAO;AAErD,UAAI,WAAW;AACf,UAAI,UAAW;AAAA;AAAA,QAEb,uBAAuB,CAAC,aAAa,WAAW,QAAQ,GAAG,EAAE,OAAO,sBAAsB,CAAC,CAAC;AAAA;AAAA,QAE5F,gBAAgB,CAAC,EAAE,OAAO,eAAe,CAAC,CAAC;AAAA,MAC7C;AAGA,UAAI,OAAO,QAAQ,UAAU,UAAU;AACrC,iBAAS,SAAS,QAAQ,MAAM;AAAA,MAClC;AAEA,UAAI;AACJ,eAAS,QAAQ,SAAS;AACxB,YAAI,CAAC,QAAQ,eAAe,IAAI;AAAG;AACnC,iBAAS,QAAQ,IAAI;AAGrB,YAAI,UAAU,MAAM;AAClB;AAAA,QACF;AAGA,YAAI,CAAC,MAAM,QAAQ,MAAM,GAAG;AAC1B,mBAAS,CAAC,MAAM;AAAA,QAClB;AAGA,YAAI,OAAO,QAAQ;AACjB,sBAAY,OAAO,OAAO,OAAO,KAAK,IAAI,IAAIA,UAAS;AAAA,QACzD;AAAA,MACF;AAEA,aAAO,OAAO,KAAK,YAAY,IAAIA,UAAS,aAAa,WAAWA,UAAS;AAAA,IAC/E;AAEA,IAAAA,UAAS,UAAU,yBAAyB,SAAS,OAAO,SAAS;AAEnE,UAAI,UACA;AAGJ,UAAI,OAAO,QAAQ,aAAa,UAAU;AAExC,mBAAW,KAAK,UAAU,QAAQ,QAAQ,EAAE,QAAQ,OAAO,GAAG;AAAA,MAChE,WAAW,QAAQ,YAAY,MAAM,QAAQ,MAAM,MAAM;AAIvD,mBAAW,KAAK,SAAS,QAAQ,YAAY,MAAM,QAAQ,MAAM,IAAI;AAAA,MACvE,WAAW,MAAM,YAAY,MAAM,eAAe,aAAa,GAAG;AAEhE,mBAAW,KAAK,SAAS,MAAM,OAAO,aAAa,QAAQ,EAAE;AAAA,MAC/D;AAEA,UAAI,UAAU;AACZ,6BAAqB,eAAe,WAAW;AAAA,MACjD;AAEA,aAAO;AAAA,IACT;AAEA,IAAAA,UAAS,UAAU,kBAAkB,SAAS,OAAO,SAAS;AAG5D,UAAI,cAAc,QAAQ;AAG1B,UAAI,CAAC,eAAe,MAAM,MAAM;AAC9B,sBAAc,KAAK,OAAO,MAAM,IAAI;AAAA,MACtC;AAGA,UAAI,CAAC,eAAe,MAAM,MAAM;AAC9B,sBAAc,KAAK,OAAO,MAAM,IAAI;AAAA,MACtC;AAGA,UAAI,CAAC,eAAe,MAAM,YAAY,MAAM,eAAe,aAAa,GAAG;AACzE,sBAAc,MAAM,QAAQ,cAAc;AAAA,MAC5C;AAGA,UAAI,CAAC,gBAAgB,QAAQ,YAAY,QAAQ,WAAW;AAC1D,sBAAc,KAAK,OAAO,QAAQ,YAAY,QAAQ,QAAQ;AAAA,MAChE;AAGA,UAAI,CAAC,eAAe,OAAO,SAAS,UAAU;AAC5C,sBAAcA,UAAS;AAAA,MACzB;AAEA,aAAO;AAAA,IACT;AAEA,IAAAA,UAAS,UAAU,mBAAmB,WAAW;AAC/C,aAAO,SAAS,MAAM;AACpB,YAAI,SAASA,UAAS;AAEtB,YAAI,WAAY,KAAK,SAAS,WAAW;AACzC,YAAI,UAAU;AACZ,oBAAU,KAAK,cAAc;AAAA,QAC/B;AAEA,aAAK,MAAM;AAAA,MACb,EAAE,KAAK,IAAI;AAAA,IACb;AAEA,IAAAA,UAAS,UAAU,gBAAgB,WAAW;AAC5C,aAAO,OAAO,KAAK,YAAY,IAAI,OAAOA,UAAS;AAAA,IACrD;AAEA,IAAAA,UAAS,UAAU,aAAa,SAAS,aAAa;AACpD,UAAI;AACJ,UAAI,cAAc;AAAA,QAChB,gBAAgB,mCAAmC,KAAK,YAAY;AAAA,MACtE;AAEA,WAAK,UAAU,aAAa;AAC1B,YAAI,YAAY,eAAe,MAAM,GAAG;AACtC,sBAAY,OAAO,YAAY,CAAC,IAAI,YAAY,MAAM;AAAA,QACxD;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,IAAAA,UAAS,UAAU,cAAc,SAAS,UAAU;AAClD,WAAK,YAAY;AAAA,IACnB;AAEA,IAAAA,UAAS,UAAU,cAAc,WAAW;AAC1C,UAAI,CAAC,KAAK,WAAW;AACnB,aAAK,kBAAkB;AAAA,MACzB;AAEA,aAAO,KAAK;AAAA,IACd;AAEA,IAAAA,UAAS,UAAU,YAAY,WAAW;AACxC,UAAI,aAAa,IAAI,OAAO,MAAO,CAAE;AACrC,UAAI,WAAW,KAAK,YAAY;AAGhC,eAAS,IAAI,GAAG,MAAM,KAAK,SAAS,QAAQ,IAAI,KAAK,KAAK;AACxD,YAAI,OAAO,KAAK,SAAS,CAAC,MAAM,YAAY;AAG1C,cAAG,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,GAAG;AACpC,yBAAa,OAAO,OAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC;AAAA,UAC5D,OAAM;AACJ,yBAAa,OAAO,OAAQ,CAAC,YAAY,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;AAAA,UACzE;AAGA,cAAI,OAAO,KAAK,SAAS,CAAC,MAAM,YAAY,KAAK,SAAS,CAAC,EAAE,UAAW,GAAG,SAAS,SAAS,CAAE,MAAM,UAAU;AAC7G,yBAAa,OAAO,OAAQ,CAAC,YAAY,OAAO,KAAKA,UAAS,UAAU,CAAC,CAAE;AAAA,UAC7E;AAAA,QACF;AAAA,MACF;AAGA,aAAO,OAAO,OAAQ,CAAC,YAAY,OAAO,KAAK,KAAK,cAAc,CAAC,CAAC,CAAE;AAAA,IACxE;AAEA,IAAAA,UAAS,UAAU,oBAAoB,WAAW;AAGhD,UAAI,WAAW;AACf,eAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC3B,oBAAY,KAAK,MAAM,KAAK,OAAO,IAAI,EAAE,EAAE,SAAS,EAAE;AAAA,MACxD;AAEA,WAAK,YAAY;AAAA,IACnB;AAKA,IAAAA,UAAS,UAAU,gBAAgB,WAAW;AAC5C,UAAI,cAAc,KAAK,kBAAkB,KAAK;AAI9C,UAAI,KAAK,SAAS,QAAQ;AACxB,uBAAe,KAAK,cAAc,EAAE;AAAA,MACtC;AAGA,UAAI,CAAC,KAAK,eAAe,GAAG;AAI1B,aAAK,OAAO,IAAI,MAAM,oDAAoD,CAAC;AAAA,MAC7E;AAEA,aAAO;AAAA,IACT;AAKA,IAAAA,UAAS,UAAU,iBAAiB,WAAW;AAC7C,UAAI,iBAAiB;AAErB,UAAI,KAAK,iBAAiB,QAAQ;AAChC,yBAAiB;AAAA,MACnB;AAEA,aAAO;AAAA,IACT;AAEA,IAAAA,UAAS,UAAU,YAAY,SAAS,IAAI;AAC1C,UAAI,cAAc,KAAK,kBAAkB,KAAK;AAE9C,UAAI,KAAK,SAAS,QAAQ;AACxB,uBAAe,KAAK,cAAc,EAAE;AAAA,MACtC;AAEA,UAAI,CAAC,KAAK,iBAAiB,QAAQ;AACjC,gBAAQ,SAAS,GAAG,KAAK,MAAM,MAAM,WAAW,CAAC;AACjD;AAAA,MACF;AAEA,eAAS,SAAS,KAAK,kBAAkB,KAAK,kBAAkB,SAAS,KAAK,QAAQ;AACpF,YAAI,KAAK;AACP,aAAG,GAAG;AACN;AAAA,QACF;AAEA,eAAO,QAAQ,SAAS,QAAQ;AAC9B,yBAAe;AAAA,QACjB,CAAC;AAED,WAAG,MAAM,WAAW;AAAA,MACtB,CAAC;AAAA,IACH;AAEA,IAAAA,UAAS,UAAU,SAAS,SAAS,QAAQ,IAAI;AAC/C,UAAI,SACA,SACAE,YAAW,EAAC,QAAQ,OAAM;AAK9B,UAAI,OAAO,UAAU,UAAU;AAE7B,iBAAS,SAAS,MAAM;AACxB,kBAAU,SAAS;AAAA,UACjB,MAAM,OAAO;AAAA,UACb,MAAM,OAAO;AAAA,UACb,MAAM,OAAO;AAAA,UACb,UAAU,OAAO;AAAA,QACnB,GAAGA,SAAQ;AAAA,MAGb,OAAO;AAEL,kBAAU,SAAS,QAAQA,SAAQ;AAEnC,YAAI,CAAC,QAAQ,MAAM;AACjB,kBAAQ,OAAO,QAAQ,YAAY,WAAW,MAAM;AAAA,QACtD;AAAA,MACF;AAGA,cAAQ,UAAU,KAAK,WAAW,OAAO,OAAO;AAGhD,UAAI,QAAQ,YAAY,UAAU;AAChC,kBAAUH,OAAM,QAAQ,OAAO;AAAA,MACjC,OAAO;AACL,kBAAUD,MAAK,QAAQ,OAAO;AAAA,MAChC;AAGA,WAAK,UAAU,SAAS,KAAK,QAAQ;AACnC,YAAI,OAAO,QAAQ,kBAAkB;AACnC,eAAK,OAAO,GAAG;AACf;AAAA,QACF;AAGA,YAAI,QAAQ;AACV,kBAAQ,UAAU,kBAAkB,MAAM;AAAA,QAC5C;AAEA,aAAK,KAAK,OAAO;AACjB,YAAI,IAAI;AACN,cAAI;AAEJ,cAAI,WAAW,SAAU,OAAO,UAAU;AACxC,oBAAQ,eAAe,SAAS,QAAQ;AACxC,oBAAQ,eAAe,YAAY,UAAU;AAE7C,mBAAO,GAAG,KAAK,MAAM,OAAO,QAAQ;AAAA,UACtC;AAEA,uBAAa,SAAS,KAAK,MAAM,IAAI;AAErC,kBAAQ,GAAG,SAAS,QAAQ;AAC5B,kBAAQ,GAAG,YAAY,UAAU;AAAA,QACnC;AAAA,MACF,EAAE,KAAK,IAAI,CAAC;AAEZ,aAAO;AAAA,IACT;AAEA,IAAAE,UAAS,UAAU,SAAS,SAAS,KAAK;AACxC,UAAI,CAAC,KAAK,OAAO;AACf,aAAK,QAAQ;AACb,aAAK,MAAM;AACX,aAAK,KAAK,SAAS,GAAG;AAAA,MACxB;AAAA,IACF;AAEA,IAAAA,UAAS,UAAU,WAAW,WAAY;AACxC,aAAO;AAAA,IACT;AAAA;AAAA;;;ACpfA;AAAA,yCAAAG,UAAA;AAAA;AAEA,QAAI,WAAW,QAAQ,KAAK,EAAE;AAE9B,QAAI,gBAAgB;AAAA,MAClB,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,MACP,IAAI;AAAA,MACJ,KAAK;AAAA,IACP;AAEA,QAAI,iBAAiB,OAAO,UAAU,YAAY,SAAS,GAAG;AAC5D,aAAO,EAAE,UAAU,KAAK,UACtB,KAAK,QAAQ,GAAG,KAAK,SAAS,EAAE,MAAM,MAAM;AAAA,IAChD;AAOA,aAASC,gBAAeC,MAAK;AAC3B,UAAI,YAAY,OAAOA,SAAQ,WAAW,SAASA,IAAG,IAAIA,QAAO,CAAC;AAClE,UAAI,QAAQ,UAAU;AACtB,UAAI,WAAW,UAAU;AACzB,UAAI,OAAO,UAAU;AACrB,UAAI,OAAO,aAAa,YAAY,CAAC,YAAY,OAAO,UAAU,UAAU;AAC1E,eAAO;AAAA,MACT;AAEA,cAAQ,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC;AAG7B,iBAAW,SAAS,QAAQ,SAAS,EAAE;AACvC,aAAO,SAAS,IAAI,KAAK,cAAc,KAAK,KAAK;AACjD,UAAI,CAAC,YAAY,UAAU,IAAI,GAAG;AAChC,eAAO;AAAA,MACT;AAEA,UAAI,QACF,OAAO,gBAAgB,QAAQ,QAAQ,KACvC,OAAO,QAAQ,QAAQ,KACvB,OAAO,kBAAkB,KACzB,OAAO,WAAW;AACpB,UAAI,SAAS,MAAM,QAAQ,KAAK,MAAM,IAAI;AAExC,gBAAQ,QAAQ,QAAQ;AAAA,MAC1B;AACA,aAAO;AAAA,IACT;AAUA,aAAS,YAAY,UAAU,MAAM;AACnC,UAAI,YACD,OAAO,qBAAqB,KAAK,OAAO,UAAU,GAAG,YAAY;AACpE,UAAI,CAAC,UAAU;AACb,eAAO;AAAA,MACT;AACA,UAAI,aAAa,KAAK;AACpB,eAAO;AAAA,MACT;AAEA,aAAO,SAAS,MAAM,OAAO,EAAE,MAAM,SAAS,OAAO;AACnD,YAAI,CAAC,OAAO;AACV,iBAAO;AAAA,QACT;AACA,YAAI,cAAc,MAAM,MAAM,cAAc;AAC5C,YAAI,sBAAsB,cAAc,YAAY,CAAC,IAAI;AACzD,YAAI,kBAAkB,cAAc,SAAS,YAAY,CAAC,CAAC,IAAI;AAC/D,YAAI,mBAAmB,oBAAoB,MAAM;AAC/C,iBAAO;AAAA,QACT;AAEA,YAAI,CAAC,QAAQ,KAAK,mBAAmB,GAAG;AAEtC,iBAAO,aAAa;AAAA,QACtB;AAEA,YAAI,oBAAoB,OAAO,CAAC,MAAM,KAAK;AAEzC,gCAAsB,oBAAoB,MAAM,CAAC;AAAA,QACnD;AAEA,eAAO,CAAC,eAAe,KAAK,UAAU,mBAAmB;AAAA,MAC3D,CAAC;AAAA,IACH;AASA,aAAS,OAAO,KAAK;AACnB,aAAO,QAAQ,IAAI,IAAI,YAAY,CAAC,KAAK,QAAQ,IAAI,IAAI,YAAY,CAAC,KAAK;AAAA,IAC7E;AAEA,IAAAF,SAAQ,iBAAiBC;AAAA;AAAA;;;AC3GzB;AAAA,gDAAAE,UAAAC,SAAA;AAAA;AAIA,QAAI,IAAI;AACR,QAAI,IAAI,IAAI;AACZ,QAAI,IAAI,IAAI;AACZ,QAAI,IAAI,IAAI;AACZ,QAAI,IAAI,IAAI;AACZ,QAAI,IAAI,IAAI;AAgBZ,IAAAA,QAAO,UAAU,SAAS,KAAK,SAAS;AACtC,gBAAU,WAAW,CAAC;AACtB,UAAI,OAAO,OAAO;AAClB,UAAI,SAAS,YAAY,IAAI,SAAS,GAAG;AACvC,eAAO,MAAM,GAAG;AAAA,MAClB,WAAW,SAAS,YAAY,SAAS,GAAG,GAAG;AAC7C,eAAO,QAAQ,OAAO,QAAQ,GAAG,IAAI,SAAS,GAAG;AAAA,MACnD;AACA,YAAM,IAAI;AAAA,QACR,0DACE,KAAK,UAAU,GAAG;AAAA,MACtB;AAAA,IACF;AAUA,aAAS,MAAM,KAAK;AAClB,YAAM,OAAO,GAAG;AAChB,UAAI,IAAI,SAAS,KAAK;AACpB;AAAA,MACF;AACA,UAAI,QAAQ,mIAAmI;AAAA,QAC7I;AAAA,MACF;AACA,UAAI,CAAC,OAAO;AACV;AAAA,MACF;AACA,UAAI,IAAI,WAAW,MAAM,CAAC,CAAC;AAC3B,UAAI,QAAQ,MAAM,CAAC,KAAK,MAAM,YAAY;AAC1C,cAAQ,MAAM;AAAA,QACZ,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,IAAI;AAAA,QACb,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACX;AAAA,IACF;AAUA,aAAS,SAAS,IAAI;AACpB,UAAI,QAAQ,KAAK,IAAI,EAAE;AACvB,UAAI,SAAS,GAAG;AACd,eAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,MAC9B;AACA,UAAI,SAAS,GAAG;AACd,eAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,MAC9B;AACA,UAAI,SAAS,GAAG;AACd,eAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,MAC9B;AACA,UAAI,SAAS,GAAG;AACd,eAAO,KAAK,MAAM,KAAK,CAAC,IAAI;AAAA,MAC9B;AACA,aAAO,KAAK;AAAA,IACd;AAUA,aAAS,QAAQ,IAAI;AACnB,UAAI,QAAQ,KAAK,IAAI,EAAE;AACvB,UAAI,SAAS,GAAG;AACd,eAAO,OAAO,IAAI,OAAO,GAAG,KAAK;AAAA,MACnC;AACA,UAAI,SAAS,GAAG;AACd,eAAO,OAAO,IAAI,OAAO,GAAG,MAAM;AAAA,MACpC;AACA,UAAI,SAAS,GAAG;AACd,eAAO,OAAO,IAAI,OAAO,GAAG,QAAQ;AAAA,MACtC;AACA,UAAI,SAAS,GAAG;AACd,eAAO,OAAO,IAAI,OAAO,GAAG,QAAQ;AAAA,MACtC;AACA,aAAO,KAAK;AAAA,IACd;AAMA,aAAS,OAAO,IAAI,OAAO,GAAG,MAAM;AAClC,UAAI,WAAW,SAAS,IAAI;AAC5B,aAAO,KAAK,MAAM,KAAK,CAAC,IAAI,MAAM,QAAQ,WAAW,MAAM;AAAA,IAC7D;AAAA;AAAA;;;ACjKA;AAAA,qCAAAC,UAAAC,SAAA;AAAA;AAMA,aAAS,MAAM,KAAK;AACnB,kBAAY,QAAQ;AACpB,kBAAY,UAAU;AACtB,kBAAY,SAAS;AACrB,kBAAY,UAAU;AACtB,kBAAY,SAAS;AACrB,kBAAY,UAAU;AACtB,kBAAY,WAAW;AACvB,kBAAY,UAAU;AAEtB,aAAO,KAAK,GAAG,EAAE,QAAQ,SAAO;AAC/B,oBAAY,GAAG,IAAI,IAAI,GAAG;AAAA,MAC3B,CAAC;AAMD,kBAAY,QAAQ,CAAC;AACrB,kBAAY,QAAQ,CAAC;AAOrB,kBAAY,aAAa,CAAC;AAQ1B,eAAS,YAAY,WAAW;AAC/B,YAAI,OAAO;AAEX,iBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAC1C,kBAAS,QAAQ,KAAK,OAAQ,UAAU,WAAW,CAAC;AACpD,kBAAQ;AAAA,QACT;AAEA,eAAO,YAAY,OAAO,KAAK,IAAI,IAAI,IAAI,YAAY,OAAO,MAAM;AAAA,MACrE;AACA,kBAAY,cAAc;AAS1B,eAAS,YAAY,WAAW;AAC/B,YAAI;AACJ,YAAI,iBAAiB;AACrB,YAAI;AACJ,YAAI;AAEJ,iBAAS,SAAS,MAAM;AAEvB,cAAI,CAAC,MAAM,SAAS;AACnB;AAAA,UACD;AAEA,gBAAMC,QAAO;AAGb,gBAAM,OAAO,OAAO,oBAAI,KAAK,CAAC;AAC9B,gBAAM,KAAK,QAAQ,YAAY;AAC/B,UAAAA,MAAK,OAAO;AACZ,UAAAA,MAAK,OAAO;AACZ,UAAAA,MAAK,OAAO;AACZ,qBAAW;AAEX,eAAK,CAAC,IAAI,YAAY,OAAO,KAAK,CAAC,CAAC;AAEpC,cAAI,OAAO,KAAK,CAAC,MAAM,UAAU;AAEhC,iBAAK,QAAQ,IAAI;AAAA,UAClB;AAGA,cAAI,QAAQ;AACZ,eAAK,CAAC,IAAI,KAAK,CAAC,EAAE,QAAQ,iBAAiB,CAAC,OAAO,WAAW;AAE7D,gBAAI,UAAU,MAAM;AACnB,qBAAO;AAAA,YACR;AACA;AACA,kBAAM,YAAY,YAAY,WAAW,MAAM;AAC/C,gBAAI,OAAO,cAAc,YAAY;AACpC,oBAAM,MAAM,KAAK,KAAK;AACtB,sBAAQ,UAAU,KAAKA,OAAM,GAAG;AAGhC,mBAAK,OAAO,OAAO,CAAC;AACpB;AAAA,YACD;AACA,mBAAO;AAAA,UACR,CAAC;AAGD,sBAAY,WAAW,KAAKA,OAAM,IAAI;AAEtC,gBAAM,QAAQA,MAAK,OAAO,YAAY;AACtC,gBAAM,MAAMA,OAAM,IAAI;AAAA,QACvB;AAEA,cAAM,YAAY;AAClB,cAAM,YAAY,YAAY,UAAU;AACxC,cAAM,QAAQ,YAAY,YAAY,SAAS;AAC/C,cAAM,SAASC;AACf,cAAM,UAAU,YAAY;AAE5B,eAAO,eAAe,OAAO,WAAW;AAAA,UACvC,YAAY;AAAA,UACZ,cAAc;AAAA,UACd,KAAK,MAAM;AACV,gBAAI,mBAAmB,MAAM;AAC5B,qBAAO;AAAA,YACR;AACA,gBAAI,oBAAoB,YAAY,YAAY;AAC/C,gCAAkB,YAAY;AAC9B,6BAAe,YAAY,QAAQ,SAAS;AAAA,YAC7C;AAEA,mBAAO;AAAA,UACR;AAAA,UACA,KAAK,OAAK;AACT,6BAAiB;AAAA,UAClB;AAAA,QACD,CAAC;AAGD,YAAI,OAAO,YAAY,SAAS,YAAY;AAC3C,sBAAY,KAAK,KAAK;AAAA,QACvB;AAEA,eAAO;AAAA,MACR;AAEA,eAASA,QAAO,WAAW,WAAW;AACrC,cAAM,WAAW,YAAY,KAAK,aAAa,OAAO,cAAc,cAAc,MAAM,aAAa,SAAS;AAC9G,iBAAS,MAAM,KAAK;AACpB,eAAO;AAAA,MACR;AASA,eAAS,OAAO,YAAY;AAC3B,oBAAY,KAAK,UAAU;AAC3B,oBAAY,aAAa;AAEzB,oBAAY,QAAQ,CAAC;AACrB,oBAAY,QAAQ,CAAC;AAErB,YAAI;AACJ,cAAM,SAAS,OAAO,eAAe,WAAW,aAAa,IAAI,MAAM,QAAQ;AAC/E,cAAM,MAAM,MAAM;AAElB,aAAK,IAAI,GAAG,IAAI,KAAK,KAAK;AACzB,cAAI,CAAC,MAAM,CAAC,GAAG;AAEd;AAAA,UACD;AAEA,uBAAa,MAAM,CAAC,EAAE,QAAQ,OAAO,KAAK;AAE1C,cAAI,WAAW,CAAC,MAAM,KAAK;AAC1B,wBAAY,MAAM,KAAK,IAAI,OAAO,MAAM,WAAW,MAAM,CAAC,IAAI,GAAG,CAAC;AAAA,UACnE,OAAO;AACN,wBAAY,MAAM,KAAK,IAAI,OAAO,MAAM,aAAa,GAAG,CAAC;AAAA,UAC1D;AAAA,QACD;AAAA,MACD;AAQA,eAAS,UAAU;AAClB,cAAM,aAAa;AAAA,UAClB,GAAG,YAAY,MAAM,IAAI,WAAW;AAAA,UACpC,GAAG,YAAY,MAAM,IAAI,WAAW,EAAE,IAAI,eAAa,MAAM,SAAS;AAAA,QACvE,EAAE,KAAK,GAAG;AACV,oBAAY,OAAO,EAAE;AACrB,eAAO;AAAA,MACR;AASA,eAAS,QAAQ,MAAM;AACtB,YAAI,KAAK,KAAK,SAAS,CAAC,MAAM,KAAK;AAClC,iBAAO;AAAA,QACR;AAEA,YAAI;AACJ,YAAI;AAEJ,aAAK,IAAI,GAAG,MAAM,YAAY,MAAM,QAAQ,IAAI,KAAK,KAAK;AACzD,cAAI,YAAY,MAAM,CAAC,EAAE,KAAK,IAAI,GAAG;AACpC,mBAAO;AAAA,UACR;AAAA,QACD;AAEA,aAAK,IAAI,GAAG,MAAM,YAAY,MAAM,QAAQ,IAAI,KAAK,KAAK;AACzD,cAAI,YAAY,MAAM,CAAC,EAAE,KAAK,IAAI,GAAG;AACpC,mBAAO;AAAA,UACR;AAAA,QACD;AAEA,eAAO;AAAA,MACR;AASA,eAAS,YAAY,QAAQ;AAC5B,eAAO,OAAO,SAAS,EACrB,UAAU,GAAG,OAAO,SAAS,EAAE,SAAS,CAAC,EACzC,QAAQ,WAAW,GAAG;AAAA,MACzB;AASA,eAAS,OAAO,KAAK;AACpB,YAAI,eAAe,OAAO;AACzB,iBAAO,IAAI,SAAS,IAAI;AAAA,QACzB;AACA,eAAO;AAAA,MACR;AAMA,eAAS,UAAU;AAClB,gBAAQ,KAAK,uIAAuI;AAAA,MACrJ;AAEA,kBAAY,OAAO,YAAY,KAAK,CAAC;AAErC,aAAO;AAAA,IACR;AAEA,IAAAF,QAAO,UAAU;AAAA;AAAA;;;ACjRjB;AAAA,sCAAAG,UAAAC,SAAA;AAAA;AAMA,IAAAD,SAAQ,aAAa;AACrB,IAAAA,SAAQ,OAAO;AACf,IAAAA,SAAQ,OAAO;AACf,IAAAA,SAAQ,YAAY;AACpB,IAAAA,SAAQ,UAAU,aAAa;AAC/B,IAAAA,SAAQ,UAAW,uBAAM;AACxB,UAAI,SAAS;AAEb,aAAO,MAAM;AACZ,YAAI,CAAC,QAAQ;AACZ,mBAAS;AACT,kBAAQ,KAAK,uIAAuI;AAAA,QACrJ;AAAA,MACD;AAAA,IACD,GAAG;AAMH,IAAAA,SAAQ,SAAS;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAWA,aAAS,YAAY;AAIpB,UAAI,OAAO,WAAW,eAAe,OAAO,YAAY,OAAO,QAAQ,SAAS,cAAc,OAAO,QAAQ,SAAS;AACrH,eAAO;AAAA,MACR;AAGA,UAAI,OAAO,cAAc,eAAe,UAAU,aAAa,UAAU,UAAU,YAAY,EAAE,MAAM,uBAAuB,GAAG;AAChI,eAAO;AAAA,MACR;AAIA,aAAQ,OAAO,aAAa,eAAe,SAAS,mBAAmB,SAAS,gBAAgB,SAAS,SAAS,gBAAgB,MAAM;AAAA,MAEtI,OAAO,WAAW,eAAe,OAAO,YAAY,OAAO,QAAQ,WAAY,OAAO,QAAQ,aAAa,OAAO,QAAQ;AAAA;AAAA,MAG1H,OAAO,cAAc,eAAe,UAAU,aAAa,UAAU,UAAU,YAAY,EAAE,MAAM,gBAAgB,KAAK,SAAS,OAAO,IAAI,EAAE,KAAK;AAAA,MAEnJ,OAAO,cAAc,eAAe,UAAU,aAAa,UAAU,UAAU,YAAY,EAAE,MAAM,oBAAoB;AAAA,IAC1H;AAQA,aAAS,WAAW,MAAM;AACzB,WAAK,CAAC,KAAK,KAAK,YAAY,OAAO,MAClC,KAAK,aACJ,KAAK,YAAY,QAAQ,OAC1B,KAAK,CAAC,KACL,KAAK,YAAY,QAAQ,OAC1B,MAAMC,QAAO,QAAQ,SAAS,KAAK,IAAI;AAExC,UAAI,CAAC,KAAK,WAAW;AACpB;AAAA,MACD;AAEA,YAAM,IAAI,YAAY,KAAK;AAC3B,WAAK,OAAO,GAAG,GAAG,GAAG,gBAAgB;AAKrC,UAAI,QAAQ;AACZ,UAAI,QAAQ;AACZ,WAAK,CAAC,EAAE,QAAQ,eAAe,WAAS;AACvC,YAAI,UAAU,MAAM;AACnB;AAAA,QACD;AACA;AACA,YAAI,UAAU,MAAM;AAGnB,kBAAQ;AAAA,QACT;AAAA,MACD,CAAC;AAED,WAAK,OAAO,OAAO,GAAG,CAAC;AAAA,IACxB;AAUA,IAAAD,SAAQ,MAAM,QAAQ,SAAS,QAAQ,QAAQ,MAAM;AAAA,IAAC;AAQtD,aAAS,KAAK,YAAY;AACzB,UAAI;AACH,YAAI,YAAY;AACf,UAAAA,SAAQ,QAAQ,QAAQ,SAAS,UAAU;AAAA,QAC5C,OAAO;AACN,UAAAA,SAAQ,QAAQ,WAAW,OAAO;AAAA,QACnC;AAAA,MACD,SAAS,OAAO;AAAA,MAGhB;AAAA,IACD;AAQA,aAAS,OAAO;AACf,UAAI;AACJ,UAAI;AACH,YAAIA,SAAQ,QAAQ,QAAQ,OAAO;AAAA,MACpC,SAAS,OAAO;AAAA,MAGhB;AAGA,UAAI,CAAC,KAAK,OAAO,YAAY,eAAe,SAAS,SAAS;AAC7D,YAAI,QAAQ,IAAI;AAAA,MACjB;AAEA,aAAO;AAAA,IACR;AAaA,aAAS,eAAe;AACvB,UAAI;AAGH,eAAO;AAAA,MACR,SAAS,OAAO;AAAA,MAGhB;AAAA,IACD;AAEA,IAAAC,QAAO,UAAU,iBAAoBD,QAAO;AAE5C,QAAM,EAAC,WAAU,IAAIC,QAAO;AAM5B,eAAW,IAAI,SAAU,GAAG;AAC3B,UAAI;AACH,eAAO,KAAK,UAAU,CAAC;AAAA,MACxB,SAAS,OAAO;AACf,eAAO,iCAAiC,MAAM;AAAA,MAC/C;AAAA,IACD;AAAA;AAAA;;;AC5QA;AAAA,mCAAAC,UAAAC,SAAA;AAAA;AAEA,IAAAA,QAAO,UAAU,CAAC,MAAM,OAAO,QAAQ,SAAS;AAC/C,YAAM,SAAS,KAAK,WAAW,GAAG,IAAI,KAAM,KAAK,WAAW,IAAI,MAAM;AACtE,YAAM,WAAW,KAAK,QAAQ,SAAS,IAAI;AAC3C,YAAM,qBAAqB,KAAK,QAAQ,IAAI;AAC5C,aAAO,aAAa,OAAO,uBAAuB,MAAM,WAAW;AAAA,IACpE;AAAA;AAAA;;;ACPA;AAAA,yCAAAC,UAAAC,SAAA;AAAA;AACA,QAAM,KAAK,QAAQ,IAAI;AACvB,QAAM,MAAM,QAAQ,KAAK;AACzB,QAAM,UAAU;AAEhB,QAAM,EAAC,IAAG,IAAI;AAEd,QAAI;AACJ,QAAI,QAAQ,UAAU,KACrB,QAAQ,WAAW,KACnB,QAAQ,aAAa,KACrB,QAAQ,aAAa,GAAG;AACxB,mBAAa;AAAA,IACd,WAAW,QAAQ,OAAO,KACzB,QAAQ,QAAQ,KAChB,QAAQ,YAAY,KACpB,QAAQ,cAAc,GAAG;AACzB,mBAAa;AAAA,IACd;AAEA,QAAI,iBAAiB,KAAK;AACzB,UAAI,IAAI,gBAAgB,QAAQ;AAC/B,qBAAa;AAAA,MACd,WAAW,IAAI,gBAAgB,SAAS;AACvC,qBAAa;AAAA,MACd,OAAO;AACN,qBAAa,IAAI,YAAY,WAAW,IAAI,IAAI,KAAK,IAAI,SAAS,IAAI,aAAa,EAAE,GAAG,CAAC;AAAA,MAC1F;AAAA,IACD;AAEA,aAAS,eAAe,OAAO;AAC9B,UAAI,UAAU,GAAG;AAChB,eAAO;AAAA,MACR;AAEA,aAAO;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,QAAQ,SAAS;AAAA,QACjB,QAAQ,SAAS;AAAA,MAClB;AAAA,IACD;AAEA,aAAS,cAAc,YAAY,aAAa;AAC/C,UAAI,eAAe,GAAG;AACrB,eAAO;AAAA,MACR;AAEA,UAAI,QAAQ,WAAW,KACtB,QAAQ,YAAY,KACpB,QAAQ,iBAAiB,GAAG;AAC5B,eAAO;AAAA,MACR;AAEA,UAAI,QAAQ,WAAW,GAAG;AACzB,eAAO;AAAA,MACR;AAEA,UAAI,cAAc,CAAC,eAAe,eAAe,QAAW;AAC3D,eAAO;AAAA,MACR;AAEA,YAAM,MAAM,cAAc;AAE1B,UAAI,IAAI,SAAS,QAAQ;AACxB,eAAO;AAAA,MACR;AAEA,UAAI,QAAQ,aAAa,SAAS;AAGjC,cAAM,YAAY,GAAG,QAAQ,EAAE,MAAM,GAAG;AACxC,YACC,OAAO,UAAU,CAAC,CAAC,KAAK,MACxB,OAAO,UAAU,CAAC,CAAC,KAAK,OACvB;AACD,iBAAO,OAAO,UAAU,CAAC,CAAC,KAAK,QAAQ,IAAI;AAAA,QAC5C;AAEA,eAAO;AAAA,MACR;AAEA,UAAI,QAAQ,KAAK;AAChB,YAAI,CAAC,UAAU,YAAY,YAAY,aAAa,kBAAkB,WAAW,EAAE,KAAK,UAAQ,QAAQ,GAAG,KAAK,IAAI,YAAY,YAAY;AAC3I,iBAAO;AAAA,QACR;AAEA,eAAO;AAAA,MACR;AAEA,UAAI,sBAAsB,KAAK;AAC9B,eAAO,gCAAgC,KAAK,IAAI,gBAAgB,IAAI,IAAI;AAAA,MACzE;AAEA,UAAI,IAAI,cAAc,aAAa;AAClC,eAAO;AAAA,MACR;AAEA,UAAI,kBAAkB,KAAK;AAC1B,cAAM,UAAU,UAAU,IAAI,wBAAwB,IAAI,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE;AAE3E,gBAAQ,IAAI,cAAc;AAAA,UACzB,KAAK;AACJ,mBAAO,WAAW,IAAI,IAAI;AAAA,UAC3B,KAAK;AACJ,mBAAO;AAAA,QAET;AAAA,MACD;AAEA,UAAI,iBAAiB,KAAK,IAAI,IAAI,GAAG;AACpC,eAAO;AAAA,MACR;AAEA,UAAI,8DAA8D,KAAK,IAAI,IAAI,GAAG;AACjF,eAAO;AAAA,MACR;AAEA,UAAI,eAAe,KAAK;AACvB,eAAO;AAAA,MACR;AAEA,aAAO;AAAA,IACR;AAEA,aAAS,gBAAgBC,SAAQ;AAChC,YAAM,QAAQ,cAAcA,SAAQA,WAAUA,QAAO,KAAK;AAC1D,aAAO,eAAe,KAAK;AAAA,IAC5B;AAEA,IAAAD,QAAO,UAAU;AAAA,MAChB,eAAe;AAAA,MACf,QAAQ,eAAe,cAAc,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;AAAA,MACzD,QAAQ,eAAe,cAAc,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;AAAA,IAC1D;AAAA;AAAA;;;ACtIA;AAAA,mCAAAE,UAAAC,SAAA;AAAA;AAIA,QAAM,MAAM,QAAQ,KAAK;AACzB,QAAMC,QAAO,QAAQ,MAAM;AAM3B,IAAAF,SAAQ,OAAO;AACf,IAAAA,SAAQ,MAAM;AACd,IAAAA,SAAQ,aAAa;AACrB,IAAAA,SAAQ,OAAO;AACf,IAAAA,SAAQ,OAAO;AACf,IAAAA,SAAQ,YAAY;AACpB,IAAAA,SAAQ,UAAUE,MAAK;AAAA,MACtB,MAAM;AAAA,MAAC;AAAA,MACP;AAAA,IACD;AAMA,IAAAF,SAAQ,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAElC,QAAI;AAGH,YAAM,gBAAgB;AAEtB,UAAI,kBAAkB,cAAc,UAAU,eAAe,SAAS,GAAG;AACxE,QAAAA,SAAQ,SAAS;AAAA,UAChB;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA,MACD;AAAA,IACD,SAAS,OAAO;AAAA,IAEhB;AAQA,IAAAA,SAAQ,cAAc,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,SAAO;AAC5D,aAAO,WAAW,KAAK,GAAG;AAAA,IAC3B,CAAC,EAAE,OAAO,CAAC,KAAK,QAAQ;AAEvB,YAAM,OAAO,IACX,UAAU,CAAC,EACX,YAAY,EACZ,QAAQ,aAAa,CAAC,GAAG,MAAM;AAC/B,eAAO,EAAE,YAAY;AAAA,MACtB,CAAC;AAGF,UAAI,MAAM,QAAQ,IAAI,GAAG;AACzB,UAAI,2BAA2B,KAAK,GAAG,GAAG;AACzC,cAAM;AAAA,MACP,WAAW,6BAA6B,KAAK,GAAG,GAAG;AAClD,cAAM;AAAA,MACP,WAAW,QAAQ,QAAQ;AAC1B,cAAM;AAAA,MACP,OAAO;AACN,cAAM,OAAO,GAAG;AAAA,MACjB;AAEA,UAAI,IAAI,IAAI;AACZ,aAAO;AAAA,IACR,GAAG,CAAC,CAAC;AAML,aAAS,YAAY;AACpB,aAAO,YAAYA,SAAQ,cAC1B,QAAQA,SAAQ,YAAY,MAAM,IAClC,IAAI,OAAO,QAAQ,OAAO,EAAE;AAAA,IAC9B;AAQA,aAAS,WAAW,MAAM;AACzB,YAAM,EAAC,WAAW,MAAM,WAAAG,WAAS,IAAI;AAErC,UAAIA,YAAW;AACd,cAAM,IAAI,KAAK;AACf,cAAM,YAAY,YAAc,IAAI,IAAI,IAAI,SAAS;AACrD,cAAM,SAAS,KAAK,SAAS,MAAM,IAAI;AAEvC,aAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE,MAAM,IAAI,EAAE,KAAK,OAAO,MAAM;AACzD,aAAK,KAAK,YAAY,OAAOF,QAAO,QAAQ,SAAS,KAAK,IAAI,IAAI,SAAW;AAAA,MAC9E,OAAO;AACN,aAAK,CAAC,IAAI,QAAQ,IAAI,OAAO,MAAM,KAAK,CAAC;AAAA,MAC1C;AAAA,IACD;AAEA,aAAS,UAAU;AAClB,UAAID,SAAQ,YAAY,UAAU;AACjC,eAAO;AAAA,MACR;AACA,cAAO,oBAAI,KAAK,GAAE,YAAY,IAAI;AAAA,IACnC;AAMA,aAAS,OAAO,MAAM;AACrB,aAAO,QAAQ,OAAO,MAAME,MAAK,OAAO,GAAG,IAAI,IAAI,IAAI;AAAA,IACxD;AAQA,aAAS,KAAK,YAAY;AACzB,UAAI,YAAY;AACf,gBAAQ,IAAI,QAAQ;AAAA,MACrB,OAAO;AAGN,eAAO,QAAQ,IAAI;AAAA,MACpB;AAAA,IACD;AASA,aAAS,OAAO;AACf,aAAO,QAAQ,IAAI;AAAA,IACpB;AASA,aAAS,KAAK,OAAO;AACpB,YAAM,cAAc,CAAC;AAErB,YAAM,OAAO,OAAO,KAAKF,SAAQ,WAAW;AAC5C,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACrC,cAAM,YAAY,KAAK,CAAC,CAAC,IAAIA,SAAQ,YAAY,KAAK,CAAC,CAAC;AAAA,MACzD;AAAA,IACD;AAEA,IAAAC,QAAO,UAAU,iBAAoBD,QAAO;AAE5C,QAAM,EAAC,WAAU,IAAIC,QAAO;AAM5B,eAAW,IAAI,SAAU,GAAG;AAC3B,WAAK,YAAY,SAAS,KAAK;AAC/B,aAAOC,MAAK,QAAQ,GAAG,KAAK,WAAW,EACrC,MAAM,IAAI,EACV,IAAI,SAAO,IAAI,KAAK,CAAC,EACrB,KAAK,GAAG;AAAA,IACX;AAMA,eAAW,IAAI,SAAU,GAAG;AAC3B,WAAK,YAAY,SAAS,KAAK;AAC/B,aAAOA,MAAK,QAAQ,GAAG,KAAK,WAAW;AAAA,IACxC;AAAA;AAAA;;;ACtQA;AAAA,oCAAAE,UAAAC,SAAA;AAAA;AAKA,QAAI,OAAO,YAAY,eAAe,QAAQ,SAAS,cAAc,QAAQ,YAAY,QAAQ,QAAQ,QAAQ;AAChH,MAAAA,QAAO,UAAU;AAAA,IAClB,OAAO;AACN,MAAAA,QAAO,UAAU;AAAA,IAClB;AAAA;AAAA;;;ACTA;AAAA,2CAAAC,UAAAC,SAAA;AAAA;AAAA,QAAI;AAEJ,IAAAA,QAAO,UAAU,WAAY;AAC3B,UAAI,CAAC,OAAO;AACV,YAAI;AAEF,kBAAQ,cAAiB,kBAAkB;AAAA,QAC7C,SACO,OAAO;AAAA,QAAQ;AACtB,YAAI,OAAO,UAAU,YAAY;AAC/B,kBAAQ,WAAY;AAAA,UAAQ;AAAA,QAC9B;AAAA,MACF;AACA,YAAM,MAAM,MAAM,SAAS;AAAA,IAC7B;AAAA;AAAA;;;ACdA;AAAA,2CAAAC,UAAAC,SAAA;AAAA;AAAA,QAAIC,OAAM,QAAQ,KAAK;AACvB,QAAIC,OAAMD,KAAI;AACd,QAAIE,QAAO,QAAQ,MAAM;AACzB,QAAIC,SAAQ,QAAQ,OAAO;AAC3B,QAAI,WAAW,QAAQ,QAAQ,EAAE;AACjC,QAAI,SAAS,QAAQ,QAAQ;AAC7B,QAAI,QAAQ;AAGZ,QAAI,eAAe;AACnB,QAAI;AACF,aAAO,IAAIF,KAAI,CAAC;AAAA,IAClB,SACO,OAAO;AACZ,qBAAe,MAAM,SAAS;AAAA,IAChC;AAGA,QAAI,qBAAqB;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAGA,QAAI,SAAS,CAAC,SAAS,WAAW,WAAW,SAAS,UAAU,SAAS;AACzE,QAAI,gBAAgB,uBAAO,OAAO,IAAI;AACtC,WAAO,QAAQ,SAAU,OAAO;AAC9B,oBAAc,KAAK,IAAI,SAAU,MAAM,MAAM,MAAM;AACjD,aAAK,cAAc,KAAK,OAAO,MAAM,MAAM,IAAI;AAAA,MACjD;AAAA,IACF,CAAC;AAGD,QAAI,kBAAkB;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,QAAI,mBAAmB;AAAA,MACrB;AAAA,MACA;AAAA,IACF;AACA,QAAI,wBAAwB;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,QAAI,6BAA6B;AAAA,MAC/B;AAAA,MACA;AAAA,IACF;AACA,QAAI,qBAAqB;AAAA,MACvB;AAAA,MACA;AAAA,IACF;AAGA,QAAI,UAAU,SAAS,UAAU,WAAWG;AAG5C,aAAS,oBAAoB,SAAS,kBAAkB;AAEtD,eAAS,KAAK,IAAI;AAClB,WAAK,iBAAiB,OAAO;AAC7B,WAAK,WAAW;AAChB,WAAK,SAAS;AACd,WAAK,UAAU;AACf,WAAK,iBAAiB;AACtB,WAAK,aAAa,CAAC;AACnB,WAAK,qBAAqB;AAC1B,WAAK,sBAAsB,CAAC;AAG5B,UAAI,kBAAkB;AACpB,aAAK,GAAG,YAAY,gBAAgB;AAAA,MACtC;AAGA,UAAIC,QAAO;AACX,WAAK,oBAAoB,SAAU,UAAU;AAC3C,YAAI;AACF,UAAAA,MAAK,iBAAiB,QAAQ;AAAA,QAChC,SACO,OAAO;AACZ,UAAAA,MAAK,KAAK,SAAS,iBAAiB,mBAClC,QAAQ,IAAI,iBAAiB,EAAE,MAAa,CAAC,CAAC;AAAA,QAClD;AAAA,MACF;AAGA,WAAK,gBAAgB;AAAA,IACvB;AACA,wBAAoB,YAAY,OAAO,OAAO,SAAS,SAAS;AAEhE,wBAAoB,UAAU,QAAQ,WAAY;AAChD,qBAAe,KAAK,eAAe;AACnC,WAAK,gBAAgB,MAAM;AAC3B,WAAK,KAAK,OAAO;AAAA,IACnB;AAEA,wBAAoB,UAAU,UAAU,SAAU,OAAO;AACvD,qBAAe,KAAK,iBAAiB,KAAK;AAC1C,cAAQ,KAAK,MAAM,KAAK;AACxB,aAAO;AAAA,IACT;AAGA,wBAAoB,UAAU,QAAQ,SAAU,MAAM,UAAU,UAAU;AAExE,UAAI,KAAK,SAAS;AAChB,cAAM,IAAI,mBAAmB;AAAA,MAC/B;AAGA,UAAI,CAACC,UAAS,IAAI,KAAK,CAACC,UAAS,IAAI,GAAG;AACtC,cAAM,IAAI,UAAU,+CAA+C;AAAA,MACrE;AACA,UAAIC,YAAW,QAAQ,GAAG;AACxB,mBAAW;AACX,mBAAW;AAAA,MACb;AAIA,UAAI,KAAK,WAAW,GAAG;AACrB,YAAI,UAAU;AACZ,mBAAS;AAAA,QACX;AACA;AAAA,MACF;AAEA,UAAI,KAAK,qBAAqB,KAAK,UAAU,KAAK,SAAS,eAAe;AACxE,aAAK,sBAAsB,KAAK;AAChC,aAAK,oBAAoB,KAAK,EAAE,MAAY,SAAmB,CAAC;AAChE,aAAK,gBAAgB,MAAM,MAAM,UAAU,QAAQ;AAAA,MACrD,OAEK;AACH,aAAK,KAAK,SAAS,IAAI,2BAA2B,CAAC;AACnD,aAAK,MAAM;AAAA,MACb;AAAA,IACF;AAGA,wBAAoB,UAAU,MAAM,SAAU,MAAM,UAAU,UAAU;AAEtE,UAAIA,YAAW,IAAI,GAAG;AACpB,mBAAW;AACX,eAAO,WAAW;AAAA,MACpB,WACSA,YAAW,QAAQ,GAAG;AAC7B,mBAAW;AACX,mBAAW;AAAA,MACb;AAGA,UAAI,CAAC,MAAM;AACT,aAAK,SAAS,KAAK,UAAU;AAC7B,aAAK,gBAAgB,IAAI,MAAM,MAAM,QAAQ;AAAA,MAC/C,OACK;AACH,YAAIH,QAAO;AACX,YAAI,iBAAiB,KAAK;AAC1B,aAAK,MAAM,MAAM,UAAU,WAAY;AACrC,UAAAA,MAAK,SAAS;AACd,yBAAe,IAAI,MAAM,MAAM,QAAQ;AAAA,QACzC,CAAC;AACD,aAAK,UAAU;AAAA,MACjB;AAAA,IACF;AAGA,wBAAoB,UAAU,YAAY,SAAU,MAAM,OAAO;AAC/D,WAAK,SAAS,QAAQ,IAAI,IAAI;AAC9B,WAAK,gBAAgB,UAAU,MAAM,KAAK;AAAA,IAC5C;AAGA,wBAAoB,UAAU,eAAe,SAAU,MAAM;AAC3D,aAAO,KAAK,SAAS,QAAQ,IAAI;AACjC,WAAK,gBAAgB,aAAa,IAAI;AAAA,IACxC;AAGA,wBAAoB,UAAU,aAAa,SAAU,OAAO,UAAU;AACpE,UAAIA,QAAO;AAGX,eAAS,iBAAiB,QAAQ;AAChC,eAAO,WAAW,KAAK;AACvB,eAAO,eAAe,WAAW,OAAO,OAAO;AAC/C,eAAO,YAAY,WAAW,OAAO,OAAO;AAAA,MAC9C;AAGA,eAAS,WAAW,QAAQ;AAC1B,YAAIA,MAAK,UAAU;AACjB,uBAAaA,MAAK,QAAQ;AAAA,QAC5B;AACA,QAAAA,MAAK,WAAW,WAAW,WAAY;AACrC,UAAAA,MAAK,KAAK,SAAS;AACnB,qBAAW;AAAA,QACb,GAAG,KAAK;AACR,yBAAiB,MAAM;AAAA,MACzB;AAGA,eAAS,aAAa;AAEpB,YAAIA,MAAK,UAAU;AACjB,uBAAaA,MAAK,QAAQ;AAC1B,UAAAA,MAAK,WAAW;AAAA,QAClB;AAGA,QAAAA,MAAK,eAAe,SAAS,UAAU;AACvC,QAAAA,MAAK,eAAe,SAAS,UAAU;AACvC,QAAAA,MAAK,eAAe,YAAY,UAAU;AAC1C,QAAAA,MAAK,eAAe,SAAS,UAAU;AACvC,YAAI,UAAU;AACZ,UAAAA,MAAK,eAAe,WAAW,QAAQ;AAAA,QACzC;AACA,YAAI,CAACA,MAAK,QAAQ;AAChB,UAAAA,MAAK,gBAAgB,eAAe,UAAU,UAAU;AAAA,QAC1D;AAAA,MACF;AAGA,UAAI,UAAU;AACZ,aAAK,GAAG,WAAW,QAAQ;AAAA,MAC7B;AAGA,UAAI,KAAK,QAAQ;AACf,mBAAW,KAAK,MAAM;AAAA,MACxB,OACK;AACH,aAAK,gBAAgB,KAAK,UAAU,UAAU;AAAA,MAChD;AAGA,WAAK,GAAG,UAAU,gBAAgB;AAClC,WAAK,GAAG,SAAS,UAAU;AAC3B,WAAK,GAAG,SAAS,UAAU;AAC3B,WAAK,GAAG,YAAY,UAAU;AAC9B,WAAK,GAAG,SAAS,UAAU;AAE3B,aAAO;AAAA,IACT;AAGA;AAAA,MACE;AAAA,MAAgB;AAAA,MAChB;AAAA,MAAc;AAAA,IAChB,EAAE,QAAQ,SAAU,QAAQ;AAC1B,0BAAoB,UAAU,MAAM,IAAI,SAAU,GAAG,GAAG;AACtD,eAAO,KAAK,gBAAgB,MAAM,EAAE,GAAG,CAAC;AAAA,MAC1C;AAAA,IACF,CAAC;AAGD,KAAC,WAAW,cAAc,QAAQ,EAAE,QAAQ,SAAU,UAAU;AAC9D,aAAO,eAAe,oBAAoB,WAAW,UAAU;AAAA,QAC7D,KAAK,WAAY;AAAE,iBAAO,KAAK,gBAAgB,QAAQ;AAAA,QAAG;AAAA,MAC5D,CAAC;AAAA,IACH,CAAC;AAED,wBAAoB,UAAU,mBAAmB,SAAU,SAAS;AAElE,UAAI,CAAC,QAAQ,SAAS;AACpB,gBAAQ,UAAU,CAAC;AAAA,MACrB;AAKA,UAAI,QAAQ,MAAM;AAEhB,YAAI,CAAC,QAAQ,UAAU;AACrB,kBAAQ,WAAW,QAAQ;AAAA,QAC7B;AACA,eAAO,QAAQ;AAAA,MACjB;AAGA,UAAI,CAAC,QAAQ,YAAY,QAAQ,MAAM;AACrC,YAAI,YAAY,QAAQ,KAAK,QAAQ,GAAG;AACxC,YAAI,YAAY,GAAG;AACjB,kBAAQ,WAAW,QAAQ;AAAA,QAC7B,OACK;AACH,kBAAQ,WAAW,QAAQ,KAAK,UAAU,GAAG,SAAS;AACtD,kBAAQ,SAAS,QAAQ,KAAK,UAAU,SAAS;AAAA,QACnD;AAAA,MACF;AAAA,IACF;AAIA,wBAAoB,UAAU,kBAAkB,WAAY;AAE1D,UAAI,WAAW,KAAK,SAAS;AAC7B,UAAI,iBAAiB,KAAK,SAAS,gBAAgB,QAAQ;AAC3D,UAAI,CAAC,gBAAgB;AACnB,cAAM,IAAI,UAAU,0BAA0B,QAAQ;AAAA,MACxD;AAIA,UAAI,KAAK,SAAS,QAAQ;AACxB,YAAI,SAAS,SAAS,MAAM,GAAG,EAAE;AACjC,aAAK,SAAS,QAAQ,KAAK,SAAS,OAAO,MAAM;AAAA,MACnD;AAGA,UAAI,UAAU,KAAK,kBACb,eAAe,QAAQ,KAAK,UAAU,KAAK,iBAAiB;AAClE,cAAQ,gBAAgB;AACxB,eAAS,SAAS,QAAQ;AACxB,gBAAQ,GAAG,OAAO,cAAc,KAAK,CAAC;AAAA,MACxC;AAIA,WAAK,cAAc,MAAM,KAAK,KAAK,SAAS,IAAI,IAC9CL,KAAI,OAAO,KAAK,QAAQ;AAAA;AAAA;AAAA,QAGxB,KAAK,SAAS;AAAA;AAIhB,UAAI,KAAK,aAAa;AAEpB,YAAI,IAAI;AACR,YAAIK,QAAO;AACX,YAAI,UAAU,KAAK;AACnB,SAAC,SAAS,UAAU,OAAO;AAGzB,cAAI,YAAYA,MAAK,iBAAiB;AAGpC,gBAAI,OAAO;AACT,cAAAA,MAAK,KAAK,SAAS,KAAK;AAAA,YAC1B,WAES,IAAI,QAAQ,QAAQ;AAC3B,kBAAI,SAAS,QAAQ,GAAG;AAExB,kBAAI,CAAC,QAAQ,UAAU;AACrB,wBAAQ,MAAM,OAAO,MAAM,OAAO,UAAU,SAAS;AAAA,cACvD;AAAA,YACF,WAESA,MAAK,QAAQ;AACpB,sBAAQ,IAAI;AAAA,YACd;AAAA,UACF;AAAA,QACF,GAAE;AAAA,MACJ;AAAA,IACF;AAGA,wBAAoB,UAAU,mBAAmB,SAAU,UAAU;AAEnE,UAAI,aAAa,SAAS;AAC1B,UAAI,KAAK,SAAS,gBAAgB;AAChC,aAAK,WAAW,KAAK;AAAA,UACnB,KAAK,KAAK;AAAA,UACV,SAAS,SAAS;AAAA,UAClB;AAAA,QACF,CAAC;AAAA,MACH;AAUA,UAAI,WAAW,SAAS,QAAQ;AAChC,UAAI,CAAC,YAAY,KAAK,SAAS,oBAAoB,SAC/C,aAAa,OAAO,cAAc,KAAK;AACzC,iBAAS,cAAc,KAAK;AAC5B,iBAAS,YAAY,KAAK;AAC1B,aAAK,KAAK,YAAY,QAAQ;AAG9B,aAAK,sBAAsB,CAAC;AAC5B;AAAA,MACF;AAGA,qBAAe,KAAK,eAAe;AAEnC,eAAS,QAAQ;AAIjB,UAAI,EAAE,KAAK,iBAAiB,KAAK,SAAS,cAAc;AACtD,cAAM,IAAI,sBAAsB;AAAA,MAClC;AAGA,UAAI;AACJ,UAAI,iBAAiB,KAAK,SAAS;AACnC,UAAI,gBAAgB;AAClB,yBAAiB,OAAO,OAAO;AAAA;AAAA,UAE7B,MAAM,SAAS,IAAI,UAAU,MAAM;AAAA,QACrC,GAAG,KAAK,SAAS,OAAO;AAAA,MAC1B;AAMA,UAAI,SAAS,KAAK,SAAS;AAC3B,WAAK,eAAe,OAAO,eAAe,QAAQ,KAAK,SAAS,WAAW;AAAA;AAAA;AAAA;AAAA,MAKtE,eAAe,OAAQ,CAAC,iBAAiB,KAAK,KAAK,SAAS,MAAM,GAAG;AACxE,aAAK,SAAS,SAAS;AAEvB,aAAK,sBAAsB,CAAC;AAC5B,8BAAsB,cAAc,KAAK,SAAS,OAAO;AAAA,MAC3D;AAGA,UAAI,oBAAoB,sBAAsB,WAAW,KAAK,SAAS,OAAO;AAG9E,UAAI,kBAAkB,SAAS,KAAK,WAAW;AAC/C,UAAI,cAAc,qBAAqB,gBAAgB;AACvD,UAAI,aAAa,QAAQ,KAAK,QAAQ,IAAI,KAAK,cAC7CL,KAAI,OAAO,OAAO,OAAO,iBAAiB,EAAE,MAAM,YAAY,CAAC,CAAC;AAGlE,UAAI,cAAc,WAAW,UAAU,UAAU;AACjD,YAAM,kBAAkB,YAAY,IAAI;AACxC,WAAK,cAAc;AACnB,sBAAgB,aAAa,KAAK,QAAQ;AAI1C,UAAI,YAAY,aAAa,gBAAgB,YAC1C,YAAY,aAAa,YACzB,YAAY,SAAS,eACrB,CAAC,YAAY,YAAY,MAAM,WAAW,GAAG;AAC9C,8BAAsB,+BAA+B,KAAK,SAAS,OAAO;AAAA,MAC5E;AAGA,UAAIQ,YAAW,cAAc,GAAG;AAC9B,YAAI,kBAAkB;AAAA,UACpB,SAAS,SAAS;AAAA,UAClB;AAAA,QACF;AACA,YAAI,iBAAiB;AAAA,UACnB,KAAK;AAAA,UACL;AAAA,UACA,SAAS;AAAA,QACX;AACA,uBAAe,KAAK,UAAU,iBAAiB,cAAc;AAC7D,aAAK,iBAAiB,KAAK,QAAQ;AAAA,MACrC;AAGA,WAAK,gBAAgB;AAAA,IACvB;AAGA,aAAS,KAAK,WAAW;AAEvB,UAAIV,WAAU;AAAA,QACZ,cAAc;AAAA,QACd,eAAe,KAAK,OAAO;AAAA,MAC7B;AAGA,UAAI,kBAAkB,CAAC;AACvB,aAAO,KAAK,SAAS,EAAE,QAAQ,SAAU,QAAQ;AAC/C,YAAI,WAAW,SAAS;AACxB,YAAI,iBAAiB,gBAAgB,QAAQ,IAAI,UAAU,MAAM;AACjE,YAAI,kBAAkBA,SAAQ,MAAM,IAAI,OAAO,OAAO,cAAc;AAGpE,iBAAS,QAAQ,OAAO,SAAS,UAAU;AAEzC,cAAI,MAAM,KAAK,GAAG;AAChB,oBAAQ,gBAAgB,KAAK;AAAA,UAC/B,WACSQ,UAAS,KAAK,GAAG;AACxB,oBAAQ,gBAAgB,SAAS,KAAK,CAAC;AAAA,UACzC,OACK;AACH,uBAAW;AACX,sBAAU,YAAY,KAAK;AAC3B,oBAAQ,EAAE,SAAmB;AAAA,UAC/B;AACA,cAAIE,YAAW,OAAO,GAAG;AACvB,uBAAW;AACX,sBAAU;AAAA,UACZ;AAGA,oBAAU,OAAO,OAAO;AAAA,YACtB,cAAcV,SAAQ;AAAA,YACtB,eAAeA,SAAQ;AAAA,UACzB,GAAG,OAAO,OAAO;AACjB,kBAAQ,kBAAkB;AAC1B,cAAI,CAACQ,UAAS,QAAQ,IAAI,KAAK,CAACA,UAAS,QAAQ,QAAQ,GAAG;AAC1D,oBAAQ,WAAW;AAAA,UACrB;AAEA,iBAAO,MAAM,QAAQ,UAAU,UAAU,mBAAmB;AAC5D,gBAAM,WAAW,OAAO;AACxB,iBAAO,IAAI,oBAAoB,SAAS,QAAQ;AAAA,QAClD;AAGA,iBAAS,IAAI,OAAO,SAAS,UAAU;AACrC,cAAI,iBAAiB,gBAAgB,QAAQ,OAAO,SAAS,QAAQ;AACrE,yBAAe,IAAI;AACnB,iBAAO;AAAA,QACT;AAGA,eAAO,iBAAiB,iBAAiB;AAAA,UACvC,SAAS,EAAE,OAAO,SAAS,cAAc,MAAM,YAAY,MAAM,UAAU,KAAK;AAAA,UAChF,KAAK,EAAE,OAAO,KAAK,cAAc,MAAM,YAAY,MAAM,UAAU,KAAK;AAAA,QAC1E,CAAC;AAAA,MACH,CAAC;AACD,aAAOR;AAAA,IACT;AAEA,aAASM,QAAO;AAAA,IAAc;AAE9B,aAAS,SAAS,OAAO;AACvB,UAAI;AAEJ,UAAI,cAAc;AAChB,iBAAS,IAAIH,KAAI,KAAK;AAAA,MACxB,OACK;AAEH,iBAAS,YAAYD,KAAI,MAAM,KAAK,CAAC;AACrC,YAAI,CAACM,UAAS,OAAO,QAAQ,GAAG;AAC9B,gBAAM,IAAI,gBAAgB,EAAE,MAAM,CAAC;AAAA,QACrC;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAEA,aAAS,WAAW,UAAU,MAAM;AAElC,aAAO,eAAe,IAAIL,KAAI,UAAU,IAAI,IAAI,SAASD,KAAI,QAAQ,MAAM,QAAQ,CAAC;AAAA,IACtF;AAEA,aAAS,YAAY,OAAO;AAC1B,UAAI,MAAM,KAAK,MAAM,QAAQ,KAAK,CAAC,oBAAoB,KAAK,MAAM,QAAQ,GAAG;AAC3E,cAAM,IAAI,gBAAgB,EAAE,OAAO,MAAM,QAAQ,MAAM,CAAC;AAAA,MAC1D;AACA,UAAI,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,MAAM,IAAI,GAAG;AAC1E,cAAM,IAAI,gBAAgB,EAAE,OAAO,MAAM,QAAQ,MAAM,CAAC;AAAA,MAC1D;AACA,aAAO;AAAA,IACT;AAEA,aAAS,gBAAgB,WAAW,QAAQ;AAC1C,UAAIS,UAAS,UAAU,CAAC;AACxB,eAAS,OAAO,oBAAoB;AAClC,QAAAA,QAAO,GAAG,IAAI,UAAU,GAAG;AAAA,MAC7B;AAGA,UAAIA,QAAO,SAAS,WAAW,GAAG,GAAG;AACnC,QAAAA,QAAO,WAAWA,QAAO,SAAS,MAAM,GAAG,EAAE;AAAA,MAC/C;AAEA,UAAIA,QAAO,SAAS,IAAI;AACtB,QAAAA,QAAO,OAAO,OAAOA,QAAO,IAAI;AAAA,MAClC;AAEA,MAAAA,QAAO,OAAOA,QAAO,SAASA,QAAO,WAAWA,QAAO,SAASA,QAAO;AAEvE,aAAOA;AAAA,IACT;AAEA,aAAS,sBAAsB,OAAO,SAAS;AAC7C,UAAI;AACJ,eAAS,UAAU,SAAS;AAC1B,YAAI,MAAM,KAAK,MAAM,GAAG;AACtB,sBAAY,QAAQ,MAAM;AAC1B,iBAAO,QAAQ,MAAM;AAAA,QACvB;AAAA,MACF;AACA,aAAQ,cAAc,QAAQ,OAAO,cAAc,cACjD,SAAY,OAAO,SAAS,EAAE,KAAK;AAAA,IACvC;AAEA,aAAS,gBAAgB,MAAM,SAAS,WAAW;AAEjD,eAAS,YAAY,YAAY;AAC/B,cAAM,kBAAkB,MAAM,KAAK,WAAW;AAC9C,eAAO,OAAO,MAAM,cAAc,CAAC,CAAC;AACpC,aAAK,OAAO;AACZ,aAAK,UAAU,KAAK,QAAQ,UAAU,OAAO,KAAK,MAAM,UAAU;AAAA,MACpE;AAGA,kBAAY,YAAY,KAAK,aAAa,OAAO;AACjD,aAAO,iBAAiB,YAAY,WAAW;AAAA,QAC7C,aAAa;AAAA,UACX,OAAO;AAAA,UACP,YAAY;AAAA,QACd;AAAA,QACA,MAAM;AAAA,UACJ,OAAO,YAAY,OAAO;AAAA,UAC1B,YAAY;AAAA,QACd;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT;AAEA,aAAS,eAAe,SAAS,OAAO;AACtC,eAAS,SAAS,QAAQ;AACxB,gBAAQ,eAAe,OAAO,cAAc,KAAK,CAAC;AAAA,MACpD;AACA,cAAQ,GAAG,SAASL,KAAI;AACxB,cAAQ,QAAQ,KAAK;AAAA,IACvB;AAEA,aAAS,YAAY,WAAW,QAAQ;AACtC,aAAOE,UAAS,SAAS,KAAKA,UAAS,MAAM,CAAC;AAC9C,UAAI,MAAM,UAAU,SAAS,OAAO,SAAS;AAC7C,aAAO,MAAM,KAAK,UAAU,GAAG,MAAM,OAAO,UAAU,SAAS,MAAM;AAAA,IACvE;AAEA,aAASA,UAAS,OAAO;AACvB,aAAO,OAAO,UAAU,YAAY,iBAAiB;AAAA,IACvD;AAEA,aAASE,YAAW,OAAO;AACzB,aAAO,OAAO,UAAU;AAAA,IAC1B;AAEA,aAASD,UAAS,OAAO;AACvB,aAAO,OAAO,UAAU,YAAa,YAAY;AAAA,IACnD;AAEA,aAAS,MAAM,OAAO;AACpB,aAAON,QAAO,iBAAiBA;AAAA,IACjC;AAGA,IAAAF,QAAO,UAAU,KAAK,EAAE,MAAMG,OAAM,OAAOC,OAAM,CAAC;AAClD,IAAAJ,QAAO,QAAQ,OAAO;AAAA;AAAA;;;AC/pBtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AEGA,qBAAiC;AACjC,sBAAkC;ACJlC,mBAAwD;ACGxD,0BAOO;AACP,IAAAW,kBAAiC;AACjC,uBAAmC;AACnC,uBAAmC;AACnC,IAAAC,mBAAkC;AAClC,oBAA8D;AEd9D,0BAAiC;ALD1B,IAAM,gBAAgB;EAC3B,WAAW;EACX,WAAW;EACX,mBAAmB;EACnB,sBAAsB;EACtB,OAAO;IACL,QAAQ;IACR,QAAQ;IACR,SAAS;EACX;AACF;ACJO,SAAS,6BAA6B,SAAyB;AACpE,UAAQ,iBAAiB,QAAQ,CAAC,OAAO;AACvC,UAAM,EAAE,OAAO,IAAI;AACnB,QAAI,SAAS,cAAc,aAAa,SAAS,cAAc,WAAW;AACxE,YAAM,IAAI,MAAM,mBAAmB,MAAM,OAAO,cAAc,SAAS,GAAG;IAC5E;EACF,CAAC;AAED,QAAM,cAAc,QAAQ,iBAAiB,OAAO,CAAC,GAAG,OAAO,IAAI,GAAG,QAAQ,CAAC;AAC/E,MAAI,QAAQ,YAAY,KAAK,QAAQ,YAAY,aAAa;AAC5D,UAAM,IAAI,MAAM,sBAAsB,QAAQ,SAAS,OAAO,WAAW,GAAG;EAC9E;AAEA,QAAM,WAAW,QAAQ,kBAAkB,SAAY,cAAc,uBAAuB,cAAc;AAC1G,MAAI,QAAQ,iBAAiB,SAAS,UAAU;AAC9C,UAAM,IAAI,MAAM,yCAAyC;EAC3D;AAEA,QAAM,aAAa,IAAI,IAAI,QAAQ,iBAAiB,IAAI,CAAC,OAAO,GAAG,UAAU,aAAa,CAAC,CAAC;AAC5F,MAAI,WAAW,SAAS,QAAQ,iBAAiB,QAAQ;AACvD,UAAM,IAAI,MAAM,4BAA4B;EAC9C;AACF;AAEO,IAAM,yBAAN,MAA6B;EAGlC,YAA6B,SAAyB;AAAzB,SAAA,UAAA;AAC3B,SAAK,YAAY,KAAK,oBAAoB,OAAO;EACnD;EAJQ;EAMR,IAAI,UAAU;AACZ,WAAO,KAAK,UAAU,aAAa;EACrC;EAEA,IAAI,aAAa;AACf,WAAO,KAAK,UAAU,cAAc;EACtC;EAEA,yBAAyB,YAAwD;AAC/E,WAAO,KAAK,UAAU,yBAAyB,UAAU;EAC3D;EAEQ,oBAAoB,SAAyB;AACnD,UAAM,EAAE,kBAAkB,WAAW,cAAc,IAAI;AAEvD,UAAM,aAAa,iBAAiB,IAAI,CAAC,OAAO;AAC9C,aAAO,EAAE,GAAG,GAAG;IACjB,CAAC;AAED,QAAI,kBAAkB,QAAW;AAC/B,iBAAW,KAAK;QACd,WAAW,KAAK,mBAAmB,aAAa;QAChD,QAAQ,cAAc,MAAM;MAC9B,CAAC;IACH;AAEA,WAAO,kCAAkB,eAAe,EAAE,WAAW,WAAW,CAAC;EACnE;EAEQ,mBAAmB,OAAe;AACxC,UAAM,SAAS,IAAI,YAAY,gCAAiB,IAAI;AACpD,QAAI,YAAY,EAAE,WAAW,cAAc,MAAM,QAAQ,IAAI,WAAW,QAAQ,GAAG,cAAc,MAAM,OAAO,CAAC;AAC/G,UAAM,YAAY,IAAI,SAAS,QAAQ,cAAc,MAAM,SAAS,CAAC;AACrE,cAAU,UAAU,GAAG,OAAO,IAAI;AAClC,WAAO,IAAI,gCAAiB,IAAI,WAAW,MAAM,CAAC;EACpD;AACF;AG3CO,SAAS,6BAA6B,SAAiB;AAC5D,SAAO,yBAAyB,OAAO;AACzC;;;AGhCA,IAAAC,uBAMO;AACP,IAAAC,kBAAiC;AACjC,IAAAC,oBAAmC;AACnC,IAAAC,oBAAmC;AACnC,IAAAC,iBAA8D;;;ACVvD,SAAS,eAAe,GAAW;AACxC,SAAO,OAAO,KAAK,GAAG,OAAO;AAC/B;AAEO,SAAS,gBAAgB,GAAuB;AACrD,SAAO,KAAK,MAAM,UAAU,IAAI,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AACzF;AAEO,SAAS,gBAAgB,KAAyB;AACvD,SAAO,WAAW,KAAK,OAAO,KAAK,IAAI,WAAW,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC;AACtF;;;ACVA,IAAAC,gBAAwD;;;ACCxD,IAAAC,gBAAmC;AAG5B,IAAM,aAAN,MAAiB;AAAA,EACd;AAAA,EAEA;AAAA,EAER,YAAY,QAAmB;AAC7B,SAAK,UAAU;AACf,SAAK,eAAe,oBAAI,IAAI;AAAA,EAC9B;AAAA,EAEA,MAAM,YAAY,UAAqD;AACrE,UAAM,iBAAa,kCAAmB,QAAQ;AAC9C,QAAI,KAAK,aAAa,IAAI,UAAU,GAAG;AACrC,aAAO,KAAK,aAAa,IAAI,UAAU;AAAA,IACzC;AACA,UAAM,OAAO,MAAM,KAAK,cAAc,UAAU;AAChD,QAAI,MAAM;AACR,WAAK,aAAa,IAAI,YAAY,IAAI;AAAA,IACxC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,cAAc,UAAqD;AAC/E,UAAM,MAAM,MAAM,KAAK,QAAQ,gBAAgB,EAAE,SAAS,CAAC;AAC3D,WAAO,OAAO;AAAA,EAChB;AACF;AAIO,IAAM,sBACX;AAEK,IAAM,OAAN,MAAM,MAAK;AAAA,EAChB,OAAO,OAAO,MAA0C;AACtD,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AACA,eAAO,kCAAmB,IAAI,EAAE,MAAM,mBAAmB,KAAK;AAAA,EAChE;AAAA,EAEA,OAAO,YAAY,MAAc;AAC/B,UAAM,CAAC,EAAE,GAAG,QAAI,kCAAmB,IAAI,EAAE,MAAM,mBAAmB,KAAK,CAAC;AACxE,WAAO,OAAO;AAAA,EAChB;AAAA,EAEA,OAAO,WAAW,MAAyC;AACzD,QAAI,CAAC,MAAK,OAAO,KAAK,IAAI,GAAG;AAC3B,aAAO;AAAA,IACT;AACA,QAAI,KAAK,SAAS,aAAa,cAAc;AAC3C,aAAO;AAAA,IACT;AACA,UAAM,EAAE,QAAQ,IAAI,KAAK,SAAS;AAClC,QAAI,YAAY,QAAW;AACzB,aAAO;AAAA,IACT;AACA,WAAO,OAAO,OAAO;AAAA,EACvB;AACF;;;AD3DO,IAAM,YAAN,MAAgB;AAAA,EACrB,OAAO,oBAAoB,MAAc;AACvC,eAAO,mCAAoB,IAAI;AAAA,EACjC;AAAA,EAEA,OAAO,mBAAmB,QAAgB;AACxC,eAAO,kCAAmB,MAAM;AAAA,EAClC;AAAA,EAEA,OAAO,kBAAkB,OAAe,OAAe;AACrD,eAAO,mCAAoB,KAAK,UAAM,mCAAoB,KAAK;AAAA,EACjE;AAAA,EAEA,OAAO,iBAAiB,SAAiB,SAAiB;AACxD,eAAO,kCAAmB,OAAO,UAAM,kCAAmB,OAAO;AAAA,EACnE;AAAA,EAEA,OAAO,iBAAiB,QAAgB;AACtC,WAAO,KAAK,OAAO,MAAM;AAAA,EAC3B;AACF;;;AFTO,IAAM,oBAAN,MAAM,mBAAkB;AAAA,EAC7B,aAAa,0BAA0B,OAIpC;AACD,QAAI,MAAM,gBAAgB,oBAAoB;AAC5C,iBAAO,uCAAuB,MAAM,SAAS,MAAM,SAAS;AAAA,IAC9D;AACA,eAAO,sCAAsB,MAAM,SAAS,MAAM,SAAS;AAAA,EAC7D;AAAA,EAEA,aAAa,kCAAkC,OAA+D;AAC5G,UAAM,UAAU,eAAe,MAAM,UAAU;AAC/C,WAAO,KAAK,0BAA0B;AAAA,MACpC;AAAA,MACA,aAAa;AAAA,MACb,WAAW,MAAM;AAAA,IACnB,CAAC;AAAA,EACH;AAAA,EAEA,aAAa,gBAAgB,OAK1B;AACD,UAAM,YAAY,MAAM,mBAAkB,0BAA0B,KAAK;AACzE,WAAO,UAAU,kBAAkB,UAAU,aAAa,GAAG,MAAM,aAAa;AAAA,EAClF;AAAA,EAEA,aAAa,wBAAwB,OAIlC;AACD,UAAM,UAAU,eAAe,MAAM,UAAU;AAC/C,WAAO,KAAK,gBAAgB;AAAA,MAC1B;AAAA,MACA,aAAa;AAAA,MACb,WAAW,MAAM;AAAA,MACjB,eAAe,MAAM;AAAA,IACvB,CAAC;AAAA,EACH;AAAA,EAEA,aAAa,2BAA2B,OAInB;AACnB,WAAO,KAAK,gBAAgB;AAAA,MAC1B,aAAa;AAAA,MACb,SAAS,MAAM;AAAA,MACf,WAAW,MAAM;AAAA,MACjB,eAAe,MAAM;AAAA,IACvB,CAAC;AAAA,EACH;AACF;AAEO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,OAAO,IAAI,WAAsB;AAC/B,WAAO;AAAA,MACL,WAAW,UAAU,SAAS;AAAA,MAC9B,QAAQ,8CAAyB,UAAU,KAAK,CAAkB;AAAA,IACpE;AAAA,EACF;AAAA,EAEA,OAAO,GAAG,OAA+E;AACvF,YAAQ,MAAM,QAAQ;AAAA,MACpB,KAAK;AACH,eAAO,IAAI,iCAAiB,MAAM,SAAS;AAAA,MAC7C,KAAK;AACH,eAAO,IAAI,qCAAmB,MAAM,SAAS;AAAA,MAC/C,KAAK;AACH,eAAO,IAAI,qCAAmB,MAAM,SAAS;AAAA,MAC/C;AACE,cAAM,IAAI,MAAM,6CAA6C;AAAA,IACjE;AAAA,EACF;AACF;;;AIhFO,IAAM,eAAN,MAAmB;AAAA,EACxB,YACkB,SACA,UAChB;AAFgB;AACA;AAAA,EACf;AAAA,EAEH,MAAM,kBAAkB,WAAqB;AAC3C,WAAO,KAAK,SAAS,kBAAkB,SAAS;AAAA,EAClD;AAAA,EAEA,MAAM,sBAAsB,MAA4B;AACtD,UAAM,WAAW,MAAM,KAAK,8BAA8B,IAAI;AAC9D,UAAM,KAAK,IAAI,uBAAuB,QAAQ;AAC9C,WAAO,GAAG;AAAA,EACZ;AAAA;AAAA,EAGA,MAAM,mBAAmB,YAAoC;AAC3D,UAAM,YAAY,MAAM,KAAK,8BAA8B,UAAU;AACrE,iCAA6B,SAAS;AAGtC,WAAO,KAAK,sBAAsB,UAAU;AAAA,EAC9C;AAAA,EAEA,MAAM,oBAAoB,cAAsC;AAC9D,UAAM,eAAe,MAAM,KAAK,mBAAmB,YAAY;AAE/D,UAAM,iBAAiB,6BAA6B,YAAY;AAChE,UAAM,YAAY,MAAM,KAAK,QAAQ,OAAO,oBAAoB,EAAE,YAAY,eAAe,CAAC;AAE9F,UAAM,KAAK,gBAAgB,cAAc,UAAU,SAAS;AAC5D,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,8BAA8B,MAAqD;AAC/F,UAAM,aAAa,MAAM,KAAK,kBAAkB,KAAK,gBAAgB,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;AAC9F,eAAW,QAAQ,CAAC,IAAI,MAAM;AAC5B,UAAI,OAAO,QAAW;AACpB,cAAM,IAAI,MAAM,mCAAmC,KAAK,gBAAgB,CAAC,EAAE,OAAO,EAAE;AAAA,MACtF;AAAA,IACF,CAAC;AACD,WAAO;AAAA,MACL,WAAW,KAAK;AAAA,MAChB,kBAAkB,KAAK,gBAAgB,IAAI,CAAC,OAAO,OAAO;AAAA,QACxD,WAAW,WAAW,CAAC;AAAA,QACvB,QAAQ,MAAM;AAAA,MAChB,EAAE;AAAA,MACF,eAAe,KAAK;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,MAAc,gBAAgB,YAAoC,WAAgC;AAChG,UAAM,MAAM,MAAM,KAAK,SAAS,kBAAkB,WAAW,gBAAgB,IAAI,CAAC,UAAU,MAAM,OAAO,CAAC;AAC1G,UAAM,KAAK,QAAQ,QAAQ,mBAAmB;AAAA,MAC5C,2BAA2B,WAAW,gBAAgB,IAAI,CAAC,OAAO,MAAgC;AAChG,cAAM,eAAe,eAAe,IAAI,IAAI,CAAC,CAAc;AAC3D,eAAO;AAAA,UACL,SAAS,MAAM;AAAA,UACf,QAAQ,MAAM;AAAA,UACd,kBAAkB,aAAa;AAAA,UAC/B,QAAQ,aAAa;AAAA,QACvB;AAAA,MACF,CAAC;AAAA,MACD,WAAW,WAAW;AAAA,MACtB,MAAM,WAAW;AAAA;AAAA,MACjB,aAAa,WAAW;AAAA;AAAA,MACxB,eAAe,WAAW;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;ACpFA,IAAAC,uBAAiC;;;ACAjC,IAAAC,uBAAyE;AACzE,IAAAC,mBAAkC;AAK3B,IAAM,WAAW;AAExB,eAAsB,sBAAsB,WAAsB,SAAiD;AACjH,MAAI;AACJ,MAAI;AACF,UAAM,MAAM,UAAU,uBAAuB;AAAA;AAAA,MAE3C,QAAQ,EAAE,aAAa,QAAQ;AAAA,MAC/B,SAAS,EAAE,WAAW,KAAK;AAAA,MAC3B,OAAO;AAAA,IACT,CAAC;AAAA,EACH,SAAS,GAAG;AAIV,WAAO;AAAA,EACT;AAEA,MAAI,IAAI,KAAK,WAAW,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,aAAa,cAAc;AACnE,WAAO;AAAA,EACT;AACA,QAAM,KAAK,IAAI,KAAK,CAAC;AACrB,QAAM,aAAa,GAAG,aAAa;AAEnC,WAAS,IAAI,GAAG,MAAM,WAAW,QAAQ,KAAK;AAC5C,UAAM,gBAAgB,WAAW,CAAC;AAClC,UAAM,KAAK,yBAAyB,eAAe,OAAO;AAC1D,QAAI,CAAC,IAAI;AACP;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,SAAS,yBAAyB,eAAoC,eAAuB;AAC3F,QAAM,cAAU,+CAAyB,aAAa;AACtD,UAAQ,QAAQ,iBAAiB;AAAA,IAC/B,KAAK,YAAY;AACf,YAAM,kBAAkB,IAAI,mCAAkB,QAAQ,SAAS,WAAW,EAAE,aAAa;AACzF,UAAI,UAAU,kBAAkB,iBAAiB,aAAa,GAAG;AAC/D,cAAM,IAAI,MAAM,kCAAkC;AAAA,MACpD;AACA,aAAO;AAAA,IACT;AAAA,IACA,KAAK,WAAW;AACd,UAAI,UAAU,kBAAkB,QAAQ,QAAQ,SAAS,aAAa,GAAG;AACvE,cAAM,IAAI,MAAM,gCAAgC;AAAA,MAClD;AACA,aAAO;AAAA,IACT;AAAA,IAEA,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK,aAAa;AAChB,YAAM,KAAK,eAAe,GAAG,EAAE,WAAW,QAAQ,WAAW,QAAQ,QAAQ,gBAAgB,CAAC;AAC9F,UAAI,UAAU,kBAAkB,GAAG,aAAa,GAAG,aAAa,GAAG;AACjE,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,IAEA;AACE,YAAM,IAAI,MAAM,gBAAgB;AAAA,EACpC;AACF;AAEA,eAAsB,YAAY,OAA8E;AAC9G,MAAI,UAAU;AACd,MAAI;AACJ,QAAM,MAAoB,CAAC;AAC3B,SAAO,SAAS;AACd,UAAM,cAA8B,MAAM,MAAM,UAAU,SAAS;AAAA,MACjE,OAAO,MAAM;AAAA,MACb,UAAU,MAAM;AAAA,MAChB;AAAA,IACF,CAAC;AACD,QAAI,KAAK,GAAG,YAAY,IAAI;AAC5B,cAAU,YAAY;AACtB,aAAS,YAAY;AAAA,EACvB;AACA,SAAO;AACT;;;AD5EA,eAAsB,qBAAqB,OAIxC;AACD,MAAI,UAAU,iBAAiB,MAAM,UAAU,UAAU,QAAQ,GAAG;AAClE,WAAO,wBAAwB,KAAK;AAAA,EACtC;AACA,SAAO,0BAA0B,KAAK;AACxC;AAEA,SAAS,wBAAwB,OAA+E;AAC9G,QAAM,MAAM,IAAI,sCAAiB;AACjC,QAAM,CAAC,IAAI,IAAI,IAAI,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,UAAU,MAAM,CAAC,CAAC;AACzE,MAAI,gBAAgB,CAAC,IAAI,GAAG,IAAI,KAAK,MAAM,UAAU,SAAS,CAAC;AAC/D,MAAI,UAAU,MAAM,MAAM;AAC1B,SAAO;AACT;AAEA,eAAe,0BAA0B,OAItC;AACD,QAAM,EAAE,WAAW,QAAQ,UAAU,IAAI;AAEzC,QAAM,OAAO,MAAM,YAAY;AAAA,IAC7B;AAAA,IACA,OAAO;AAAA,IACP,UAAU,UAAU;AAAA,EACtB,CAAC;AACD,MAAI,KAAK,WAAW,GAAG;AACrB,UAAM,IAAI,MAAM,6BAA6B;AAAA,EAC/C;AACA,QAAM,WAAW,KAAK,OAAO,CAAC,KAAKC,UAAS,MAAM,OAAOA,MAAK,OAAO,GAAG,EAAE;AAC1E,MAAI,WAAW,OAAO,UAAU,MAAM,GAAG;AACvC,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACtC;AACA,QAAM,MAAM,IAAI,sCAAiB;AACjC,QAAM,UAAU,IAAI,OAAO,KAAK,CAAC,EAAE,YAAY;AAC/C,MAAI,KAAK,SAAS,GAAG;AACnB,QAAI;AAAA,MACF;AAAA,MACA,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,YAAY,CAAC;AAAA,IACzD;AAAA,EACF;AACA,QAAM,CAAC,IAAI,IAAI,IAAI,WAAW,SAAS,CAAC,IAAI,KAAK,UAAU,MAAM,CAAC,CAAC;AACnE,MAAI,gBAAgB,CAAC,IAAI,GAAG,IAAI,KAAK,UAAU,SAAS,CAAC;AACzD,MAAI,UAAU,MAAM,MAAM;AAC1B,SAAO;AACT;;;AE7DA,IAAAC,uBAAiC;AAWjC,eAAsB,uBAAuB,OAI1C;AACD,QAAM,uBAAuB,KAAK;AAElC,QAAM,MAAM,IAAI,sCAAiB;AACjC,MAAI,gBAAgB,CAAC,IAAI,OAAO,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAI,KAAK,MAAM,UAAU,QAAQ,CAAC;AAC9F,MAAI,UAAU,MAAM,MAAM;AAE1B,SAAO;AACT;AAEA,eAAe,uBAAuB,OAInC;AACD,QAAM,EAAE,WAAW,QAAQ,UAAU,IAAI;AACzC,QAAM,MAAM,MAAM,UAAU,UAAU;AAAA,IACpC,IAAI,UAAU;AAAA,EAChB,CAAC;AAED,MAAI,IAAI,SAAS,QAAW;AAC1B,UAAM,IAAI,MAAM,kBAAkB;AAAA,EACpC;AACA,MAAI,CAAC,IAAI,MAAM,MAAM;AACnB,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AACA,MAAI,CAAC,UAAU,iBAAiB,IAAI,KAAK,MAAM,UAAU,UAAU,GAAG;AACpE,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC5C;AACA,MAAI,UAAU,iBAAiB,IAAI,KAAK,IAAI,GAAG;AAC7C,UAAM,IAAI,MAAM,8DAA8D;AAAA,EAChF;AACA,QAAM,eAAe,gBAAgB,GAAG;AACxC,MAAI,CAAC,UAAU,kBAAkB,cAAc,MAAM,GAAG;AACtD,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AACF;AAEA,SAAS,gBAAgB,QAA2B;AAClD,QAAM,QAAQ,OAAO,MAAM;AAC3B,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AAEA,MAAI,OAAO,UAAU,YAAY,EAAE,kBAAkB,QAAQ;AAC3D,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACxC;AACA,SAAO,MAAM;AACf;;;ACjEA,IAAAC,uBAAiC;AAIjC,eAAsB,eAAe,OAAoD;AACvF,QAAM,aAAa,sCAAiB,KAAK,gBAAgB,MAAM,eAAe,CAAe;AAC7F,QAAM,aAAa,WAAW,UAAU,UAAU;AAClD,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,0CAA0C;AAAA,EAC5D;AAGA,QAAM,MAAM,IAAI,sCAAiB;AACjC,MAAI,cAAc,UAAU;AAC5B,MAAI,UAAU,MAAM,MAAM;AAC1B,SAAO;AACT;;;ACPO,IAAM,kBAAN,MAAsB;AAAA,EAC3B,OAAO,IAAI,WAAwB;AACjC,WAAO,KAAK,UAAU,SAAS;AAAA,EACjC;AAAA,EAEA,OAAO,GAAG,KAA0B;AAClC,UAAM,YAAY,KAAK,MAAM,GAAG;AAChC,QAAI,OAAO,cAAc,YAAY,EAAE,YAAY,YAAY;AAC7D,YAAM,IAAI,MAAM,oCAAoC,GAAG,EAAE;AAAA,IAC3D;AACA,WAAO,KAAK,MAAM,GAAG;AAAA,EACvB;AAAA;AAAA,EAGA,OAAO,SAAS,OAAyE;AACvF,YAAQ,MAAM,UAAU,QAAQ;AAAA,MAC9B,KAAK;AACH,eAAO,qBAAqB;AAAA,UAC1B,WAAW,MAAM;AAAA,UACjB,QAAQ,MAAM;AAAA,UACd,WAAW,MAAM;AAAA,QACnB,CAAC;AAAA,MACH,KAAK;AACH,eAAO,uBAAuB;AAAA,UAC5B,WAAW,MAAM;AAAA,UACjB,QAAQ,MAAM;AAAA,UACd,WAAW,MAAM;AAAA,QACnB,CAAC;AAAA,MACH;AACE,cAAM,IAAI,MAAM,oBAAoB,MAAM,SAAS,EAAE;AAAA,IACzD;AAAA,EACF;AAAA,EAEA,OAAO,UAAU,WAAwB;AACvC,YAAQ,UAAU,QAAQ;AAAA,MACxB,KAAK;AACH,eAAO;AAAA,UACL,QAAQ;AAAA,UACR,WAAW;AAAA,QACb;AAAA,MACF,KAAK;AACH,eAAO;AAAA,UACL,QAAQ;AAAA,UACR,WAAW;AAAA,QACb;AAAA,MACF;AACE,cAAM,IAAI,MAAM,wBAAwB;AAAA,IAC5C;AAAA,EACF;AAAA,EAEA,OAAO,uBAAuB,OAA0D;AACtF,WAAO,eAAe,EAAE,QAAQ,MAAM,cAAc,iBAAiB,MAAM,gBAAgB,CAAC;AAAA,EAC9F;AACF;;;AC5DO,IAAM,gBAAN,MAAoB;AAAA;AAAA,EAEzB,OAAO,mBAAmB,cAA8B;AACtD,WAAO,yBAAyB,YAAY;AAAA,EAC9C;AAAA,EAEA,OAAO,qBAAqB,KAAa;AACvC,UAAM,QAAQ;AACd,UAAM,UAAU,IAAI,MAAM,KAAK;AAC/B,WAAO,UAAU,QAAQ,CAAC,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA,EAIA,OAAO,eAAe,WAA2B;AAC/C,WAAO,qBAAqB,SAAS;AAAA,EACvC;AAAA,EAEA,OAAO,iBAAiB,KAAiC;AACvD,UAAM,QAAQ;AACd,UAAM,UAAU,IAAI,MAAM,KAAK;AAC/B,WAAO,UAAU,QAAQ,CAAC,IAAI;AAAA,EAChC;AAAA,EAEA,OAAO,wBAAwB,MAA4B;AACzD,UAAM,EAAE,WAAW,GAAG,IAAI;AAC1B,UAAM,gBAAgB,gBAAgB,IAAI,SAAS;AACnD,UAAM,MAA+B;AAAA,MACnC;AAAA,MACA,gBAAgB;AAAA,IAClB;AACA,WAAO,KAAK,UAAU,GAAG;AAAA,EAC3B;AAAA,EAEA,OAAO,0BAA0B,GAAiC;AAChE,UAAM,KAAK,KAAK,MAAM,CAAC;AACvB,QACE,EAAE,mBAAmB,OACrB,OAAO,GAAG,kBAAkB,YAC5B,EAAE,oBAAoB,OACtB,OAAO,GAAG,mBAAmB,UAC7B;AACA,YAAM,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AACA,UAAM,EAAE,gBAAgB,cAAc,IAAI;AAC1C,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,WAAW,gBAAgB,GAAG,aAAa;AAAA,IAC7C;AAAA,EACF;AACF;;;AC3CO,IAAM,eAAN,MAAM,cAAa;AAAA,EAGxB,YACkB,SACA,MAChB;AAFgB;AACA;AAEhB,SAAK,kBAAkB,IAAI,uBAAuB;AAAA,MAChD,WAAW,KAAK;AAAA,MAChB,kBAAkB,KAAK;AAAA,MACvB,eAAe,KAAK;AAAA,IACtB,CAAC;AAAA,EACH;AAAA,EAXO;AAAA,EAaP,aAAa,IAAI,SAAuB,SAAiB;AACvD,UAAM,OAAO,MAAM,QAAQ,QAAQ,oBAAoB,OAAO;AAC9D,WAAO,IAAI,cAAa,SAAS,IAAI;AAAA,EACvC;AAAA,EAEA,MAAM,sBAAsB;AAC1B,WAAO,KAAK,QAAQ,uBAAuB,KAAK,OAAO;AAAA,EACzD;AAAA,EAEA,MAAM,qBAAqB;AACzB,WAAO,KAAK,QAAQ,uBAAuB,KAAK,OAAO;AAAA,EACzD;AAAA,EAEA,MAAM,mBAAmB;AACvB,WAAO,KAAK,QAAQ,oBAAoB,KAAK,OAAO;AAAA,EACtD;AAAA,EAEA,MAAM,wBAAwB;AAC5B,WAAO,KAAK,QAAQ,yBAAyB,KAAK,OAAO;AAAA,EAC3D;AAAA,EAEA,MAAM,qBAAqB;AACzB,WAAO,KAAK,QAAQ,sBAAsB,KAAK,OAAO;AAAA,EACxD;AAAA,EAEA,MAAM,iBAAiB,WAAwB,gBAAwB;AACrE,UAAM,UAAU,cAAc,wBAAwB,EAAE,WAAW,IAAI,eAAe,CAAC;AACvF,UAAM,YAAY,MAAM,KAAK,OAAO,oBAAoB;AAAA,MACtD,YAAY;AAAA,IACd,CAAC;AACD,UAAM,KAAK,QAAQ,iBAAiB;AAAA,MAClC;AAAA,MACA;AAAA,MACA,cAAc,KAAK;AAAA,MACnB,aAAa,MAAM,KAAK,YAAY;AAAA,MACpC,WAAW,UAAU;AAAA,IACvB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,mBAAmB,QAAgB,SAAiB;AACxD,UAAM,eAAe,gBAAgB,OAAO;AAC5C,UAAM,YAAY,MAAM,KAAK,OAAO,qBAAqB,EAAE,kBAAkB,aAAa,CAAC;AAC3F,WAAO,KAAK,QAAQ,mBAAmB;AAAA,MACrC,cAAc,KAAK;AAAA,MACnB,aAAa,MAAM,KAAK,YAAY;AAAA,MACpC,UAAU;AAAA,MACV,WAAW,UAAU;AAAA,IACvB,CAAC;AAAA,EACH;AAAA;AAAA;AAAA,EAIA,MAAM,0BAA0B,WAAwB;AACtD,UAAM,MAAM,MAAM,gBAAgB,SAAS;AAAA,MACzC,WAAW,KAAK;AAAA,MAChB;AAAA,MACA,QAAQ,KAAK;AAAA,IACf,CAAC;AACD,UAAM,UAAU,MAAM,IAAI,MAAM,EAAE,QAAQ,KAAK,UAAU,CAAC;AAC1D,UAAM,SAAS,MAAM,IAAI,UAAU,EAAE,QAAQ,KAAK,UAAU,CAAC;AAC7D,UAAM,YAAY,MAAM,KAAK,OAAO,qBAAqB,EAAE,kBAAkB,QAAQ,CAAC;AACtF,WAAO,KAAK,QAAQ,0BAA0B;AAAA,MAC5C,cAAc,KAAK;AAAA,MACnB,aAAa,MAAM,KAAK,YAAY;AAAA,MACpC;AAAA,MACA;AAAA,MACA,WAAW,UAAU;AAAA,IACvB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,gBAAgB,SAAqB;AACzC,QAAI;AACJ,QAAI,SAAS;AACX,UAAI,QAAQ,YAAY;AACtB,cAAM,IAAI,MAAM,gCAAgC;AAAA,MAClD;AACA,wBAAkB,QAAQ;AAAA,IAC5B,OAAO;AACL,YAAM,WAAW,MAAM,KAAK,oBAAoB;AAChD,UAAI,SAAS,WAAW,KAAK,SAAS,CAAC,EAAE,YAAY;AACnD,cAAM,IAAI,MAAM,kBAAkB;AAAA,MACpC;AACA,wBAAkB,SAAS,CAAC,EAAE;AAAA,IAChC;AACA,UAAM,YAAY,MAAM,gBAAgB,uBAAuB;AAAA,MAC7D,cAAc,KAAK;AAAA,MACnB;AAAA,IACF,CAAC;AACD,UAAM,SAAS,MAAM,UAAU,UAAU,EAAE,QAAQ,KAAK,UAAU,CAAC;AACnE,UAAM,UAAU,MAAM,UAAU,MAAM,EAAE,QAAQ,KAAK,UAAU,CAAC;AAChE,UAAM,YAAY,MAAM,KAAK,OAAO,qBAAqB,EAAE,kBAAkB,QAAQ,CAAC;AACtF,WAAO,KAAK,QAAQ,gBAAgB;AAAA,MAClC,cAAc,KAAK;AAAA,MACnB,aAAa,MAAM,KAAK,YAAY;AAAA,MACpC;AAAA,MACA,WAAW,UAAU;AAAA,IACvB,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,oCAAoC;AACxC,WAAO,KAAK,QAAQ,kCAAkC,EAAE,cAAc,KAAK,QAAQ,CAAC;AAAA,EACtF;AAAA,EAEA,MAAM,0BAA0B;AAC9B,WAAO,KAAK,QAAQ,wBAAwB,EAAE,cAAc,KAAK,SAAS,aAAa,MAAM,KAAK,YAAY,EAAE,CAAC;AAAA,EACnH;AAAA,EAEA,MAAM,iBAAiB,SAAoB;AACzC,QAAI,QAAQ,MAAM,SAAS,KAAK,KAAK,WAAW;AAC9C,YAAM,IAAI,MAAM,uBAAuB;AAAA,IACzC;AACA,UAAM,OAA8B,CAAC;AACrC,UAAM,UAAU,IAAI,IAAI,QAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,aAAa,KAAK,SAAS,CAAC,CAAC;AACvF,aAAS,IAAI,GAAG,IAAI,KAAK,KAAK,mBAAmB,QAAQ,KAAK;AAC5D,YAAM,QAAQ,KAAK,KAAK,mBAAmB,CAAC;AAC5C,YAAM,YAAY,QAAQ,IAAI,MAAM,UAAU,aAAa,CAAC;AAC5D,UAAI,WAAW;AACb,aAAK,KAAK,SAAS;AAAA,MACrB;AAAA,IACF;AACA,UAAM,iBAAiB,KAAK,gBAAgB,yBAAyB,IAAI;AACzE,WAAO,KAAK,UAAU,wBAAwB;AAAA,MAC5C,kBAAkB,gBAAgB,QAAQ,OAAO;AAAA,MACjD,WAAW;AAAA,MACX,SAAS,EAAE,aAAa,KAAK;AAAA,IAC/B,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAY,UAAU;AACpB,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAY,SAAS;AACnB,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,MAAc,cAAc;AAC1B,WAAO,KAAK,QAAQ,OAAO,QAAQ;AAAA,EACrC;AAAA,EAEA,IAAY,YAAY;AACtB,WAAO,KAAK,QAAQ;AAAA,EACtB;AACF;;;ACjKO,IAAM,kBAAN,MAAsB;AAAA,EAG3B,YAA4B,SAAuB;AAAvB;AAC1B,SAAK,kBAAkB,oBAAI,IAAuB;AAAA,EACpD;AAAA,EAJQ;AAAA,EAMR,MAAM,aAAa,SAAiB;AAClC,UAAM,SAAS,KAAK,gBAAgB,IAAI,OAAO;AAC/C,QAAI,QAAQ;AACV,aAAO;AAAA,IACT;AACA,UAAM,KAAK,MAAM,KAAK,cAAc,OAAO;AAC3C,QAAI,IAAI;AACN,WAAK,gBAAgB,IAAI,SAAS,EAAE;AAAA,IACtC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,kBAAkB,WAAyD;AAC/E,UAAM,UAAqC,IAAI,MAAM,UAAU,MAAM,EAAE,KAAK,MAAS;AAGrF,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,YAAM,UAAU,UAAU,CAAC;AAC3B,cAAQ,CAAC,IAAI,KAAK,gBAAgB,IAAI,OAAO;AAAA,IAC/C;AAGA,UAAM,eAAe,QAClB,IAAI,CAAC,MAAM,UAAW,SAAS,SAAY,QAAQ,EAAG,EACtD,OAAO,CAAC,UAAU,UAAU,EAAE;AACjC,UAAM,gBAAgB,MAAM,KAAK,QAAQ,QAAQ,kBAAkB,aAAa,IAAI,CAAC,UAAU,UAAU,KAAK,CAAC,CAAC;AAChH,aAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,YAAM,QAAQ,aAAa,CAAC;AAC5B,cAAQ,KAAK,IAAI,cAAc,CAAC;AAAA,IAClC;AAGA,aAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,UAAI,QAAQ,CAAC,MAAM,QAAW;AAC5B,gBAAQ,CAAC,IAAI,MAAM,KAAK,sBAAsB,UAAU,CAAC,CAAC;AAAA,MAC5D;AAAA,IACF;AAGA,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,UAAI,QAAQ,CAAC,GAAG;AACd,aAAK,gBAAgB,IAAI,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAc;AAAA,MAChE;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,cAAc,SAAiB;AAC3C,UAAM,YAAY,MAAM,KAAK,wBAAwB,OAAO;AAC5D,QAAI,WAAW;AACb,aAAO;AAAA,IACT;AACA,UAAM,UAAU,MAAM,KAAK,sBAAsB,OAAO;AACxD,QAAI,SAAS;AACX,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAc,wBAAwB,SAAiD;AACrF,QAAI;AACF,YAAM,KAAK,MAAM,KAAK,QAAQ,QAAQ,aAAa,OAAO;AAC1D,aAAO;AAAA,IACT,SAAS,GAAG;AACV,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAc,sBAAsB,SAAiD;AACnF,WAAO,sBAAsB,KAAK,QAAQ,WAAW,OAAO;AAAA,EAC9D;AACF;;;ACvFA,oBAA0B;;;ACEnB,IAAK,WAAL,kBAAKC,cAAL;AACL,EAAAA,UAAA,WAAQ;AACR,EAAAA,UAAA,UAAO;AACP,EAAAA,UAAA,SAAM;AACN,EAAAA,UAAA,UAAO;AACP,EAAAA,UAAA,UAAO;AALG,SAAAA;AAAA,GAAA;AA0BL,IAAM,uBAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AACX;AAEO,IAAM,wBAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,SAAS;AACX;AAEO,IAAM,sBAAgC;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,SAAS;AACX;AAEO,IAAM,kBAAkB;AACxB,IAAM,kBAAkB;AAExB,IAAM,gBAAgB;AACtB,IAAM,cAAc;AAEpB,IAAM,cAAc,oBAAI,IAA2B;AAAA,EACxD;AAAA,IACE;AAAA,IACA;AAAA,MACE,WAAW;AAAA,QACT,KAAK;AAAA,MACP;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,MACE,WAAW;AAAA,QACT,KAAK;AAAA,MACP;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,MACE,WAAW;AAAA,QACT,KAAK;AAAA,MACP;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,EACF;AACF,CAAC;AAEM,SAAS,eAAe,KAAe,SAA8B;AAC1E,QAAM,SAAS,YAAY,IAAI,GAAG;AAClC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AACA,MAAI,SAAS,WAAW,KAAK;AAC3B,WAAO,UAAU,MAAM,QAAQ,UAAU;AAAA,EAC3C;AACA,MAAI,SAAS,SAAS;AACpB,WAAO,UAAU,QAAQ;AAAA,EAC3B;AACA,SAAO;AACT;AAEO,IAAM,oBAAoB;;;ACzGlB,SAAR,KAAsB,IAAI,SAAS;AACxC,SAAO,SAAS,OAAO;AACrB,WAAO,GAAG,MAAM,SAAS,SAAS;AAAA,EACpC;AACF;;;ACAA,IAAM,EAAC,SAAQ,IAAI,OAAO;AAC1B,IAAM,EAAC,eAAc,IAAI;AAEzB,IAAM,SAAU,4BAAS,WAAS;AAC9B,QAAM,MAAM,SAAS,KAAK,KAAK;AAC/B,SAAO,MAAM,GAAG,MAAM,MAAM,GAAG,IAAI,IAAI,MAAM,GAAG,EAAE,EAAE,YAAY;AACpE,GAAG,uBAAO,OAAO,IAAI,CAAC;AAEtB,IAAM,aAAa,CAAC,SAAS;AAC3B,SAAO,KAAK,YAAY;AACxB,SAAO,CAAC,UAAU,OAAO,KAAK,MAAM;AACtC;AAEA,IAAM,aAAa,UAAQ,WAAS,OAAO,UAAU;AASrD,IAAM,EAAC,QAAO,IAAI;AASlB,IAAM,cAAc,WAAW,WAAW;AAS1C,SAAS,SAAS,KAAK;AACrB,SAAO,QAAQ,QAAQ,CAAC,YAAY,GAAG,KAAK,IAAI,gBAAgB,QAAQ,CAAC,YAAY,IAAI,WAAW,KAC/F,WAAW,IAAI,YAAY,QAAQ,KAAK,IAAI,YAAY,SAAS,GAAG;AAC3E;AASA,IAAM,gBAAgB,WAAW,aAAa;AAU9C,SAAS,kBAAkB,KAAK;AAC9B,MAAI;AACJ,MAAK,OAAO,gBAAgB,eAAiB,YAAY,QAAS;AAChE,aAAS,YAAY,OAAO,GAAG;AAAA,EACjC,OAAO;AACL,aAAU,OAAS,IAAI,UAAY,cAAc,IAAI,MAAM;AAAA,EAC7D;AACA,SAAO;AACT;AASA,IAAM,WAAW,WAAW,QAAQ;AAQpC,IAAM,aAAa,WAAW,UAAU;AASxC,IAAM,WAAW,WAAW,QAAQ;AASpC,IAAM,WAAW,CAAC,UAAU,UAAU,QAAQ,OAAO,UAAU;AAQ/D,IAAM,YAAY,WAAS,UAAU,QAAQ,UAAU;AASvD,IAAM,gBAAgB,CAAC,QAAQ;AAC7B,MAAI,OAAO,GAAG,MAAM,UAAU;AAC5B,WAAO;AAAA,EACT;AAEA,QAAMC,aAAY,eAAe,GAAG;AACpC,UAAQA,eAAc,QAAQA,eAAc,OAAO,aAAa,OAAO,eAAeA,UAAS,MAAM,SAAS,EAAE,OAAO,eAAe,QAAQ,EAAE,OAAO,YAAY;AACrK;AASA,IAAM,SAAS,WAAW,MAAM;AAShC,IAAM,SAAS,WAAW,MAAM;AAShC,IAAM,SAAS,WAAW,MAAM;AAShC,IAAM,aAAa,WAAW,UAAU;AASxC,IAAM,WAAW,CAAC,QAAQ,SAAS,GAAG,KAAK,WAAW,IAAI,IAAI;AAS9D,IAAM,aAAa,CAAC,UAAU;AAC5B,MAAI;AACJ,SAAO,UACJ,OAAO,aAAa,cAAc,iBAAiB,YAClD,WAAW,MAAM,MAAM,OACpB,OAAO,OAAO,KAAK,OAAO;AAAA,EAE1B,SAAS,YAAY,WAAW,MAAM,QAAQ,KAAK,MAAM,SAAS,MAAM;AAIjF;AASA,IAAM,oBAAoB,WAAW,iBAAiB;AAStD,IAAM,OAAO,CAAC,QAAQ,IAAI,OACxB,IAAI,KAAK,IAAI,IAAI,QAAQ,sCAAsC,EAAE;AAiBnE,SAAS,QAAQ,KAAK,IAAI,EAAC,aAAa,MAAK,IAAI,CAAC,GAAG;AAEnD,MAAI,QAAQ,QAAQ,OAAO,QAAQ,aAAa;AAC9C;AAAA,EACF;AAEA,MAAI;AACJ,MAAI;AAGJ,MAAI,OAAO,QAAQ,UAAU;AAE3B,UAAM,CAAC,GAAG;AAAA,EACZ;AAEA,MAAI,QAAQ,GAAG,GAAG;AAEhB,SAAK,IAAI,GAAG,IAAI,IAAI,QAAQ,IAAI,GAAG,KAAK;AACtC,SAAG,KAAK,MAAM,IAAI,CAAC,GAAG,GAAG,GAAG;AAAA,IAC9B;AAAA,EACF,OAAO;AAEL,UAAM,OAAO,aAAa,OAAO,oBAAoB,GAAG,IAAI,OAAO,KAAK,GAAG;AAC3E,UAAM,MAAM,KAAK;AACjB,QAAI;AAEJ,SAAK,IAAI,GAAG,IAAI,KAAK,KAAK;AACxB,YAAM,KAAK,CAAC;AACZ,SAAG,KAAK,MAAM,IAAI,GAAG,GAAG,KAAK,GAAG;AAAA,IAClC;AAAA,EACF;AACF;AAEA,SAAS,QAAQ,KAAK,KAAK;AACzB,QAAM,IAAI,YAAY;AACtB,QAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,MAAI,IAAI,KAAK;AACb,MAAI;AACJ,SAAO,MAAM,GAAG;AACd,WAAO,KAAK,CAAC;AACb,QAAI,QAAQ,KAAK,YAAY,GAAG;AAC9B,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,WAAW,MAAM;AAErB,MAAI,OAAO,eAAe;AAAa,WAAO;AAC9C,SAAO,OAAO,SAAS,cAAc,OAAQ,OAAO,WAAW,cAAc,SAAS;AACxF,GAAG;AAEH,IAAM,mBAAmB,CAAC,YAAY,CAAC,YAAY,OAAO,KAAK,YAAY;AAoB3E,SAAS,QAAmC;AAC1C,QAAM,EAAC,SAAQ,IAAI,iBAAiB,IAAI,KAAK,QAAQ,CAAC;AACtD,QAAM,SAAS,CAAC;AAChB,QAAM,cAAc,CAAC,KAAK,QAAQ;AAChC,UAAM,YAAY,YAAY,QAAQ,QAAQ,GAAG,KAAK;AACtD,QAAI,cAAc,OAAO,SAAS,CAAC,KAAK,cAAc,GAAG,GAAG;AAC1D,aAAO,SAAS,IAAI,MAAM,OAAO,SAAS,GAAG,GAAG;AAAA,IAClD,WAAW,cAAc,GAAG,GAAG;AAC7B,aAAO,SAAS,IAAI,MAAM,CAAC,GAAG,GAAG;AAAA,IACnC,WAAW,QAAQ,GAAG,GAAG;AACvB,aAAO,SAAS,IAAI,IAAI,MAAM;AAAA,IAChC,OAAO;AACL,aAAO,SAAS,IAAI;AAAA,IACtB;AAAA,EACF;AAEA,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,IAAI,GAAG,KAAK;AAChD,cAAU,CAAC,KAAK,QAAQ,UAAU,CAAC,GAAG,WAAW;AAAA,EACnD;AACA,SAAO;AACT;AAYA,IAAM,SAAS,CAAC,GAAG,GAAG,SAAS,EAAC,WAAU,IAAG,CAAC,MAAM;AAClD,UAAQ,GAAG,CAAC,KAAK,QAAQ;AACvB,QAAI,WAAW,WAAW,GAAG,GAAG;AAC9B,QAAE,GAAG,IAAI,KAAK,KAAK,OAAO;AAAA,IAC5B,OAAO;AACL,QAAE,GAAG,IAAI;AAAA,IACX;AAAA,EACF,GAAG,EAAC,WAAU,CAAC;AACf,SAAO;AACT;AASA,IAAM,WAAW,CAAC,YAAY;AAC5B,MAAI,QAAQ,WAAW,CAAC,MAAM,OAAQ;AACpC,cAAU,QAAQ,MAAM,CAAC;AAAA,EAC3B;AACA,SAAO;AACT;AAWA,IAAM,WAAW,CAAC,aAAa,kBAAkB,OAAOC,iBAAgB;AACtE,cAAY,YAAY,OAAO,OAAO,iBAAiB,WAAWA,YAAW;AAC7E,cAAY,UAAU,cAAc;AACpC,SAAO,eAAe,aAAa,SAAS;AAAA,IAC1C,OAAO,iBAAiB;AAAA,EAC1B,CAAC;AACD,WAAS,OAAO,OAAO,YAAY,WAAW,KAAK;AACrD;AAWA,IAAM,eAAe,CAAC,WAAW,SAASC,SAAQ,eAAe;AAC/D,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,QAAM,SAAS,CAAC;AAEhB,YAAU,WAAW,CAAC;AAEtB,MAAI,aAAa;AAAM,WAAO;AAE9B,KAAG;AACD,YAAQ,OAAO,oBAAoB,SAAS;AAC5C,QAAI,MAAM;AACV,WAAO,MAAM,GAAG;AACd,aAAO,MAAM,CAAC;AACd,WAAK,CAAC,cAAc,WAAW,MAAM,WAAW,OAAO,MAAM,CAAC,OAAO,IAAI,GAAG;AAC1E,gBAAQ,IAAI,IAAI,UAAU,IAAI;AAC9B,eAAO,IAAI,IAAI;AAAA,MACjB;AAAA,IACF;AACA,gBAAYA,YAAW,SAAS,eAAe,SAAS;AAAA,EAC1D,SAAS,cAAc,CAACA,WAAUA,QAAO,WAAW,OAAO,MAAM,cAAc,OAAO;AAEtF,SAAO;AACT;AAWA,IAAM,WAAW,CAAC,KAAK,cAAc,aAAa;AAChD,QAAM,OAAO,GAAG;AAChB,MAAI,aAAa,UAAa,WAAW,IAAI,QAAQ;AACnD,eAAW,IAAI;AAAA,EACjB;AACA,cAAY,aAAa;AACzB,QAAM,YAAY,IAAI,QAAQ,cAAc,QAAQ;AACpD,SAAO,cAAc,MAAM,cAAc;AAC3C;AAUA,IAAM,UAAU,CAAC,UAAU;AACzB,MAAI,CAAC;AAAO,WAAO;AACnB,MAAI,QAAQ,KAAK;AAAG,WAAO;AAC3B,MAAI,IAAI,MAAM;AACd,MAAI,CAAC,SAAS,CAAC;AAAG,WAAO;AACzB,QAAM,MAAM,IAAI,MAAM,CAAC;AACvB,SAAO,MAAM,GAAG;AACd,QAAI,CAAC,IAAI,MAAM,CAAC;AAAA,EAClB;AACA,SAAO;AACT;AAWA,IAAM,eAAgB,iCAAc;AAElC,SAAO,WAAS;AACd,WAAO,cAAc,iBAAiB;AAAA,EACxC;AACF,GAAG,OAAO,eAAe,eAAe,eAAe,UAAU,CAAC;AAUlE,IAAM,eAAe,CAAC,KAAK,OAAO;AAChC,QAAM,YAAY,OAAO,IAAI,OAAO,QAAQ;AAE5C,QAAM,WAAW,UAAU,KAAK,GAAG;AAEnC,MAAI;AAEJ,UAAQ,SAAS,SAAS,KAAK,MAAM,CAAC,OAAO,MAAM;AACjD,UAAM,OAAO,OAAO;AACpB,OAAG,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,EAC/B;AACF;AAUA,IAAM,WAAW,CAAC,QAAQ,QAAQ;AAChC,MAAI;AACJ,QAAM,MAAM,CAAC;AAEb,UAAQ,UAAU,OAAO,KAAK,GAAG,OAAO,MAAM;AAC5C,QAAI,KAAK,OAAO;AAAA,EAClB;AAEA,SAAO;AACT;AAGA,IAAM,aAAa,WAAW,iBAAiB;AAE/C,IAAM,cAAc,SAAO;AACzB,SAAO,IAAI,YAAY,EAAE;AAAA,IAAQ;AAAA,IAC/B,SAAS,SAAS,GAAG,IAAI,IAAI;AAC3B,aAAO,GAAG,YAAY,IAAI;AAAA,IAC5B;AAAA,EACF;AACF;AAGA,IAAM,kBAAkB,CAAC,EAAC,gBAAAC,gBAAc,MAAM,CAAC,KAAK,SAASA,gBAAe,KAAK,KAAK,IAAI,GAAG,OAAO,SAAS;AAS7G,IAAM,WAAW,WAAW,QAAQ;AAEpC,IAAM,oBAAoB,CAAC,KAAK,YAAY;AAC1C,QAAMF,eAAc,OAAO,0BAA0B,GAAG;AACxD,QAAM,qBAAqB,CAAC;AAE5B,UAAQA,cAAa,CAAC,YAAY,SAAS;AACzC,QAAI;AACJ,SAAK,MAAM,QAAQ,YAAY,MAAM,GAAG,OAAO,OAAO;AACpD,yBAAmB,IAAI,IAAI,OAAO;AAAA,IACpC;AAAA,EACF,CAAC;AAED,SAAO,iBAAiB,KAAK,kBAAkB;AACjD;AAOA,IAAM,gBAAgB,CAAC,QAAQ;AAC7B,oBAAkB,KAAK,CAAC,YAAY,SAAS;AAE3C,QAAI,WAAW,GAAG,KAAK,CAAC,aAAa,UAAU,QAAQ,EAAE,QAAQ,IAAI,MAAM,IAAI;AAC7E,aAAO;AAAA,IACT;AAEA,UAAM,QAAQ,IAAI,IAAI;AAEtB,QAAI,CAAC,WAAW,KAAK;AAAG;AAExB,eAAW,aAAa;AAExB,QAAI,cAAc,YAAY;AAC5B,iBAAW,WAAW;AACtB;AAAA,IACF;AAEA,QAAI,CAAC,WAAW,KAAK;AACnB,iBAAW,MAAM,MAAM;AACrB,cAAM,MAAM,uCAAwC,OAAO,GAAI;AAAA,MACjE;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,IAAM,cAAc,CAAC,eAAe,cAAc;AAChD,QAAM,MAAM,CAAC;AAEb,QAAM,SAAS,CAAC,QAAQ;AACtB,QAAI,QAAQ,WAAS;AACnB,UAAI,KAAK,IAAI;AAAA,IACf,CAAC;AAAA,EACH;AAEA,UAAQ,aAAa,IAAI,OAAO,aAAa,IAAI,OAAO,OAAO,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9F,SAAO;AACT;AAEA,IAAM,OAAO,MAAM;AAAC;AAEpB,IAAM,iBAAiB,CAAC,OAAO,iBAAiB;AAC9C,UAAQ,CAAC;AACT,SAAO,OAAO,SAAS,KAAK,IAAI,QAAQ;AAC1C;AAEA,IAAM,QAAQ;AAEd,IAAM,QAAQ;AAEd,IAAM,WAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA,aAAa,QAAQ,MAAM,YAAY,IAAI;AAC7C;AAEA,IAAM,iBAAiB,CAAC,OAAO,IAAI,WAAW,SAAS,gBAAgB;AACrE,MAAI,MAAM;AACV,QAAM,EAAC,OAAM,IAAI;AACjB,SAAO,QAAQ;AACb,WAAO,SAAS,KAAK,OAAO,IAAI,SAAO,CAAC;AAAA,EAC1C;AAEA,SAAO;AACT;AASA,SAAS,oBAAoB,OAAO;AAClC,SAAO,CAAC,EAAE,SAAS,WAAW,MAAM,MAAM,KAAK,MAAM,OAAO,WAAW,MAAM,cAAc,MAAM,OAAO,QAAQ;AAClH;AAEA,IAAM,eAAe,CAAC,QAAQ;AAC5B,QAAM,QAAQ,IAAI,MAAM,EAAE;AAE1B,QAAM,QAAQ,CAAC,QAAQ,MAAM;AAE3B,QAAI,SAAS,MAAM,GAAG;AACpB,UAAI,MAAM,QAAQ,MAAM,KAAK,GAAG;AAC9B;AAAA,MACF;AAEA,UAAG,EAAE,YAAY,SAAS;AACxB,cAAM,CAAC,IAAI;AACX,cAAM,SAAS,QAAQ,MAAM,IAAI,CAAC,IAAI,CAAC;AAEvC,gBAAQ,QAAQ,CAAC,OAAO,QAAQ;AAC9B,gBAAM,eAAe,MAAM,OAAO,IAAI,CAAC;AACvC,WAAC,YAAY,YAAY,MAAM,OAAO,GAAG,IAAI;AAAA,QAC/C,CAAC;AAED,cAAM,CAAC,IAAI;AAEX,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,SAAO,MAAM,KAAK,CAAC;AACrB;AAEA,IAAM,YAAY,WAAW,eAAe;AAE5C,IAAM,aAAa,CAAC,UAClB,UAAU,SAAS,KAAK,KAAK,WAAW,KAAK,MAAM,WAAW,MAAM,IAAI,KAAK,WAAW,MAAM,KAAK;AAErG,IAAO,gBAAQ;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACnsBA,SAAS,WAAW,SAAS,MAAM,QAAQ,SAAS,UAAU;AAC5D,QAAM,KAAK,IAAI;AAEf,MAAI,MAAM,mBAAmB;AAC3B,UAAM,kBAAkB,MAAM,KAAK,WAAW;AAAA,EAChD,OAAO;AACL,SAAK,QAAS,IAAI,MAAM,EAAG;AAAA,EAC7B;AAEA,OAAK,UAAU;AACf,OAAK,OAAO;AACZ,WAAS,KAAK,OAAO;AACrB,aAAW,KAAK,SAAS;AACzB,cAAY,KAAK,UAAU;AAC3B,eAAa,KAAK,WAAW;AAC/B;AAEA,cAAM,SAAS,YAAY,OAAO;AAAA,EAChC,QAAQ,SAAS,SAAS;AACxB,WAAO;AAAA;AAAA,MAEL,SAAS,KAAK;AAAA,MACd,MAAM,KAAK;AAAA;AAAA,MAEX,aAAa,KAAK;AAAA,MAClB,QAAQ,KAAK;AAAA;AAAA,MAEb,UAAU,KAAK;AAAA,MACf,YAAY,KAAK;AAAA,MACjB,cAAc,KAAK;AAAA,MACnB,OAAO,KAAK;AAAA;AAAA,MAEZ,QAAQ,cAAM,aAAa,KAAK,MAAM;AAAA,MACtC,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK,YAAY,KAAK,SAAS,SAAS,KAAK,SAAS,SAAS;AAAA,IACzE;AAAA,EACF;AACF,CAAC;AAED,IAAM,YAAY,WAAW;AAC7B,IAAM,cAAc,CAAC;AAErB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAEF,EAAE,QAAQ,UAAQ;AAChB,cAAY,IAAI,IAAI,EAAC,OAAO,KAAI;AAClC,CAAC;AAED,OAAO,iBAAiB,YAAY,WAAW;AAC/C,OAAO,eAAe,WAAW,gBAAgB,EAAC,OAAO,KAAI,CAAC;AAG9D,WAAW,OAAO,CAAC,OAAO,MAAM,QAAQ,SAAS,UAAU,gBAAgB;AACzE,QAAM,aAAa,OAAO,OAAO,SAAS;AAE1C,gBAAM,aAAa,OAAO,YAAY,SAASG,QAAO,KAAK;AACzD,WAAO,QAAQ,MAAM;AAAA,EACvB,GAAG,UAAQ;AACT,WAAO,SAAS;AAAA,EAClB,CAAC;AAED,aAAW,KAAK,YAAY,MAAM,SAAS,MAAM,QAAQ,SAAS,QAAQ;AAE1E,aAAW,QAAQ;AAEnB,aAAW,OAAO,MAAM;AAExB,iBAAe,OAAO,OAAO,YAAY,WAAW;AAEpD,SAAO;AACT;AAEA,IAAO,qBAAQ;;;ACnGf,uBAAqB;AAErB,IAAO,mBAAQ,iBAAAC;;;ACYf,SAAS,YAAY,OAAO;AAC1B,SAAO,cAAM,cAAc,KAAK,KAAK,cAAM,QAAQ,KAAK;AAC1D;AASA,SAAS,eAAe,KAAK;AAC3B,SAAO,cAAM,SAAS,KAAK,IAAI,IAAI,IAAI,MAAM,GAAG,EAAE,IAAI;AACxD;AAWA,SAAS,UAAU,MAAM,KAAK,MAAM;AAClC,MAAI,CAAC;AAAM,WAAO;AAClB,SAAO,KAAK,OAAO,GAAG,EAAE,IAAI,SAAS,KAAK,OAAO,GAAG;AAElD,YAAQ,eAAe,KAAK;AAC5B,WAAO,CAAC,QAAQ,IAAI,MAAM,QAAQ,MAAM;AAAA,EAC1C,CAAC,EAAE,KAAK,OAAO,MAAM,EAAE;AACzB;AASA,SAAS,YAAY,KAAK;AACxB,SAAO,cAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW;AACpD;AAEA,IAAM,aAAa,cAAM,aAAa,eAAO,CAAC,GAAG,MAAM,SAAS,OAAO,MAAM;AAC3E,SAAO,WAAW,KAAK,IAAI;AAC7B,CAAC;AAyBD,SAAS,WAAW,KAAK,UAAU,SAAS;AAC1C,MAAI,CAAC,cAAM,SAAS,GAAG,GAAG;AACxB,UAAM,IAAI,UAAU,0BAA0B;AAAA,EAChD;AAGA,aAAW,YAAY,KAAK,oBAAoB,UAAU;AAG1D,YAAU,cAAM,aAAa,SAAS;AAAA,IACpC,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,EACX,GAAG,OAAO,SAAS,QAAQ,QAAQ,QAAQ;AAEzC,WAAO,CAAC,cAAM,YAAY,OAAO,MAAM,CAAC;AAAA,EAC1C,CAAC;AAED,QAAM,aAAa,QAAQ;AAE3B,QAAM,UAAU,QAAQ,WAAW;AACnC,QAAM,OAAO,QAAQ;AACrB,QAAM,UAAU,QAAQ;AACxB,QAAM,QAAQ,QAAQ,QAAQ,OAAO,SAAS,eAAe;AAC7D,QAAM,UAAU,SAAS,cAAM,oBAAoB,QAAQ;AAE3D,MAAI,CAAC,cAAM,WAAW,OAAO,GAAG;AAC9B,UAAM,IAAI,UAAU,4BAA4B;AAAA,EAClD;AAEA,WAAS,aAAa,OAAO;AAC3B,QAAI,UAAU;AAAM,aAAO;AAE3B,QAAI,cAAM,OAAO,KAAK,GAAG;AACvB,aAAO,MAAM,YAAY;AAAA,IAC3B;AAEA,QAAI,CAAC,WAAW,cAAM,OAAO,KAAK,GAAG;AACnC,YAAM,IAAI,mBAAW,8CAA8C;AAAA,IACrE;AAEA,QAAI,cAAM,cAAc,KAAK,KAAK,cAAM,aAAa,KAAK,GAAG;AAC3D,aAAO,WAAW,OAAO,SAAS,aAAa,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK;AAAA,IACtF;AAEA,WAAO;AAAA,EACT;AAYA,WAAS,eAAe,OAAO,KAAK,MAAM;AACxC,QAAI,MAAM;AAEV,QAAI,SAAS,CAAC,QAAQ,OAAO,UAAU,UAAU;AAC/C,UAAI,cAAM,SAAS,KAAK,IAAI,GAAG;AAE7B,cAAM,aAAa,MAAM,IAAI,MAAM,GAAG,EAAE;AAExC,gBAAQ,KAAK,UAAU,KAAK;AAAA,MAC9B,WACG,cAAM,QAAQ,KAAK,KAAK,YAAY,KAAK,MACxC,cAAM,WAAW,KAAK,KAAK,cAAM,SAAS,KAAK,IAAI,OAAO,MAAM,cAAM,QAAQ,KAAK,IAClF;AAEH,cAAM,eAAe,GAAG;AAExB,YAAI,QAAQ,SAAS,KAAK,IAAI,OAAO;AACnC,YAAE,cAAM,YAAY,EAAE,KAAK,OAAO,SAAS,SAAS;AAAA;AAAA,YAElD,YAAY,OAAO,UAAU,CAAC,GAAG,GAAG,OAAO,IAAI,IAAK,YAAY,OAAO,MAAM,MAAM;AAAA,YACnF,aAAa,EAAE;AAAA,UACjB;AAAA,QACF,CAAC;AACD,eAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAI,YAAY,KAAK,GAAG;AACtB,aAAO;AAAA,IACT;AAEA,aAAS,OAAO,UAAU,MAAM,KAAK,IAAI,GAAG,aAAa,KAAK,CAAC;AAE/D,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,CAAC;AAEf,QAAM,iBAAiB,OAAO,OAAO,YAAY;AAAA,IAC/C;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,WAAS,MAAM,OAAO,MAAM;AAC1B,QAAI,cAAM,YAAY,KAAK;AAAG;AAE9B,QAAI,MAAM,QAAQ,KAAK,MAAM,IAAI;AAC/B,YAAM,MAAM,oCAAoC,KAAK,KAAK,GAAG,CAAC;AAAA,IAChE;AAEA,UAAM,KAAK,KAAK;AAEhB,kBAAM,QAAQ,OAAO,SAAS,KAAK,IAAI,KAAK;AAC1C,YAAM,SAAS,EAAE,cAAM,YAAY,EAAE,KAAK,OAAO,SAAS,QAAQ;AAAA,QAChE;AAAA,QAAU;AAAA,QAAI,cAAM,SAAS,GAAG,IAAI,IAAI,KAAK,IAAI;AAAA,QAAK;AAAA,QAAM;AAAA,MAC9D;AAEA,UAAI,WAAW,MAAM;AACnB,cAAM,IAAI,OAAO,KAAK,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;AAAA,MAC3C;AAAA,IACF,CAAC;AAED,UAAM,IAAI;AAAA,EACZ;AAEA,MAAI,CAAC,cAAM,SAAS,GAAG,GAAG;AACxB,UAAM,IAAI,UAAU,wBAAwB;AAAA,EAC9C;AAEA,QAAM,GAAG;AAET,SAAO;AACT;AAEA,IAAO,qBAAQ;;;AC9Mf,SAAS,OAAO,KAAK;AACnB,QAAM,UAAU;AAAA,IACd,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,EACT;AACA,SAAO,mBAAmB,GAAG,EAAE,QAAQ,oBAAoB,SAAS,SAAS,OAAO;AAClF,WAAO,QAAQ,KAAK;AAAA,EACtB,CAAC;AACH;AAUA,SAAS,qBAAqB,QAAQ,SAAS;AAC7C,OAAK,SAAS,CAAC;AAEf,YAAU,mBAAW,QAAQ,MAAM,OAAO;AAC5C;AAEA,IAAMC,aAAY,qBAAqB;AAEvCA,WAAU,SAAS,SAAS,OAAO,MAAM,OAAO;AAC9C,OAAK,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAChC;AAEAA,WAAU,WAAW,SAASC,UAAS,SAAS;AAC9C,QAAM,UAAU,UAAU,SAAS,OAAO;AACxC,WAAO,QAAQ,KAAK,MAAM,OAAO,MAAM;AAAA,EACzC,IAAI;AAEJ,SAAO,KAAK,OAAO,IAAI,SAAS,KAAK,MAAM;AACzC,WAAO,QAAQ,KAAK,CAAC,CAAC,IAAI,MAAM,QAAQ,KAAK,CAAC,CAAC;AAAA,EACjD,GAAG,EAAE,EAAE,KAAK,GAAG;AACjB;AAEA,IAAO,+BAAQ;;;AC5Cf,SAASC,QAAO,KAAK;AACnB,SAAO,mBAAmB,GAAG,EAC3B,QAAQ,SAAS,GAAG,EACpB,QAAQ,QAAQ,GAAG,EACnB,QAAQ,SAAS,GAAG,EACpB,QAAQ,QAAQ,GAAG,EACnB,QAAQ,SAAS,GAAG,EACpB,QAAQ,SAAS,GAAG;AACxB;AAWe,SAAR,SAA0BC,MAAK,QAAQ,SAAS;AAErD,MAAI,CAAC,QAAQ;AACX,WAAOA;AAAA,EACT;AAEA,QAAM,UAAU,WAAW,QAAQ,UAAUD;AAE7C,QAAM,cAAc,WAAW,QAAQ;AAEvC,MAAI;AAEJ,MAAI,aAAa;AACf,uBAAmB,YAAY,QAAQ,OAAO;AAAA,EAChD,OAAO;AACL,uBAAmB,cAAM,kBAAkB,MAAM,IAC/C,OAAO,SAAS,IAChB,IAAI,6BAAqB,QAAQ,OAAO,EAAE,SAAS,OAAO;AAAA,EAC9D;AAEA,MAAI,kBAAkB;AACpB,UAAM,gBAAgBC,KAAI,QAAQ,GAAG;AAErC,QAAI,kBAAkB,IAAI;AACxB,MAAAA,OAAMA,KAAI,MAAM,GAAG,aAAa;AAAA,IAClC;AACA,IAAAA,SAAQA,KAAI,QAAQ,GAAG,MAAM,KAAK,MAAM,OAAO;AAAA,EACjD;AAEA,SAAOA;AACT;;;AC1DA,IAAM,qBAAN,MAAyB;AAAA,EACvB,cAAc;AACZ,SAAK,WAAW,CAAC;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,IAAI,WAAW,UAAU,SAAS;AAChC,SAAK,SAAS,KAAK;AAAA,MACjB;AAAA,MACA;AAAA,MACA,aAAa,UAAU,QAAQ,cAAc;AAAA,MAC7C,SAAS,UAAU,QAAQ,UAAU;AAAA,IACvC,CAAC;AACD,WAAO,KAAK,SAAS,SAAS;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,IAAI;AACR,QAAI,KAAK,SAAS,EAAE,GAAG;AACrB,WAAK,SAAS,EAAE,IAAI;AAAA,IACtB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ;AACN,QAAI,KAAK,UAAU;AACjB,WAAK,WAAW,CAAC;AAAA,IACnB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,QAAQ,IAAI;AACV,kBAAM,QAAQ,KAAK,UAAU,SAAS,eAAe,GAAG;AACtD,UAAI,MAAM,MAAM;AACd,WAAG,CAAC;AAAA,MACN;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,IAAO,6BAAQ;;;ACpEf,IAAO,uBAAQ;AAAA,EACb,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,qBAAqB;AACvB;;;ACJA,iBAAgB;AAChB,IAAO,0BAAQ,WAAAC,QAAI;;;ACAnB,IAAO,eAAQ;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AAAA,IACP;AAAA,IACA;AAAA,IACA,MAAM,OAAO,SAAS,eAAe,QAAQ;AAAA,EAC/C;AAAA,EACA,WAAW,CAAE,QAAQ,SAAS,QAAQ,MAAO;AAC/C;;;ACXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAM,gBAAgB,OAAO,WAAW,eAAe,OAAO,aAAa;AAmB3E,IAAM,yBACJ,CAAC,YAAY;AACX,SAAO,iBAAiB,CAAC,eAAe,gBAAgB,IAAI,EAAE,QAAQ,OAAO,IAAI;AACnF,GAAG,OAAO,cAAc,eAAe,UAAU,OAAO;AAW1D,IAAM,kCAAkC,MAAM;AAC5C,SACE,OAAO,sBAAsB;AAAA,EAE7B,gBAAgB,qBAChB,OAAO,KAAK,kBAAkB;AAElC,GAAG;;;ACrCH,IAAO,mBAAQ;AAAA,EACb,GAAG;AAAA,EACH,GAAG;AACL;;;ACAe,SAAR,iBAAkC,MAAM,SAAS;AACtD,SAAO,mBAAW,MAAM,IAAI,iBAAS,QAAQ,gBAAgB,GAAG,OAAO,OAAO;AAAA,IAC5E,SAAS,SAAS,OAAO,KAAK,MAAM,SAAS;AAC3C,UAAI,iBAAS,UAAU,cAAM,SAAS,KAAK,GAAG;AAC5C,aAAK,OAAO,KAAK,MAAM,SAAS,QAAQ,CAAC;AACzC,eAAO;AAAA,MACT;AAEA,aAAO,QAAQ,eAAe,MAAM,MAAM,SAAS;AAAA,IACrD;AAAA,EACF,GAAG,OAAO,CAAC;AACb;;;ACNA,SAAS,cAAc,MAAM;AAK3B,SAAO,cAAM,SAAS,iBAAiB,IAAI,EAAE,IAAI,WAAS;AACxD,WAAO,MAAM,CAAC,MAAM,OAAO,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC;AAAA,EACrD,CAAC;AACH;AASA,SAAS,cAAc,KAAK;AAC1B,QAAM,MAAM,CAAC;AACb,QAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,MAAI;AACJ,QAAM,MAAM,KAAK;AACjB,MAAI;AACJ,OAAK,IAAI,GAAG,IAAI,KAAK,KAAK;AACxB,UAAM,KAAK,CAAC;AACZ,QAAI,GAAG,IAAI,IAAI,GAAG;AAAA,EACpB;AACA,SAAO;AACT;AASA,SAAS,eAAe,UAAU;AAChC,WAAS,UAAU,MAAM,OAAO,QAAQ,OAAO;AAC7C,QAAI,OAAO,KAAK,OAAO;AAEvB,QAAI,SAAS;AAAa,aAAO;AAEjC,UAAM,eAAe,OAAO,SAAS,CAAC,IAAI;AAC1C,UAAM,SAAS,SAAS,KAAK;AAC7B,WAAO,CAAC,QAAQ,cAAM,QAAQ,MAAM,IAAI,OAAO,SAAS;AAExD,QAAI,QAAQ;AACV,UAAI,cAAM,WAAW,QAAQ,IAAI,GAAG;AAClC,eAAO,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,KAAK;AAAA,MACrC,OAAO;AACL,eAAO,IAAI,IAAI;AAAA,MACjB;AAEA,aAAO,CAAC;AAAA,IACV;AAEA,QAAI,CAAC,OAAO,IAAI,KAAK,CAAC,cAAM,SAAS,OAAO,IAAI,CAAC,GAAG;AAClD,aAAO,IAAI,IAAI,CAAC;AAAA,IAClB;AAEA,UAAM,SAAS,UAAU,MAAM,OAAO,OAAO,IAAI,GAAG,KAAK;AAEzD,QAAI,UAAU,cAAM,QAAQ,OAAO,IAAI,CAAC,GAAG;AACzC,aAAO,IAAI,IAAI,cAAc,OAAO,IAAI,CAAC;AAAA,IAC3C;AAEA,WAAO,CAAC;AAAA,EACV;AAEA,MAAI,cAAM,WAAW,QAAQ,KAAK,cAAM,WAAW,SAAS,OAAO,GAAG;AACpE,UAAM,MAAM,CAAC;AAEb,kBAAM,aAAa,UAAU,CAAC,MAAM,UAAU;AAC5C,gBAAU,cAAc,IAAI,GAAG,OAAO,KAAK,CAAC;AAAA,IAC9C,CAAC;AAED,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,IAAO,yBAAQ;;;AC1Ef,SAAS,gBAAgB,UAAU,QAAQ,SAAS;AAClD,MAAI,cAAM,SAAS,QAAQ,GAAG;AAC5B,QAAI;AACF,OAAC,UAAU,KAAK,OAAO,QAAQ;AAC/B,aAAO,cAAM,KAAK,QAAQ;AAAA,IAC5B,SAAS,GAAG;AACV,UAAI,EAAE,SAAS,eAAe;AAC5B,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,UAAQ,WAAW,KAAK,WAAW,QAAQ;AAC7C;AAEA,IAAM,WAAW;AAAA,EAEf,cAAc;AAAA,EAEd,SAAS,CAAC,OAAO,MAAM;AAAA,EAEvB,kBAAkB,CAAC,SAAS,iBAAiB,MAAM,SAAS;AAC1D,UAAM,cAAc,QAAQ,eAAe,KAAK;AAChD,UAAM,qBAAqB,YAAY,QAAQ,kBAAkB,IAAI;AACrE,UAAM,kBAAkB,cAAM,SAAS,IAAI;AAE3C,QAAI,mBAAmB,cAAM,WAAW,IAAI,GAAG;AAC7C,aAAO,IAAI,SAAS,IAAI;AAAA,IAC1B;AAEA,UAAMC,cAAa,cAAM,WAAW,IAAI;AAExC,QAAIA,aAAY;AACd,UAAI,CAAC,oBAAoB;AACvB,eAAO;AAAA,MACT;AACA,aAAO,qBAAqB,KAAK,UAAU,uBAAe,IAAI,CAAC,IAAI;AAAA,IACrE;AAEA,QAAI,cAAM,cAAc,IAAI,KAC1B,cAAM,SAAS,IAAI,KACnB,cAAM,SAAS,IAAI,KACnB,cAAM,OAAO,IAAI,KACjB,cAAM,OAAO,IAAI,GACjB;AACA,aAAO;AAAA,IACT;AACA,QAAI,cAAM,kBAAkB,IAAI,GAAG;AACjC,aAAO,KAAK;AAAA,IACd;AACA,QAAI,cAAM,kBAAkB,IAAI,GAAG;AACjC,cAAQ,eAAe,mDAAmD,KAAK;AAC/E,aAAO,KAAK,SAAS;AAAA,IACvB;AAEA,QAAIC;AAEJ,QAAI,iBAAiB;AACnB,UAAI,YAAY,QAAQ,mCAAmC,IAAI,IAAI;AACjE,eAAO,iBAAiB,MAAM,KAAK,cAAc,EAAE,SAAS;AAAA,MAC9D;AAEA,WAAKA,cAAa,cAAM,WAAW,IAAI,MAAM,YAAY,QAAQ,qBAAqB,IAAI,IAAI;AAC5F,cAAM,YAAY,KAAK,OAAO,KAAK,IAAI;AAEvC,eAAO;AAAA,UACLA,cAAa,EAAC,WAAW,KAAI,IAAI;AAAA,UACjC,aAAa,IAAI,UAAU;AAAA,UAC3B,KAAK;AAAA,QACP;AAAA,MACF;AAAA,IACF;AAEA,QAAI,mBAAmB,oBAAqB;AAC1C,cAAQ,eAAe,oBAAoB,KAAK;AAChD,aAAO,gBAAgB,IAAI;AAAA,IAC7B;AAEA,WAAO;AAAA,EACT,CAAC;AAAA,EAED,mBAAmB,CAAC,SAAS,kBAAkB,MAAM;AACnD,UAAMC,gBAAe,KAAK,gBAAgB,SAAS;AACnD,UAAM,oBAAoBA,iBAAgBA,cAAa;AACvD,UAAM,gBAAgB,KAAK,iBAAiB;AAE5C,QAAI,QAAQ,cAAM,SAAS,IAAI,MAAO,qBAAqB,CAAC,KAAK,gBAAiB,gBAAgB;AAChG,YAAM,oBAAoBA,iBAAgBA,cAAa;AACvD,YAAM,oBAAoB,CAAC,qBAAqB;AAEhD,UAAI;AACF,eAAO,KAAK,MAAM,IAAI;AAAA,MACxB,SAAS,GAAG;AACV,YAAI,mBAAmB;AACrB,cAAI,EAAE,SAAS,eAAe;AAC5B,kBAAM,mBAAW,KAAK,GAAG,mBAAW,kBAAkB,MAAM,MAAM,KAAK,QAAQ;AAAA,UACjF;AACA,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,SAAS;AAAA,EAET,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAEhB,kBAAkB;AAAA,EAClB,eAAe;AAAA,EAEf,KAAK;AAAA,IACH,UAAU,iBAAS,QAAQ;AAAA,IAC3B,MAAM,iBAAS,QAAQ;AAAA,EACzB;AAAA,EAEA,gBAAgB,SAAS,eAAe,QAAQ;AAC9C,WAAO,UAAU,OAAO,SAAS;AAAA,EACnC;AAAA,EAEA,SAAS;AAAA,IACP,QAAQ;AAAA,MACN,UAAU;AAAA,MACV,gBAAgB;AAAA,IAClB;AAAA,EACF;AACF;AAEA,cAAM,QAAQ,CAAC,UAAU,OAAO,QAAQ,QAAQ,OAAO,OAAO,GAAG,CAAC,WAAW;AAC3E,WAAS,QAAQ,MAAM,IAAI,CAAC;AAC9B,CAAC;AAED,IAAO,mBAAQ;;;ACxJf,IAAM,oBAAoB,cAAM,YAAY;AAAA,EAC1C;AAAA,EAAO;AAAA,EAAiB;AAAA,EAAkB;AAAA,EAAgB;AAAA,EAC1D;AAAA,EAAW;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAqB;AAAA,EAChD;AAAA,EAAiB;AAAA,EAAY;AAAA,EAAgB;AAAA,EAC7C;AAAA,EAAW;AAAA,EAAe;AAC5B,CAAC;AAgBD,IAAO,uBAAQ,gBAAc;AAC3B,QAAM,SAAS,CAAC;AAChB,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,gBAAc,WAAW,MAAM,IAAI,EAAE,QAAQ,SAAS,OAAO,MAAM;AACjE,QAAI,KAAK,QAAQ,GAAG;AACpB,UAAM,KAAK,UAAU,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY;AAC9C,UAAM,KAAK,UAAU,IAAI,CAAC,EAAE,KAAK;AAEjC,QAAI,CAAC,OAAQ,OAAO,GAAG,KAAK,kBAAkB,GAAG,GAAI;AACnD;AAAA,IACF;AAEA,QAAI,QAAQ,cAAc;AACxB,UAAI,OAAO,GAAG,GAAG;AACf,eAAO,GAAG,EAAE,KAAK,GAAG;AAAA,MACtB,OAAO;AACL,eAAO,GAAG,IAAI,CAAC,GAAG;AAAA,MACpB;AAAA,IACF,OAAO;AACL,aAAO,GAAG,IAAI,OAAO,GAAG,IAAI,OAAO,GAAG,IAAI,OAAO,MAAM;AAAA,IACzD;AAAA,EACF,CAAC;AAED,SAAO;AACT;;;ACjDA,IAAM,aAAa,OAAO,WAAW;AAErC,SAAS,gBAAgB,QAAQ;AAC/B,SAAO,UAAU,OAAO,MAAM,EAAE,KAAK,EAAE,YAAY;AACrD;AAEA,SAAS,eAAe,OAAO;AAC7B,MAAI,UAAU,SAAS,SAAS,MAAM;AACpC,WAAO;AAAA,EACT;AAEA,SAAO,cAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,cAAc,IAAI,OAAO,KAAK;AACxE;AAEA,SAAS,YAAY,KAAK;AACxB,QAAM,SAAS,uBAAO,OAAO,IAAI;AACjC,QAAM,WAAW;AACjB,MAAI;AAEJ,SAAQ,QAAQ,SAAS,KAAK,GAAG,GAAI;AACnC,WAAO,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC;AAAA,EAC5B;AAEA,SAAO;AACT;AAEA,IAAM,oBAAoB,CAAC,QAAQ,iCAAiC,KAAK,IAAI,KAAK,CAAC;AAEnF,SAAS,iBAAiB,SAAS,OAAO,QAAQC,SAAQ,oBAAoB;AAC5E,MAAI,cAAM,WAAWA,OAAM,GAAG;AAC5B,WAAOA,QAAO,KAAK,MAAM,OAAO,MAAM;AAAA,EACxC;AAEA,MAAI,oBAAoB;AACtB,YAAQ;AAAA,EACV;AAEA,MAAI,CAAC,cAAM,SAAS,KAAK;AAAG;AAE5B,MAAI,cAAM,SAASA,OAAM,GAAG;AAC1B,WAAO,MAAM,QAAQA,OAAM,MAAM;AAAA,EACnC;AAEA,MAAI,cAAM,SAASA,OAAM,GAAG;AAC1B,WAAOA,QAAO,KAAK,KAAK;AAAA,EAC1B;AACF;AAEA,SAAS,aAAa,QAAQ;AAC5B,SAAO,OAAO,KAAK,EAChB,YAAY,EAAE,QAAQ,mBAAmB,CAAC,GAAG,MAAM,QAAQ;AAC1D,WAAO,KAAK,YAAY,IAAI;AAAA,EAC9B,CAAC;AACL;AAEA,SAAS,eAAe,KAAK,QAAQ;AACnC,QAAM,eAAe,cAAM,YAAY,MAAM,MAAM;AAEnD,GAAC,OAAO,OAAO,KAAK,EAAE,QAAQ,gBAAc;AAC1C,WAAO,eAAe,KAAK,aAAa,cAAc;AAAA,MACpD,OAAO,SAAS,MAAM,MAAM,MAAM;AAChC,eAAO,KAAK,UAAU,EAAE,KAAK,MAAM,QAAQ,MAAM,MAAM,IAAI;AAAA,MAC7D;AAAA,MACA,cAAc;AAAA,IAChB,CAAC;AAAA,EACH,CAAC;AACH;AAEA,IAAM,eAAN,MAAmB;AAAA,EACjB,YAAY,SAAS;AACnB,eAAW,KAAK,IAAI,OAAO;AAAA,EAC7B;AAAA,EAEA,IAAI,QAAQ,gBAAgB,SAAS;AACnC,UAAMC,QAAO;AAEb,aAAS,UAAU,QAAQ,SAAS,UAAU;AAC5C,YAAM,UAAU,gBAAgB,OAAO;AAEvC,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI,MAAM,wCAAwC;AAAA,MAC1D;AAEA,YAAM,MAAM,cAAM,QAAQA,OAAM,OAAO;AAEvC,UAAG,CAAC,OAAOA,MAAK,GAAG,MAAM,UAAa,aAAa,QAAS,aAAa,UAAaA,MAAK,GAAG,MAAM,OAAQ;AAC1G,QAAAA,MAAK,OAAO,OAAO,IAAI,eAAe,MAAM;AAAA,MAC9C;AAAA,IACF;AAEA,UAAM,aAAa,CAAC,SAAS,aAC3B,cAAM,QAAQ,SAAS,CAAC,QAAQ,YAAY,UAAU,QAAQ,SAAS,QAAQ,CAAC;AAElF,QAAI,cAAM,cAAc,MAAM,KAAK,kBAAkB,KAAK,aAAa;AACrE,iBAAW,QAAQ,cAAc;AAAA,IACnC,WAAU,cAAM,SAAS,MAAM,MAAM,SAAS,OAAO,KAAK,MAAM,CAAC,kBAAkB,MAAM,GAAG;AAC1F,iBAAW,qBAAa,MAAM,GAAG,cAAc;AAAA,IACjD,OAAO;AACL,gBAAU,QAAQ,UAAU,gBAAgB,QAAQ,OAAO;AAAA,IAC7D;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,QAAQ,QAAQ;AAClB,aAAS,gBAAgB,MAAM;AAE/B,QAAI,QAAQ;AACV,YAAM,MAAM,cAAM,QAAQ,MAAM,MAAM;AAEtC,UAAI,KAAK;AACP,cAAM,QAAQ,KAAK,GAAG;AAEtB,YAAI,CAAC,QAAQ;AACX,iBAAO;AAAA,QACT;AAEA,YAAI,WAAW,MAAM;AACnB,iBAAO,YAAY,KAAK;AAAA,QAC1B;AAEA,YAAI,cAAM,WAAW,MAAM,GAAG;AAC5B,iBAAO,OAAO,KAAK,MAAM,OAAO,GAAG;AAAA,QACrC;AAEA,YAAI,cAAM,SAAS,MAAM,GAAG;AAC1B,iBAAO,OAAO,KAAK,KAAK;AAAA,QAC1B;AAEA,cAAM,IAAI,UAAU,wCAAwC;AAAA,MAC9D;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAI,QAAQ,SAAS;AACnB,aAAS,gBAAgB,MAAM;AAE/B,QAAI,QAAQ;AACV,YAAM,MAAM,cAAM,QAAQ,MAAM,MAAM;AAEtC,aAAO,CAAC,EAAE,OAAO,KAAK,GAAG,MAAM,WAAc,CAAC,WAAW,iBAAiB,MAAM,KAAK,GAAG,GAAG,KAAK,OAAO;AAAA,IACzG;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,QAAQ,SAAS;AACtB,UAAMA,QAAO;AACb,QAAI,UAAU;AAEd,aAAS,aAAa,SAAS;AAC7B,gBAAU,gBAAgB,OAAO;AAEjC,UAAI,SAAS;AACX,cAAM,MAAM,cAAM,QAAQA,OAAM,OAAO;AAEvC,YAAI,QAAQ,CAAC,WAAW,iBAAiBA,OAAMA,MAAK,GAAG,GAAG,KAAK,OAAO,IAAI;AACxE,iBAAOA,MAAK,GAAG;AAEf,oBAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAEA,QAAI,cAAM,QAAQ,MAAM,GAAG;AACzB,aAAO,QAAQ,YAAY;AAAA,IAC7B,OAAO;AACL,mBAAa,MAAM;AAAA,IACrB;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,SAAS;AACb,UAAM,OAAO,OAAO,KAAK,IAAI;AAC7B,QAAI,IAAI,KAAK;AACb,QAAI,UAAU;AAEd,WAAO,KAAK;AACV,YAAM,MAAM,KAAK,CAAC;AAClB,UAAG,CAAC,WAAW,iBAAiB,MAAM,KAAK,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG;AACpE,eAAO,KAAK,GAAG;AACf,kBAAU;AAAA,MACZ;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,QAAQ;AAChB,UAAMA,QAAO;AACb,UAAM,UAAU,CAAC;AAEjB,kBAAM,QAAQ,MAAM,CAAC,OAAO,WAAW;AACrC,YAAM,MAAM,cAAM,QAAQ,SAAS,MAAM;AAEzC,UAAI,KAAK;AACP,QAAAA,MAAK,GAAG,IAAI,eAAe,KAAK;AAChC,eAAOA,MAAK,MAAM;AAClB;AAAA,MACF;AAEA,YAAM,aAAa,SAAS,aAAa,MAAM,IAAI,OAAO,MAAM,EAAE,KAAK;AAEvE,UAAI,eAAe,QAAQ;AACzB,eAAOA,MAAK,MAAM;AAAA,MACpB;AAEA,MAAAA,MAAK,UAAU,IAAI,eAAe,KAAK;AAEvC,cAAQ,UAAU,IAAI;AAAA,IACxB,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,SAAS;AACjB,WAAO,KAAK,YAAY,OAAO,MAAM,GAAG,OAAO;AAAA,EACjD;AAAA,EAEA,OAAO,WAAW;AAChB,UAAM,MAAM,uBAAO,OAAO,IAAI;AAE9B,kBAAM,QAAQ,MAAM,CAAC,OAAO,WAAW;AACrC,eAAS,QAAQ,UAAU,UAAU,IAAI,MAAM,IAAI,aAAa,cAAM,QAAQ,KAAK,IAAI,MAAM,KAAK,IAAI,IAAI;AAAA,IAC5G,CAAC;AAED,WAAO;AAAA,EACT;AAAA,EAEA,CAAC,OAAO,QAAQ,IAAI;AAClB,WAAO,OAAO,QAAQ,KAAK,OAAO,CAAC,EAAE,OAAO,QAAQ,EAAE;AAAA,EACxD;AAAA,EAEA,WAAW;AACT,WAAO,OAAO,QAAQ,KAAK,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,SAAS,OAAO,KAAK,EAAE,KAAK,IAAI;AAAA,EAChG;AAAA,EAEA,KAAK,OAAO,WAAW,IAAI;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,KAAK,OAAO;AACjB,WAAO,iBAAiB,OAAO,QAAQ,IAAI,KAAK,KAAK;AAAA,EACvD;AAAA,EAEA,OAAO,OAAO,UAAU,SAAS;AAC/B,UAAM,WAAW,IAAI,KAAK,KAAK;AAE/B,YAAQ,QAAQ,CAAC,WAAW,SAAS,IAAI,MAAM,CAAC;AAEhD,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,SAAS,QAAQ;AACtB,UAAM,YAAY,KAAK,UAAU,IAAK,KAAK,UAAU,IAAI;AAAA,MACvD,WAAW,CAAC;AAAA,IACd;AAEA,UAAM,YAAY,UAAU;AAC5B,UAAMC,aAAY,KAAK;AAEvB,aAAS,eAAe,SAAS;AAC/B,YAAM,UAAU,gBAAgB,OAAO;AAEvC,UAAI,CAAC,UAAU,OAAO,GAAG;AACvB,uBAAeA,YAAW,OAAO;AACjC,kBAAU,OAAO,IAAI;AAAA,MACvB;AAAA,IACF;AAEA,kBAAM,QAAQ,MAAM,IAAI,OAAO,QAAQ,cAAc,IAAI,eAAe,MAAM;AAE9E,WAAO;AAAA,EACT;AACF;AAEA,aAAa,SAAS,CAAC,gBAAgB,kBAAkB,UAAU,mBAAmB,cAAc,eAAe,CAAC;AAGpH,cAAM,kBAAkB,aAAa,WAAW,CAAC,EAAC,MAAK,GAAG,QAAQ;AAChE,MAAI,SAAS,IAAI,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC;AAC/C,SAAO;AAAA,IACL,KAAK,MAAM;AAAA,IACX,IAAI,aAAa;AACf,WAAK,MAAM,IAAI;AAAA,IACjB;AAAA,EACF;AACF,CAAC;AAED,cAAM,cAAc,YAAY;AAEhC,IAAO,uBAAQ;;;AC3RA,SAAR,cAA+B,KAAK,UAAU;AACnD,QAAM,SAAS,QAAQ;AACvB,QAAM,UAAU,YAAY;AAC5B,QAAM,UAAU,qBAAa,KAAK,QAAQ,OAAO;AACjD,MAAI,OAAO,QAAQ;AAEnB,gBAAM,QAAQ,KAAK,SAAS,UAAU,IAAI;AACxC,WAAO,GAAG,KAAK,QAAQ,MAAM,QAAQ,UAAU,GAAG,WAAW,SAAS,SAAS,MAAS;AAAA,EAC1F,CAAC;AAED,UAAQ,UAAU;AAElB,SAAO;AACT;;;ACzBe,SAAR,SAA0B,OAAO;AACtC,SAAO,CAAC,EAAE,SAAS,MAAM;AAC3B;;;ACUA,SAAS,cAAc,SAAS,QAAQ,SAAS;AAE/C,qBAAW,KAAK,MAAM,WAAW,OAAO,aAAa,SAAS,mBAAW,cAAc,QAAQ,OAAO;AACtG,OAAK,OAAO;AACd;AAEA,cAAM,SAAS,eAAe,oBAAY;AAAA,EACxC,YAAY;AACd,CAAC;AAED,IAAO,wBAAQ;;;ACXA,SAAR,OAAwB,SAAS,QAAQ,UAAU;AACxD,QAAMC,kBAAiB,SAAS,OAAO;AACvC,MAAI,CAAC,SAAS,UAAU,CAACA,mBAAkBA,gBAAe,SAAS,MAAM,GAAG;AAC1E,YAAQ,QAAQ;AAAA,EAClB,OAAO;AACL,WAAO,IAAI;AAAA,MACT,qCAAqC,SAAS;AAAA,MAC9C,CAAC,mBAAW,iBAAiB,mBAAW,gBAAgB,EAAE,KAAK,MAAM,SAAS,SAAS,GAAG,IAAI,CAAC;AAAA,MAC/F,SAAS;AAAA,MACT,SAAS;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;ACjBe,SAAR,cAA+BC,MAAK;AAIzC,SAAO,8BAA8B,KAAKA,IAAG;AAC/C;;;ACJe,SAAR,YAA6B,SAAS,aAAa;AACxD,SAAO,cACH,QAAQ,QAAQ,UAAU,EAAE,IAAI,MAAM,YAAY,QAAQ,QAAQ,EAAE,IACpE;AACN;;;ACCe,SAAR,cAA+B,SAAS,cAAc;AAC3D,MAAI,WAAW,CAAC,cAAc,YAAY,GAAG;AAC3C,WAAO,YAAY,SAAS,YAAY;AAAA,EAC1C;AACA,SAAO;AACT;;;ACdA,4BAA6B;AAC7B,kBAAiB;AACjB,mBAAkB;AAClB,IAAAC,eAAiB;AACjB,8BAA4B;AAC5B,kBAAiB;;;ACXV,IAAM,UAAU;;;ACER,SAAR,cAA+BC,MAAK;AACzC,QAAM,QAAQ,4BAA4B,KAAKA,IAAG;AAClD,SAAO,SAAS,MAAM,CAAC,KAAK;AAC9B;;;ACCA,IAAM,mBAAmB;AAYV,SAAR,YAA6B,KAAK,QAAQ,SAAS;AACxD,QAAM,QAAQ,WAAW,QAAQ,QAAQ,iBAAS,QAAQ;AAC1D,QAAM,WAAW,cAAc,GAAG;AAElC,MAAI,WAAW,UAAa,OAAO;AACjC,aAAS;AAAA,EACX;AAEA,MAAI,aAAa,QAAQ;AACvB,UAAM,SAAS,SAAS,IAAI,MAAM,SAAS,SAAS,CAAC,IAAI;AAEzD,UAAM,QAAQ,iBAAiB,KAAK,GAAG;AAEvC,QAAI,CAAC,OAAO;AACV,YAAM,IAAI,mBAAW,eAAe,mBAAW,eAAe;AAAA,IAChE;AAEA,UAAM,OAAO,MAAM,CAAC;AACpB,UAAM,WAAW,MAAM,CAAC;AACxB,UAAM,OAAO,MAAM,CAAC;AACpB,UAAM,SAAS,OAAO,KAAK,mBAAmB,IAAI,GAAG,WAAW,WAAW,MAAM;AAEjF,QAAI,QAAQ;AACV,UAAI,CAAC,OAAO;AACV,cAAM,IAAI,mBAAW,yBAAyB,mBAAW,eAAe;AAAA,MAC1E;AAEA,aAAO,IAAI,MAAM,CAAC,MAAM,GAAG,EAAC,MAAM,KAAI,CAAC;AAAA,IACzC;AAEA,WAAO;AAAA,EACT;AAEA,QAAM,IAAI,mBAAW,0BAA0B,UAAU,mBAAW,eAAe;AACrF;;;AHlCA,IAAAC,iBAAmB;;;AIhBnB,oBAAmB;;;ACMnB,SAAS,SAAS,IAAI,MAAM;AAC1B,MAAI,YAAY;AAChB,QAAM,YAAY,MAAO;AACzB,MAAI,QAAQ;AACZ,SAAO,SAAS,UAAU,OAAO,MAAM;AACrC,UAAM,MAAM,KAAK,IAAI;AACrB,QAAI,SAAS,MAAM,YAAY,WAAW;AACxC,UAAI,OAAO;AACT,qBAAa,KAAK;AAClB,gBAAQ;AAAA,MACV;AACA,kBAAY;AACZ,aAAO,GAAG,MAAM,MAAM,IAAI;AAAA,IAC5B;AACA,QAAI,CAAC,OAAO;AACV,cAAQ,WAAW,MAAM;AACvB,gBAAQ;AACR,oBAAY,KAAK,IAAI;AACrB,eAAO,GAAG,MAAM,MAAM,IAAI;AAAA,MAC5B,GAAG,aAAa,MAAM,UAAU;AAAA,IAClC;AAAA,EACF;AACF;AAEA,IAAO,mBAAQ;;;ACxBf,SAAS,YAAY,cAAc,KAAK;AACtC,iBAAe,gBAAgB;AAC/B,QAAM,QAAQ,IAAI,MAAM,YAAY;AACpC,QAAM,aAAa,IAAI,MAAM,YAAY;AACzC,MAAI,OAAO;AACX,MAAI,OAAO;AACX,MAAI;AAEJ,QAAM,QAAQ,SAAY,MAAM;AAEhC,SAAO,SAAS,KAAK,aAAa;AAChC,UAAM,MAAM,KAAK,IAAI;AAErB,UAAM,YAAY,WAAW,IAAI;AAEjC,QAAI,CAAC,eAAe;AAClB,sBAAgB;AAAA,IAClB;AAEA,UAAM,IAAI,IAAI;AACd,eAAW,IAAI,IAAI;AAEnB,QAAI,IAAI;AACR,QAAI,aAAa;AAEjB,WAAO,MAAM,MAAM;AACjB,oBAAc,MAAM,GAAG;AACvB,UAAI,IAAI;AAAA,IACV;AAEA,YAAQ,OAAO,KAAK;AAEpB,QAAI,SAAS,MAAM;AACjB,cAAQ,OAAO,KAAK;AAAA,IACtB;AAEA,QAAI,MAAM,gBAAgB,KAAK;AAC7B;AAAA,IACF;AAEA,UAAM,SAAS,aAAa,MAAM;AAElC,WAAO,SAAS,KAAK,MAAM,aAAa,MAAO,MAAM,IAAI;AAAA,EAC3D;AACF;AAEA,IAAO,sBAAQ;;;AF/Cf,IAAM,aAAa,OAAO,WAAW;AAErC,IAAM,uBAAN,cAAmC,cAAAC,QAAO,UAAS;AAAA,EACjD,YAAY,SAAS;AACnB,cAAU,cAAM,aAAa,SAAS;AAAA,MACpC,SAAS;AAAA,MACT,WAAW,KAAK;AAAA,MAChB,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,cAAc;AAAA,IAChB,GAAG,MAAM,CAAC,MAAM,WAAW;AACzB,aAAO,CAAC,cAAM,YAAY,OAAO,IAAI,CAAC;AAAA,IACxC,CAAC;AAED,UAAM;AAAA,MACJ,uBAAuB,QAAQ;AAAA,IACjC,CAAC;AAED,UAAMC,QAAO;AAEb,UAAM,YAAY,KAAK,UAAU,IAAI;AAAA,MACnC,QAAQ,QAAQ;AAAA,MAChB,YAAY,QAAQ;AAAA,MACpB,WAAW,QAAQ;AAAA,MACnB,WAAW,QAAQ;AAAA,MACnB,SAAS,QAAQ;AAAA,MACjB,cAAc,QAAQ;AAAA,MACtB,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,qBAAqB;AAAA,MACrB,IAAI,KAAK,IAAI;AAAA,MACb,OAAO;AAAA,MACP,gBAAgB;AAAA,IAClB;AAEA,UAAM,eAAe,oBAAY,UAAU,YAAY,QAAQ,cAAc,UAAU,UAAU;AAEjG,SAAK,GAAG,eAAe,WAAS;AAC9B,UAAI,UAAU,YAAY;AACxB,YAAI,CAAC,UAAU,YAAY;AACzB,oBAAU,aAAa;AAAA,QACzB;AAAA,MACF;AAAA,IACF,CAAC;AAED,QAAI,gBAAgB;AAEpB,cAAU,iBAAiB,iBAAS,SAAS,mBAAmB;AAC9D,YAAM,aAAa,UAAU;AAC7B,YAAM,mBAAmB,UAAU;AACnC,YAAM,gBAAgB,mBAAmB;AACzC,UAAI,CAAC,iBAAiBA,MAAK;AAAW;AAEtC,YAAM,OAAO,aAAa,aAAa;AAEvC,sBAAgB;AAEhB,cAAQ,SAAS,MAAM;AACrB,QAAAA,MAAK,KAAK,YAAY;AAAA,UACpB,UAAU;AAAA,UACV,SAAS;AAAA,UACT,YAAY,aAAc,mBAAmB,aAAc;AAAA,UAC3D,SAAS;AAAA,UACT,QAAQ,OAAO,OAAO;AAAA,UACtB,aAAa,QAAQ,cAAc,oBAAoB,cACpD,aAAa,oBAAoB,OAAO;AAAA,QAC7C,CAAC;AAAA,MACH,CAAC;AAAA,IACH,GAAG,UAAU,SAAS;AAEtB,UAAM,WAAW,MAAM;AACrB,gBAAU,eAAe,IAAI;AAAA,IAC/B;AAEA,SAAK,KAAK,OAAO,QAAQ;AACzB,SAAK,KAAK,SAAS,QAAQ;AAAA,EAC7B;AAAA,EAEA,MAAM,MAAM;AACV,UAAM,YAAY,KAAK,UAAU;AAEjC,QAAI,UAAU,gBAAgB;AAC5B,gBAAU,eAAe;AAAA,IAC3B;AAEA,WAAO,MAAM,MAAM,IAAI;AAAA,EACzB;AAAA,EAEA,WAAW,OAAO,UAAU,UAAU;AACpC,UAAMA,QAAO;AACb,UAAM,YAAY,KAAK,UAAU;AACjC,UAAM,UAAU,UAAU;AAE1B,UAAM,wBAAwB,KAAK;AAEnC,UAAM,aAAa,UAAU;AAE7B,UAAM,UAAU,MAAO;AACvB,UAAM,iBAAkB,UAAU;AAClC,UAAM,eAAe,UAAU,iBAAiB,QAAQ,KAAK,IAAI,UAAU,cAAc,iBAAiB,IAAI,IAAI;AAElH,aAAS,UAAU,QAAQ,WAAW;AACpC,YAAM,QAAQ,OAAO,WAAW,MAAM;AACtC,gBAAU,aAAa;AACvB,gBAAU,SAAS;AAEnB,UAAI,UAAU,YAAY;AACxB,kBAAU,eAAe;AAAA,MAC3B;AAEA,UAAIA,MAAK,KAAK,MAAM,GAAG;AACrB,gBAAQ,SAAS,SAAS;AAAA,MAC5B,OAAO;AACL,kBAAU,iBAAiB,MAAM;AAC/B,oBAAU,iBAAiB;AAC3B,kBAAQ,SAAS,SAAS;AAAA,QAC5B;AAAA,MACF;AAAA,IACF;AAEA,UAAM,iBAAiB,CAAC,QAAQ,cAAc;AAC5C,YAAM,YAAY,OAAO,WAAW,MAAM;AAC1C,UAAI,iBAAiB;AACrB,UAAI,eAAe;AACnB,UAAI;AACJ,UAAI,SAAS;AAEb,UAAI,SAAS;AACX,cAAM,MAAM,KAAK,IAAI;AAErB,YAAI,CAAC,UAAU,OAAO,SAAU,MAAM,UAAU,OAAQ,YAAY;AAClE,oBAAU,KAAK;AACf,sBAAY,iBAAiB,UAAU;AACvC,oBAAU,QAAQ,YAAY,IAAI,CAAC,YAAY;AAC/C,mBAAS;AAAA,QACX;AAEA,oBAAY,iBAAiB,UAAU;AAAA,MACzC;AAEA,UAAI,SAAS;AACX,YAAI,aAAa,GAAG;AAElB,iBAAO,WAAW,MAAM;AACtB,sBAAU,MAAM,MAAM;AAAA,UACxB,GAAG,aAAa,MAAM;AAAA,QACxB;AAEA,YAAI,YAAY,cAAc;AAC5B,yBAAe;AAAA,QACjB;AAAA,MACF;AAEA,UAAI,gBAAgB,YAAY,gBAAiB,YAAY,eAAgB,cAAc;AACzF,yBAAiB,OAAO,SAAS,YAAY;AAC7C,iBAAS,OAAO,SAAS,GAAG,YAAY;AAAA,MAC1C;AAEA,gBAAU,QAAQ,iBAAiB,MAAM;AACvC,gBAAQ,SAAS,WAAW,MAAM,cAAc;AAAA,MAClD,IAAI,SAAS;AAAA,IACf;AAEA,mBAAe,OAAO,SAAS,mBAAmB,KAAK,QAAQ;AAC7D,UAAI,KAAK;AACP,eAAO,SAAS,GAAG;AAAA,MACrB;AAEA,UAAI,QAAQ;AACV,uBAAe,QAAQ,kBAAkB;AAAA,MAC3C,OAAO;AACL,iBAAS,IAAI;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,UAAU,QAAQ;AAChB,SAAK,UAAU,EAAE,SAAS,CAAC;AAC3B,WAAO;AAAA,EACT;AACF;AAEA,IAAO,+BAAQ;;;AJzKf,oBAAyB;;;AOrBzB,kBAA0B;AAC1B,IAAAC,iBAAuB;;;ACDvB,IAAM,EAAC,cAAa,IAAI;AAExB,IAAM,WAAW,iBAAiB,MAAM;AACtC,MAAI,KAAK,QAAQ;AACf,WAAO,KAAK,OAAO;AAAA,EACrB,WAAW,KAAK,aAAa;AAC3B,UAAM,MAAM,KAAK,YAAY;AAAA,EAC/B,WAAW,KAAK,aAAa,GAAG;AAC9B,WAAO,KAAK,aAAa,EAAE;AAAA,EAC7B,OAAO;AACL,UAAM;AAAA,EACR;AACF;AAEA,IAAO,mBAAQ;;;ADTf,IAAM,oBAAoB,cAAM,SAAS,cAAc;AAEvD,IAAM,cAAc,IAAI,wBAAY;AAEpC,IAAM,OAAO;AACb,IAAM,aAAa,YAAY,OAAO,IAAI;AAC1C,IAAM,mBAAmB;AAEzB,IAAM,eAAN,MAAmB;AAAA,EACjB,YAAY,MAAM,OAAO;AACvB,UAAM,EAAC,WAAU,IAAI,KAAK;AAC1B,UAAM,gBAAgB,cAAM,SAAS,KAAK;AAE1C,QAAI,UAAU,yCAAyC,WAAW,IAAI,CAAC,IACrE,CAAC,iBAAiB,MAAM,OAAO,eAAe,WAAW,MAAM,IAAI,CAAC,MAAM,EAC5E,GAAG,IAAI;AAEP,QAAI,eAAe;AACjB,cAAQ,YAAY,OAAO,OAAO,KAAK,EAAE,QAAQ,gBAAgB,IAAI,CAAC;AAAA,IACxE,OAAO;AACL,iBAAW,iBAAiB,MAAM,QAAQ,0BAA0B,GAAG,IAAI;AAAA,IAC7E;AAEA,SAAK,UAAU,YAAY,OAAO,UAAU,IAAI;AAEhD,SAAK,gBAAgB,gBAAgB,MAAM,aAAa,MAAM;AAE9D,SAAK,OAAO,KAAK,QAAQ,aAAa,KAAK,gBAAgB;AAE3D,SAAK,OAAO;AACZ,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,OAAO,SAAQ;AACb,UAAM,KAAK;AAEX,UAAM,EAAC,MAAK,IAAI;AAEhB,QAAG,cAAM,aAAa,KAAK,GAAG;AAC5B,YAAM;AAAA,IACR,OAAO;AACL,aAAO,iBAAS,KAAK;AAAA,IACvB;AAEA,UAAM;AAAA,EACR;AAAA,EAEA,OAAO,WAAW,MAAM;AACpB,WAAO,OAAO,IAAI,EAAE,QAAQ,YAAY,CAAC,WAAW;AAAA,MAClD,MAAO;AAAA,MACP,MAAO;AAAA,MACP,KAAM;AAAA,IACR,GAAE,KAAK,CAAE;AAAA,EACb;AACF;AAEA,IAAM,mBAAmB,CAAC,MAAM,gBAAgB,YAAY;AAC1D,QAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW,MAAM,MAAM,cAAM,eAAe,MAAM,iBAAiB;AAAA,EACrE,IAAI,WAAW,CAAC;AAEhB,MAAG,CAAC,cAAM,WAAW,IAAI,GAAG;AAC1B,UAAM,UAAU,4BAA4B;AAAA,EAC9C;AAEA,MAAI,SAAS,SAAS,KAAK,SAAS,SAAS,IAAI;AAC/C,UAAM,MAAM,wCAAwC;AAAA,EACtD;AAEA,QAAM,gBAAgB,YAAY,OAAO,OAAO,WAAW,IAAI;AAC/D,QAAM,cAAc,YAAY,OAAO,OAAO,WAAW,OAAO,OAAO,IAAI;AAC3E,MAAI,gBAAgB,YAAY;AAEhC,QAAM,QAAQ,MAAM,KAAK,KAAK,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;AAC9D,UAAM,OAAO,IAAI,aAAa,MAAM,KAAK;AACzC,qBAAiB,KAAK;AACtB,WAAO;AAAA,EACT,CAAC;AAED,mBAAiB,cAAc,aAAa,MAAM;AAElD,kBAAgB,cAAM,eAAe,aAAa;AAElD,QAAM,kBAAkB;AAAA,IACtB,gBAAgB,iCAAiC,QAAQ;AAAA,EAC3D;AAEA,MAAI,OAAO,SAAS,aAAa,GAAG;AAClC,oBAAgB,gBAAgB,IAAI;AAAA,EACtC;AAEA,oBAAkB,eAAe,eAAe;AAEhD,SAAO,wBAAS,KAAM,mBAAmB;AACvC,eAAU,QAAQ,OAAO;AACvB,YAAM;AACN,aAAO,KAAK,OAAO;AAAA,IACrB;AAEA,UAAM;AAAA,EACR,EAAG,CAAC;AACN;AAEA,IAAO,2BAAQ;;;AE5Gf,IAAAC,iBAAmB;AAEnB,IAAM,4BAAN,cAAwC,eAAAC,QAAO,UAAU;AAAA,EACvD,YAAY,OAAO,UAAU,UAAU;AACrC,SAAK,KAAK,KAAK;AACf,aAAS;AAAA,EACX;AAAA,EAEA,WAAW,OAAO,UAAU,UAAU;AACpC,QAAI,MAAM,WAAW,GAAG;AACtB,WAAK,aAAa,KAAK;AAGvB,UAAI,MAAM,CAAC,MAAM,KAAK;AACpB,cAAM,SAAS,OAAO,MAAM,CAAC;AAC7B,eAAO,CAAC,IAAI;AACZ,eAAO,CAAC,IAAI;AACZ,aAAK,KAAK,QAAQ,QAAQ;AAAA,MAC5B;AAAA,IACF;AAEA,SAAK,YAAY,OAAO,UAAU,QAAQ;AAAA,EAC5C;AACF;AAEA,IAAO,oCAAQ;;;ACzBf,IAAM,cAAc,CAAC,IAAI,YAAY;AACnC,SAAO,cAAM,UAAU,EAAE,IAAI,YAAa,MAAM;AAC9C,UAAM,KAAK,KAAK,IAAI;AACpB,OAAG,MAAM,MAAM,IAAI,EAAE,KAAK,CAAC,UAAU;AACnC,UAAI;AACF,kBAAU,GAAG,MAAM,GAAG,QAAQ,KAAK,CAAC,IAAI,GAAG,MAAM,KAAK;AAAA,MACxD,SAAS,KAAK;AACZ,WAAG,GAAG;AAAA,MACR;AAAA,IACF,GAAG,EAAE;AAAA,EACP,IAAI;AACN;AAEA,IAAO,sBAAQ;;;AVYf,IAAM,cAAc;AAAA,EAClB,OAAO,YAAAC,QAAK,UAAU;AAAA,EACtB,aAAa,YAAAA,QAAK,UAAU;AAC9B;AAEA,IAAM,gBAAgB;AAAA,EACpB,OAAO,YAAAA,QAAK,UAAU;AAAA,EACtB,aAAa,YAAAA,QAAK,UAAU;AAC9B;AAEA,IAAM,oBAAoB,cAAM,WAAW,YAAAA,QAAK,sBAAsB;AAEtE,IAAM,EAAC,MAAM,YAAY,OAAO,YAAW,IAAI,wBAAAC;AAE/C,IAAM,UAAU;AAEhB,IAAM,qBAAqB,iBAAS,UAAU,IAAI,cAAY;AAC5D,SAAO,WAAW;AACpB,CAAC;AAUD,SAAS,uBAAuB,SAAS,iBAAiB;AACxD,MAAI,QAAQ,gBAAgB,OAAO;AACjC,YAAQ,gBAAgB,MAAM,OAAO;AAAA,EACvC;AACA,MAAI,QAAQ,gBAAgB,QAAQ;AAClC,YAAQ,gBAAgB,OAAO,SAAS,eAAe;AAAA,EACzD;AACF;AAWA,SAAS,SAAS,SAAS,aAAa,UAAU;AAChD,MAAI,QAAQ;AACZ,MAAI,CAAC,SAAS,UAAU,OAAO;AAC7B,UAAM,eAAW,sCAAe,QAAQ;AACxC,QAAI,UAAU;AACZ,cAAQ,IAAI,IAAI,QAAQ;AAAA,IAC1B;AAAA,EACF;AACA,MAAI,OAAO;AAET,QAAI,MAAM,UAAU;AAClB,YAAM,QAAQ,MAAM,YAAY,MAAM,OAAO,MAAM,YAAY;AAAA,IACjE;AAEA,QAAI,MAAM,MAAM;AAEd,UAAI,MAAM,KAAK,YAAY,MAAM,KAAK,UAAU;AAC9C,cAAM,QAAQ,MAAM,KAAK,YAAY,MAAM,OAAO,MAAM,KAAK,YAAY;AAAA,MAC3E;AACA,YAAM,SAAS,OACZ,KAAK,MAAM,MAAM,MAAM,EACvB,SAAS,QAAQ;AACpB,cAAQ,QAAQ,qBAAqB,IAAI,WAAW;AAAA,IACtD;AAEA,YAAQ,QAAQ,OAAO,QAAQ,YAAY,QAAQ,OAAO,MAAM,QAAQ,OAAO;AAC/E,UAAM,YAAY,MAAM,YAAY,MAAM;AAC1C,YAAQ,WAAW;AAEnB,YAAQ,OAAO;AACf,YAAQ,OAAO,MAAM;AACrB,YAAQ,OAAO;AACf,QAAI,MAAM,UAAU;AAClB,cAAQ,WAAW,MAAM,SAAS,SAAS,GAAG,IAAI,MAAM,WAAW,GAAG,MAAM,QAAQ;AAAA,IACtF;AAAA,EACF;AAEA,UAAQ,gBAAgB,QAAQ,SAAS,eAAe,iBAAiB;AAGvE,aAAS,iBAAiB,aAAa,gBAAgB,IAAI;AAAA,EAC7D;AACF;AAEA,IAAM,yBAAyB,OAAO,YAAY,eAAe,cAAM,OAAO,OAAO,MAAM;AAI3F,IAAM,YAAY,CAAC,kBAAkB;AACnC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,QAAI;AACJ,QAAI;AAEJ,UAAM,OAAO,CAAC,OAAO,eAAe;AAClC,UAAI;AAAQ;AACZ,eAAS;AACT,gBAAU,OAAO,OAAO,UAAU;AAAA,IACpC;AAEA,UAAM,WAAW,CAAC,UAAU;AAC1B,WAAK,KAAK;AACV,cAAQ,KAAK;AAAA,IACf;AAEA,UAAM,UAAU,CAAC,WAAW;AAC1B,WAAK,QAAQ,IAAI;AACjB,aAAO,MAAM;AAAA,IACf;AAEA,kBAAc,UAAU,SAAS,CAAC,kBAAmB,SAAS,aAAc,EAAE,MAAM,OAAO;AAAA,EAC7F,CAAC;AACH;AAEA,IAAM,gBAAgB,CAAC,EAAC,SAAS,OAAM,MAAM;AAC3C,MAAI,CAAC,cAAM,SAAS,OAAO,GAAG;AAC5B,UAAM,UAAU,0BAA0B;AAAA,EAC5C;AACA,SAAQ;AAAA,IACN;AAAA,IACA,QAAQ,WAAW,QAAQ,QAAQ,GAAG,IAAI,IAAI,IAAI;AAAA,EACpD;AACF;AAEA,IAAM,oBAAoB,CAAC,SAAS,WAAW,cAAc,cAAM,SAAS,OAAO,IAAI,UAAU,EAAC,SAAS,OAAM,CAAC;AAGlH,IAAO,eAAQ,0BAA0B,SAAS,YAAY,QAAQ;AACpE,SAAO,UAAU,eAAe,oBAAoB,SAAS,QAAQ,QAAQ;AAC3E,QAAI,EAAC,MAAM,QAAQ,OAAM,IAAI;AAC7B,UAAM,EAAC,cAAc,iBAAgB,IAAI;AACzC,UAAM,SAAS,OAAO,OAAO,YAAY;AACzC,QAAI;AACJ,QAAI,WAAW;AACf,QAAI;AAEJ,QAAI,QAAQ;AACV,YAAM,UAAU,oBAAY,QAAQ,CAAC,UAAU,cAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;AAErF,eAAS,CAAC,UAAU,KAAK,OAAO;AAC9B,gBAAQ,UAAU,KAAK,CAAC,KAAK,MAAM,SAAS;AAC1C,cAAI,KAAK;AACP,mBAAO,GAAG,GAAG;AAAA,UACf;AAEA,gBAAM,YAAY,cAAM,QAAQ,IAAI,IAAI,KAAK,IAAI,UAAQ,kBAAkB,IAAI,CAAC,IAAI,CAAC,kBAAkB,MAAM,IAAI,CAAC;AAElH,cAAI,MAAM,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,UAAU,CAAC,EAAE,SAAS,UAAU,CAAC,EAAE,MAAM;AAAA,QAClF,CAAC;AAAA,MACH;AAAA,IACF;AAGA,UAAM,UAAU,IAAI,cAAAC,QAAa;AAEjC,UAAM,aAAa,MAAM;AACvB,UAAI,OAAO,aAAa;AACtB,eAAO,YAAY,YAAY,KAAK;AAAA,MACtC;AAEA,UAAI,OAAO,QAAQ;AACjB,eAAO,OAAO,oBAAoB,SAAS,KAAK;AAAA,MAClD;AAEA,cAAQ,mBAAmB;AAAA,IAC7B;AAEA,WAAO,CAAC,OAAO,eAAe;AAC5B,eAAS;AACT,UAAI,YAAY;AACd,mBAAW;AACX,mBAAW;AAAA,MACb;AAAA,IACF,CAAC;AAED,aAAS,MAAM,QAAQ;AACrB,cAAQ,KAAK,SAAS,CAAC,UAAU,OAAO,OAAO,IAAI,sBAAc,MAAM,QAAQ,GAAG,IAAI,MAAM;AAAA,IAC9F;AAEA,YAAQ,KAAK,SAAS,MAAM;AAE5B,QAAI,OAAO,eAAe,OAAO,QAAQ;AACvC,aAAO,eAAe,OAAO,YAAY,UAAU,KAAK;AACxD,UAAI,OAAO,QAAQ;AACjB,eAAO,OAAO,UAAU,MAAM,IAAI,OAAO,OAAO,iBAAiB,SAAS,KAAK;AAAA,MACjF;AAAA,IACF;AAGA,UAAM,WAAW,cAAc,OAAO,SAAS,OAAO,GAAG;AACzD,UAAM,SAAS,IAAI,IAAI,UAAU,kBAAkB;AACnD,UAAM,WAAW,OAAO,YAAY,mBAAmB,CAAC;AAExD,QAAI,aAAa,SAAS;AACxB,UAAI;AAEJ,UAAI,WAAW,OAAO;AACpB,eAAO,OAAO,SAAS,QAAQ;AAAA,UAC7B,QAAQ;AAAA,UACR,YAAY;AAAA,UACZ,SAAS,CAAC;AAAA,UACV;AAAA,QACF,CAAC;AAAA,MACH;AAEA,UAAI;AACF,wBAAgB,YAAY,OAAO,KAAK,iBAAiB,QAAQ;AAAA,UAC/D,MAAM,OAAO,OAAO,OAAO,IAAI;AAAA,QACjC,CAAC;AAAA,MACH,SAAS,KAAK;AACZ,cAAM,mBAAW,KAAK,KAAK,mBAAW,iBAAiB,MAAM;AAAA,MAC/D;AAEA,UAAI,iBAAiB,QAAQ;AAC3B,wBAAgB,cAAc,SAAS,gBAAgB;AAEvD,YAAI,CAAC,oBAAoB,qBAAqB,QAAQ;AACpD,0BAAgB,cAAM,SAAS,aAAa;AAAA,QAC9C;AAAA,MACF,WAAW,iBAAiB,UAAU;AACpC,wBAAgB,eAAAC,QAAO,SAAS,KAAK,aAAa;AAAA,MACpD;AAEA,aAAO,OAAO,SAAS,QAAQ;AAAA,QAC7B,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,SAAS,IAAI,qBAAa;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IACH;AAEA,QAAI,mBAAmB,QAAQ,QAAQ,MAAM,IAAI;AAC/C,aAAO,OAAO,IAAI;AAAA,QAChB,0BAA0B;AAAA,QAC1B,mBAAW;AAAA,QACX;AAAA,MACF,CAAC;AAAA,IACH;AAEA,UAAM,UAAU,qBAAa,KAAK,OAAO,OAAO,EAAE,UAAU;AAM5D,YAAQ,IAAI,cAAc,WAAW,SAAS,KAAK;AAEnD,UAAM,qBAAqB,OAAO;AAClC,UAAM,mBAAmB,OAAO;AAChC,UAAM,UAAU,OAAO;AACvB,QAAI,gBAAgB;AACpB,QAAI,kBAAkB;AAGtB,QAAI,cAAM,oBAAoB,IAAI,GAAG;AACnC,YAAM,eAAe,QAAQ,eAAe,6BAA6B;AAEzE,aAAO,yBAAiB,MAAM,CAAC,gBAAgB;AAC7C,gBAAQ,IAAI,WAAW;AAAA,MACzB,GAAG;AAAA,QACD,KAAK,SAAS,OAAO;AAAA,QACrB,UAAU,gBAAgB,aAAa,CAAC,KAAK;AAAA,MAC/C,CAAC;AAAA,IAEH,WAAW,cAAM,WAAW,IAAI,KAAK,cAAM,WAAW,KAAK,UAAU,GAAG;AACtE,cAAQ,IAAI,KAAK,WAAW,CAAC;AAE7B,UAAI,CAAC,QAAQ,iBAAiB,GAAG;AAC/B,YAAI;AACF,gBAAM,cAAc,MAAM,aAAAC,QAAK,UAAU,KAAK,SAAS,EAAE,KAAK,IAAI;AAClE,iBAAO,SAAS,WAAW,KAAK,eAAe,KAAK,QAAQ,iBAAiB,WAAW;AAAA,QAE1F,SAAS,GAAG;AAAA,QACZ;AAAA,MACF;AAAA,IACF,WAAW,cAAM,OAAO,IAAI,GAAG;AAC7B,WAAK,QAAQ,QAAQ,eAAe,KAAK,QAAQ,0BAA0B;AAC3E,cAAQ,iBAAiB,KAAK,QAAQ,CAAC;AACvC,aAAO,eAAAD,QAAO,SAAS,KAAK,iBAAS,IAAI,CAAC;AAAA,IAC5C,WAAW,QAAQ,CAAC,cAAM,SAAS,IAAI,GAAG;AACxC,UAAI,OAAO,SAAS,IAAI,GAAG;AAAA,MAE3B,WAAW,cAAM,cAAc,IAAI,GAAG;AACpC,eAAO,OAAO,KAAK,IAAI,WAAW,IAAI,CAAC;AAAA,MACzC,WAAW,cAAM,SAAS,IAAI,GAAG;AAC/B,eAAO,OAAO,KAAK,MAAM,OAAO;AAAA,MAClC,OAAO;AACL,eAAO,OAAO,IAAI;AAAA,UAChB;AAAA,UACA,mBAAW;AAAA,UACX;AAAA,QACF,CAAC;AAAA,MACH;AAGA,cAAQ,iBAAiB,KAAK,QAAQ,KAAK;AAE3C,UAAI,OAAO,gBAAgB,MAAM,KAAK,SAAS,OAAO,eAAe;AACnE,eAAO,OAAO,IAAI;AAAA,UAChB;AAAA,UACA,mBAAW;AAAA,UACX;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAEA,UAAM,gBAAgB,cAAM,eAAe,QAAQ,iBAAiB,CAAC;AAErE,QAAI,cAAM,QAAQ,OAAO,GAAG;AAC1B,sBAAgB,QAAQ,CAAC;AACzB,wBAAkB,QAAQ,CAAC;AAAA,IAC7B,OAAO;AACL,sBAAgB,kBAAkB;AAAA,IACpC;AAEA,QAAI,SAAS,oBAAoB,gBAAgB;AAC/C,UAAI,CAAC,cAAM,SAAS,IAAI,GAAG;AACzB,eAAO,eAAAA,QAAO,SAAS,KAAK,MAAM,EAAC,YAAY,MAAK,CAAC;AAAA,MACvD;AAEA,aAAO,eAAAA,QAAO,SAAS,CAAC,MAAM,IAAI,6BAAqB;AAAA,QACrD,QAAQ;AAAA,QACR,SAAS,cAAM,eAAe,aAAa;AAAA,MAC7C,CAAC,CAAC,GAAG,cAAM,IAAI;AAEf,0BAAoB,KAAK,GAAG,YAAY,cAAY;AAClD,yBAAiB,OAAO,OAAO,UAAU;AAAA,UACvC,QAAQ;AAAA,QACV,CAAC,CAAC;AAAA,MACJ,CAAC;AAAA,IACH;AAGA,QAAI,OAAO;AACX,QAAI,OAAO,MAAM;AACf,YAAM,WAAW,OAAO,KAAK,YAAY;AACzC,YAAM,WAAW,OAAO,KAAK,YAAY;AACzC,aAAO,WAAW,MAAM;AAAA,IAC1B;AAEA,QAAI,CAAC,QAAQ,OAAO,UAAU;AAC5B,YAAM,cAAc,OAAO;AAC3B,YAAM,cAAc,OAAO;AAC3B,aAAO,cAAc,MAAM;AAAA,IAC7B;AAEA,YAAQ,QAAQ,OAAO,eAAe;AAEtC,QAAI;AAEJ,QAAI;AACF,aAAO;AAAA,QACL,OAAO,WAAW,OAAO;AAAA,QACzB,OAAO;AAAA,QACP,OAAO;AAAA,MACT,EAAE,QAAQ,OAAO,EAAE;AAAA,IACrB,SAAS,KAAK;AACZ,YAAM,YAAY,IAAI,MAAM,IAAI,OAAO;AACvC,gBAAU,SAAS;AACnB,gBAAU,MAAM,OAAO;AACvB,gBAAU,SAAS;AACnB,aAAO,OAAO,SAAS;AAAA,IACzB;AAEA,YAAQ;AAAA,MACN;AAAA,MACA,6BAA6B,oBAAoB,SAAS;AAAA,MAAK;AAAA,IAC/D;AAEF,UAAM,UAAU;AAAA,MACd;AAAA,MACA;AAAA,MACA,SAAS,QAAQ,OAAO;AAAA,MACxB,QAAQ,EAAE,MAAM,OAAO,WAAW,OAAO,OAAO,WAAW;AAAA,MAC3D;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB,iBAAiB,CAAC;AAAA,IACpB;AAGA,KAAC,cAAM,YAAY,MAAM,MAAM,QAAQ,SAAS;AAEhD,QAAI,OAAO,YAAY;AACrB,cAAQ,aAAa,OAAO;AAAA,IAC9B,OAAO;AACL,cAAQ,WAAW,OAAO;AAC1B,cAAQ,OAAO,OAAO;AACtB,eAAS,SAAS,OAAO,OAAO,WAAW,OAAO,OAAO,YAAY,OAAO,OAAO,MAAM,OAAO,OAAO,MAAM,QAAQ,IAAI;AAAA,IAC3H;AAEA,QAAI;AACJ,UAAM,iBAAiB,QAAQ,KAAK,QAAQ,QAAQ;AACpD,YAAQ,QAAQ,iBAAiB,OAAO,aAAa,OAAO;AAC5D,QAAI,OAAO,WAAW;AACpB,kBAAY,OAAO;AAAA,IACrB,WAAW,OAAO,iBAAiB,GAAG;AACpC,kBAAY,iBAAiB,aAAAE,UAAQ,YAAAC;AAAA,IACvC,OAAO;AACL,UAAI,OAAO,cAAc;AACvB,gBAAQ,eAAe,OAAO;AAAA,MAChC;AACA,UAAI,OAAO,gBAAgB;AACzB,gBAAQ,gBAAgB,SAAS,OAAO;AAAA,MAC1C;AACA,kBAAY,iBAAiB,cAAc;AAAA,IAC7C;AAEA,QAAI,OAAO,gBAAgB,IAAI;AAC7B,cAAQ,gBAAgB,OAAO;AAAA,IACjC,OAAO;AAEL,cAAQ,gBAAgB;AAAA,IAC1B;AAEA,QAAI,OAAO,oBAAoB;AAC7B,cAAQ,qBAAqB,OAAO;AAAA,IACtC;AAGA,UAAM,UAAU,QAAQ,SAAS,SAAS,eAAe,KAAK;AAC5D,UAAI,IAAI;AAAW;AAEnB,YAAM,UAAU,CAAC,GAAG;AAEpB,YAAM,iBAAiB,CAAC,IAAI,QAAQ,gBAAgB;AAEpD,UAAI,oBAAoB;AACtB,cAAM,kBAAkB,IAAI,6BAAqB;AAAA,UAC/C,QAAQ,cAAM,eAAe,cAAc;AAAA,UAC3C,SAAS,cAAM,eAAe,eAAe;AAAA,QAC/C,CAAC;AAED,8BAAsB,gBAAgB,GAAG,YAAY,cAAY;AAC/D,6BAAmB,OAAO,OAAO,UAAU;AAAA,YACzC,UAAU;AAAA,UACZ,CAAC,CAAC;AAAA,QACJ,CAAC;AAED,gBAAQ,KAAK,eAAe;AAAA,MAC9B;AAGA,UAAI,iBAAiB;AAGrB,YAAM,cAAc,IAAI,OAAO;AAG/B,UAAI,OAAO,eAAe,SAAS,IAAI,QAAQ,kBAAkB,GAAG;AAGlE,YAAI,WAAW,UAAU,IAAI,eAAe,KAAK;AAC/C,iBAAO,IAAI,QAAQ,kBAAkB;AAAA,QACvC;AAEA,iBAAS,IAAI,QAAQ,kBAAkB,KAAK,IAAI,YAAY,GAAG;AAAA,UAE/D,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAEH,oBAAQ,KAAK,YAAAN,QAAK,YAAY,WAAW,CAAC;AAG1C,mBAAO,IAAI,QAAQ,kBAAkB;AACrC;AAAA,UACF,KAAK;AACH,oBAAQ,KAAK,IAAI,kCAA0B,CAAC;AAG5C,oBAAQ,KAAK,YAAAA,QAAK,YAAY,WAAW,CAAC;AAG1C,mBAAO,IAAI,QAAQ,kBAAkB;AACrC;AAAA,UACF,KAAK;AACH,gBAAI,mBAAmB;AACrB,sBAAQ,KAAK,YAAAA,QAAK,uBAAuB,aAAa,CAAC;AACvD,qBAAO,IAAI,QAAQ,kBAAkB;AAAA,YACvC;AAAA,QACF;AAAA,MACF;AAEA,uBAAiB,QAAQ,SAAS,IAAI,eAAAG,QAAO,SAAS,SAAS,cAAM,IAAI,IAAI,QAAQ,CAAC;AAEtF,YAAM,eAAe,eAAAA,QAAO,SAAS,gBAAgB,MAAM;AACzD,qBAAa;AACb,mBAAW;AAAA,MACb,CAAC;AAED,YAAM,WAAW;AAAA,QACf,QAAQ,IAAI;AAAA,QACZ,YAAY,IAAI;AAAA,QAChB,SAAS,IAAI,qBAAa,IAAI,OAAO;AAAA,QACrC;AAAA,QACA,SAAS;AAAA,MACX;AAEA,UAAI,iBAAiB,UAAU;AAC7B,iBAAS,OAAO;AAChB,eAAO,SAAS,QAAQ,QAAQ;AAAA,MAClC,OAAO;AACL,cAAM,iBAAiB,CAAC;AACxB,YAAI,qBAAqB;AAEzB,uBAAe,GAAG,QAAQ,SAAS,iBAAiB,OAAO;AACzD,yBAAe,KAAK,KAAK;AACzB,gCAAsB,MAAM;AAG5B,cAAI,OAAO,mBAAmB,MAAM,qBAAqB,OAAO,kBAAkB;AAEhF,uBAAW;AACX,2BAAe,QAAQ;AACvB,mBAAO,IAAI;AAAA,cAAW,8BAA8B,OAAO,mBAAmB;AAAA,cAC5E,mBAAW;AAAA,cAAkB;AAAA,cAAQ;AAAA,YAAW,CAAC;AAAA,UACrD;AAAA,QACF,CAAC;AAED,uBAAe,GAAG,WAAW,SAAS,uBAAuB;AAC3D,cAAI,UAAU;AACZ;AAAA,UACF;AAEA,gBAAM,MAAM,IAAI;AAAA,YACd,8BAA8B,OAAO,mBAAmB;AAAA,YACxD,mBAAW;AAAA,YACX;AAAA,YACA;AAAA,UACF;AACA,yBAAe,QAAQ,GAAG;AAC1B,iBAAO,GAAG;AAAA,QACZ,CAAC;AAED,uBAAe,GAAG,SAAS,SAAS,kBAAkB,KAAK;AACzD,cAAI,IAAI;AAAW;AACnB,iBAAO,mBAAW,KAAK,KAAK,MAAM,QAAQ,WAAW,CAAC;AAAA,QACxD,CAAC;AAED,uBAAe,GAAG,OAAO,SAAS,kBAAkB;AAClD,cAAI;AACF,gBAAI,eAAe,eAAe,WAAW,IAAI,eAAe,CAAC,IAAI,OAAO,OAAO,cAAc;AACjG,gBAAI,iBAAiB,eAAe;AAClC,6BAAe,aAAa,SAAS,gBAAgB;AACrD,kBAAI,CAAC,oBAAoB,qBAAqB,QAAQ;AACpD,+BAAe,cAAM,SAAS,YAAY;AAAA,cAC5C;AAAA,YACF;AACA,qBAAS,OAAO;AAAA,UAClB,SAAS,KAAK;AACZ,mBAAO,OAAO,mBAAW,KAAK,KAAK,MAAM,QAAQ,SAAS,SAAS,QAAQ,CAAC;AAAA,UAC9E;AACA,iBAAO,SAAS,QAAQ,QAAQ;AAAA,QAClC,CAAC;AAAA,MACH;AAEA,cAAQ,KAAK,SAAS,SAAO;AAC3B,YAAI,CAAC,eAAe,WAAW;AAC7B,yBAAe,KAAK,SAAS,GAAG;AAChC,yBAAe,QAAQ;AAAA,QACzB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAED,YAAQ,KAAK,SAAS,SAAO;AAC3B,aAAO,GAAG;AACV,UAAI,QAAQ,GAAG;AAAA,IACjB,CAAC;AAGD,QAAI,GAAG,SAAS,SAAS,mBAAmB,KAAK;AAG/C,aAAO,mBAAW,KAAK,KAAK,MAAM,QAAQ,GAAG,CAAC;AAAA,IAChD,CAAC;AAGD,QAAI,GAAG,UAAU,SAAS,oBAAoB,QAAQ;AAEpD,aAAO,aAAa,MAAM,MAAO,EAAE;AAAA,IACrC,CAAC;AAGD,QAAI,OAAO,SAAS;AAElB,YAAM,UAAU,SAAS,OAAO,SAAS,EAAE;AAE3C,UAAI,OAAO,MAAM,OAAO,GAAG;AACzB,eAAO,IAAI;AAAA,UACT;AAAA,UACA,mBAAW;AAAA,UACX;AAAA,UACA;AAAA,QACF,CAAC;AAED;AAAA,MACF;AAOA,UAAI,WAAW,SAAS,SAAS,uBAAuB;AACtD,YAAI;AAAQ;AACZ,YAAI,sBAAsB,OAAO,UAAU,gBAAgB,OAAO,UAAU,gBAAgB;AAC5F,cAAMI,gBAAe,OAAO,gBAAgB;AAC5C,YAAI,OAAO,qBAAqB;AAC9B,gCAAsB,OAAO;AAAA,QAC/B;AACA,eAAO,IAAI;AAAA,UACT;AAAA,UACAA,cAAa,sBAAsB,mBAAW,YAAY,mBAAW;AAAA,UACrE;AAAA,UACA;AAAA,QACF,CAAC;AACD,cAAM;AAAA,MACR,CAAC;AAAA,IACH;AAIA,QAAI,cAAM,SAAS,IAAI,GAAG;AACxB,UAAI,QAAQ;AACZ,UAAI,UAAU;AAEd,WAAK,GAAG,OAAO,MAAM;AACnB,gBAAQ;AAAA,MACV,CAAC;AAED,WAAK,KAAK,SAAS,SAAO;AACxB,kBAAU;AACV,YAAI,QAAQ,GAAG;AAAA,MACjB,CAAC;AAED,WAAK,GAAG,SAAS,MAAM;AACrB,YAAI,CAAC,SAAS,CAAC,SAAS;AACtB,gBAAM,IAAI,sBAAc,mCAAmC,QAAQ,GAAG,CAAC;AAAA,QACzE;AAAA,MACF,CAAC;AAED,WAAK,KAAK,GAAG;AAAA,IACf,OAAO;AACL,UAAI,IAAI,IAAI;AAAA,IACd;AAAA,EACF,CAAC;AACH;;;AWvqBA,IAAO,kBAAQ,iBAAS;AAAA;AAAA,EAGtB;AAAA,IACE,MAAM,MAAM,OAAO,SAAS,MAAM,QAAQ,QAAQ;AAChD,YAAM,SAAS,CAAC,OAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtD,oBAAM,SAAS,OAAO,KAAK,OAAO,KAAK,aAAa,IAAI,KAAK,OAAO,EAAE,YAAY,CAAC;AAEnF,oBAAM,SAAS,IAAI,KAAK,OAAO,KAAK,UAAU,IAAI;AAElD,oBAAM,SAAS,MAAM,KAAK,OAAO,KAAK,YAAY,MAAM;AAExD,iBAAW,QAAQ,OAAO,KAAK,QAAQ;AAEvC,eAAS,SAAS,OAAO,KAAK,IAAI;AAAA,IACpC;AAAA,IAEA,KAAK,MAAM;AACT,YAAM,QAAQ,SAAS,OAAO,MAAM,IAAI,OAAO,eAAe,OAAO,WAAW,CAAC;AACjF,aAAQ,QAAQ,mBAAmB,MAAM,CAAC,CAAC,IAAI;AAAA,IACjD;AAAA,IAEA,OAAO,MAAM;AACX,WAAK,MAAM,MAAM,IAAI,KAAK,IAAI,IAAI,KAAQ;AAAA,IAC5C;AAAA,EACF;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,QAAQ;AAAA,IAAC;AAAA,IACT,OAAO;AACL,aAAO;AAAA,IACT;AAAA,IACA,SAAS;AAAA,IAAC;AAAA,EACZ;AAAA;;;ACnCF,IAAO,0BAAQ,iBAAS;AAAA;AAAA;AAAA,EAIrB,SAAS,qBAAqB;AAC7B,UAAM,OAAO,kBAAkB,KAAK,UAAU,SAAS;AACvD,UAAM,iBAAiB,SAAS,cAAc,GAAG;AACjD,QAAI;AAQJ,aAAS,WAAWC,MAAK;AACvB,UAAI,OAAOA;AAEX,UAAI,MAAM;AAER,uBAAe,aAAa,QAAQ,IAAI;AACxC,eAAO,eAAe;AAAA,MACxB;AAEA,qBAAe,aAAa,QAAQ,IAAI;AAGxC,aAAO;AAAA,QACL,MAAM,eAAe;AAAA,QACrB,UAAU,eAAe,WAAW,eAAe,SAAS,QAAQ,MAAM,EAAE,IAAI;AAAA,QAChF,MAAM,eAAe;AAAA,QACrB,QAAQ,eAAe,SAAS,eAAe,OAAO,QAAQ,OAAO,EAAE,IAAI;AAAA,QAC3E,MAAM,eAAe,OAAO,eAAe,KAAK,QAAQ,MAAM,EAAE,IAAI;AAAA,QACpE,UAAU,eAAe;AAAA,QACzB,MAAM,eAAe;AAAA,QACrB,UAAW,eAAe,SAAS,OAAO,CAAC,MAAM,MAC/C,eAAe,WACf,MAAM,eAAe;AAAA,MACzB;AAAA,IACF;AAEA,gBAAY,WAAW,OAAO,SAAS,IAAI;AAQ3C,WAAO,SAAS,gBAAgB,YAAY;AAC1C,YAAM,SAAU,cAAM,SAAS,UAAU,IAAK,WAAW,UAAU,IAAI;AACvE,aAAQ,OAAO,aAAa,UAAU,YAClC,OAAO,SAAS,UAAU;AAAA,IAChC;AAAA,EACF,EAAG;AAAA;AAAA;AAAA,EAGF,yBAAS,wBAAwB;AAChC,WAAO,SAAS,kBAAkB;AAChC,aAAO;AAAA,IACT;AAAA,EACF,EAAG;AAAA;;;AClDL,SAAS,qBAAqB,UAAU,kBAAkB;AACxD,MAAI,gBAAgB;AACpB,QAAM,eAAe,oBAAY,IAAI,GAAG;AAExC,SAAO,OAAK;AACV,UAAM,SAAS,EAAE;AACjB,UAAM,QAAQ,EAAE,mBAAmB,EAAE,QAAQ;AAC7C,UAAM,gBAAgB,SAAS;AAC/B,UAAM,OAAO,aAAa,aAAa;AACvC,UAAM,UAAU,UAAU;AAE1B,oBAAgB;AAEhB,UAAM,OAAO;AAAA,MACX;AAAA,MACA;AAAA,MACA,UAAU,QAAS,SAAS,QAAS;AAAA,MACrC,OAAO;AAAA,MACP,MAAM,OAAO,OAAO;AAAA,MACpB,WAAW,QAAQ,SAAS,WAAW,QAAQ,UAAU,OAAO;AAAA,MAChE,OAAO;AAAA,IACT;AAEA,SAAK,mBAAmB,aAAa,QAAQ,IAAI;AAEjD,aAAS,IAAI;AAAA,EACf;AACF;AAEA,IAAM,wBAAwB,OAAO,mBAAmB;AAExD,IAAO,cAAQ,yBAAyB,SAAU,QAAQ;AACxD,SAAO,IAAI,QAAQ,SAAS,mBAAmB,SAAS,QAAQ;AAC9D,QAAI,cAAc,OAAO;AACzB,UAAM,iBAAiB,qBAAa,KAAK,OAAO,OAAO,EAAE,UAAU;AACnE,QAAI,EAAC,cAAc,cAAa,IAAI;AACpC,QAAI;AACJ,aAAS,OAAO;AACd,UAAI,OAAO,aAAa;AACtB,eAAO,YAAY,YAAY,UAAU;AAAA,MAC3C;AAEA,UAAI,OAAO,QAAQ;AACjB,eAAO,OAAO,oBAAoB,SAAS,UAAU;AAAA,MACvD;AAAA,IACF;AAEA,QAAI;AAEJ,QAAI,cAAM,WAAW,WAAW,GAAG;AACjC,UAAI,iBAAS,yBAAyB,iBAAS,gCAAgC;AAC7E,uBAAe,eAAe,KAAK;AAAA,MACrC,YAAY,cAAc,eAAe,eAAe,OAAO,OAAO;AAEpE,cAAM,CAAC,MAAM,GAAG,MAAM,IAAI,cAAc,YAAY,MAAM,GAAG,EAAE,IAAI,WAAS,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO,IAAI,CAAC;AAC7G,uBAAe,eAAe,CAAC,QAAQ,uBAAuB,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;AAAA,MACrF;AAAA,IACF;AAEA,QAAI,UAAU,IAAI,eAAe;AAGjC,QAAI,OAAO,MAAM;AACf,YAAM,WAAW,OAAO,KAAK,YAAY;AACzC,YAAM,WAAW,OAAO,KAAK,WAAW,SAAS,mBAAmB,OAAO,KAAK,QAAQ,CAAC,IAAI;AAC7F,qBAAe,IAAI,iBAAiB,WAAW,KAAK,WAAW,MAAM,QAAQ,CAAC;AAAA,IAChF;AAEA,UAAM,WAAW,cAAc,OAAO,SAAS,OAAO,GAAG;AAEzD,YAAQ,KAAK,OAAO,OAAO,YAAY,GAAG,SAAS,UAAU,OAAO,QAAQ,OAAO,gBAAgB,GAAG,IAAI;AAG1G,YAAQ,UAAU,OAAO;AAEzB,aAAS,YAAY;AACnB,UAAI,CAAC,SAAS;AACZ;AAAA,MACF;AAEA,YAAM,kBAAkB,qBAAa;AAAA,QACnC,2BAA2B,WAAW,QAAQ,sBAAsB;AAAA,MACtE;AACA,YAAM,eAAe,CAAC,gBAAgB,iBAAiB,UAAU,iBAAiB,SAChF,QAAQ,eAAe,QAAQ;AACjC,YAAM,WAAW;AAAA,QACf,MAAM;AAAA,QACN,QAAQ,QAAQ;AAAA,QAChB,YAAY,QAAQ;AAAA,QACpB,SAAS;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAEA,aAAO,SAAS,SAAS,OAAO;AAC9B,gBAAQ,KAAK;AACb,aAAK;AAAA,MACP,GAAG,SAAS,QAAQ,KAAK;AACvB,eAAO,GAAG;AACV,aAAK;AAAA,MACP,GAAG,QAAQ;AAGX,gBAAU;AAAA,IACZ;AAEA,QAAI,eAAe,SAAS;AAE1B,cAAQ,YAAY;AAAA,IACtB,OAAO;AAEL,cAAQ,qBAAqB,SAAS,aAAa;AACjD,YAAI,CAAC,WAAW,QAAQ,eAAe,GAAG;AACxC;AAAA,QACF;AAMA,YAAI,QAAQ,WAAW,KAAK,EAAE,QAAQ,eAAe,QAAQ,YAAY,QAAQ,OAAO,MAAM,IAAI;AAChG;AAAA,QACF;AAGA,mBAAW,SAAS;AAAA,MACtB;AAAA,IACF;AAGA,YAAQ,UAAU,SAAS,cAAc;AACvC,UAAI,CAAC,SAAS;AACZ;AAAA,MACF;AAEA,aAAO,IAAI,mBAAW,mBAAmB,mBAAW,cAAc,QAAQ,OAAO,CAAC;AAGlF,gBAAU;AAAA,IACZ;AAGA,YAAQ,UAAU,SAAS,cAAc;AAGvC,aAAO,IAAI,mBAAW,iBAAiB,mBAAW,aAAa,QAAQ,OAAO,CAAC;AAG/E,gBAAU;AAAA,IACZ;AAGA,YAAQ,YAAY,SAAS,gBAAgB;AAC3C,UAAI,sBAAsB,OAAO,UAAU,gBAAgB,OAAO,UAAU,gBAAgB;AAC5F,YAAMC,gBAAe,OAAO,gBAAgB;AAC5C,UAAI,OAAO,qBAAqB;AAC9B,8BAAsB,OAAO;AAAA,MAC/B;AACA,aAAO,IAAI;AAAA,QACT;AAAA,QACAA,cAAa,sBAAsB,mBAAW,YAAY,mBAAW;AAAA,QACrE;AAAA,QACA;AAAA,MAAO,CAAC;AAGV,gBAAU;AAAA,IACZ;AAKA,QAAG,iBAAS,uBAAuB;AACjC,uBAAiB,cAAM,WAAW,aAAa,MAAM,gBAAgB,cAAc,MAAM;AAEzF,UAAI,iBAAkB,kBAAkB,SAAS,wBAAgB,QAAQ,GAAI;AAE3E,cAAM,YAAY,OAAO,kBAAkB,OAAO,kBAAkB,gBAAQ,KAAK,OAAO,cAAc;AAEtG,YAAI,WAAW;AACb,yBAAe,IAAI,OAAO,gBAAgB,SAAS;AAAA,QACrD;AAAA,MACF;AAAA,IACF;AAGA,oBAAgB,UAAa,eAAe,eAAe,IAAI;AAG/D,QAAI,sBAAsB,SAAS;AACjC,oBAAM,QAAQ,eAAe,OAAO,GAAG,SAAS,iBAAiB,KAAK,KAAK;AACzE,gBAAQ,iBAAiB,KAAK,GAAG;AAAA,MACnC,CAAC;AAAA,IACH;AAGA,QAAI,CAAC,cAAM,YAAY,OAAO,eAAe,GAAG;AAC9C,cAAQ,kBAAkB,CAAC,CAAC,OAAO;AAAA,IACrC;AAGA,QAAI,gBAAgB,iBAAiB,QAAQ;AAC3C,cAAQ,eAAe,OAAO;AAAA,IAChC;AAGA,QAAI,OAAO,OAAO,uBAAuB,YAAY;AACnD,cAAQ,iBAAiB,YAAY,qBAAqB,OAAO,oBAAoB,IAAI,CAAC;AAAA,IAC5F;AAGA,QAAI,OAAO,OAAO,qBAAqB,cAAc,QAAQ,QAAQ;AACnE,cAAQ,OAAO,iBAAiB,YAAY,qBAAqB,OAAO,gBAAgB,CAAC;AAAA,IAC3F;AAEA,QAAI,OAAO,eAAe,OAAO,QAAQ;AAGvC,mBAAa,YAAU;AACrB,YAAI,CAAC,SAAS;AACZ;AAAA,QACF;AACA,eAAO,CAAC,UAAU,OAAO,OAAO,IAAI,sBAAc,MAAM,QAAQ,OAAO,IAAI,MAAM;AACjF,gBAAQ,MAAM;AACd,kBAAU;AAAA,MACZ;AAEA,aAAO,eAAe,OAAO,YAAY,UAAU,UAAU;AAC7D,UAAI,OAAO,QAAQ;AACjB,eAAO,OAAO,UAAU,WAAW,IAAI,OAAO,OAAO,iBAAiB,SAAS,UAAU;AAAA,MAC3F;AAAA,IACF;AAEA,UAAM,WAAW,cAAc,QAAQ;AAEvC,QAAI,YAAY,iBAAS,UAAU,QAAQ,QAAQ,MAAM,IAAI;AAC3D,aAAO,IAAI,mBAAW,0BAA0B,WAAW,KAAK,mBAAW,iBAAiB,MAAM,CAAC;AACnG;AAAA,IACF;AAIA,YAAQ,KAAK,eAAe,IAAI;AAAA,EAClC,CAAC;AACH;;;AC9PA,IAAM,gBAAgB;AAAA,EACpB,MAAM;AAAA,EACN,KAAK;AACP;AAEA,cAAM,QAAQ,eAAe,CAAC,IAAI,UAAU;AAC1C,MAAI,IAAI;AACN,QAAI;AACF,aAAO,eAAe,IAAI,QAAQ,EAAC,MAAK,CAAC;AAAA,IAC3C,SAAS,GAAG;AAAA,IAEZ;AACA,WAAO,eAAe,IAAI,eAAe,EAAC,MAAK,CAAC;AAAA,EAClD;AACF,CAAC;AAED,IAAM,eAAe,CAAC,WAAW,KAAK,MAAM;AAE5C,IAAM,mBAAmB,CAAC,YAAY,cAAM,WAAW,OAAO,KAAK,YAAY,QAAQ,YAAY;AAEnG,IAAO,mBAAQ;AAAA,EACb,YAAY,CAAC,aAAa;AACxB,eAAW,cAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ;AAEzD,UAAM,EAAC,OAAM,IAAI;AACjB,QAAI;AACJ,QAAI;AAEJ,UAAM,kBAAkB,CAAC;AAEzB,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AAC/B,sBAAgB,SAAS,CAAC;AAC1B,UAAI;AAEJ,gBAAU;AAEV,UAAI,CAAC,iBAAiB,aAAa,GAAG;AACpC,kBAAU,eAAe,KAAK,OAAO,aAAa,GAAG,YAAY,CAAC;AAElE,YAAI,YAAY,QAAW;AACzB,gBAAM,IAAI,mBAAW,oBAAoB,EAAE,GAAG;AAAA,QAChD;AAAA,MACF;AAEA,UAAI,SAAS;AACX;AAAA,MACF;AAEA,sBAAgB,MAAM,MAAM,CAAC,IAAI;AAAA,IACnC;AAEA,QAAI,CAAC,SAAS;AAEZ,YAAM,UAAU,OAAO,QAAQ,eAAe,EAC3C;AAAA,QAAI,CAAC,CAAC,IAAI,KAAK,MAAM,WAAW,EAAE,OAChC,UAAU,QAAQ,wCAAwC;AAAA,MAC7D;AAEF,UAAI,IAAI,SACL,QAAQ,SAAS,IAAI,cAAc,QAAQ,IAAI,YAAY,EAAE,KAAK,IAAI,IAAI,MAAM,aAAa,QAAQ,CAAC,CAAC,IACxG;AAEF,YAAM,IAAI;AAAA,QACR,0DAA0D;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EACA,UAAU;AACZ;;;AC5DA,SAAS,6BAA6B,QAAQ;AAC5C,MAAI,OAAO,aAAa;AACtB,WAAO,YAAY,iBAAiB;AAAA,EACtC;AAEA,MAAI,OAAO,UAAU,OAAO,OAAO,SAAS;AAC1C,UAAM,IAAI,sBAAc,MAAM,MAAM;AAAA,EACtC;AACF;AASe,SAAR,gBAAiC,QAAQ;AAC9C,+BAA6B,MAAM;AAEnC,SAAO,UAAU,qBAAa,KAAK,OAAO,OAAO;AAGjD,SAAO,OAAO,cAAc;AAAA,IAC1B;AAAA,IACA,OAAO;AAAA,EACT;AAEA,MAAI,CAAC,QAAQ,OAAO,OAAO,EAAE,QAAQ,OAAO,MAAM,MAAM,IAAI;AAC1D,WAAO,QAAQ,eAAe,qCAAqC,KAAK;AAAA,EAC1E;AAEA,QAAM,UAAU,iBAAS,WAAW,OAAO,WAAW,iBAAS,OAAO;AAEtE,SAAO,QAAQ,MAAM,EAAE,KAAK,SAAS,oBAAoB,UAAU;AACjE,iCAA6B,MAAM;AAGnC,aAAS,OAAO,cAAc;AAAA,MAC5B;AAAA,MACA,OAAO;AAAA,MACP;AAAA,IACF;AAEA,aAAS,UAAU,qBAAa,KAAK,SAAS,OAAO;AAErD,WAAO;AAAA,EACT,GAAG,SAAS,mBAAmB,QAAQ;AACrC,QAAI,CAAC,SAAS,MAAM,GAAG;AACrB,mCAA6B,MAAM;AAGnC,UAAI,UAAU,OAAO,UAAU;AAC7B,eAAO,SAAS,OAAO,cAAc;AAAA,UACnC;AAAA,UACA,OAAO;AAAA,UACP,OAAO;AAAA,QACT;AACA,eAAO,SAAS,UAAU,qBAAa,KAAK,OAAO,SAAS,OAAO;AAAA,MACrE;AAAA,IACF;AAEA,WAAO,QAAQ,OAAO,MAAM;AAAA,EAC9B,CAAC;AACH;;;AC3EA,IAAM,kBAAkB,CAAC,UAAU,iBAAiB,uBAAe,MAAM,OAAO,IAAI;AAWrE,SAAR,YAA6B,SAAS,SAAS;AAEpD,YAAU,WAAW,CAAC;AACtB,QAAM,SAAS,CAAC;AAEhB,WAAS,eAAe,QAAQ,QAAQ,UAAU;AAChD,QAAI,cAAM,cAAc,MAAM,KAAK,cAAM,cAAc,MAAM,GAAG;AAC9D,aAAO,cAAM,MAAM,KAAK,EAAC,SAAQ,GAAG,QAAQ,MAAM;AAAA,IACpD,WAAW,cAAM,cAAc,MAAM,GAAG;AACtC,aAAO,cAAM,MAAM,CAAC,GAAG,MAAM;AAAA,IAC/B,WAAW,cAAM,QAAQ,MAAM,GAAG;AAChC,aAAO,OAAO,MAAM;AAAA,IACtB;AACA,WAAO;AAAA,EACT;AAGA,WAAS,oBAAoB,GAAG,GAAG,UAAU;AAC3C,QAAI,CAAC,cAAM,YAAY,CAAC,GAAG;AACzB,aAAO,eAAe,GAAG,GAAG,QAAQ;AAAA,IACtC,WAAW,CAAC,cAAM,YAAY,CAAC,GAAG;AAChC,aAAO,eAAe,QAAW,GAAG,QAAQ;AAAA,IAC9C;AAAA,EACF;AAGA,WAAS,iBAAiB,GAAG,GAAG;AAC9B,QAAI,CAAC,cAAM,YAAY,CAAC,GAAG;AACzB,aAAO,eAAe,QAAW,CAAC;AAAA,IACpC;AAAA,EACF;AAGA,WAAS,iBAAiB,GAAG,GAAG;AAC9B,QAAI,CAAC,cAAM,YAAY,CAAC,GAAG;AACzB,aAAO,eAAe,QAAW,CAAC;AAAA,IACpC,WAAW,CAAC,cAAM,YAAY,CAAC,GAAG;AAChC,aAAO,eAAe,QAAW,CAAC;AAAA,IACpC;AAAA,EACF;AAGA,WAAS,gBAAgB,GAAG,GAAG,MAAM;AACnC,QAAI,QAAQ,SAAS;AACnB,aAAO,eAAe,GAAG,CAAC;AAAA,IAC5B,WAAW,QAAQ,SAAS;AAC1B,aAAO,eAAe,QAAW,CAAC;AAAA,IACpC;AAAA,EACF;AAEA,QAAM,WAAW;AAAA,IACf,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,SAAS;AAAA,IACT,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,SAAS,CAAC,GAAG,MAAM,oBAAoB,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,GAAG,IAAI;AAAA,EACrF;AAEA,gBAAM,QAAQ,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,SAAS,OAAO,CAAC,GAAG,SAAS,mBAAmB,MAAM;AAChG,UAAMC,SAAQ,SAAS,IAAI,KAAK;AAChC,UAAM,cAAcA,OAAM,QAAQ,IAAI,GAAG,QAAQ,IAAI,GAAG,IAAI;AAC5D,IAAC,cAAM,YAAY,WAAW,KAAKA,WAAU,oBAAqB,OAAO,IAAI,IAAI;AAAA,EACnF,CAAC;AAED,SAAO;AACT;;;ACpGA,IAAM,aAAa,CAAC;AAGpB,CAAC,UAAU,WAAW,UAAU,YAAY,UAAU,QAAQ,EAAE,QAAQ,CAAC,MAAM,MAAM;AACnF,aAAW,IAAI,IAAI,SAAS,UAAU,OAAO;AAC3C,WAAO,OAAO,UAAU,QAAQ,OAAO,IAAI,IAAI,OAAO,OAAO;AAAA,EAC/D;AACF,CAAC;AAED,IAAM,qBAAqB,CAAC;AAW5B,WAAW,eAAe,SAAS,aAAa,WAAW,SAAS,SAAS;AAC3E,WAAS,cAAc,KAAK,MAAM;AAChC,WAAO,aAAa,UAAU,4BAA6B,MAAM,MAAO,QAAQ,UAAU,OAAO,UAAU;AAAA,EAC7G;AAGA,SAAO,CAAC,OAAO,KAAK,SAAS;AAC3B,QAAI,cAAc,OAAO;AACvB,YAAM,IAAI;AAAA,QACR,cAAc,KAAK,uBAAuB,UAAU,SAAS,UAAU,GAAG;AAAA,QAC1E,mBAAW;AAAA,MACb;AAAA,IACF;AAEA,QAAI,WAAW,CAAC,mBAAmB,GAAG,GAAG;AACvC,yBAAmB,GAAG,IAAI;AAE1B,cAAQ;AAAA,QACN;AAAA,UACE;AAAA,UACA,iCAAiC,UAAU;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAEA,WAAO,YAAY,UAAU,OAAO,KAAK,IAAI,IAAI;AAAA,EACnD;AACF;AAYA,SAAS,cAAc,SAAS,QAAQ,cAAc;AACpD,MAAI,OAAO,YAAY,UAAU;AAC/B,UAAM,IAAI,mBAAW,6BAA6B,mBAAW,oBAAoB;AAAA,EACnF;AACA,QAAM,OAAO,OAAO,KAAK,OAAO;AAChC,MAAI,IAAI,KAAK;AACb,SAAO,MAAM,GAAG;AACd,UAAM,MAAM,KAAK,CAAC;AAClB,UAAM,YAAY,OAAO,GAAG;AAC5B,QAAI,WAAW;AACb,YAAM,QAAQ,QAAQ,GAAG;AACzB,YAAM,SAAS,UAAU,UAAa,UAAU,OAAO,KAAK,OAAO;AACnE,UAAI,WAAW,MAAM;AACnB,cAAM,IAAI,mBAAW,YAAY,MAAM,cAAc,QAAQ,mBAAW,oBAAoB;AAAA,MAC9F;AACA;AAAA,IACF;AACA,QAAI,iBAAiB,MAAM;AACzB,YAAM,IAAI,mBAAW,oBAAoB,KAAK,mBAAW,cAAc;AAAA,IACzE;AAAA,EACF;AACF;AAEA,IAAO,oBAAQ;AAAA,EACb;AAAA,EACA;AACF;;;AC/EA,IAAMC,cAAa,kBAAU;AAS7B,IAAM,QAAN,MAAY;AAAA,EACV,YAAY,gBAAgB;AAC1B,SAAK,WAAW;AAChB,SAAK,eAAe;AAAA,MAClB,SAAS,IAAI,2BAAmB;AAAA,MAChC,UAAU,IAAI,2BAAmB;AAAA,IACnC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,QAAQ,aAAa,QAAQ;AACjC,QAAI;AACF,aAAO,MAAM,KAAK,SAAS,aAAa,MAAM;AAAA,IAChD,SAAS,KAAK;AACZ,YAAM,QAAQ,CAAC;AACf,UAAI,MAAM,mBAAmB;AAC3B,cAAM,kBAAkB,KAAK;AAAA,MAC/B,OAAO;AACL,cAAM,QAAQ,IAAI,MAAM,EAAE;AAAA,MAC5B;AAEA,YAAM,QAAQ,MAAM,MAAM,QAAQ,SAAS,EAAE;AAE7C,UAAI,CAAC,IAAI,MAAM,SAAS,MAAM,MAAM,QAAQ,aAAa,EAAE,CAAC,GAAG;AAC7D,YAAI,SAAS,OAAO,MAAM;AAAA,MAC5B;AAEA,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,SAAS,aAAa,QAAQ;AAG5B,QAAI,OAAO,gBAAgB,UAAU;AACnC,eAAS,UAAU,CAAC;AACpB,aAAO,MAAM;AAAA,IACf,OAAO;AACL,eAAS,eAAe,CAAC;AAAA,IAC3B;AAEA,aAAS,YAAY,KAAK,UAAU,MAAM;AAE1C,UAAM,EAAC,cAAAC,eAAc,kBAAkB,QAAO,IAAI;AAElD,QAAIA,kBAAiB,QAAW;AAC9B,wBAAU,cAAcA,eAAc;AAAA,QACpC,mBAAmBD,YAAW,aAAaA,YAAW,OAAO;AAAA,QAC7D,mBAAmBA,YAAW,aAAaA,YAAW,OAAO;AAAA,QAC7D,qBAAqBA,YAAW,aAAaA,YAAW,OAAO;AAAA,MACjE,GAAG,KAAK;AAAA,IACV;AAEA,QAAI,oBAAoB,MAAM;AAC5B,UAAI,cAAM,WAAW,gBAAgB,GAAG;AACtC,eAAO,mBAAmB;AAAA,UACxB,WAAW;AAAA,QACb;AAAA,MACF,OAAO;AACL,0BAAU,cAAc,kBAAkB;AAAA,UACxC,QAAQA,YAAW;AAAA,UACnB,WAAWA,YAAW;AAAA,QACxB,GAAG,IAAI;AAAA,MACT;AAAA,IACF;AAGA,WAAO,UAAU,OAAO,UAAU,KAAK,SAAS,UAAU,OAAO,YAAY;AAG7E,QAAI,iBAAiB,WAAW,cAAM;AAAA,MACpC,QAAQ;AAAA,MACR,QAAQ,OAAO,MAAM;AAAA,IACvB;AAEA,eAAW,cAAM;AAAA,MACf,CAAC,UAAU,OAAO,QAAQ,QAAQ,OAAO,SAAS,QAAQ;AAAA,MAC1D,CAAC,WAAW;AACV,eAAO,QAAQ,MAAM;AAAA,MACvB;AAAA,IACF;AAEA,WAAO,UAAU,qBAAa,OAAO,gBAAgB,OAAO;AAG5D,UAAM,0BAA0B,CAAC;AACjC,QAAI,iCAAiC;AACrC,SAAK,aAAa,QAAQ,QAAQ,SAAS,2BAA2B,aAAa;AACjF,UAAI,OAAO,YAAY,YAAY,cAAc,YAAY,QAAQ,MAAM,MAAM,OAAO;AACtF;AAAA,MACF;AAEA,uCAAiC,kCAAkC,YAAY;AAE/E,8BAAwB,QAAQ,YAAY,WAAW,YAAY,QAAQ;AAAA,IAC7E,CAAC;AAED,UAAM,2BAA2B,CAAC;AAClC,SAAK,aAAa,SAAS,QAAQ,SAAS,yBAAyB,aAAa;AAChF,+BAAyB,KAAK,YAAY,WAAW,YAAY,QAAQ;AAAA,IAC3E,CAAC;AAED,QAAI;AACJ,QAAI,IAAI;AACR,QAAI;AAEJ,QAAI,CAAC,gCAAgC;AACnC,YAAM,QAAQ,CAAC,gBAAgB,KAAK,IAAI,GAAG,MAAS;AACpD,YAAM,QAAQ,MAAM,OAAO,uBAAuB;AAClD,YAAM,KAAK,MAAM,OAAO,wBAAwB;AAChD,YAAM,MAAM;AAEZ,gBAAU,QAAQ,QAAQ,MAAM;AAEhC,aAAO,IAAI,KAAK;AACd,kBAAU,QAAQ,KAAK,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;AAAA,MAC/C;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,wBAAwB;AAE9B,QAAI,YAAY;AAEhB,QAAI;AAEJ,WAAO,IAAI,KAAK;AACd,YAAM,cAAc,wBAAwB,GAAG;AAC/C,YAAM,aAAa,wBAAwB,GAAG;AAC9C,UAAI;AACF,oBAAY,YAAY,SAAS;AAAA,MACnC,SAAS,OAAO;AACd,mBAAW,KAAK,MAAM,KAAK;AAC3B;AAAA,MACF;AAAA,IACF;AAEA,QAAI;AACF,gBAAU,gBAAgB,KAAK,MAAM,SAAS;AAAA,IAChD,SAAS,OAAO;AACd,aAAO,QAAQ,OAAO,KAAK;AAAA,IAC7B;AAEA,QAAI;AACJ,UAAM,yBAAyB;AAE/B,WAAO,IAAI,KAAK;AACd,gBAAU,QAAQ,KAAK,yBAAyB,GAAG,GAAG,yBAAyB,GAAG,CAAC;AAAA,IACrF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,QAAQ;AACb,aAAS,YAAY,KAAK,UAAU,MAAM;AAC1C,UAAM,WAAW,cAAc,OAAO,SAAS,OAAO,GAAG;AACzD,WAAO,SAAS,UAAU,OAAO,QAAQ,OAAO,gBAAgB;AAAA,EAClE;AACF;AAGA,cAAM,QAAQ,CAAC,UAAU,OAAO,QAAQ,SAAS,GAAG,SAAS,oBAAoB,QAAQ;AAEvF,QAAM,UAAU,MAAM,IAAI,SAASE,MAAK,QAAQ;AAC9C,WAAO,KAAK,QAAQ,YAAY,UAAU,CAAC,GAAG;AAAA,MAC5C;AAAA,MACA,KAAAA;AAAA,MACA,OAAO,UAAU,CAAC,GAAG;AAAA,IACvB,CAAC,CAAC;AAAA,EACJ;AACF,CAAC;AAED,cAAM,QAAQ,CAAC,QAAQ,OAAO,OAAO,GAAG,SAAS,sBAAsB,QAAQ;AAG7E,WAAS,mBAAmB,QAAQ;AAClC,WAAO,SAAS,WAAWA,MAAK,MAAM,QAAQ;AAC5C,aAAO,KAAK,QAAQ,YAAY,UAAU,CAAC,GAAG;AAAA,QAC5C;AAAA,QACA,SAAS,SAAS;AAAA,UAChB,gBAAgB;AAAA,QAClB,IAAI,CAAC;AAAA,QACL,KAAAA;AAAA,QACA;AAAA,MACF,CAAC,CAAC;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,UAAU,MAAM,IAAI,mBAAmB;AAE7C,QAAM,UAAU,SAAS,MAAM,IAAI,mBAAmB,IAAI;AAC5D,CAAC;AAED,IAAO,gBAAQ;;;AClNf,IAAM,cAAN,MAAM,aAAY;AAAA,EAChB,YAAY,UAAU;AACpB,QAAI,OAAO,aAAa,YAAY;AAClC,YAAM,IAAI,UAAU,8BAA8B;AAAA,IACpD;AAEA,QAAI;AAEJ,SAAK,UAAU,IAAI,QAAQ,SAAS,gBAAgB,SAAS;AAC3D,uBAAiB;AAAA,IACnB,CAAC;AAED,UAAM,QAAQ;AAGd,SAAK,QAAQ,KAAK,YAAU;AAC1B,UAAI,CAAC,MAAM;AAAY;AAEvB,UAAI,IAAI,MAAM,WAAW;AAEzB,aAAO,MAAM,GAAG;AACd,cAAM,WAAW,CAAC,EAAE,MAAM;AAAA,MAC5B;AACA,YAAM,aAAa;AAAA,IACrB,CAAC;AAGD,SAAK,QAAQ,OAAO,iBAAe;AACjC,UAAI;AAEJ,YAAM,UAAU,IAAI,QAAQ,aAAW;AACrC,cAAM,UAAU,OAAO;AACvB,mBAAW;AAAA,MACb,CAAC,EAAE,KAAK,WAAW;AAEnB,cAAQ,SAAS,SAAS,SAAS;AACjC,cAAM,YAAY,QAAQ;AAAA,MAC5B;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,SAAS,OAAO,SAAS,QAAQ,SAAS;AACjD,UAAI,MAAM,QAAQ;AAEhB;AAAA,MACF;AAEA,YAAM,SAAS,IAAI,sBAAc,SAAS,QAAQ,OAAO;AACzD,qBAAe,MAAM,MAAM;AAAA,IAC7B,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAmB;AACjB,QAAI,KAAK,QAAQ;AACf,YAAM,KAAK;AAAA,IACb;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,UAAU;AAClB,QAAI,KAAK,QAAQ;AACf,eAAS,KAAK,MAAM;AACpB;AAAA,IACF;AAEA,QAAI,KAAK,YAAY;AACnB,WAAK,WAAW,KAAK,QAAQ;AAAA,IAC/B,OAAO;AACL,WAAK,aAAa,CAAC,QAAQ;AAAA,IAC7B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,UAAU;AACpB,QAAI,CAAC,KAAK,YAAY;AACpB;AAAA,IACF;AACA,UAAM,QAAQ,KAAK,WAAW,QAAQ,QAAQ;AAC9C,QAAI,UAAU,IAAI;AAChB,WAAK,WAAW,OAAO,OAAO,CAAC;AAAA,IACjC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,SAAS;AACd,QAAI;AACJ,UAAM,QAAQ,IAAI,aAAY,SAAS,SAAS,GAAG;AACjD,eAAS;AAAA,IACX,CAAC;AACD,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,sBAAQ;;;ACjGA,SAAR,OAAwB,UAAU;AACvC,SAAO,SAAS,KAAK,KAAK;AACxB,WAAO,SAAS,MAAM,MAAM,GAAG;AAAA,EACjC;AACF;;;AChBe,SAAR,aAA8B,SAAS;AAC5C,SAAO,cAAM,SAAS,OAAO,KAAM,QAAQ,iBAAiB;AAC9D;;;ACbA,IAAM,iBAAiB;AAAA,EACrB,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,6BAA6B;AAAA,EAC7B,WAAW;AAAA,EACX,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa;AAAA,EACb,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,WAAW;AAAA,EACX,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,6BAA6B;AAAA,EAC7B,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,sBAAsB;AAAA,EACtB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,6BAA6B;AAAA,EAC7B,4BAA4B;AAAA,EAC5B,qBAAqB;AAAA,EACrB,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,yBAAyB;AAAA,EACzB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,+BAA+B;AACjC;AAEA,OAAO,QAAQ,cAAc,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACvD,iBAAe,KAAK,IAAI;AAC1B,CAAC;AAED,IAAO,yBAAQ;;;AC3Cf,SAAS,eAAe,eAAe;AACrC,QAAM,UAAU,IAAI,cAAM,aAAa;AACvC,QAAM,WAAW,KAAK,cAAM,UAAU,SAAS,OAAO;AAGtD,gBAAM,OAAO,UAAU,cAAM,WAAW,SAAS,EAAC,YAAY,KAAI,CAAC;AAGnE,gBAAM,OAAO,UAAU,SAAS,MAAM,EAAC,YAAY,KAAI,CAAC;AAGxD,WAAS,SAAS,SAAS,OAAO,gBAAgB;AAChD,WAAO,eAAe,YAAY,eAAe,cAAc,CAAC;AAAA,EAClE;AAEA,SAAO;AACT;AAGA,IAAM,QAAQ,eAAe,gBAAQ;AAGrC,MAAM,QAAQ;AAGd,MAAM,gBAAgB;AACtB,MAAM,cAAc;AACpB,MAAM,WAAW;AACjB,MAAM,UAAU;AAChB,MAAM,aAAa;AAGnB,MAAM,aAAa;AAGnB,MAAM,SAAS,MAAM;AAGrB,MAAM,MAAM,SAAS,IAAI,UAAU;AACjC,SAAO,QAAQ,IAAI,QAAQ;AAC7B;AAEA,MAAM,SAAS;AAGf,MAAM,eAAe;AAGrB,MAAM,cAAc;AAEpB,MAAM,eAAe;AAErB,MAAM,aAAa,WAAS,uBAAe,cAAM,WAAW,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,KAAK;AAEhG,MAAM,aAAa,iBAAS;AAE5B,MAAM,iBAAiB;AAEvB,MAAM,UAAU;AAGhB,IAAO,gBAAQ;;;ACnFf,IAAM;AAAA,EACJ,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAAC;AAAA,EACA;AAAA,EACA,cAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAAC;AACF,IAAI;;;ACDG,IAAM,cAAN,MAAsC;AAAA,EAG3C,YAA6B,QAAgB;AAAhB;AAAA,EAAiB;AAAA,EAFtC;AAAA,EAIR,MAAM,SAAS,OAA4C;AACzD,UAAM,MAAM,MAAM,cAAM,KAAwB,GAAG,KAAK,MAAM,eAAe,KAAK;AAElF,QAAI,IAAI,WAAW,OAAO,IAAI,WAAW,KAAK;AAC5C,YAAM,IAAI,MAAM,4BAA4B,GAAG,EAAE;AAAA,IACnD;AACA,SAAK,SAAS,IAAI,KAAK;AACvB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YAAY,OAAiB;AAC3B,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,MAAM,aAAa,SAAiD;AAClE,YAAQ,MAAM,KAAK,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC;AAAA,EACpD;AAAA,EAEA,MAAM,kBAAkB,WAAyD;AAC/E,UAAM,MAAM,MAAM,cAAM;AAAA,MACtB,GAAG,KAAK,MAAM;AAAA,MACd;AAAA,MACA;AAAA,QACE,SAAS,KAAK,QAAQ;AAAA,MACxB;AAAA,IACF;AAEA,QAAI,IAAI,WAAW,OAAO,IAAI,WAAW,KAAK;AAC5C,YAAM,IAAI,MAAM,qCAAqC,GAAG,EAAE;AAAA,IAC5D;AAEA,WAAO,IAAI,MAAM;AAAA,MAAI,CAAC,wBACpB,sBAAsB,eAAe,GAAG,EAAE,GAAG,oBAAoB,CAAC,IAAI;AAAA,IACxE;AAAA,EACF;AAAA,EAEA,MAAM,oBAAoB,cAAiD;AACzE,UAAM,MAAM,MAAM,cAAM;AAAA,MACtB,GAAG,KAAK,MAAM,gCAAgC,YAAY;AAAA,MAC1D;AAAA,QACE,SAAS,KAAK,QAAQ;AAAA,MACxB;AAAA,IACF;AAGA,QAAI,IAAI,WAAW,OAAO,IAAI,WAAW,KAAK;AAC5C,YAAM,IAAI,MAAM,qCAAqC,GAAG,EAAE;AAAA,IAC5D;AAEA,UAAM,YAAY,IAAI;AACtB,WAAO;AAAA,MACL,SAAS,UAAU;AAAA,MACnB,oBAAoB,UAAU,0BAA0B;AAAA,QACtD,CAAC,WAA8B;AAAA,UAC7B,WAAW,eAAe,GAAG,EAAE,WAAW,MAAM,kBAAkB,QAAQ,MAAM,OAAO,CAAC;AAAA,UACxF,SAAS,MAAM;AAAA,UACf,QAAQ,MAAM;AAAA,QAChB;AAAA,MACF;AAAA,MACA,WAAW,UAAU;AAAA,MACrB,MAAM,UAAU;AAAA,MAChB,aAAa,UAAU;AAAA,MACvB,eAAe,UAAU;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,MAAM,YAAY,aAAkD;AAClE,UAAM,MAAM,MAAM,cAAM,IAAgC,GAAG,KAAK,MAAM,iBAAiB,WAAW,IAAI;AAAA,MACpG,SAAS,KAAK,QAAQ;AAAA,IACxB,CAAC;AAGD,QAAI,IAAI,WAAW,OAAO,IAAI,WAAW,KAAK;AAC5C,YAAM,IAAI,MAAM,qCAAqC,GAAG,EAAE;AAAA,IAC5D;AAEA,WAAO;AAAA,MACL,SAAS,IAAI,KAAK;AAAA,MAClB,WAAW,IAAI,KAAK;AAAA,MACpB,QAAQ,IAAI,KAAK;AAAA,MACjB,eAAe,IAAI,KAAK;AAAA,MACxB,YAAY,IAAI,KAAK,WAAW;AAAA,QAC9B,CAAC,WAA6B;AAAA,UAC5B,SAAS,MAAM;AAAA,UACf,oBAAoB,MAAM,0BAA0B;AAAA,YAClD,CAAC,WAA8B;AAAA,cAC7B,WAAW,eAAe,GAAG,EAAE,WAAW,MAAM,kBAAkB,QAAQ,MAAM,OAAO,CAAC;AAAA,cACxF,SAAS,MAAM;AAAA,cACf,QAAQ,MAAM;AAAA,YAChB;AAAA,UACF;AAAA,UACA,WAAW,MAAM;AAAA,UACjB,MAAM,MAAM;AAAA,UACZ,aAAa,MAAM;AAAA,UACnB,eAAe,MAAM;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,uBAAuB,cAA4C;AACvE,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,MAAM,uBAAuB,cAAgD;AAC3E,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,MAAM,oBAAoB,cAAkD;AAC1E,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,MAAM,yBAAyB,cAAuC;AACpE,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,sBAAsB,cAAuC;AACjE,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,mBAAmB,OAAqD;AAC5E,UAAM,MAAM,MAAM,cAAM,KAAK,GAAG,KAAK,MAAM,YAAY,OAAO;AAAA,MAC5D,SAAS,KAAK,QAAQ;AAAA,IACxB,CAAC;AACD,QAAI,IAAI,WAAW,OAAO,IAAI,WAAW,KAAK;AAC5C,YAAM,IAAI,MAAM,sCAAsC,GAAG,EAAE;AAAA,IAC7D;AAAA,EACF;AAAA,EAEA,MAAM,iBAAiB,OAML;AAAA,EAClB;AAAA,EAEA,MAAM,0BAA0B,OAMd;AAAA,EAAC;AAAA,EAEnB,MAAM,gBAAgB,OAKnB;AAAA,EAAC;AAAA,EAEJ,MAAM,mBAAmB,OAKtB;AAAA,EAAC;AAAA,EAEJ,MAAM,kCAAkC,OAAiC;AAAA,EAAC;AAAA,EAE1E,MAAM,wBAAwB,OAAsD;AAAA,EAAC;AAAA,EAErF,MAAM,2BAA2B,QAAgB;AAAA,EAAC;AAAA,EAE1C,UAAU;AAChB,WAAO,EAAE,eAAe,UAAU,KAAK,MAAM,GAAG;AAAA,EAClD;AACF;;;ApD3LO,IAAM,eAAN,MAAM,cAAa;AAAA,EACR;AAAA,EAEA;AAAA,EAEA;AAAA,EAEhB;AAAA,EAEA,YAAY,OAAyE;AACnF,SAAK,UAAU,MAAM;AACrB,SAAK,YAAY,MAAM;AACvB,SAAK,SAAS,MAAM;AAAA,EACtB;AAAA,EAEA,aAAa,IAAI,KAAe,SAA8B;AAC5D,UAAM,SAAS,eAAe,KAAK,OAAO;AAC1C,UAAM,YAAY,IAAI,wBAAU,OAAO,SAAS;AAChD,UAAM,UAAU,IAAI,YAAY,OAAO,MAAM;AAC7C,WAAO,IAAI,cAAa;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,cAAc,QAAiB;AAC7B,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,IAAI,SAAS;AACX,QAAI,CAAC,KAAK,SAAS;AACjB,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,OAAO,KAAc;AACvB,SAAK,UAAU;AAAA,EACjB;AACF;;;AqDpCO,IAAM,cAAN,MAAM,aAAY;AAAA,EAKvB,YAA4B,SAAuB;AAAvB;AAAA,EAAwB;AAAA,EAJ5C;AAAA,EAEA;AAAA,EAIR,aAAa,IAAI,KAAe,SAA8B;AAC5D,UAAM,UAAU,MAAM,aAAa,IAAI,KAAK,OAAO;AACnD,WAAO,IAAI,aAAY,OAAO;AAAA,EAChC;AAAA,EAEA,MAAM,cAAc,OAAoE;AACtF,SAAK,QAAQ,SAAS,MAAM;AAC5B,UAAM,aAAa,cAAc,gBAAe,oBAAI,KAAK,GAAE,YAAY,CAAC;AACxE,UAAM,MAAM,MAAM,MAAM,OAAO,oBAAoB;AAAA,MACjD;AAAA,IACF,CAAC;AACD,WAAO,KAAK,QAAQ,SAAS;AAAA,MAC3B,SAAS,MAAM,MAAM,OAAO,QAAQ;AAAA,MACpC,SAAS;AAAA,MACT,WAAW,IAAI;AAAA,MACf,YAAY,MAAM,OAAO;AAAA,IAC3B,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,WAAW;AACf,WAAO,KAAK,QAAQ,QAAQ,YAAY,MAAM,KAAK,cAAc,CAAC;AAAA,EACpE;AAAA,EAEA,MAAM,cAAc,MAA8B;AAChD,WAAO,KAAK,eAAe,oBAAoB,IAAI;AAAA,EACrD;AAAA,EAEA,gBAAgB,MAAwB;AACtC,WAAO,IAAI,aAAa,KAAK,SAAS,IAAI;AAAA,EAC5C;AAAA,EAEA,MAAM,2BAA2B,cAAsB;AACrD,UAAM,OAAO,MAAM,KAAK,QAAQ,oBAAoB,YAAY;AAChE,WAAO,IAAI,aAAa,KAAK,SAAS,IAAI;AAAA,EAC5C;AAAA;AAAA;AAAA,EAIA,IAAI,iBAAiB;AACnB,QAAI,CAAC,KAAK,iBAAiB;AACzB,WAAK,kBAAkB,IAAI,aAAa,KAAK,SAAS,KAAK,eAAe;AAAA,IAC5E;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,kBAAkB;AACpB,QAAI,CAAC,KAAK,kBAAkB;AAC1B,WAAK,mBAAmB,IAAI,gBAAgB,KAAK,OAAO;AAAA,IAC1D;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,MAAc,gBAAgB;AAC5B,WAAO,KAAK,OAAO,QAAQ;AAAA,EAC7B;AACF;","names":["exports","module","util","exports","module","util","stream","self","exports","module","exports","module","exports","charset","extension","exports","module","exports","module","exports","module","exports","module","exports","module","exports","module","exports","module","exports","module","exports","module","exports","module","exports","module","exports","module","util","http","https","FormData","append","defaults","exports","getProxyForUrl","url","exports","module","exports","module","self","extend","exports","module","exports","module","exports","module","stream","exports","module","util","useColors","exports","module","exports","module","exports","module","url","URL","http","https","noop","self","isString","isBuffer","isFunction","spread","import_ed25519","import_multisig","import_cryptography","import_ed25519","import_secp256k1","import_secp256r1","import_verify","import_utils","import_utils","import_transactions","import_cryptography","import_multisig","coin","import_transactions","import_transactions","MSafeEnv","prototype","descriptors","filter","hasOwnProperty","filter","FormData","prototype","toString","encode","url","url","isFormData","isFileList","transitional","filter","self","prototype","validateStatus","url","import_util","url","import_stream","stream","self","import_stream","import_stream","stream","zlib","followRedirects","EventEmitter","stream","util","https","http","transitional","url","transitional","merge","validators","transitional","url","Axios","AxiosError","CanceledError","isCancel","CancelToken","VERSION","all","isAxiosError","spread","toFormData","AxiosHeaders","HttpStatusCode","mergeConfig"]}
|